summaryrefslogtreecommitdiffstats
path: root/Demo/cwilib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-10-28 09:53:13 (GMT)
committerGuido van Rossum <guido@python.org>1993-10-28 09:53:13 (GMT)
commit74b3f8a9e3368ad10a8d4aebd2dbaffdd3ca3585 (patch)
tree48baa4720d284e11ed119b35c6f915c71876d394 /Demo/cwilib
parentdc4b93db7097a34cee492b188ec2fd65c5b9bc4b (diff)
downloadcpython-74b3f8a9e3368ad10a8d4aebd2dbaffdd3ca3585.zip
cpython-74b3f8a9e3368ad10a8d4aebd2dbaffdd3ca3585.tar.gz
cpython-74b3f8a9e3368ad10a8d4aebd2dbaffdd3ca3585.tar.bz2
Initial revision
Diffstat (limited to 'Demo/cwilib')
-rwxr-xr-xDemo/cwilib/cwilib.py226
-rwxr-xr-xDemo/cwilib/form.py170
-rwxr-xr-xDemo/cwilib/telnetlib.py181
-rwxr-xr-xDemo/cwilib/vt100.py326
-rwxr-xr-xDemo/cwilib/vt100win.py68
5 files changed, 971 insertions, 0 deletions
diff --git a/Demo/cwilib/cwilib.py b/Demo/cwilib/cwilib.py
new file mode 100755
index 0000000..25e0622
--- /dev/null
+++ b/Demo/cwilib/cwilib.py
@@ -0,0 +1,226 @@
+# Interface to the interactive CWI library catalog.
+
+import sys
+import stdwin
+from stdwinevents import *
+import select
+import telnetlib
+import vt100win
+from form import Form
+
+
+# Main program
+
+def main():
+ vt = vt100win.VT100win()
+ #
+ host = 'biefstuk.cwi.nl'
+ port = 0
+ timeout = 10.0
+ tn = telnetlib.Telnet(host, port)
+ tn.set_timeout(timeout)
+ #
+ try:
+ vt.send(tn.read_until('login: '))
+ tn.write('cwilib\r')
+ #
+ vt.send(tn.read_until('Hit <RETURN> to continue...'))
+ tn.write('\r')
+ #
+ vt.send(tn.read_until('QUIT'))
+ except EOFError:
+ sys.stderr.write('Connection closed prematurely\n')
+ sys.exit(1)
+ #
+ define_screens(vt)
+ matches = vt.which_screens()
+ if 'menu' not in matches:
+ sys.stderr.write('No main menu within %g seconds\n' % timeout)
+ sys.exit(1)
+ #
+ tn.set_timeout(0)
+ tn.write('\r\r')
+ vt.open('Progress -- CWI Library')
+ ui = UserInterface()
+ #
+ while 1:
+ event = stdwin.pollevent()
+ if not event:
+ rfd, wfd, xfd = select.select([stdwin, tn], [], [])
+ if stdwin in rfd:
+ event = stdwin.getevent()
+ if event:
+ type, window, detail = event
+ if window == None and type == WE_LOST_SEL:
+ window = ui.queryform.window
+ event = type, window, detail
+ if type == WE_CLOSE:
+ break
+ if window in ui.windows:
+ ui.dispatch(type, window, detail)
+ elif window == vt.window:
+ if type == WE_NULL:
+ pass
+ elif type == WE_COMMAND:
+ if detail == WC_RETURN:
+ tn.write('\r')
+ elif detail == WC_BACKSPACE:
+ tn.write('\b')
+ elif detail == WC_TAB:
+ tn.write('\t')
+ elif detail == WC_UP:
+ tn.write('\033[A')
+ elif detail == WC_DOWN:
+ tn.write('\033[B')
+ elif detail == WC_RIGHT:
+ tn.write('\033[C')
+ elif detail == WC_LEFT:
+ tn.write('\033[D')
+ else:
+ print '*** Command:', detail
+ elif type == WE_CHAR:
+ tn.write(detail)
+ elif type == WE_DRAW:
+ vt.draw(detail)
+ elif type in (WE_ACTIVATE, WE_DEACTIVATE):
+ pass
+ else:
+ print '*** VT100 event:', type, detail
+ else:
+ print '*** Alien event:', type, window, detail
+ elif tn in rfd:
+ vt.window.setwincursor('watch')
+ try:
+ data = tn.read_now()
+ except EOFError:
+ stdwin.message('Connection closed--goodbye')
+ break
+ print 'send...'
+ vt.send(data)
+ print 'send...done'
+ vt.window.setwincursor('arrow')
+ matches = vt.which_screens()
+ if 'timelimit' in matches:
+ stdwin.message('Time limit--goodbye')
+ break
+ print '*** Matches:', matches
+ else:
+ print '*** Weird return from select:', rfd, wfd, xfd
+
+
+# Subroutine to define our screen recognition patterns
+
+def define_screens(vt):
+ vt.define_screen('menu', {
+ 'title': ('search', 0, 0, 80,
+ ' SEARCH FUNCTIONS +OTHER FUNCTIONS '),
+ })
+ vt.define_screen('search', {
+ 'title': ('search', 0, 0, 80, ' Search '),
+ })
+ vt.define_screen('shortlist', {'title': ('search', 0, 0, 80,
+ ' Short-list')})
+ vt.define_screen('showrecord', {
+ 'title': ('search', 0, 0, 80, ' Show record '),
+ })
+ vt.define_screen('timelimit', {
+ 'limit': ('search', 12, 0, 80, ' TIME LIMIT '),
+ })
+ vt.define_screen('attention', {
+ 'BASE': ('copy', 0, 0, 0, 'search'),
+ 'title': ('search', 10, 0, 80, ' ATTENTION ')})
+ vt.define_screen('syntaxerror', {
+ 'BASE': ('copy', 0, 0, 0, 'attention'),
+ 'message': ('search', 12, 0, 80, ' Syntax error'),
+ })
+ vt.define_screen('emptyerror', {
+ 'BASE': ('copy', 0, 0, 0, 'attention'),
+ 'message': ('search', 12, 0, 80,
+ ' Check your input. Search at least one term'),
+ })
+ vt.define_screen('unsortedwarning', {
+ 'BASE': ('copy', 0, 0, 0, 'attention'),
+ 'message': ('search', 12, 0, 80,
+ ' Number of records exceeds sort limit'),
+ })
+ vt.define_screen('thereismore', {
+ 'BASE': ('copy', 0, 0, 0, 'showrecord'),
+ 'message': ('search', 15, 0, 80,
+ 'There is more within this record. Use the arrow keys'),
+ })
+ vt.define_screen('nofurther', {
+ 'BASE': ('copy', 0, 0, 0, 'showrecord'),
+ 'message': ('search', 17, 0, 80, 'You cannot go further\.'),
+ })
+ vt.define_screen('nofurtherback', {
+ 'BASE': ('copy', 0, 0, 0, 'showrecord'),
+ 'message': ('search', 17, 0, 80,
+ 'You cannot go further back'),
+ })
+
+
+# Class to implement our user interface.
+
+class UserInterface:
+
+ def __init__(self):
+ stdwin.setfont('7x14')
+ self.queryform = QueryForm()
+ self.listform = ListForm()
+ self.recordform = RecordForm()
+ self.forms = [self.queryform, self.listform, self.recordform]
+ define_query_fields(self.queryform)
+ self.windows = []
+ for form in self.forms:
+ if form.formheight > 0:
+ form.open()
+ self.windows.append(form.window)
+
+ def __del__(self):
+ self.close()
+
+ def close(self):
+ for form in self.forms:
+ form.close()
+
+ def dispatch(self, type, window, detail):
+ for form in self.forms:
+ if window == form.window:
+ form.dispatch(type, detail)
+
+
+def define_query_fields(f):
+ f.define_field('name', 'Name auth./ed.', 1, 60)
+ f.define_field('title', 'Title', 4, 60)
+ f.define_field('shelfmark', 'Shelf mark', 1, 60)
+ f.define_field('class', 'Prim. classif.', 1, 60)
+ f.define_field('series', 'Series', 1, 60)
+ f.define_field('congress', 'Congr. pl./year', 1, 60)
+ f.define_field('type', 'Type', 1, 60)
+
+
+class QueryForm(Form):
+
+ def __init__(self):
+ Form.__init__(self, 'Query form -- CWI Library')
+
+ def dispatch(self, type, detail):
+ if type == WE_COMMAND and detail == WC_RETURN:
+ print '*** SUBMIT ***'
+ else:
+ Form.dispatch(self, type, detail)
+
+
+class ListForm(Form):
+
+ def __init__(self):
+ Form.__init__(self, 'Short list -- CWI Library')
+
+
+class RecordForm(Form):
+
+ def __init__(self):
+ Form.__init__(self, 'Record detail -- CWI Library')
+
+
+main()
diff --git a/Demo/cwilib/form.py b/Demo/cwilib/form.py
new file mode 100755
index 0000000..8dd6ef9
--- /dev/null
+++ b/Demo/cwilib/form.py
@@ -0,0 +1,170 @@
+# Fill-out form window
+
+import stdwin
+from stdwinevents import *
+
+
+class Form:
+
+ def __init__(self, title):
+ self.title = title
+ self.window = None
+ self.fields = {}
+ self.fieldnames = []
+ self.formwidth = self.formheight = 0
+ self.focusname = None
+ self.tefocus = None
+
+ def define_field(self, name, label, lines, chars):
+ self.fieldnames.append(name)
+ lh = stdwin.lineheight()
+ cw = stdwin.textwidth('m')
+ left = 20*cw
+ top = self.formheight + 4
+ right = left + chars*cw
+ bottom = top + lines*lh
+ te = None
+ self.fields[name] = (label, left, top, right, bottom, te)
+ self.formheight = bottom + 2
+ self.formwidth = max(self.formwidth, right + 4)
+
+ def open(self):
+ if self.window: return
+ self.formwidth = max(100, self.formwidth)
+ self.formheight = max(50, self.formheight)
+ stdwin.setdefwinsize(self.formwidth, self.formheight)
+ stdwin.setdefscrollbars(0, 0)
+ self.window = stdwin.open(self.title)
+ self.window.setdocsize(self.formwidth, self.formheight)
+ for name in self.fieldnames:
+ label, left, top, right, bottom, te = \
+ self.fields[name]
+ rect = (left, top), (right, bottom)
+ te = self.window.textcreate(rect)
+ te.setactive(0)
+ te.setview(rect)
+ self.fields[name] = \
+ label, left, top, right, bottom, te
+ if self.fieldnames:
+ self.setfocus(self.fieldnames[0])
+
+ def setfocus(self, name):
+ if name <> self.focusname and self.tefocus:
+ self.tefocus.setactive(0)
+ self.focusname = name
+ if self.focusname:
+ self.tefocus = self.fields[self.focusname][-1]
+ self.tefocus.setactive(1)
+ else:
+ self.tefocus = None
+
+ def dispatch(self, type, detail):
+ event = type, self.window, detail
+ if type == WE_NULL:
+ pass
+ elif type == WE_DRAW:
+ self.draw(detail)
+ elif type == WE_MOUSE_DOWN:
+ x, y = detail[0]
+ for name in self.fieldnames:
+ label, left, top, right, bottom, te = \
+ self.fields[name]
+ if left <= x < right and \
+ top <= y < bottom:
+ self.setfocus(name)
+ break
+ else:
+ stdwin.fleep()
+ return
+ if self.tefocus:
+ (left, top), (right, bottom) = \
+ self.tefocus.getrect()
+ if x < left: x = left
+ if x >= right: x = right-1
+ if y < top: y = top
+ if y >= bottom:
+ y = bottom-1
+ x = right-1
+ event = type, self.window, ((x,y),)+detail[1:]
+ if not self.tefocus.event(event):
+ stdwin.fleep()
+ elif type in (WE_MOUSE_MOVE, WE_MOUSE_UP, WE_CHAR):
+ if not self.tefocus or not self.tefocus.event(event):
+ stdwin.fleep()
+ elif type == WE_MOUSE_UP:
+ button = detail[2]
+ if button == 2:
+ self.paste_selection()
+ else:
+ self.make_selection()
+ elif type == WE_COMMAND:
+ if detail in (WC_BACKSPACE, WC_UP, WC_DOWN,
+ WC_LEFT, WC_RIGHT):
+ if not self.tefocus or \
+ not self.tefocus.event(event):
+ stdwin.fleep()
+ elif detail == WC_RETURN:
+ print '*** Submit query'
+ elif detail == WC_TAB:
+ if not self.fields:
+ stdwin.fleep()
+ return
+ if not self.focusname:
+ i = 0
+ else:
+ i = self.fieldnames.index(
+ self.focusname)
+ i = (i+1) % len(self.fieldnames)
+ self.setfocus(self.fieldnames[i])
+ self.tefocus.setfocus(0, 0x7fff)
+ self.make_selection()
+ elif type in (WE_ACTIVATE, WE_DEACTIVATE):
+ pass
+ elif type == WE_LOST_SEL:
+ if self.tefocus:
+ a, b = self.tefocus.getfocus()
+ self.tefocus.setfocus(a, a)
+ else:
+ print 'Form.dispatch(%d, %s)' % (type, `detail`)
+
+ def draw(self, detail):
+ d = self.window.begindrawing()
+ d.cliprect(detail)
+ d.erase(detail)
+ self.drawform(d, detail)
+ d.noclip()
+ d.close()
+ # Stupid textedit objects can't draw with open draw object...
+ self.drawtextedit(detail)
+
+ def drawform(self, d, detail):
+ for name in self.fieldnames:
+ label, left, top, right, bottom, te = self.fields[name]
+ d.text((0, top), label)
+ d.box((left-3, top-2), (right+4, bottom+2))
+
+ def drawtextedit(self, detail):
+ for name in self.fieldnames:
+ label, left, top, right, bottom, te = self.fields[name]
+ te.draw(detail)
+
+ def make_selection(self):
+ s = self.tefocus.getfocustext()
+ if not s:
+ return
+ stdwin.rotatecutbuffers(1)
+ stdwin.setcutbuffer(0, s)
+ if not self.window.setselection(WS_PRIMARY, s):
+ stdwin.fleep()
+
+ def paste_selection(self):
+ if not self.tefocus:
+ stdwin.fleep()
+ return
+ s = stdwin.getselection(WS_PRIMARY)
+ if not s:
+ s = stdwin.getcutbuffer(0)
+ if not s:
+ stdwin.fleep()
+ return
+ self.tefocus.replace(s)
diff --git a/Demo/cwilib/telnetlib.py b/Demo/cwilib/telnetlib.py
new file mode 100755
index 0000000..5c862e7
--- /dev/null
+++ b/Demo/cwilib/telnetlib.py
@@ -0,0 +1,181 @@
+# Telnet client library
+
+import socket
+import select
+import string
+import regsub
+
+# Tunable parameters
+TIMEOUT = 30.0
+DEBUGLEVEL = 1
+
+# Telnet protocol defaults
+TELNET_PORT = 23
+
+# Telnet protocol characters (don't change)
+IAC = chr(255) # "Interpret As Command"
+DONT = chr(254)
+DO = chr(253)
+WONT = chr(252)
+WILL = chr(251)
+
+
+# Telnet interface class
+
+class Telnet:
+
+ # Constructor
+ def __init__(self, host, port):
+ self.debuglevel = DEBUGLEVEL
+ self.host = host
+ if not port: port = TELNET_PORT
+ self.port = port
+ self.timeout = TIMEOUT
+ self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.sock.connect((self.host, self.port))
+ self.rawq = ''
+ self.irawq = 0
+ self.cookedq = ''
+
+ # Destructor
+ def __del__(self):
+ self.close()
+
+ # Print debug message
+ def msg(self, msg, *args):
+ if self.debuglevel > 0:
+ print 'TELNET:', msg%args
+
+ # Set debug level
+ def set_debuglevel(self, debuglevel):
+ self.debuglevel = debuglevel
+
+ # Set time-out on certain reads
+ def set_timeout(self, timeout):
+ self.timeout = float(timeout)
+
+ # Explicit close
+ def close(self):
+ if self.sock:
+ self.sock.close()
+ self.sock = None
+
+ # Return socket (e.g. for select)
+ def get_socket(self):
+ return self.sock
+
+ # Return socket's fileno (e.g. for select)
+ def fileno(self):
+ return self.sock.fileno()
+
+ # Write a string to the socket, doubling any IAC characters
+ def write(self, buffer):
+ if IAC in buffer:
+ buffer = regsub.gsub(IAC, IAC+IAC, buffer)
+ self.sock.send(buffer)
+
+ # Read until a given string is encountered or until timeout
+ def read_until(self, match):
+## self.msg('read_until(%s)' % `match`)
+ n = len(match)
+ self.process_rawq()
+ i = string.find(self.cookedq, match)
+ if i < 0:
+ i = max(0, len(self.cookedq)-n)
+ self.fill_cookedq()
+ i = string.find(self.cookedq, match, i)
+ if i >= 0:
+ i = i+n
+ buf = self.cookedq[:i]
+ self.cookedq = self.cookedq[i:]
+## self.msg('read_until(%s) -> %s' % (`match`, `buf`))
+ return buf
+ while select.select([self], [], [], self.timeout) == \
+ ([self], [], []):
+ i = max(0, len(self.cookedq)-n)
+ self.fill_rawq()
+ self.process_rawq()
+ i = string.find(self.cookedq, match, i)
+ if i >= 0:
+ i = i+n
+ buf = self.cookedq[:i]
+ self.cookedq = self.cookedq[i:]
+## self.msg('read_until(%s) -> %s' %
+## (`match`, `buf`))
+ return buf
+ buf = self.cookedq
+ self.cookedq = ''
+## self.msg('read_until(%s) -> %s' % (`match`, `buf`))
+ return buf
+
+ # Read everything that's possible without really blocking
+ def read_now(self):
+ self.fill_cookedq()
+ buf = self.cookedq
+ self.cookedq = ''
+## self.msg('read_now() --> %s' % `buf`)
+ return buf
+
+ # Fill cooked queue without blocking
+ def fill_cookedq(self):
+ self.process_rawq()
+ while select.select([self], [], [], 0) == ([self], [], []):
+ self.fill_rawq()
+ if not self.rawq:
+ raise EOFError
+ self.process_rawq()
+
+ # Transfer from raw queue to cooked queue
+ def process_rawq(self):
+ # There is some silliness going on here in an attempt
+ # to avoid quadratic behavior with large inputs...
+ buf = ''
+ while self.rawq:
+ c = self.rawq_getchar()
+ if c != IAC:
+ buf = buf + c
+ if len(buf) >= 44:
+## self.msg('transfer: %s' % `buf`)
+ self.cookedq = self.cookedq + buf
+ buf = ''
+ continue
+ c = self.rawq_getchar()
+ if c == IAC:
+ buf = buf + c
+ elif c in (DO, DONT):
+ opt = self.rawq_getchar()
+ self.msg('IAC %s %d',
+ c == DO and 'DO' or 'DONT',
+ ord(c))
+ self.sock.send(IAC + WONT + opt)
+ elif c in (WILL, WONT):
+ opt = self.rawq_getchar()
+ self.msg('IAC %s %d',
+ c == WILL and 'WILL' or 'WONT',
+ ord(c))
+ else:
+ self.msg('IAC %s not recognized' % `c`)
+## self.msg('transfer: %s' % `buf`)
+ self.cookedq = self.cookedq + buf
+
+ # Get next char from raw queue, blocking if necessary
+ def rawq_getchar(self):
+ if not self.rawq:
+ self.fill_rawq()
+ if self.irawq >= len(self.rawq):
+ raise EOFError
+ c = self.rawq[self.irawq]
+ self.irawq = self.irawq + 1
+ if self.irawq >= len(self.rawq):
+ self.rawq = ''
+ self.irawq = 0
+ return c
+
+ # Fill raw queue
+ def fill_rawq(self):
+ if self.irawq >= len(self.rawq):
+ self.rawq = ''
+ self.irawq = 0
+ buf = self.sock.recv(50)
+## self.msg('fill_rawq(): %s' % `buf`)
+ self.rawq = self.rawq + buf
diff --git a/Demo/cwilib/vt100.py b/Demo/cwilib/vt100.py
new file mode 100755
index 0000000..e802389
--- /dev/null
+++ b/Demo/cwilib/vt100.py
@@ -0,0 +1,326 @@
+# VT100 terminal emulator.
+# This is incomplete and slow, but will do for now...
+# It shouldn't be difficult to extend it to be a more-or-less complete
+# VT100 emulator. And little bit of profiling could go a long way...
+
+from array import array
+import regex
+import string
+
+# Tunable parameters
+DEBUGLEVEL = 1
+
+# Symbolic constants
+ESC = '\033'
+
+
+# VT100 emulation class
+
+class VT100:
+
+ def __init__(self):
+ self.debuglevel = DEBUGLEVEL
+ # Unchangeable parameters (for now)
+ self.width = 80
+ self.height = 24
+ self.blankline = array('c', ' '*self.width)
+ self.blankattr = array('b', '\0'*self.width)
+ # Set mutable display state
+ self.reset()
+ # Set parser state
+ self.unfinished = ''
+ # Set screen recognition state
+ self.reset_recognizer()
+
+ def msg(self, msg, *args):
+ if self.debuglevel > 0:
+ print 'VT100:', msg%args
+
+ def set_debuglevel(self, debuglevel):
+ self.debuglevel = debuglevel
+
+ def reset(self):
+ self.lines = []
+ self.attrs = []
+ self.fill_bottom()
+ self.x = 0
+ self.y = 0
+ self.curattrs = []
+
+ def show(self):
+ lineno = 0
+ for line in self.lines:
+ lineno = lineno + 1
+ i = len(line)
+ while i > 0 and line[i-1] == ' ': i = i-1
+ print line[:i]
+ print 'CURSOR:', self.x, self.y
+
+ def fill_bottom(self):
+ while len(self.lines) < self.height:
+ self.lines.append(self.blankline[:])
+ self.attrs.append(self.blankattr[:])
+
+ def fill_top(self):
+ while len(self.lines) < self.height:
+ self.lines.insert(0, self.blankline[:])
+ self.attrs.insert(0, self.blankattr[:])
+
+ def clear_all(self):
+ self.lines = []
+ self.attrs = []
+ self.fill_bottom()
+
+ def clear_below(self):
+ del self.lines[self.y:]
+ del self.attrs[self.y:]
+ self.fill_bottom()
+
+ def clear_above(self):
+ del self.lines[:self.y]
+ del self.attrs[:self.y]
+ self.fill_top()
+
+ def send(self, buffer):
+ self.unfinished = self.unfinished + buffer
+ i = 0
+ n = len(self.unfinished)
+ while i < n:
+ c = self.unfinished[i]
+ i = i+1
+ if c != ESC:
+ self.add_char(c)
+ continue
+ if i >= n:
+ i = i-1
+ break
+ c = self.unfinished[i]
+ i = i+1
+ if c == 'c':
+ self.reset()
+ continue
+ if c <> '[':
+ self.msg('unrecognized: ESC %s', `c`)
+ continue
+ argstr = ''
+ while i < n:
+ c = self.unfinished[i]
+ i = i+1
+ if c not in '0123456789;':
+ break
+ argstr = argstr + c
+ else:
+ i = i - len(argstr)
+ break
+## self.msg('found ESC [ %s %s' % (`argstr`, `c`))
+ args = string.splitfields(argstr, ';')
+ for j in range(len(args)):
+ s = args[j]
+ while s[:1] == '0': s = s[1:]
+ if s: args[j] = eval(s)
+ else: args[j] = 0
+ p1 = p2 = 0
+ if args: p1 = args[0]
+ if args[1:]: p2 = args[1]
+ if c in '@ABCDH':
+ if not p1: p1 = 1
+ if c in 'H':
+ if not p2: p2 = 1
+ if c == '@':
+ for j in range(p1):
+ self.add_char(' ')
+ elif c == 'A':
+ self.move_by(0, -p1)
+ elif c == 'B':
+ self.move_by(0, p1)
+ elif c == 'C':
+ self.move_by(p1, 0)
+ elif c == 'D':
+ self.move_by(-p1, 0)
+ elif c == 'H':
+ self.move_to(p2-1, p1-1)
+ elif c == 'J':
+ if p1 == 0: self.clear_above()
+ elif p1 == 1: self.clear_below()
+ elif p1 == 2: self.clear_all()
+ else: self.msg('weird ESC [ %d J', p1)
+ elif c == 'K':
+ if p1 == 0: self.erase_right()
+ elif p1 == 1: self.erase_left()
+ elif p1 == 2: self.erase_line()
+ else: self.msg('weird ESC [ %d K', p1)
+ elif c == 'm':
+ if p1 == 0:
+ self.curattrs = []
+ else:
+ if p1 not in self.curattrs:
+ self.curattrs.append(p1)
+ self.curattrs.sort()
+ else:
+ self.msg('unrecognized: ESC [ %s', `argstr+c`)
+ self.unfinished = self.unfinished[i:]
+
+ def add_char(self, c):
+ if c == '\r':
+ self.move_to(0, self.y)
+ return
+ if c in '\n\f\v':
+ self.move_to(self.x, self.y + 1)
+ if self.y >= self.height:
+ self.scroll_up(1)
+ self.move_to(self.x, self.height - 1)
+ return
+ if c == '\b':
+ self.move_by(-1, 0)
+ return
+ if c == '\a':
+ self.msg('BELL')
+ return
+ if c == '\t':
+ self.move_to((self.x+8)/8*8, self.y)
+ return
+ if c == '\0':
+ return
+ if c < ' ' or c > '~':
+ self.msg('ignored control char: %s', `c`)
+ return
+ if self.x >= self.width:
+ self.move_to(0, self.y + 1)
+ if self.y >= self.height:
+ self.scroll_up(1)
+ self.move_to(self.x, self.height - 1)
+ self.lines[self.y][self.x] = c
+ if self.curattrs:
+ self.attrs[self.y][self.x] = max(self.curattrs)
+ else:
+ self.attrs[self.y][self.x] = 0
+ self.move_by(1, 0)
+
+ def move_to(self, x, y):
+ self.x = min(max(0, x), self.width)
+ self.y = min(max(0, y), self.height)
+
+ def move_by(self, dx, dy):
+ self.move_to(self.x + dx, self.y + dy)
+
+ def scroll_up(self, nlines):
+ del self.lines[:max(0, nlines)]
+ del self.attrs[:max(0, nlines)]
+ self.fill_bottom()
+
+ def scroll_down(self, nlines):
+ del self.lines[-max(0, nlines):]
+ del self.attrs[-max(0, nlines):]
+ self.fill_top()
+
+ def erase_left(self):
+ x = min(self.width-1, x)
+ y = min(self.height-1, y)
+ self.lines[y][:x] = self.blankline[:x]
+ self.attrs[y][:x] = self.blankattr[:x]
+
+ def erase_right(self):
+ x = min(self.width-1, x)
+ y = min(self.height-1, y)
+ self.lines[y][x:] = self.blankline[x:]
+ self.attrs[y][x:] = self.blankattr[x:]
+
+ def erase_line(self):
+ self.lines[y][:] = self.blankline
+ self.attrs[y][:] = self.blankattr
+
+ # The following routines help automating the recognition of
+ # standard screens. A standard screen is characterized by
+ # a number of fields. A field is part of a line,
+ # characterized by a (lineno, begin, end) tuple;
+ # e.g. the first 10 characters of the second line are
+ # specified by the tuple (1, 0, 10). Fields can be:
+ # - regex: desired contents given by a regular expression,
+ # - extract: can be extracted,
+ # - cursor: screen is only valid if cursor in field,
+ # - copy: identical to another screen (position is ignored).
+ # A screen is defined as a dictionary full of fields. Screens
+ # also have names and are placed in a dictionary.
+
+ def reset_recognizer(self):
+ self.screens = {}
+
+ def define_screen(self, screenname, fields):
+ fieldscopy = {}
+ # Check if the fields make sense
+ for fieldname in fields.keys():
+ field = fields[fieldname]
+ ftype, lineno, begin, end, extra = field
+ if ftype in ('match', 'search'):
+ extra = regex.compile(extra)
+ elif ftype == 'extract':
+ extra = None
+ elif ftype == 'cursor':
+ extra = None
+ elif ftype == 'copy':
+ if not self.screens.has_key(extra):
+ raise ValueError, 'bad copy ref'
+ else:
+ raise ValueError, 'bad ftype: %s' % `ftype`
+ fieldscopy[fieldname] = (
+ ftype, lineno, begin, end, extra)
+ self.screens[screenname] = fieldscopy
+
+ def which_screens(self):
+ self.busy = []
+ self.okay = []
+ self.fail = []
+ for name in self.screens.keys():
+ ok = self.match_screen(name)
+ return self.okay[:]
+
+ def match_screen(self, name):
+ if name in self.busy: raise RuntimeError, 'recursive match'
+ if name in self.okay: return 1
+ if name in self.fail: return 0
+ self.busy.append(name)
+ fields = self.screens[name]
+ ok = 0
+ for key in fields.keys():
+ field = fields[key]
+ ftype, lineno, begin, end, extra = field
+ if ftype == 'copy':
+ if not self.match_screen(extra): break
+ elif ftype == 'search':
+ text = self.lines[lineno][begin:end].tostring()
+ if extra.search(text) < 0:
+ break
+ elif ftype == 'match':
+ text = self.lines[lineno][begin:end].tostring()
+ if extra.match(text) < 0:
+ break
+ elif ftype == 'cursor':
+ if self.x != lineno or not \
+ begin <= self.y < end:
+ break
+ else:
+ ok = 1
+ if ok:
+ self.okay.append(name)
+ else:
+ self.fail.append(name)
+ self.busy.remove(name)
+ return ok
+
+ def extract_field(self, screenname, fieldname):
+ ftype, lineno, begin, end, extra = \
+ self.screens[screenname][fieldname]
+ return stripright(self.lines[lineno][begin:end].tostring())
+
+ def extract_rect(self, left, top, right, bottom):
+ lines = []
+ for i in range(top, bottom):
+ lines.append(stripright(self.lines[i][left:right])
+ .tostring())
+ return lines
+
+
+def stripright(line):
+ i = len(line)
+ while i > 0 and line[i-1] in string.whitespace: i = i-1
+ return line[:i]
diff --git a/Demo/cwilib/vt100win.py b/Demo/cwilib/vt100win.py
new file mode 100755
index 0000000..dcaf17b
--- /dev/null
+++ b/Demo/cwilib/vt100win.py
@@ -0,0 +1,68 @@
+# VT100 terminal emulator in a STDWIN window.
+
+import stdwin
+from stdwinevents import *
+from vt100 import VT100
+
+class VT100win(VT100):
+
+ def __init__(self):
+ VT100.__init__(self)
+ self.window = None
+## self.last_x = -1
+## self.last_y = -1
+
+ def __del__(self):
+ self.close()
+
+ def open(self, title):
+ stdwin.setfont('7x14')
+ self.docwidth = self.width * stdwin.textwidth('m')
+ self.docheight = self.height * stdwin.lineheight()
+ stdwin.setdefwinsize(self.docwidth + 2, self.docheight + 2)
+ stdwin.setdefscrollbars(0, 0)
+ self.window = stdwin.open(title)
+ self.window.setdocsize(self.docwidth + 2, self.docheight + 2)
+
+ def close(self):
+ if self.window:
+ self.window.close()
+ self.window = None
+
+ def show(self):
+ if not self.window: return
+ self.draw(((-10, -10), (self.docwidth+10, self.docheight+10)))
+
+ def draw(self, detail):
+ d = self.window.begindrawing()
+ fg = stdwin.getfgcolor()
+ red = stdwin.fetchcolor('red')
+ d.cliprect(detail)
+ d.erase(detail)
+ lh = d.lineheight()
+ cw = d.textwidth('m')
+ for y in range(self.height):
+ d.text((0, y*lh), self.lines[y].tostring())
+ if self.attrs[y] <> self.blankattr:
+ for x in range(len(self.attrs[y])):
+ if self.attrs[y][x] == 7:
+ p1 = x*cw, y*lh
+ p2 = (x+1)*cw, (y+1)*lh
+ d.invert((p1, p2))
+ x = self.x * cw
+ y = self.y * lh
+ d.setfgcolor(red)
+ d.invert((x, y), (x+cw, y+lh))
+ d.setfgcolor(fg)
+ d.close()
+
+## def move_to(self, x, y):
+## VT100.move_to(self, x, y)
+## if self.y != self.last_y:
+## self.show()
+## self.last_x = self.x
+## self.last_y = y
+
+ def send(self, str):
+ VT100.send(self, str)
+ self.show()
W!i$wWuNDͥv]H⮓~ @@smL@OOOӃTjL$Q4 -l !Vy\Bl̓I%e_,^]=d^g*yP+qQ*+O+4/Vϻ~`J&ϺnzKrEщ*J OXF:T $g2qSȭIe. \;بM^"Yr'Bx⣩UuBri9fI*]L Qxc.LQBݖ*30QʈTR=gZVn\Έ +yh-yUV67ʌ9Dȕ5F)ڨB'LwFi :%qK(K~-1Ȭ w¬eIV. 2enCjseI-|'0AYwVAg&uJ4$j]iBt@F.T%[F-,-*Lܪ Z`$7JNDULW J e#gLiÎ0-XY L0v7w;6>DD<:XT L- 跺E W1⑸YkZ77g4@H IBQPxnIVb֚ҚI0N΀ 썒X9Zmm>'@t y2ĹJbnf $ `xr(4~oN$hOl(y} )В@A_xV~hBj;W։+s0*-2qouE(YΧjq4jzSRő&YZ3`oOZPZ2PpGWuɉJH@c,hW2FJ.&= 8HD)$W+ Bu9rZ'gQa<,e5.XcKL!f, jǿ"&&'d)X.@k 0$;ՍܱՄpQX_ZFi J;[VY2OWߩE p6jj5O?.VWdae:f5Z1X pnE?1l1$StIR^CWTޑP& XjYu/EZA9c Ie*U6!QuׂL'T^-+X Evd0WQVI}0N8ʃx$?ְaXYP )y ՁC:0L4/12:Ym1T qp\n4D$ hе@4$69(=i$ hcE>[D{K a}( " pyB+j@ZMDrTFA3& Dz3b1 c`i\ku#֟'>&YWf9U)XC<'B-Ƕb[f셑)ǁЊ܌ڝ<%,k᪅3Of=W]zA)A"894_iz-JZq1 H4ŶkH.)db޲("#LHQHv/^ S`cؒEjsQ2GwsWr!aꄅC0}#U@3Xp"f)UJg! T^ TIuKqm1Ҋ  t l8Y=~<:XUt1KUd 2*aBLߝ /1zlIAt#Y"p1`,:CKW@S.ޛN3j} :!M!U2-o>\\󷗖HE7 @RPh TW%DsZZnP [HU5TLy]ت\[rve3VK^g(rRۉ%7䨰1&7ZDR+$:$JX!hoGEEb돠hm酥4Je]}VƦO Bau25"\G]a=~ڄ(%"'EpzuqWN?إ%fCP夃|/sJ % A:f۫4Ψ1Bv˗Xru@:0 .!KK2 2k۬fMAKF}Ps=u; :+!PdnE囉e5u(J^Xi7Ǘ,PS(oƂ"nP@!'%ِi̾}h%s;dH4%qJ<{{r!~/fF`yh L^Vk=lPJSҒuVԶadt”.) )5G 4;0ȫ[G#H`l&S,o3.șaS w 1jm7xTkg/bLThm} 8+Ϲ?ph;$Cz37qV:vq|3^_'ȆjY pfy\AK\աO(?ZxsW/Đn0w%[6"wzxeFD\Ԇ eq5X6F/)YՅ5L>q}w7"w-\uzďZɺv[S4P+Lq@8&7`:S/_!!djė~ \^7.M"%%~xL6@n1 w<;Y5.1X8Q\@ 9&6b\ 햆TmU(,];}MXk ~.'MڼAR2i*ytEl 2{\Zޫ$),s*J1\¨%F [|&*Hou=}}=0.qC`~@XDW5X_s'mBȵ6^L5WJKBM\x!h܉ v\i"{HaM3ɔvXLIgM#2Fw.?{G}7X"ؖ' Խ$dN8[4>QԍeחVq2,9Nۼ.)q~NA% OF- i*M#q8\:Q!ss6 mJR3Ri&MIU{B.+Y^b!ƃL3꯴(jrQuDetmQӈKUlHuXoӞC2f;+m-t~qhv\ɔ`$  7+EG9ewA{p1rssĺԳ9`JnڠryN;;)I881Cj?jC\s=:d? kL&3` :~Oao\9Ǔ ?t}g|#./ ?_ur c #GsWstC'|_zףl<:Fo)XLoV¤*7GG z(Gm?>p;iW1(ĸ6F>/~m6*,CoBm vF\=<Ⱝbp}ܺBvv|cA؈oeow#ZS͖1Xob^܋+QvG+_]S㦋]ĵ4T!%tq'd0 mTF&qÈ#E[4¾Fa(">5ڦ3s4,a>~0  p />0T&րz) gkB~{xz vG!//xoA۟Kwxsȝ^zs0Wg;NHwcg}ҪGyyPm"s?WKIgi$< =UZ*;rWWm)ݝTa Fm/G}Oflc$a#:"IfP*s4:P"~9H=;h֎[dv;OfQGN{RMhOƒ5mB<AϬxpoۀ/Q=>E_ M`z&Fn^yl& `_0B`w1^S8+H%Y< h⌸m;dmY \ݕpl[gg68u8qѣ>tWoĻ]^+:D*$™w;6ki`\Sj7yj^bm̂OSࡧ'=͓Z7Fzd$nFW;fIM]U08$K՟>A>MҔ~BVj [fǭ)d K pwnIqr^gP놇u@ i"{E,ԹĖYʉ]Œ!xۣYAC Z 5?PÀ"37ed{ -8awبnkPbw'NPT"@ÝGOLGQs$?F,v@AcHht)!f!kC4#?X=zuL 9nԃ*pw9E:kȘԒ~bd5x݉]K\R,rE)6/ 30[gjNq}V,oYJ P~kzzD5`j7Ҝj Z^&W3p}ˇ|}m Jnc1Za/ϩ5Dg^+A$I/0[& ҾHjM-z?* ~^ʪ>,Gǰώ']0-vԋ)nO0>Q"$b;)J(>j,IQ :jpr( <۹V3zL0;2ښ{JqbD*4\ka(qTNHH6V!1mPK IPR, ( cpython-3.9.2rc1/Doc/c-api/bytearray.rstUT&,`Umo0_qU1M۴i^CjGC~=wv$m C@s}\CEֵCa+Q`gpWGjO|c؃EuDzW3 Q\Z՚@g7]cҠE,BqVIC;kɾ 㹖+>xN5J2X&, am}F 0/9`+Rmi*:*0s?kՃ~GW5[E;ZI;tl}_tytM5G(CW{%l*5԰kFeϨbX_\. "/p2&߬-A^^,Wc@?PK IPREj $$ cpython-3.9.2rc1/Doc/c-api/bytes.rstUT&,`Z[o~ׯ heuE_!uEHEڦP3Ą"e!&ɁjU4Cd:kZf3Fө/v nYUF]=:F˵ J,kW =S,ܕgbVV ] )(U)/-jKcT!ZuliԶPנ8R9F*Uw;<> !.:P/pK1Kg]< JlbWMFTɕ􌃘sz6T{Z BWOHfπ, k|VFb3UU{@zP]sbLȁh#5 :IB UBܑ\"܋W2X̭:L9hH|np>T|-_ 83PIrW1Yƕ4`d1=!LyZ_2z>zI06uRY#P^̜4r=yx>Q;IU&pcuܗWfɐ}- dgkz%j4`yFV,DL(K\s *pZfYvF5wƍ<8B^^z#ү q3ymd,Ay#Wp?g51#Z" x V!ԃfJRDauQyU:VNXxx|H?LBtƸ-qwxt)*f,}D|qզ [2@-cЮ+pCNG O[Pj|&ƼZB7>Z% r˘yA8)X6'75ήblc| -mJsh.T.knn: 1t>8* @ٸB/5h<;[1f) *-wJKRes//rڈܙzc\_ogg [U ;- ʢ܊s!#w|n~;3<i',;9:Orܣ4o4nt:;ʩ)Ѥ2/'89.c;)=ϲ!=wu1>wSrgZ קQ3Gxܵ|,(ѸW=nRw7=u=&wO;u4?\/=Q^Q0#o&H{pzo8Wq ˺j'A$cs89fYBc16 U =l BnK:՟|:*wNkŔ.;O6Gh[OƊB+R@idqHy/tr9&f1hnI,`v 8ȟIeƅWW@:b٨;mJl7,e|Tj%"HT?=j[Ny*;"oo?C%x쨲,alLOw_q) %=lU?e ZIL$"_tڎl^iN{٥Cy+˽0$j+ps9PK IPRcN6D# cpython-3.9.2rc1/Doc/c-api/call.rstUT&,`\{bO{'X;iDN\ĨqEN)R'+~~~c_(us"$ȉZ73cȯL&"8T$?⢮*?^lEU ݮVUhѬ+U$Wbe^דhԬH2*mQtP<DѓR7L\lZ5bNj9S$bsY`LY+bP :*esjD' p\'8%+~'fb)3%ZZiWWΛ*e^KШPkT 7j$˼uM%eȰ4$KaV(IJՍ)QVo>GV`3fc8IM/eYyYbrFHhMZT*U "#mkj ˼I"YJI`^ 2U@ 9F^-Ib-==#y*4j>!#Ӌ'TUTټ#L^<(\Z#VLeßƟ3Oy!HM]em LVj5I}ДFŞ}-B-*V`@5iQN¸O P[HQ5NF#FN^&TkҎ2R,$@gS|_ Jր]Q%*K|*6Q-pMJ;|LU C_|/\ /{^{Ka*8B^+UrZ] )(yfIތcHZ- ℐ"WD .8&ȣCϔ"j$r!F^F(hW#xu,@ؒbq.Pv8=5 '81@ZHb,0+wJeEn"-6yDMb1pq/ P0J.8Q8<3d*Q}wtpd` `}y!O:sxPW :[Mi^ "F Z! ɪAw EKü*(K!%7tf3(ۼIX5Of̓6xLȋ>|"BMdjb.dy %Fb^EQ>ײh9L)bË2gZNE$\V/:/@g/_M_<~LVJ1%@f801-A0{JH6c3cvV൑yiH x֚u`Vm->]F.L{TQ8a$sg AU-`xI*5RRqn^8I=,(/ӢpXaAyH"1&9?gn>bOĠtB_3|ªiu-sY4}LJ(ig,bHUA`eNl!)HsmRke@-H?¥@8KL(XA~l$x:܋/Ly?/K0-7!= ' ?c37œ sR2:,`L\j@;xҖ*EqVa XXz(˜`Gy >` L}b'xlL[9p~L Kt9gkճݘ *HM)(>"Jčgn+~ SɪR `1Սs_k4 [T((_qmcZPsRR:&Q:1Ł *CSrFx5EJ~lsXߨlL#O&(~ٿ0A|֞ %d &3aIkA[*|k%6 /1|cd`)8/unPm[u1JZۜ.f5ۑi)T"Fq0HJspaG7ءfu@Nε@%X}ڲ j309eQ [oS_+a9nۂJJ`%H2X()5Iq.`Jنɠ R#ǂb$*JO*IXD0 ?iT&]IX7a?N8W](c qk`TI%VcL@J`Uۘf9 WA˃2W+>i0Ȕ7l|*Q3t*I;! \gɯXZ2LRf98%U{}oԵ L_׿#|{YXu %D.J'#r<%3T/%i=Xu)*jLcz(*a,CcZfuᢚUi뱈zTotoG30t{7q:Gԗ3 =?C?DIv Hs1Jz7#ןc>Jal2,HJD%>?Kb IMuA\#!V]ILmM "I'JrrpGÞh!?}x'$%3V{ry/y_>OA1>6^awj9]孪1l ,;ťcx NyP  wyд2u>#~l 3+/}#V-\K8r1MVOi A4UPPnЭ43s+Go\|s1aCrtbo!v=ܓb4͎k7./d}xH,qQL_1 6 !>qš t3Ǔ2#.ƀ )<'nζ'S:9pom^dD"t)lɗɚc1R:m}-hЖvfOC|LJϫ3a}Ʈ%̮dԴMNjϥmY]lÅ9PB/fl=X[#7ҜZeXD&F}1Л#G=pZ[+>mW,~˸ Uc6{p:aE;zn;gT7lGgVd&Д5 =z^0ۅmcR_9jY0i{@5/6B#!]{Ë#{Xn1s;nՃY} N򁇛GL= ̛ @2$]7#-[,5w Iju6ׂ٦9h/ktX8 Xaq+T`=!c٪T \.e 6uG(Zg(t[4?u!9cu]Bw2<oyv58sgoR6tgku ȢV2ۈE_\F}i*}UwpfL/أ``WL ^UfzQp3fw7; M٠b<*=~7O!kAH6SHtjbG!ѝ(t/қ"{ׇTpG}+ $?EFakop98=_|r%b,q| txQ[ZPoO^lnG igf50eW2/#yti0I$Iop0ОMxўʑZn4kփ8/PK IPRGW& cpython-3.9.2rc1/Doc/c-api/capsule.rstUT&,`XKs6WVIpM9J$i&D.E$dwwaъvxEDPVm"[,Dg]vXŸWO&GBF8-mY^Eq(6Z:p%X2mŠ`,y91aϳ;Oνn!RYa=})t!\zwbSa5qVH?:GYuA3*rGAC<R '[i/dgޣV:%YVB/%ZJHFQ-Nq]@fZ> gӊ WP)BlՄ8 3p*i[m!+el-2to2}މ7w7v1?7V3ɫxEMs! ֙.sڄ衙!r/ ##E6 v"$i2AW'JlwnYH l(.^hv ]ܕ={Ӯ؞:REt5F1A^!<[g; FEk1{6H:0bt`6΀t0o ^:|?ZEq3Mo}>M23hG &G3[|Z 4L!8_F:/f%e= (q UAǨ,;W#K C܂sy)J_aE:pLC *xNt, 2̮)N%%o$gȓA;>7pvpR@C$ yƛ8T9 -dPzt.ѧ?+gT&%bBaLt.mrgpwl .r z o/315>e:>>cƈeϟ"n?Ro?eeusoێ廻1Beuч=Sfj$8Nk3C)1jV/1X(PAVHHŵP!1hj#=TJ4ޫC;;$et12F#zyX_=;t_zoϐ+m[̔Ja A2Hs{[]IWs lA!Y1`G$=-ټLjw&Fz=!έ kF ˧ĕ+w'(I͵A;#>ys 8Cx=z|5f'QdrF]3. Om$w'/+J}=9'c?/9$xϓ69۪Zv|\k^+ mdsKzڏGIû󾥫h00mxv }9C5BSxsQ/ Li"\N;QtelWПWab [@p$\O 6|"4.Oݧ6p󎮎fY/K\i>1fLQS"YKxXmZGvQ5z(-'H-_J'xWWɛxvx73/PK IPR6J# cpython-3.9.2rc1/Doc/c-api/cell.rstUT&,`UMo0 W=uAblXlmuرeV+K>ߏiS4e*cg/נ*xPhObX qEp[j] # DFx^`-z"d 0TRu}MiK*(22!:*;xp5NI#u];FQjKS)L$~N4|_* $majL65%FeIMKu;np5L<'iOC휏!hgm!JHJ=p St$6ü%ϩ8gn7)fWgقj#(C+O*n-g_82=O\lF9OmXwFozf"*lYr (';❲{`XÄ́}N/VPK IPR,O;l# cpython-3.9.2rc1/Doc/c-api/code.rstUT&,`Un1+Fv/\P@T6JS3kڑM|=3M٤3Qc{͛7㢀ԍoZ,@fEkbGo@\4]v4|fv} qm}-[(߾}@KK[)IjٳkXj%xU@5[Uz$%,- ٤4݋=%(ܬA|\K^j qB^ގdBRGlHء)iJf,uR:M ]>)Tfkt=$Cm1dhw|m62u.&t*C]WI4 \JXeO01&q!/ع/3|9`L% (@U1fhwGG)"?BDk?~ϱpkK 5"&e'"M}cn.0Ԋu.2;ڜ m\' b;S#k -8g6ɍ퇮c[e,#:bƑynf~op m鉬@dTACn(Q/s}nR& 8mG8T% &>k_=l)D\44Mq&plO$سܨ̉?I[ȇP\>X RSŽKc2ec gG̝AЙR6N&6&͕{UrfE3"0ʮNH|4IS7,Z~F4<~`!!HqI/&Z2yc8e4Ά~,U9.بlsq@şTFuHra0˔R9*rIPTan!TtGkW d2^LZYՖ"3\Kp]Ge/(l6V,7\}]3ʺ}9*q!r:@L[UB9?drVmV .U]<[cKq;&m:D$ dDB:=SwEv·KMك^[ɛӔ1ʻn]zH;ˌF ?ZZWXYlL'e8;CPB] 1˺kM[ε Z͖tU΋3.9;)Rڲ;=o0Ar^`De'7~4 Jm8QKfń4lXa)H>2=dBD$ feSoa쭩]`~MjMXgI`f扱l0J,XL8(KH-1^4+4~dv ۻj+Ӛl;p1/Wv1\0}} }=9O#l*r3oA(T.tX<߽~rea knOtK?sخ)s4eF`X<5%Duq}d+{_nܘߤ{6gyd:˒f:+E3GxxFN^t؅[~e$<9vԣe7wYgIM@&q c'Sf 5TI~14I"쌱J )O>hr)HØIC N xvZU"LP%!!#f utv Ŭ}%~|/$T<o$e - q+QK埅<ChX e:u+3޾;Y[Wt}7*>z-tbRg7B1їsz{M?xI=#ŔP(=j04QK6"O/g}.lY?{%_jQ'6ʎg?[óyFOJʩIjZZǼ%P- `66e' -bWob>NW,[y9׭'a28__Wtu-VΏ EG2R+2XE7?g _>tb**GzeɿPK IPRoO' cpython-3.9.2rc1/Doc/c-api/concrete.rstUT&,`}Uێ8 }W},|@P [HtYJr2[0 o:sˇi{a72X?drG(e|ћ'`!Si - Ōb4.x%io0%g@=6zNLA-LaHB,m fb8Gk+f 2*x%Q~Lmb:2/rLѮ<\{zl,0N;i$W?>qV438,Zp%SŞ9S6U |{ǮD#R2OT䩯 \;6]vJKŶ xN4& z"\б]6 W5y 槻R~ pO}FDc(%pp8?Z}OQt/ٗ=r8hWHŞ|F'h~^wo?~i(Tо*c3 Z&מpWB8sQN5^k/Ve=WǞ"%*x*c:d#O!n]\7&hoUߑ7,i?ɗgԅ`ޯ"%ѧd*[Ha7?4WЉ+n)'Z~K37F4ETs&(BS)ϵ7 a˵1M*|] :h7V0Ӣ <%livsAf"@Tց,!3eC ϥj5K,=(dq^i'7ؿxyR#>|6o~5+mV#u8YV6AdQɋŦ¢|ЊsfYOt4L~>t@͹49%2XP& X v%="2Oܽ'*qʝ/|^.O;v. PP]j)Şc~e~+-t#2uo [McQPp* xw}w;`l(WxqPH'#6K SYׯ>`-y{ykx)5o M-q%?3Ȼ{2TV*-5k5UFgg147 `+ n۸mJ1ڐD1 @u}VL}`iHQEei/9'{qRE ZػؑNKV{#DlX\}rW> tSrGY9L%9Yh|ؕGEvؙtd]u'[uf5ЈX-&0wzw ]:l"&0 f]d]RB+`٬q%2`[3yhe+xkj>1Q' ˦"**z#q1>y:fF/qI A'g}$Oї WEy:*Q4Jn+)z@xbhs,{,n5`&8f}/#K*Ak\931"'.F3rً=.$tR9 yDnja|[ MKІ=WM DZhb IAv[ G w3AJn56iqn2.OC9Qp,PN=$f^7>lGkhqbTOPK IPR/sX) cpython-3.9.2rc1/Doc/c-api/conversion.rstUT&,`Xr}W`I%9/UrTȩH<$[p,9ݍP=}=}1tyd6Suʻ zw9֔vKaS›WL&׭NF:\]@Tbmj4e*ˀ%ǻyt IA88Uf*RעafdIm}0*m,bLTɳBaIfa)mL67J²anKqUmk.DeͫnsnX?V/j@baݣ(\J.˃nxtV%a~Ea?YX쏿 u8ScjhL֭%d ˅ʭrptM6Y RhPʸJn? ]?}TeyTmj &3(2ȳɼ몺B7PkkI=%yJl76#}e-+uÇԨy)- & ެXmSDoqRy.=jX3f @V[<d$8<$STV-|HQ=X_w!P,I5 $CƷР@lĆu"HPW*kH )c[U&U[sLUù4j>ADo 2 J7X@@ݥ ,"'N@QUq,gAg7$KTr}M({B.ԙ/I\% ?/=W9ҺYYJ%!8B$. 2 l!#MB/T5ҨW6g։4"A'6>Y%z2%y(38XxhX9\CȺ- 0NSy}]iIz J)n4{4(gHԋ LJqnS ڎN4Vɇ`JwcFi h.,b@w+@R٣2`ƩZOM;@(RN$xvL[чG.GD_X~YDd%,59,.fDVTA 쒤0Mȕb8V476f\oX܉zj3hbۢ3:qthy,AJl@*=lޞ glMVގ">x,w}>1qa9Xި!9Qr||uQrVW5/$ZiԆzхH)#}q h)φY2it@?7 -Fg8xxt 4;,=YߋG2?‚M%>ك10y3) )S dĆa+7T@,LzQ8cb="q.qD!`ًS(GIP@o #+Kf4.i)j!E:$ۉL/DP]YR"?W^Gy,j;>Bg Vb4j(Fj)$wJ f9︧cN02V5=@{+4&"hXoҩEDtLD0U%T$5jh$(,dO1277 auԮDQs7}Gp?ZPc/*2#mm$f*ldWUn9r(GVcn\8@nB NKZJϓPK IPRG*' cpython-3.9.2rc1/Doc/c-api/datetime.rstUT&,`YS8~_ ^3p3K Ֆ2 vq~;i5#'kW}s@ynD?k3;0p2r 00Y `Og`bTE />Q8 & PRg0 š\sO0#f*@!p"jbf 4?ptsn~fb%i۳ G&(ٱ ;b9:PA~KmYż iĀkVj Iv:̘:)?7a[(gC"/xyp6gaß.ȺQdGb\4FW4`-5>0LrB[X/lȞP`qP1XjQfAptsV0\,ye3%cxDKB0Ok^[''xIZm:Q ' D'(ٖfO kt O&ςe3q3їı:G7y*D>U5EUPqx*:h5S)gYO4;l&CB ӺRIP@Į.PLvvM[MXveD;t'1Vo w皇JF.TuHedB;Ǡ}GHsg&ˠz^͠`,`])hIʿ 3cl{Jrn&q[l\/[H/fΉvn@uōN.ݣikS]s5>\x6e^J"}mUPXh%boKei>w[f\$:g]t'cjܕEQjBIkm7b%"MBQC؃Y~1UG^խq0#rvdtMƿզk=‚h-ˤmוI.𥇲? %-]L(6 0 EPQb;RVԃdA&S4]2k(a])Mɍ3 y&ᲫO Ҧvk4*-Tc]63B ֭XbvUFֆ3^(#5e~.&i*|RyaG1K>Ԥ;z'$j1d  " %|Bof{1j~ZkO>^kTI;!IQGd0,(w$GS.*#,H?!wT9(J;5 ݺ`Xoz /MߕQ);Xn/jE^Z%cX7ilJ^6nC|ʕup8X(lӳq(טh<~ծ|@$4Hobj75cf;f ې95"wTC=L*xQՔjz{MwW1ُ`/M^Ǖi=_83JHR~KD6k/L2 !7m/*t!U)c 8_ rQ= 3mv NEF_R\IQBp+rY$M/r".0DG'w8Vq[gALNEik }%}Ѭ5=CoFBg`: ȅ(^G,`?'3CDiF߆ (۹} 'bmWhmVc}~"ܿ T.H6k$E=-@t<5y#sRfMc8̚I5вͣ;4?)$ ;bd!NeF43RW XH)ݞ˄ĩ hBT8\#,!ph!nuB@ tL $6%#'ґCb KKGyM4sʔT;-eDq£{ЦR@:o ,s.e!B*P)%j6&\d?۱IS-ns.q( P洂8uNj(L|(z g9)U?|"v5مVW(ƶ4ߝ&Tt17Ιm`{$;ރcs)MYi71u:|A ֥$O[D1|FM~PZz$2.!c,$ϝ H;h+v݆0#ͤj /9j6oV"OgY"=;F#DFf⻁6ɔC0LRYUn|u `5Ofe4llQQ7Xnl"ATTּy9I`?@?ӭDyc'PK IPRg@() cpython-3.9.2rc1/Doc/c-api/exceptions.rstUT&,`=isȕ+H 3Tl#ˎj<ײ=f50(9$ek̩uU&~Gc:fQ:hRnNʬ˫h4aџd\h2őM&ʢ뼉dݪ:͋"*TmMD+IިʑFEj]mRQ[E2Su{MRQETH>I fO"/9Z`n9US>6FnQ<[g#XƃswAka{1-UH,*< &T'Jz/i hNR%$^GiFLD MP6ChQXY.)icC6/ 1S{ژU4ZI :4ƉjL$>6 vkЂ~FY}&W*?DIIIXVojPc3Kvm$kڒ}ӱigcf3рk#lYy <i‘i}]E}0tZUh,(>|Б{|H,کZΪ&N c"O(vaUΨ8{fD?j [a`ۼ9$GV* %9:FDyXA 4 Y>k+ z4B]Lٴǿ|9Rc6c`b{vyvqI6G'|aӸIEJ Kޡ4#4m6gL[64X'(ôBЃ@?Ug樂ZAttg GPd-cR3ldW2{XX-ԾEׁsx8hUUkU dt;H WIF@wI|^,hCu[NwͯҾa$SMN(^Ih\؃6ί7F!lG>=i`8u15C^%aCc؝`H Bc/:|AR[ M~z> 27)Ğ o)tǺ0怎e 7XoPb4N N5BG1>%/e)і!MxSF m&-$k9~2/^G^/tfzF!V,QSNdӸݓ>zݳRZzEi2(bu‰Qt.|I_eC<l܀8JZ;9:'IR5fr#B+0\5K2K@fIֳX J~AQkwdRs1 ?>'Z$ "|&BZ{FKZ+x2SavO_̝aD? wDBCGLM=G! U t'QL D)C1$au_(1O2i)XnyL,ob7{FIf[\"_UҴ K%h[ 83@ݷf3[?:%XF頉GfY!zg:Ù'8 Vbat_q9mұ|Ws@uNnӓETe@r}v&Й˨q5A&Ff>H"a+ Nb PW'ԷBv)ClaTkt23c';Z^SU p0j\R:i?qHb5(ǿikrR^d_X#1)sSe3񲇲Fo'7/әc\-vݞHݶlW7˞H6e?U1K؆P"GOhNt!cgO2%6&C O2 $  p}j+b]9E#ZZ`f{FL b3RFы3KV;̥ @ etkPAqhMBMdp?m;}T\*0x$&38V99#WٷFvb٪f1ȳMaf9Zjtc[_0~]Wէ*B`zQ\fd~GFېx[Ci+ 9>,#` u$ft\HFS{kV 1~ Ʌ.4h f@TA?&< ) [1 S: J!h Y,^NְKTY<6檲b&ۑYQ{.)ɜU}?A'TYp!Yd̟UU@! ȑ~ץzP3RYi޺h~8*lAfu2ް-u̙"O~}:69%UpS2V>E3S b^oKR: Wnv[NSk0b 5Z6Oxc-̖Zhޖޑ*ܬ5\n"狅p_^s>UL$+'GrMfHӊ-;z{+Ks)dV{a NM v~$NY:r*Ø0[v_靴tiQ9& omB.[κ71БN$25vS|oZi W'?ɏ#qe\^FLtk*q858 ُ3/eTgb.20bdRּ%>! c Ef)//^&* =YD^_;ܩ GLh1fI^mnKV5},'sc %E]%zC^7)Ҭe%ABkͤbDm!A!J8 ;&lrZd]uw& ui+CEjrݼ*7ja"LIF@ж4V(Ggw5E8x#00Ĥ7X!KA NotË \iy Kg"h NxP_yysʽ*aLx{B/q=^w k9 De*0"{=Z&èAPw?c29h# !I+ ӀU 8J7L*",0nd$oj@,!{U!!wzB"0P-HolM=m )~t,t46zo /_Zz{:^-)g?+0m+2| = ,*Df?vhO+a.zq/%hv5ْ lu &{2!q͊ɎpQٗzo46,󙭋'nZ(ia< 6$j;NU:$mfE1Z(' x{]k&kXJHuE℅DYpk' jQXNSJhab_A)8w֚?SVӧVB`zr($W7,]2LWujP8fV'_q{M{XqǨ-o_#b:JU&ӼN7+Vnw&82)2{)<ڔ/{41-S8Foa]z3R1lV,垰6бe^͘YY00,DſqVecZ 3U$[jF䱉&7 4+`U8ɝ6{vDtΈ!r 8n:ȭ"aƊ5=/byŖ9M^ֲˆ*EmYS vع'""ޥp>Ç{ Q0%UF]}k!:j)O%Kiġx|F̦5c"Ń\s1)wbݗ ~'t+:v,&:L3`iܤ|Z karCsoZ '|esn y؄nM1e!&)^A{Ps챟?v[H{ fro>?a3˘nU˟SsrWcsZb X ^v ɆM)g/ v'Lتy%Fm^^xvQ%5ba_tbo=B8M#KwK֥g+GlXWn֑P aU› Iǹƈ$1W-+/p:|@y);6/ltU]23dq"wNwTjl|ɔ숲98FdX} *:0[P\ku. !J(WBn^F A$uM2\kQ;|MZc4M wlbLfꛛn sƉ'iV/^R{r5(hr鹰~O|~Q2sDJ#{JBR){9`$-9zc*E-(#Mƒe6օ?OtsDv`yHE_IEJ`6e*y :H"[3n e[ /'Q LO[`nІb3-uZ~nV y,*1 2W_0)uėA`q^6~R̩!l{Z|>[Qp݊{w.jNWJ \.GCp 6o 3űT: Ip;v;qG0`5Cwj622U#Gel[t)Y 9SM>f&n8D[@gI `$5W> x8ȳXj}pϨ:q+ >v܏P}mR&dEEӵޚi\ I7ԍvM={ɪ0~]1x==Iod8ZAf%W}9ؽ&AkhB&w"~1κ+ؤ ނD^Q%7%gdHdmNbK{9c]k ,3]l ݽX4X"!)Ysq~ Pt`D iMUJB7Kw Fm 9k*aO'qY=Q @:risBfk= N;@ 7jWI5v)E޹fSK7.2jWEts/4ʢLۉ \"cvs1K~CÅlp$C DiHB$HhB ^0t0KG4Zq1Xޠ ژl4r5b_l9ڔa˔-륜 S/=\ +y};F 9]ݢ̟[:a-aln81Av TO1Æ?H@2}{;Dчa^_y~1s4łc=<сy2Nyå2S+9ނʯjOq&Z:sؚD7ex^pk}aYr.Rۨo41SqyZ`Ъws]}<!/@da\"G x,ߠ7gE2g]NQ8PHX GFz{qBrŭax{^ߕQ]}Oꁦᳺ}ω>gH ?$IJ]$z~)=`ЅevnؽLf8^/'"CF_:?{>͇Nc? jC4k#{(89:fP8=yպ&6y=)dl\)yt5h.Z[o]JbvT*U#g Zۧ']";T{`N6#t$M[ac:B=[oRB6Gn9`H߮C;t*_W'o1FC\3?Rw tKntWܳ7ErTc:.MQ$py>|?}/nuK+VJ\R8nK Eu F97Rp#c}ﶭ-H)Ɵ $7| `R1RKuwH|ŭ+5vOP#E H! -/ 4NS(7_=D4{NV_#A8~Lf©G&D:e7N (SHDHU/õR'a/uAsª^CWx#HZש'$RAA*6osJz,wA!G{D/CpJae,߷[ k)1bd<;ZZ5#ʧcem_Jqt>A3fbh?,eu+iFb#ȸmj}%LR\Z8 TGmw3pX䋩 ~)?Ȳ\,r2ޛ$iݚ:*QTSNTؒh\UwoIz3i%? Q^+c:!sߦ?z(H|,/nqO?=|RWM->T9ZKTһa"s%bnćKnz !!H20D@0:D`; cE_^RRdYQu?h9RU 8ľxh v{Cqϙ;8A&v p|xp!vݾ ;~k43Xkg#bh 8}:pL=5@p4{AЀcAT\Z8޽QGz{ 8&wa Z x`  .C_v@<8wAp,E cy^aMq  8&:, AKn #Bp,%;rc / p,wrOqG pcA-#xp vA}9M_vJ p,S:pL{t!8;g^uq$M"|G=Ap,u@A2><ЀA| ^G܁xp _ҁx`!Apl9op!lу?X,8Ľ(|syԻ[V1W0 L&ӄS;һt L\\o^>4O?ݛ': {aAvtvw2皮ZgwO~Dz4!G&D XwB̩n}e/Jߤwhg(ⴧ@@`q܎|Z̎,:3'wWFvbOΨWS➁#<~q!4~'THBvv;:+J ^:?Ó'<7&UW3q-o.el?η;6vܨ5_N5DX5o>^nGo/su73tnj]GvCF(у4=`2з|\n yse㷊>qBi+ >c7at%?]͛/ bkx׈|y) q]#_>w8̞h*v8̞ ¼kq` 8XYGS;wLǁSAz5809]#<:0U`z<.}C7ʧPK IPR M# cpython-3.9.2rc1/Doc/c-api/file.rstUT&,`WM6 rɌУK 'v`TtUR=]-U,Eg]DٔxhM_ln$f/#DJfK!R ƚABS/qVVNw[񚮋yLoM#[qLӉ)h%^'AұV{^\UMOۻoZiֻ!JW7;/ξ|ep*Z첬M58U?^Ͼ) #^e{w}ސ9nX4v/)D=+$Rm(eB4Qn7m vrF̥r@6@JQ{+^S GKnFI4N-Ҥ&WE6aCb$1 EDRFMSA:N ]~nQ[uâU[؁h:Ea/O`'t7_^@fzzJOc&mMnf#x Dq#C^,T1"BU'҂Z*r}O1g͞\ł5оӢۺ(RKVYyQ.|PU:)2Q1l>o7&{8yKo(Kץ(8XN`laƖԍpcURB?r 2\8` Z_U| C 9w' JGzAM쒪?)}TS鍛&UbX*D&z PjZe+M24M~~s= j?,._oD1&̧>lk :Bq2 RP@y!_Ub[ _#NS^ PD٢VIκ:Ut(?|Dxid3BЏ&PdE0铹 w\b9&dj n^\v×0:EX^Ϙobz]7ox58N$f":y]הnľ$\ݪ(<2@䉸E^P#AŞ'$U=EJ((,Q]CGD'.Đz^3 = T.iL|قuNM{4}O1wA/6DC3D3i,blB#f(#kЙr0lэaЊ:?] sH;B}OEQ;U=c)gɹ@v"B>!xvL+Z4Hܤ{9"hS8sP.&ݴXHj68t>`;%w&s^Q\;X"L`ckMN70'NJKBP8Ik}voQXF(`ͳCN< A,32ؕf 3]B^m3Txb+57,/WxW!i`hK)mjhZJ7Dڦ9Fn&dsS|4S^2O@rG0ν̺{ʖLv ; #1jzĞ~Dڦ{hv醲 3a|;ԉxht>ϐmj3O!}7/W˓{v̟#q[O1ARFC%\phEN0OKxDH}hdJ߼1V}Oi}0EHWVL=z֥QH,Л?:{`mK+-T=6c]QGᑾ;Y Mm"X@|t=Y6%|Gz7z"9rb}v Ÿ^e7BLn$ U$_PK IPR:J3 $ cpython-3.9.2rc1/Doc/c-api/float.rstUT&,`Un0+Vpe- 8 M)bC*Iq3%\Eޛy34Z.je$M!a ]$t+nn+ H]'ċTBKI3nn]$p_K0dvw`Ek;`kd6#RDsZK<9Gg6u4` s.+w[ 4hğՂ?= f;IA$톶Ň[aԊ9΅(A/OmG1oB y9y^9sk8X2E)nd b8cX&w᧺23u:KfUK^5 pDlNP,a` \R'H-KhSDf-OTXVYPTP V uuq){kD$mN%ΗY~usLH.+}n4eQ?>q>MPK IPR/H ' cpython-3.9.2rc1/Doc/c-api/function.rstUT&,`VQo6~ׯF"`Td[1ͲE-Z:(#8#El 6`;,a#E?C]e Uk/3˿n^Kg\*I|!xn (n" wn\o(,l= O<"{pv(@簁G` (_ ."d ^ 'Z>#1kxH i:ہt@BY煮 *ZѮ,n-:ށ' OxƗae4mY[Ѷh) tʤUը=('7Xs R:5P^䊖gAp2l(8fNZ-SG m'TNA'n$Ů cϓ<94y*yfuk$ƶ˞! 6 I[ \mE\"taІۆu_q^ᔉuhpQv[\8\O'"svFV0m_<M6QW/B: yl.w_0Gh6_S8_4/IRIt+WRù vn^\O8TꈎS9M+a1n ~]ו|L^bhU4ZFʶ~! *RPK IPRaR( cpython-3.9.2rc1/Doc/c-api/gcsupport.rstUT&,`Y[o7~_AežlUt׹cJ}Jb2CjIi 9IAc85Css!b7 LYbκyz^emR\K]7ҭFK[U, ?Yvӆ5ϼ :uxiJQDumumW^M%]Z9e x@O JvoXtJ|WX6 [2^ֲVBJ+  bpHfDk! 7 +Л~xşOZT;wu}P B:<],[Q8% $SŬ ϖܴh;2&źkR5ǝuCMQ5Yly.7^]ś%E7AzWZ g NGj) Rt ɻCH rUA-m3"T !̄3c)/R]bhF,bObx uzi*QJin  {e4R VU>$kK k `'"y@T l>s ޵݈|@!7S±nLDanA}?Br:hAqY$AeUT ~2RP n^M3|:C։ rade7!)bՄ!0qx$_"ړQރP㩖`1B Yb]o BSxo];CO8T&1`ryzXK]5ЀfÚ9f9:oO[G<=KOPASYafjxqlhD@,G k :TKqNd,(kWbV `H6J ltq5w׾֊LT5^HVkE_5OCG2 SXWahKRjhL)Nowcg/r2%BlNX6A&I}^`ߕ LV\-\v(k<Ӆ@3eE$rXp?Obo\EԵd% ?^:.e,u-|({^G\+<~](#N* bj:K,/\&{ujZ[8|N6LyɈazϩűɓ;aG#1̀I 0DJ" ʁ+ 0 O(:v` !3% vJxMS?B=4%6wIWX(%Q&RѨII2UW1x78 :yT "dt{gXœ(%AGtt6CKܾUdJzAI~ ]ij! UYw!] dZE /2vZe1zCnI@M+#oiDǨ M;RvJH lI5xZ4-Q,`(gHo2~[XݐklHx`8+yħS7.߿zMEp7Ft L}O,_Cj<PK IPRg" cpython-3.9.2rc1/Doc/c-api/gen.rstUT&,`n0 z ޶; KeC-EflmItRHO 4ObARYEFK1W+z ߆'`©6C1 'fPcַao<+hI:24%pjA'xhu$< "zӳb' :Q3Qg*ydsȖD? R,u<]ŽեC3hB=0q B3T`0Z_ l!^hcE@f$Gy8|wZk\7iN;k[}~4nS.ް|<䟾* %uR/$w'/U`| aoR*.HX2}ȧ m˂,ix.K4<;_B,tbM]yEHn>3׵D&$1mhEh䁞[nxkBUu9%$jYMcӫG6Qia M?j[kں[*4-k5#hw9[Aƃ6Ж ރ,rFLWKl&ְE [ gr |>&p򁩒J0jl!6L8g_cv"鶊xa3) #;`%Kc~ ZSsjW Ԗ9&=l|=Ҧogi}d3l ]{baf^3LwIYi#YqC6Nwc4Goᶵ-ɖ(Gnݻ:BVVr_ξ2^ +-dMl >MKhve;x)hsSa$.vJACn)ɂ[W_Yh Plmm P2HXaD@\AvQ.y@Gy_O@Bjir._q; l #e $/ol@#6 {z_y‹?60U \Ġʇkcs3̼5JA?@CGh[D?ӺnwGw leһǙ.p pdsL懈qjL;b;IɈt=׽F*C=..IF6a <}*j(G'G<ܮPjHPm`Md̼5g&/xސw/5?)7~EZt=7M“J'yx/|jnHQ<ےXN fZ c䫙ycFB*(iNsklu'bMp"T }MCg*3n gX83vmEdjtIMGA[CP],YeΑ($܎~GPtM ݡakμF6ΗqA c0LR핱S~-&-{NM9mvYi'{jbHHN.16@S3h"p;R)#щ{_p.= mz|Z*sƖn3_l3~;䡤̤nsɽ풎Eh"2O%/iJwN'H)ь/2A2i8*ݎzм)6v"nv}W_sLy|ݹ-cVH޹##g*U7mm [8/y0z>D>ey h9lm ݲ,tK4QN|ᳶ܆-wD\q 5OHU|!r-,$:/!<2S"G(w-HŁS͈SDMm^ fk9r?;?4up_U{fA*ݵJ?XA'~ 7I$}RDwte#*G6^'XuDzUr5Z$*}>:oSSDgk*vaZU[[o*<.x+iwBs % &(_on`[w2+ɹ_\JRx]=*[2V*>M䆌?$rݤ>78žy.wn15X#tgz@_tKV'zm$ɩa0T:#]\ƕlM|##q&{ y?!GWۛ.JSӋ$w P?N9AF=o] [K}֪^e8"}iT:U|xZ)ȋi>吃t!TSx9 vE^;̮݁=[Q˙gra?hFƙ{ÿÔ2NkHp>$O>'nHxA pĥ@a/h:X]LF&Cs$:{_йt:-PK IPRrwIx$ cpython-3.9.2rc1/Doc/c-api/index.rstUT&,`P1n0 Ӹ@GoE {"t¢ nߗv`[EywdU)@{ڹ?xit#c^=T -0&d-ɱ` ๅnP \cg[Hȅ2Cc,1{ `BNk>/-待F Z,A{ 28аtc=G1 hF엳umnV^ S_9WU& ֵ5< VɕAQ/[K\s)2Roqq#|ST|AP7bt9$LYn+'ߴ YyO PK IPRfJ# cpython-3.9.2rc1/Doc/c-api/init.rstUT&,`}iwVw %6E'v*%2rXr%>"D$$YS3}ltLb{}NU\h>6˳*_*+h|৓e{yݬ4N'9N(^":-Zy*:/EK+<ɜ>z6sm>7"c}.2:i:]$YdITt~9־!E!nSjtFxNT\)wQy=dՊޓ~[ZXh>r]h>.nW=>6Xܘ[z`#D׻!,F Sj]}]nEYݞmi nj!eY%9k=:^(/һz]Q|h/ru鼢u4GժXMI'~W|}]er]m.yzzgnϒ̯}awI+@2ߧC|{iY$vB6"MZJRG ̪Y1-KZՋ1|}_`Pk!"kf n.i)87{yw7xsq~E32ez]oA6FK8pxKpi=@&.+z,Ȏop)6kfȧ ut4m,̢MI؈W7}kd.(~wvŋY'䔍U.m.SE9LAqK},];0鼄xXӤ[!2}Hs3INxޞ|'q37li,/d! f =3/mGYJS[t.MsK`3 0̈[<'SPDjKRYX$&@dCcbvfj*`z()RCX@?xw(4` Z7o/o>]eL"Mܚc9"i%@ӌhT05\./ m<@ >6Kd 8I=MuW2π5\Q4/$ <~GJ eҏ^NO~|\k="Vrtd"|GSF-Q&ooQ06> [镭/z^|Vbm)}KJNhZ]^*,*0;Inp(}꾞95}p.\nV0_84E0;l?gcjsbKM'1 %+ ( DnZ[qc{N m=k0Ig稫6|&(j02"[Y ?P +&L=(Q!>:׌C .MG^#_sa1.-de_*ٯrI'z|)5g Ab7o.ߜY; ͇lk`.eH0%iPM֠YkFe~AjE ִb|œ1TeFGu4ynfET.O-X1 " ҇( 'a /ͮUQ8{+&7Zx!L^ T΀Zlv[fjkTeAADP`ʐ7I.33x8f dB#__@%X# P&СkhCe8ꚃ<.=^toPu!s;KzS2pT)2cX]׆F#؎)BEERCKV..7f(ݓٸEnlB :|XP^,,E918Jvgx3쮌=Cx긱oD{Br丮tXnUPeJ@6TH%` -l{A0ί佇/}<^rF<J41sUY(KIw%)r-0B`8>g2Ę΃LFF=:ݤ 5$]ƒ94$T+#2-:#-07J5mǞAp`4$U2PxSe]WуeLL`/@ ҏAˏVeJ؄oT:<+1Vsm(ҪjH#] ߈g(Wum ~d۴'j5mF*+[B!ԓyFu `2 9. nMIkrW9eD[-+p%>AyZѣG|}J>T89wC\&"UJ}F9rE   de ` ,ex]ޯ&[b]Fc LSa-o IjSh'pC=X5A4$R -5V E&1dl>,O-J˫41Qjc@F)_zj\H0@9p\OWsyaش5-xџ}O {cbwqz+߼,"Cr(H foӏu0 ΰ|g@\ F#@\Hl #}1K:@-"X`Έ2QRە"tHaG(˞$j&8p M!Mt#[Mњ]Ұ5v-kx02~LFBکhXuS?ȿM`Z6~LG>wNJ w,r6E(ԅ[ ?$aN:u!w-cH wa x'2!@1'(HU #PW%ǰ!aJ*Ar$nDWtUJh6A0R$a#5 Ut|*34?hS/`UV4OK򏃁 /B쭌 ;TDh%!&Epp3M&~9l3,P\@mӏ8\Re9=@,LnlYEX_/f=n_bD~mNO6$όf&Fx᯦o1'HeI>碱;#tij2:!*rx'W#nHLOi\&֓.@q78},4Pɔe=uدN"rls$L_4OP-c2'Cӊ& L|XC~U!_iB ?޺l[7}./AX|l:HK ~yʏ㲭|z o!YB늳RB^q~OR;8U2ͥmPS+>%ӴcOIR7œ+m`!W?pߟ5> ݺ_hf+%&?FmJ-獞>5z@MFtǬ‰Dxϣ@?~ේW'l|όsx R[LB +8֦&vFl8iiYČIjux?mI./4ltN&E,nG+" j)HI?i N#WFUrE&ѨyK0"O].TnL';1IqgIpĥ)Gm0Qg!}8s@ВL ics;LBݮC4R{ exlfAKfҴuzT%㑵xa4nBM<ګ%+JKA2LPǞtyafFیsV %dUġ<+3H s3|):wEy81Q’B78.-UQmΉIR#1O*{gNϞϟFO?Ig_<;<ٿ?{~-z($:rh˟m<`^Fj"8/j xsމ*+_|T,X̣ipw⁽ ؤiE(sLhÞI !GQ#ȯӏ~ - -N x(ˇ,,mۿ/FۦicmWz^՘8!5O|Hi}?~~"Ly |:!yK5L Jw{cSyO p؍~3ܽ)FzMGYơZ+bjd~V&9Ox:ȋ?_^/b*^5a=}|[ep`Bו[3-}P%$2:=[伄Ղu?( xN~=֛Q5dOa:\ [Tru^bY)ŷtMTOU.F@F3"qmI +{e=E|`Ie[7 \`vϹ\M6rމDV洳y?ˏ|{vx *ҵgƛ(bV`&16lr}/>H#EbN$eM5g+5'pT@ F p$ 3DOPNly 1|^P;@M9f\to2%= L&3ބA׿l.M^ lX S6ۖ 6i֬6z)~#wd\lx)dŐ|xqLG>ƦlF1e#[[LXp *_EI{q"=0kiv UDL᪨7q9 gPpOe]><# JhdIA\.:vH`TA)G38o_i5ˢ%]Q|0 舋1M@f9汄*]e$❁mDϒs )p'x?A1Z;U {9~ )FzRz} > -b̹FbB\b aĽ(E⚋=2hʺ4zQw0>+ ]]zLfm\t }l48ҀMaKiJ"_h!±B˱49;؅DњDZK`~e9m+Tsw0  7(B>!v}=x>Җ%'PjMK֕wO- lMlۦ Dq2qD5n eh>^)t2^~gCvCBK0=\aL16#DI]x{JAc{N 3Ð=Q$ZeerDł/8{ ­ BcyrĝKG%xf^ucN(sWFdCP-cPУuC<%]؆>1>T%5dkAۃCee'( I5p4gѱm@҈ ]BrFbᱧVQa"7Td v汦!%Жm. .dQJx)ɗcX]n"ZH[:8ɑꟌiIdڢJ42O)"ʐkhNU%z ?+0 y%ZF0(=L2q[z1Qu)5̵73K1Uԥ*a8k$t/L1F-ɉDіUM(aSfdiZ/FA8xwN8jx 1%׬~fg=gDyLu=W #QAv8tįWk2kڬLOMMwX)nסT)OߥT836|-ԛ(5Pz&}:ψ2NDg)WvO<rio)l C<x:)"\QSw'|Yp2_Q]G[[JE&jZ5O0^O/"'{*58p&2bEI'Ŏ* d1[ Pbػ7h<]yW׷s0:]vPӤM䴵~@fK.D2!ʤ'-E#assF킨y%;I1&~+!6;'O/ӛ4FS.֏_)s~c 56Fd٣_5z65d-]L\uh_KMKRFA]jM Nxc3kƜbDl> GMzCp=HPf?YAZh2ؓs*!YxtK5o%Q4|eF3Œ%,7 ;XDRL\-d%VW>oȽ+, X`qSג QPڈ!:muQyAtV{µ`oɩmIcNS!ƷB٭4@R 0h4sWI]~%W[ 1},8c}wwyIe~(p,:xRr)P㎜+riϦgv9:;8!ҰV=nGEt/@ъ> xFOE[I[2Bp˜1~Czڹy>¾ZJ՝=P+1f#^(} w:{fA{֠i7/+ %'{a{R$21|GۼT\m_yfaU& !ס׺CWmxVyWz ֍Vuv'@gLfEK;ڨIz2!]ZaY%L؍D;EEc9t!JP8$.(0Vq(a^m/N3u3F#K vH mgՑ3HɏE2d܎.sJE_r4՜g2s}I!T,h!l"E˅BЯq%B-u#@[?@aglJ)ҥxqFdi QЋr Cx;D}9ld$[6#XH&cbQy6'MTpZm#:'3!)k]In#ޘsFР#@@?+R c#nՂҗ#OYg.|"ÓYom PS㮑@Py*Ұ bit?ejMxGj4]8aԊe~K0q3n4!~l[Ilb$Ԁm%iV_`?ءHUu>Qh|B!j+|2>=tQ[/Sq4=0\%Ǩt.S6Ol:C(M͓uƭR2@VX':~( ~@˻ eGtu͡@CaPXDnEdr&Ga )crZ'{hmx@9cWNSꁪ-0Í4()P N׽T|ZZJOL=!x2M(B;zR+HuWU#qwم@D}-·if 9E{pۢ>j)oe`!'xٔ '8ڦY' YE^'mZ>Ixc|9;Y,ϑCE)3wgP \qh>(T۫'p7Wȥ47L qv( 9TL*Yڜ"[Vrk Yp+9Xz8e<.> MQ"яD61/A+dԆŸ*`T²@8*:@bzr=, lA G 7i~7<շ3Ek}N*4.ĪE]R2yL)@J"7 ,dC*Y36_? 6x o^]_ `LP1>xEyv [plWC_4y4:s] vktq؝r]]R&J37 SDn.5*Hd+qPFxŷ#9xlSu$XnƋE!=#O#wG]Q$D]sLz}"Hqw€v "{BGWs$ 6Z1dD)\HE x^%@-d6X` qCqPMl. c ]T205~ v oQCydiKfuaF4]]4L-}:[(cq,XZ ;>l*i{mlNUM5Mco 7"#@FPk(8#ipMn"L;7d}tb-LQW}%YtZ3kBO$WKwĸlc kj!shW0ul j8G\9- E#(|Q0 ݶ$y4&e1}.iO~1)yuO`,J3Guq"Y27O[9LF<lʌdq1~]*`zұ>1DgMdMZBbT{VdAG6 [P}I=2]0umr} odnl DQ?zf$hKRx>%{ʤڂ2:njd٬\\ݱ邤XKW*"Lփ#TJDgDKݰ<ϫ( 9^jr7ifLQYlᯙ0_ D 39P;qcD[eO/5耮W듽a}Wn6q`Bݤ冤;lI,,Yu7>g%XkTKQ9P@VVpfn(:ӣR l+zߥaÉ?H Mq+ğνzpxQ7 ;prrbc &M]$,=2:pzND6 >:X@g08!II`Wng_&q`s77g5QNR6-Wh'F]rأ+IG1qvmQti73@\iMK΁h(ϩAR&c:W%NeN[4iDȌEUJF8l\뤶ĨqXLiл:nŽ]-pWi˰֭6 Zמ'.v˼Յo鯍Zo;RNIBi4=k8]/+^O 8Nй&5:,Wv@{ ±O̽/l5>gֹܶ] 'bF?w~m?9n-r=1Wq\Tɇ b$ 7zmda;΀:#u)ՍCu \nL^r"gڟci*Aj3m3Rbʝ I^{dM˂ : Q# e*r62:S0~Lk[GcKrv4()# c%Syn-$ׂ=7 F^*AZքx?%yml[\wJSN1U>F$lz 2hW╉l,$54RlZ&k~9dѠZ.%nO 7Eԇ1 #pI.h&##MV7klbzD|XP Xx`Tv‹A~VLҟصuoxYAQ h0Wϭr.[ ڵ ffD iF6@Gw'lkC3W%&Hi!:kbRyw$ť16T_afyوfD{gPut74#};Ԇ}Csp<;vF/k)1J#yXMJq:V2j6C]e43P0 0pMƾl/) ?npQǖIRb=ُ$ߟw{$o9/ á4chSaB4>8j{H+k,$Xa M,:W9;,[MF3eLg?i-4G4Nd@@qIW=o1K%9JlpcrEY/NLZd74!Ĭ"ن%_AW=u-IAny'l Kʞ%<4y0m)<ncdPG蠡%K8.*|݆1xuCi;΋C'yDppǯ?ӼY$r&]ivGf(89=7R 2=("=&Q,:Pco4=2q.ToQ3׌V}If:M0wI.3[| Ƭ'^bfLwd@4{L'b0Yđݜwq_a79qx힬kip[} 2 ?"?&J~XzQ  1sШ*8((dt eOuj4ϤHqH jS|G>Ds UFgDhy2|? < e]M|us^g"`ᆃ5莤Y{pb/Gvɻ➷ Ȯ2nH/`kOU#:^Їp)/ Y_DM+Nݝݲ "Fߥq":Jb oqKzZY A_m+X @ <0IH]f+ SGlYIhgȣp Rz_\Bt]C! (yJLiI4Q5涚i?![XmƎdSԆOE8P XC$p m l>6jplW5D,1r[Pe&spWmd͓[QieXŁLH3a"O5mdw`G<B*F%j{/o.^"2LRY0En7 xq0!œP0O abDJmO#jU6M'`.<,,,F{,YȬv'ɤA.4mfY9渥ˢnʎ!1XHQ>ˁ_/64A.ֱFvKt\SVܘ&4B DR(Y._Ya<@'^[" {Tz@'.{$Ryט\R?suA(_A )" Y .EHzOhQiWGk L9l18t<ӆblQ6w6Jέ'< JXi?u 5chfH7:`#2#xEbSп?ꢄtӗMUl&զ%"Ɠq]qr9MTi)Φg(zYMc; sŧ IiqLQ:߼Im#xٝcvnf`7M=dϊ"o߼z?kܻYOys^@^zw>Z{s*uќ“t9Q.e1оaG;kݬ.ӬnպWtAD=TY*/Te(I-LQeK=`l @ûٞ*],/Z $U(s5.lo^g+_ݼ\o2ow ^5#x_)Q{5':niDUk8΋QL%dqu)iL93uЫj~Z"H-7^ӛ$z{q!{.q<ťOQ?HdBA9 ?dY!S~x9fivY`Ẃ 3Sމ=l5z]J);ʏpCIa1Jۤ$8A2 l( j?Kߒbf%ZQ;sDWd6:oD2] ǪL&,JB8HBPk@C@ ((Nkt<Մv%$}?1hI>Ն">)蛥1,yI1G#/ 1SKX|w}4^JA$CzZ{J͖: <Ԟ7;ek q9Us@MɌAcP4[  %8{M.z,$R{W$VxT.vmN6E&mK,J =JP8.zȇ@taܦ_-0; :5.׋#F쮥YTv)kH Xd*^m'S":,Q⡤dޑ)y+2Ex f`p `K^ZlQZ^ňFSd-nm-ŷ+ٙ`/.CRNyUʙbDM!~4 j}U9ŲJ31i'9HHѝ4a>QߦO5 ڎ2 x ?t 7* Fq #, I1zxl.W s5xKfB;΀-)z;C /#Yzz7=KyHOG̘k~Cwd6@.Nӻ_nYhۻ_1%XG4Җo"f# %lVz#%Pv1r4@j%aA|B 3Bx5 k>aM^[o/gm|u}9$9i CXiXM,TL %OuB ~ ϩGf\'o%  h6~VgeW`k?Cfez0F%`L lmY饲mT k~'ݳ-BDFk?}  l^]>zudT3늘S;q6iQ ivpGp=ωt X΍s+)n{,6a .xƲ‚T]8:*7$|ZNF"S=fEowlcx7jw"~-X :c}uTd9k7Y"H}VM` 5pF,38j:m%u2fD3Y {6k/ 56LQ @Rr d$fcZ a͓/k{o uG~yáo_)2bj(;Q&N)NVlwl׳TJ[;1Zdeg^ױ@k_HJoƫ.XLd9% +`A1%ѭtY1{=\4eaTMM{|W $Xd#F. M"n^TE>^+aA+^Gd lꈡ4]aH$a$H0+GWm 1|F‚>>uhP(dK "{Z֢ъ֫vw#շꥼq6 x$9\)]ASN Ɏ>7rgh! i'7 ÷Ї c *UK2A ecLe_^\Q9-c[@\_#p[Ҭj!2E\bQHKf۞NP@c Ia࠭z뮵9j@6!ձlU0KCfykGIrk5Q8aWڻk{QVEy;__X=n&RyG[Hqk*БGxX--Uy ȣ^S@rMpz69>_x+O?j%Lݾe) 5T^輠 *Kа-و'?l`-)Czqxn$xdSn"j!;.$ EXNMQL1@Ş1uoT3#YQ!vWZǻmȒ}Cpbrϲ%0G1bӶ%0r%rr8rKpljp̉#Iآb5D4=pӴJI-GD  QPB29R+9CȂafT/vH11OĦ vMa#$)a˪mBvpTl_$IXדSD{ ,!lBW3/n IWq|˟Ϯ_:601yL\t\4~Y0x̲~ 5Ev?͊%be s_V"ONNOa<5rpD=W6R*PϿw7S0Y꽰A (P-w&jc"YcdDztx+'Mӕ7 4^rrT\q"-qBeH(mbT9?GwDxS`d׶ZrE8!3m^f]s6L_ի_/"ԦQfئ`z+FL fQ ߂KTRc y \_]_ZOp <: Вbªcci (FjY>fء xSm[̻d/@_^)h;AuqR4Q/`^6AU أc*Ŧȍ[qWl4x.˱c|Jߓ >~ Nv*c1[Hn 2 CU DT9A쭹4 %-` iBI&Ype2"'Pj}klZ*Du`pL`w1撚Њ+݃.K)%yZHE8=-jv-F,rWFr_av"SU^+XE1jXEGt9 9)ofd 05I'󞈪?""B2m0ԹW;dMV+GWi 6x QH⣖(/[^rU,rlRO+[vtG▝O2L=󋳫>\ZWo/>n*r?ah hq)pxd_4hؾzI;Ś:6-^kJ?ś0*(m :%%y S!N1=pL"r@w:. 6P3&/J FwnЂÅ ;OJW9 8A!㣸>J$Y-hboQzW䭧!GG,dSlM3t:v1p6ZsT 7,C:b@+D@8oA 0ڞ XO_1']Pk"Ao=7<бBZ)3>yd'jm"=|tGqRr)G˄%괹T9sPiAB/(gx[\ Nۣ5nJk{5BlT UNPYdig: aؘa+Iؾp%QMT^DU}*t 0+pRv6l ?4yP%~!.G+o ⼑wAN |^'|U"dI*Ѵ iΔ_F< \|Ur|C|wqWƄ>z5?\|sl B=8T#WxhPegdI}@x.lU8.Ktɴsv#9+F& }?pM:3|[?6|cǝ0:u8m,L19Orb0P7Nq: _jv&w/j\3^1MU9o+_$ z4;QF5Łx2Y;{]tۛ#]`YPQ;WMkS ੬QRs=4P*T>m 92rwN߀}Ï%D~5 7~IIhȻ3\ZQ,$(Ũ+?H&7}& ߆0(d8Z/M'ms8+~O׸h!QlOQM!$*E QGae'vټD0ڊ\`wOي;jeX4Mf _~%^G_;4-^0lgW"ggxEGE]8w,R^lV| ժQ%FZ3vⷌ9:ߎgj$6+5Z#Rr ?!;PS8?rUDMQ:r;(;ٜi2\2':ZJ=AH?sz w3 X tu:Ǵ9z;\(؍ǙҧxW_NÑ_1K:j;͞mYRZǡ̵NMoglIip֊-XZSͥHoYeW#{_F?PgħoooϮonmސ*/ON::SR -%č yfV˵ w5>u w}gQ0uMy쁱af{q)a.Eˆ45>0ҭF9q7` :/m4mJKࣶD HE>y?9>`:R'N/F)5(Wr[$ۤ7IBLPYx<ͧ_tP袃0:DZq'X: Cڀ EM wTN=WPȵu킓ntJN|;WH`ԫ`\.7 ֏v֤\ k\O¥:8Sj5ta5JڽE'f u+`38n-"d|I°fntfb?!=$tXX& q4=$ 9#;俣lG}f?;ҹZɿ-J9v^~|3ǻ<7EHy"覍Ǖ%S<, }CǃW;OHBnEKN*ҕ>B 6"/}[RY4"M7#X-4dW̄V-jZ$  J<D_sh!6  t{,{BTQ/%oe'0,QOO6DŽHyDPK IPR2.-f$ cpython-3.9.2rc1/Doc/c-api/intro.rstUT&,`}ysG)ܘ@d9ASX]!J{~@(=lt}8_2n1@wy_5l}dbIfnhr$OrʢM֚6)5or]Ն޳*]XӔٽͥIK/IXغ /dd[Y6&5ifoʕ1&M|u:ϭYU̼m̪̼5x|m [Sٕ*i-eBc,5)JjeEo/N8i]5Y elX MƚSE pn칭Oyzk*[m[m Vt鞥L<8VhFNp󓛲nEmm]4Tg@zi[}F<ֶJ@X*^"d*&37өM 2 s4vNah)%6 69Yݜ;,U.nͮj~C5-V\ mMJ$X&:6vT+khf-mzO_FiS!: Q1Rm~jraG;7qNr|W7U 'bڥ;@뫴3K/d6!~ĥ4# 6}Th!ŰsBOeK߈)t)ԋ.sSX&>[Z\KXDXOM#8QDܩ1k ^L9&tYZ Q@Г,kH4v;Keɻu:$+37%mN[^Mq)9=O!1[]$ [fiWL^2J&_ʮ\) Ex5Пa@b29/GE &zHKX dV{" UrW@:AnӪq=Jڂ-FdODlfM7n#x.mMZ~5ω{xI "7G\enEU 43hRa_F2v"oW\@e7y輪/.^w:?!7Dz@30skSV7ˬafQVI*e36$i]۪D2`dLzf94p̘ p;aDIJ"/ISL#:H,n{((Խ$$7 sq@1;$߱1Ac5PXK$}DD2cB7Hzq2#]zFQ&Ӥ4vmL` 9V>3X@)A y~\-HDvf(ZԽ1*H`=Zl6ů<ܮVY Rud)-WlfoemK'sK,: 6* o֖&@dW%ۀ&hۥnL?̶n^~_6p$Vd10+w2 ?mY5غK!MHcZޜBJ%53`RRACKx2M0: _0o/$IAgE )m0HdaEb7ˌ8)+-_eOoy6Q갬 ث(rO/27^ǎc3YLx& wW?{=}Ռ72[);6έ5d9";63)IFs`6rOh[]]\`4R0H6VL  FN60+Ң)V0rph)vBXcg6I/Z԰feHbbܧycO05-CK~?s>+NAvmO&Dm!ei@IONsR [c -ͷJ}Q$ckCY+ }-RBh-m0&9N0!*FFx].V>X e?a:(bT 2:c RU b eByաAz%TdB-fL,=lDE16 CXF{LXlCAඛ Q-/q5imUZkY28mT[UeTB('|) xUZ ))+7s3IZ-"D"_ŷ7"=y1.s8Ѻᑿ>}7mڍMY[s^|`@%2qNÓ-?շWp)NԹ9B yz~`6;ِf  ʻW75Xպe%9gsKUbk[9¼d~:{_GWdѾvRq' 5G~Xt9M/WԲԗ$5)>D8r(L˗LJBՌdykµmGgr{ ;BMwpؙtUX"%{%bA V2ͯ O\]}wuyǏl,h9"`@D~n"Xo8:?駻Gd{Nx}|\9bJFD+{v$9DryŻ:_4!Z[l4CRF8'eSU?, MC8=oc&xò%b2},]± :뺵[I?hr;Fi{ VAU 9`Ŗ(@! -hWV|f/v~6ߘ_a<~LhGzB 8#A_̫/x òOFy P #{Ev~%2aHƩgJA0GGP׿7eU{c}PULEw!AhLҹS,!9" ]Μ9ʑm\ VY]9_#!gMlRe;0LI!9rr{ducePgMFG )s2$%m>y8Ҳ e5\F јSSD9m"g5%NuQgvn&FAmid Y ?WP6ixyMew£%&< [ME >p4a\T 4'IYqV}_1)/ptvJLWdP͈4G\P'shy*a:!3O}ByQ҉ N2\*T.|>ܕK5  `Ӿ]L/ q" :VfX2ue!/Fbcx4=8.<-myy z?!HF 6VMLF- ͖O⎜)@Sv9tA8U,"dE@'inrKU%^X b}n0rf9Hű2X+"!Ӕ'qw ӈRV()=r@#a j4 &ބYu m$a*L Iyճ6ZsO$)} ? =}'Ȫ?MƉpju>j}VRLBVa'qăqyAxQ Llss,G0AE٥a>wWϮM,YGH"3۶9 $[dMW N醈|qIV :ceg Y7oڎ",ϿGj 6૧Du_ 1هl"i5-Ǽ[yWwW%$.:& ><L \j1N0CKLJr2c^]Wr5\bL4I4)G0#WR*q .z+W0NRXܤMxY0ϳ׮ -с:KN,D?Y*2* 90 -fPJ^ؽRJr^k$)˕P]Ed"%Xd 捖%om#&iq93&;sK^kK!:9-Q^>*c`_a+”(m[W%7Xjiw>@i(LQVOQ$k"|DD sן3>w'm"\ҒkÀ:By_+7úh&ĥ>)lT/2J8fÌ>%bخ!LgL:Jϼ"S"9.T Ck8Ql:-@_+sFF\50!tH!'4(̓a\("gOse|rn2zrةωW 3F8n_^ΑUd>ppF !請@&d7A7:<ζvJ!JabqN `X\2Jv@|ͤja4-'"㡒u=8}Yp&ÆڍB#.!XId6o:igLCc+~>K zq d^rAJNخ{ݼnqe行.9%Z-wq|O1@=umQ{LF=Q?.ggg$\I3BY* K\*@4q)(r>Tpwa0q}8~ g":GԄy9bun-?”h7jܦ[t!cZihS%Ñj)z<[A+ {BӚ <0&8H`GHn7DJs^y g&K ;=6.)1 嫟sn)U>o꼯ΧA<)"n\f2xI)`fy4[v5.YA;7w$8sX"hٻ,}ڷWjfh l ZO4%y XWv4d{C.o_~Cp>g 8Z#F:B~HћȱCQԂ!|J|qaӈ mƸ lF3 v:c~`l^V9ϿN]x}1mNq5,H%7]ݧ`&_@$.J \HbU[52rU5Z| #vMZqU$0_K0%.ε}{+sqNe>iܵ m$qHQI| }8vz=[/R͈yM[\LIr#t6G%AG! `qt!^ ~鐦ܞq$j%8M/J̟h]sۢb|+e3rRݠKdߦ.j_Eqe ҬS !c VCK Y ٘`w@hh}#xi#9LqBN$T%ŕנ}=s:0q~]+!p%in1'Ӳ\JrU&A$0 ~[pD%oǫ4]yH8H>HZVQutܢ pO&醴`8 !)ָ)8gqgcP!3~ƾ歆_^+p\nC/wk3S,+i{Xty 8#␵5ǁB])'g.tlwqr}DRsV֟z`UFdwj\a'%:ؤLJq$pcNTUHȥ:33h&zZKhr;:yxQ? `3齥=V-WR_7zʨ6&qgpr. O,U]O.%EuPlF]47B3|sƘx Q0C9Jmâʩy֔ we̚j?#!j3ҚPq)} CΙ+ \'Vlf%tog"K l]F/ !q!sGk-Ĥ;y8!79_^[Us>νLb#%2T8"daJXGփhǥV`OzY{'f)u hzƗ/p =oK ^_,hEhۺz LϳB=OrH2 Ky}d> J(%9!h܉HTNOF9\x(FT;{OH~?7fr@SO|AmaDƗF5#qeЁL[|;Ʊo=o\fҗ mw*%U#tETNҝtkW31@pdyF;wh*q2n]^n䃸c¦3(JO劓QB q&;Wbl<^ۆx^'\w)׮'V44'm@ 7NB1Z-|^CP˪:Hs"Q{ `lNX\!B+p[&\4.ŸKwR//pG/vxj_`ٹ=շŗi{%O^2FY^9I6ړpdF9"]O/sW4lvvm< 267v}srv-\.!r=ѵ91<ܹqDg*{z%Lpا{6_n 8?&d5_k:zۯK0n328p߱%,%%ר et䰙HWQM\%!g} ̵,=P*5tPH8]@Ap{^MZ H?/k=zR7nytVlmo\^ A~qOSҋ)'TACF=!6-ɋA/N*^gu}-6v#*i#KޠVZ]\^M]=)C]RN|bї);e[,*KF|rus|EɩKU3t~?"Q^pYW7}h@JD~%:H#V.J%q|_|[-H4M,KPK IPRq'# cpython-3.9.2rc1/Doc/c-api/iter.rstUT&,`n0y9{*N,Tbϐ:DCV}1I`VZKA`?Y>Ԇ砒$`"˓i Gdu%ɶFPz*h|JWZƜbQ:0VY1A 9KݪFumίPS$stF1bk[rC^dƚP83rb)LwP#|D{o2l9NaQsC#%4LMvb=t-b(:>e0 K)#_xe 1\cHykmPSW.l m=zCb2lw Vx18N(E%3O \#F?<:, 2>ޅ7Qo욼i.r$a.-<5Ϙ}l& M,}9h-W\_fPeMCT<{ke79zI.~ݜ\okv2~, #*A[~J:Ug?”PK IPR{ٔ' cpython-3.9.2rc1/Doc/c-api/iterator.rstUT&,`Tn0+ ?@==meZ[LdR!)mm>HVpw;h7%(!v;t@'u[[ i.Tۻ!Zgݠ0Z8{ݶ\o=‚ 3E8h$x|( ֽyuhAI7.hs@X C[ꈁPNU\̣Y႒]'g^ԩl bg 6ƁԠT-k;6Bn4 KOcXwaf'㸏|Y[É2 !Yn2AwaKq\%@}'e zlQ=CT5؛?D(l__Aja/q}p)4J!6?e<% Xyԡ Q+rlvheXk~Ħyl"NR`lP`|*B?/4COC`?#>It%Z_%w/qa?˭,bJ~$08fo#IcH+1 HVO0ݯ$l{,ڡkͶu9D;gJoIWZnd茙 wQJ62&PK IPRoȇu# cpython-3.9.2rc1/Doc/c-api/list.rstUT&,`Wn6}WDP-A` K¢F&U"QqS4@H"gΜ3r:e[Vkf3O&)[UB rg#>_&,3F{'K>3ӑL8 clvMߙ*/͞nU f ִ3 .V&6\mf |r 4߁øFzц #4沕J"p!;l! 迂i4ִDc2jyL/9#`:#) ͻЦl&9Bߍ9K/p@+7XVLC-lY'Sb;˾ejL02Lz?[@ȿARccCfR׀PkKHQ,l50֦AiӼ#Ҵ$f&* ZnjQ|R+4F|g˹*T12#%E Gd]CZB(3oJNϨ8Uk.O縅"'CYW֩TBC=GmB)o>VE,mLGk'}ba-qGh3#3R$B97AXf܁$Ӯ6GG i?: bKFޥz=*jz:bڶ/"d`9v + mm.9wzw&C_߇ЇOZLTjdMtPK IPR>K+# cpython-3.9.2rc1/Doc/c-api/long.rstUT&,`Zmo7_A' yA'u nl4q+ h]Jb"ud̐7Ζ Isp^!5/rq`bӲ`蚟Ok bWNf hPI qG0@~NLb:݌[.Ц ASQl(?*W?3-n0%KDh8rM^0\8[$W p2 <1.D:xp`эǔ{+K=Gۜ]Z7~P;AXxFkr1yBO>Au2[WԒV!#l:fs~ii.;Q 7+n fvZ S 9 nXd [c*.MOggebڃyFȕ9HJBHTj6fx&h! \ZkVAdO?+{R3if:$TU.֑FUy!r$/Di . ,L̤8# Nj$F# T.y-I+(mGm_a )n-)`KL*SVdrTiBH}㹲+~0 Ic%Ƃpd 0I| Nb`U z2DGF9O>;Ud3OW,*GLrŢZGhԂ8k;192 +kǯoR|<;6D9 rs0QBUBԝiQʒ-ʨO}HA lGeAwOew- 𿪅/} 5[""Zopvj XFK2/j$Xz΂%>|%x7} blG`]=J} &;ߘ!ɯ:oA3E 962/nb;wBHzp @"Lo[MGr(q2dIsc}o:\]URq"x4ji'N m,,v!MĔB&B_DoGs _Cd遬厖Az~:ʂ&>P%~}5'2.*\#\XKn FZ$!3F^ Hvۣ;9oƄXӄjY]UvbZNi1bf7pFg9gt{w ?|u1(GJ|@_jUxc,pɻw\Mޟo 4<;,wgpvzܟvl>p:?ЦoO( gJ_ܢmFm&m<`ϷN'!7Ac &pc"T-O E$қ)1X( }QF 8ۏ}}q()(;upUX :=8񮽗΍s w*i} O~2jʦ ;"o;v^=ځݘn4  _O}|E|8mWj^iq}Aعv$jX'më]d2ĨFU}_yl*2nm b#+1`iA0D'X.:,b{۸k9qf/PK IPRy$ & cpython-3.9.2rc1/Doc/c-api/mapping.rstUT&,`VM6Wqp=SEĥTI^wrz@QcI7_shԶd9:eE6|J}lB{ ,6E:e(_c%`[-giWvE!/ :$ʗ OW!,u; 3PU?V G:gwF'/Dv` V6 F>d  H" }>]!!4ր{lBh14EU[ HedkH$ENh#+Vӥj ZeD8tDqddG)X{A'|/%b^Jo,BiTg8Zݠن<>t25mA4I|[tŅ]4_=ciy# իKH+SsT_j6F ה5>lyeO3֑ 55'drGhܬ7MQgQ UA!(v 3cu-jKn,H,rm+򸞩*ycNa43n>v7q=YHdIf]P8Sj9MZpQ³'ڃʜٿc4W<\6LD1$?$ssqt;(ـwƚZG IFJsr9 9 W9C }]]4:Om(1P} p9q ?0'$VWV5||q(gkyzTq#7a}tñ}R@qrJ| WNϨ.)i *ޏÍѢGPfuJg˥ͪ%PK IPR\1l & cpython-3.9.2rc1/Doc/c-api/marshal.rstUT&,`Vn6}W[1}Xlto$Ѣ%f#IugHʗ$&-LgΜpSZUY6Ҽ֭D*<j]e? /h_˲tpάU }+r*ѪdMf񋬼 D'7v“paL]QI5rJVt.XKbLiɮ] ~BB$ZhQV^ M ~ MfV`(\Vq 9o@fkak78@kJg ݰ#reCv=v`(lSK^FYA+6( f<:_/[RAl,d;(*-Ex!@7" :FgK tpX+HIh|QD!=t feyzseYn ^k%N1(-:;JU15hTMכOgΛ;a=j2sʣ.reDUQ~ˢek)O8IJ¯UےҖ?wġP&wdRCigPQ>ϰ'''ZiZծB-'ݮ7gj7~}Ex_d=ʿD6sH?X)aۑ.ZB鱕+{0]Wxc]vZj" ',TI;=nš.Dr'xR Z z`L]ѸaW\i~4n8@ٌNLy4rIZkPN{kz\hJ!`Gǡ c<9-˗9v&}>8~YB7 G} Ņ{M\b<1߁ Aϳz:}֭z-?D9HGFabJC6xgnpY01r( ul0>v3TpDPrф0 & =jIm^Px좭6fb%-_=/Ə NpS#lSN?J]r. ),czze6CXCȐ{{<]aPb__PK IPRg1^% cpython-3.9.2rc1/Doc/c-api/memory.rstUT&,`gR927))L)R.`(I+"#7ke+\{ݛs *(Ydb Db9+UCHZ jÈxtGQ¬`$ 2+{m%p g0:0AAp\:PwrdiՖ+cerjTL(5ODfpIJ5Q4Cb쵷by5DViF0 h8pEU04[pOU*k$h4p%ZDpMeەLJ)393jr5`ڔ=v e(uz%05uY?I7,kJ0=TH]u :z p~ /teU>-n2|QSM|M׹,s^9i$ԋ汈cH*͗b1,?|IzuyUY5Tr`0*!@0zy/4{8+#?F@-"3qD;F@|@''#]O/VgLiXNqw$f#biS^/i 7@56R;8 lE$Kqd4O\'(f:m~ f/3 KΫR#q^Wb \N/LY2!!V 4ti:$ C] i gO@!$Cp6MX2|VX3^9b5?DiMnL/1 "!{P3c*6(' ^x k*N.!aA>5Ҵv 0ժ40%ԩ8sYN1Kq6lrŃ$kP bդ*TQ=$\mף"D*]Z>wEM%0♃=9q>XP;'~/.&D>\ 0cֺr+RJFio2۠HC;.l ≠@M'3 Jy,fF+tk^ ބ9'dȜe+EqpTvI2JQ(- /)F|D7xvp(q0G?e*)%q0ۑ9ٓ co9[_DD"?|P35?*Y vvY9z3SjE[DNw*7v Qx3b@ ̌";ݢ i##tg݌ rBN܂Pc٣6 ![xɸ3OcƝ7!lΥG/;FYv's?N6hR3/I 0Ij[Kx590sW@8V6\P녋Y/-CUj?Ty5gDd+f+ִ6l&tRZ3\jTyyw0dVaq^ҸB%aU]*=չ@0_r '*bPN@ kiAiN۫NP5bڿVU߯] \ш˫a5n^DUC?zۛ `*6tDuftͶ! -nҶc+.ȏW|?m$f @!kQZ)ؙM@"prvp'jw5q;'n+ss5֧P=-MTq[[LZxV&H?0~z ݓE4i4gw O{l[4qLcTdh조R䥚"^dcWcApTy[[lS 8&Dl-R gk;!();gN4Ƽŷ0OLTnIwmCCY}cxdL>ty)z?6fʦR+9 @3 :9p_5e~6K:w`s|}3pRVs:D)#"i-X9}q|40= =|襏>vwǥ<|Q7aڱdEBK&]=r4T=4 #Y{#٥(*ed:3E3= UZWW]޽:}qݤ`Ʊ=#|Ugqw}sh^k=#a.pYy>ӻV&A7;YqVASoSƝ <+AS6cE6I 4{<?ŝF,CZ//0YU*1bz@Q2Qrp) Z>հ(^4@j4QN@%sL.^^߾dLv1.˫K`K6whEewp 婆@!7/n./*fK=VBtgنkɠ?ǻܘA{pnW su~{n2pNܿt$qifUxArh ٢9V*{@tkGSa_w||o=p^|}b ǃK'U)SnmlΞJnXdyy}zyC[:7MNBU.787X`ZsؑBe!xL/24_߻gD-?|Trk!&&S{N?<\>sȿ9(qC7POhS0Z Qz$ۨSޱ՝'5wtUPeۦ bEgi bʋ±VP#7Ftike -aFڒt t5lvB̬x "=@+MhV|s[RB4َNen8 W B:p IO3OCLaw, -qR 3|Ю/Z~APf8Avϩx%_dR ஫?_'Fvhg$r ".{79BC.+yOɍ =__;- \. pvw!J_3w |P}G{qQ!{t_>n`{۟xSV6¾ӍW~ڂ QMx['9aeoOnmlʛכ;.x9 + nEz5 7E__ḾԶ|kB)n~drZKS"&>5S}3F,t{dͬ իLVM9qNSy%A 5PtzJhj/O=:l*3/=.3|Y>+xOϑt<;g^%bBQӧ8hsM)AJ蔒l}ky r$Ŧ:FPK IPRwlN % cpython-3.9.2rc1/Doc/c-api/method.rstUT&,`Vn0|W# ۩jOZg! 6(CB pZ*8X%$Eq BY'5\gwzI=x+ZDw?P~v1xPWP‚ XjCOL2DN*2p9>rtzZ KamÓRH[өReZ|p0y~ 4#/R&[aHt?oErxPL"mRffТr5`Z)8ƛU~lŌMWF2pKz( f/tQLP,ȷ봉0ȅxs+=֤ØAbڰiֳ千%u߂Dz56BFJNs$U7]zӈHjE^EBMƬr,Y"orTb0R]E%(-- ݣ!ײI>R3"~:!"ѰEc==gnڻ "PlHajI`7?ɳ1֛^Mj;i BW91tk„֥C{#EsPOU]@C sfC>*RJVt{V~ /tȶ^I0(uVpoHXIsF3[v@>ɷr\u'Jgͮ1eOa(!`\WeBWczO ]87?y|M!d~Sp)nȻk|k^z&=J~6·Mn-&UUVtqXmUkTѰx{L iEq[nIJ8{xn vW66:}8OJMU\?8nV0ns.)x'Mi]L\u)g%mgy<-k~kURꋁROǪr-\vmY:/N$M҇ć:t3lp>SPSnH"ێ= etNR*i{sꯐ` n[p12:}{"X V'EAjmC|"A`5o 5-t: F+@k00<ApM>i9NV[uc@ג,(wMR˽oF{nwqV Mwyp h.J`k>bP&ۇ ą>U'ߪ;gs?M޳J֨]v??>쬞Uy-tI^^f FeM鑚Ai$&4V-OHZgYe4¾9?/d2#nIcho?eXoZ%bY+T\:͈$voM{WpV[TT+P|G`{=]n|\2}W]^3Gpz40Э=?df}`Pi:iX jz}a~b{d_$}*&gx%#GjqE׮g}A>pcg}ZPsg}C0ԶiĪ|e(0p [{i*m^jd "+xy4λSuou4cԨ(TO<݄tjf>u^帕-3lTv*Jk"sĠ(gN1RzoC;2!N6vR'A:21@kvO"u1UW/pp?сucω6Dq;0#[1f oE"kZG]WBh߂! Y%EMpY])Gm 0#L2&yy#,U&&HsshTHҜ IW~o{J|d$fZ Y/FkMI{!&w6u d)Uɱ:[Ca$PzaUˀLJހ#(!"t ξ]m \Hk ~5ίBG ˟/,ono>c+9XI.xhr@miSI,!&I{JY7ve65 .>}`Ş00!˕ XߩVF1iY$ МVZȀky>%x2JTG*AfT@*p`֑d͇Б)2-2߭f 6< MP FO"(_9p*׍mt&"L;!6:83)KKI2`jL ⌹0U2|*cr-Hk k ɴ%V$X%[FU]*}BzԜb&=TV1|uWL!/5BnCAQE/fJP"˯X -nP,Vq$Y&T| P&jkJW$֯ GS^[܃/4 8 o ;+dj)'^jXnhm ! <.o wㅾomk:yoO{as[v>ZfɠVヒ+ј~I$@:^JU9pUX N+РTCϰ$TP; wx bp_2iw \F*n,\~ Z^&T"3eކWޭnl@ܯo.e2kAa7;^D {k\8ͫch/?dR-OzP,\|5[ӫ#'0m+*C;tzF2>f9JͶVE'D$SΙi, ^5"$}b燈@&ap˄#۬䠳 f|[qSz '7\uroa(2\XQ8+-e8&fg܄i~K`Qj hlhL5ت'a:֨>iVɽR*9a`"Wy\6eLXGX߶#"` aJk- GOY`!`R >D=G\.l ֋[l97xaVqs~"KU*1f8| ޱ]ﰱ@ea+ܜV_Wf)utãp UWuw!|nL~qXGO{2KXO4~wө$t,rk0*%*hbqu~f=ts0؂E>v])hmSou3m[4P72OhTCO bwt CL6{s 㣹:M;Ç2"J\~KJ QԨn `׎T],ZoLc \FC-<4hX8]wq1 >h1GeW (G gdK~otYr\[! *<(d=HUqSuB꽅@/zV=l#Q%s#N(3UFܹ4 Pt/W]g̸SXNUsoCN)PPZ&sż˚i$0 P'1W7꒦S@qm`(4 {+#JjRN!'9%H3jb6Fh[[f⸧ (G$@7|(u'(GF"4?l B!rbj6yH7P#'duJƀqid(ne;(=6Zj  N[V^h)%ہB fWyC N` O3Sl11{jHYdwdPJWd#ՎC!7KOʉ);wM\yiƢmcD1kt!Ív eep{⬂:{Єzňz\ŖmNahƟ/ض>krd%%_B^6Xɀ٫K )9<\C޽Lf*m_h`ǣSB.\q.x(CDzM=?E_륨|+;iנ#]Ed\G["?VN]?oA\?I`uX_̼oQ(M]^4]܅V<1/3?,&1LEhՁ!^Vq_ÁZ'0DX{.Q,e:WX\$ ‡l}"\uar)^L>Ebfq1'֚'j:lSwoP]3Nz'F߅k|2w}Sw48p8&ej\ l G:8nMF>!=ںtC} T@'ze6*GK24~vKM\b=``|Y l,žse=Չ4J׊|-M"5,>#;:m`$sr4cBɜ9A$aT&yuJDeX7.l"qq /ԧ>6-b@f.d YSXǁFx˰?R! 7T)TAZ㭱_e#As:>l)ZX6 0/(~o~:%ŵj0{?'#48 0P/hΈf:m_N{bt'vgo2N$#oK.TX+JJPF7WƎ2,ߙ>?W^w Gb ?*zMEPgL4&K+sl0wT핤' U8MQ M3j7~S Y"a\"W±GDu fi<%3:% ?#bPF4mMBA}oK˷`ЇQ͇n&7mۇg>IZ*cZ7R4.eQl pIU {@9MdEy.vJEm]i>R ~[vPyd3ۗ8}~SQ6|4zdPQF_w]m#ѴʉZاIL$R?e#6ʪ27!F5aC],0<̓gq,Mïc`cǺ4| I/>;۾lpm7bL\9J ֒uiI&2{Q;,%2X_K:ffmjd{kxОNSh4ՀK/؁ƞp$}pa~TB~c 䃿mi{AcB6 iǃ {)4n [8ا̅W]\34ӼLo0N_ Vlj*V3aLrZ2-h2RA2qܔFKF6h$ /޶u}AHmF;H6nap}N֏7?9Uٗxa u_uӄ331hl/e|PK IPR>VP# cpython-3.9.2rc1/Doc/c-api/none.rstUT&,`eRKO0WP#qXU-8bx*{3TVDÎm-}oFHo20"t]-S]e 2 ES#Xx=a5AcLIM+2¯Yyg' /D'd;`,c+,tÃ"#oa>" ?HK](e"LњҌ>]fu |'_VjcJhO7-h$΁FW(} L& ?0#+xA%$ttfv>QӾ<^_~K& b?i ޱJvi.\tzk7弄SF߄F9@['R( 5?PK IPR8?H;*% cpython-3.9.2rc1/Doc/c-api/number.rstUT&,`Z_o6 MTml(h@45 Ph,j$CϾdˎHJfaAyݑ(?tX?ƁV>VV*nYi;ȒJX֛y_F"ߛ~ e:hctb>fGbRe$ >!>M$bDAW#iXO 3Y - ^ m}8PDq5Zr4y"qP Bo4ڬբ&-SƣH&CZopgZtr MW&y,{S;&5=RG9S|",!$Ow^yl՘ "466Χ7PXm\^-\jys_tD)CN"Yׂc>C5!|ҿJ%%@L prH0#`ZC%Vѽ00#Vc+zx8] S7r8 | |әXI mVuT@{% D3܁L& jNQ!Uq}b.3+~b"DYRD0 W-lP<h4 "2aDu.$Ąc~2d)h $D*3w]Y,ԲZNh77D& 2 $"J/ !jZ뻱~1?dG{v+#Fm.|;^/TMV@$F)Q)cʭux0QZDm  ]OZҘ 4y\<sqS8CCc1Vz8oTLZ8Q rsi`T2u[ 9fS1-!B}@a7N - YZHXF7  ;9|D.0}[iRl+YV%dliΊEKfMgB#hfp+Z৆ʨVmmDiuP%=÷BS|E.y29t£4Y* u$b\MBL<"b?ʍeI6MdE5ʈ{I4fIZimL,GW#[7y9.3լhjw͢喱~Ԓ4GPwoWLo6K]DMD󵉌@dU2fd떄5*bJܮFIYqkBu0 `޳D͍`1.2#ƑTF׿JEg1%ePN /KpPUvf7]t lKk{cbE1M4ѷH p("sBuVPK IPRSCt ( cpython-3.9.2rc1/Doc/c-api/objbuffer.rstUT&,`Un7W r-H A7\b0УHqGZ+rCr~}ߐ,;a,75vvLU]w >lh|w_U556:qw۪m92mg.ȁ!Rjxo ~CW/dzG՗q6S9_񽍉96C5vc]W}#7<އdyk"H!^'MA=J?&gY.U}?٤A͏&;{$q) !^@;d|*pC0 F`n0|,=XA9لw=z嬺hiRLtS1]UQj)EX)5S42%Ezn{#h,UحW8C߱n;gvnvg!SiGE9nΙTU2n FZUP/43xOYI2G:F7q;vUED7 CcX7 žQu=24DXjP9,6[ЬTJ5wM@,B@xyߟ8H_;DTZ]![ꍜf3/Ox s& lR[?hWԔZ@|ko?+|/vm_&ƦII\ W>le=PJ-^̎WHv]#"6cr;aTiF=Ţ.7\eGSec4̂HA'`ckMKޘ!3H1>`5:Sq"18 ǯ/ Kȉ\?M 5<[>r|̿tuD<5ykPK IPR-mV(9% cpython-3.9.2rc1/Doc/c-api/object.rstUT&,`[[6~_}p$:i2mm3ahs#*Iy>﹐%cM6hEcK!9l&f]?l6 -}&7ٳ3Ϸw;>O7_nRmTUqv&^+eY&nJM5ST~-0kS Pe 2*q~W+RW4iw5,޼|7/i*VZVEUlQy!g{ebeFj֕Z5UN{>'6 ]喦nZ)73}zx B-+8paj❅񫘘Յ)\=o< J0a2=-@m୲+ io0Ԯաz Rq5q.0 \SƢ0y3:DRV芄PhZȭD^J8߷ ~V@LU9Kγl0CDi";aͳn."5DYAB2/;V!!b T_(Y!γF aht"\-[L%Y#_ ȞLI)^   7qr 4!M62@\^Es+Llɵ 7ĢO,ëBi@S6 5)A2@hMҳ@5. AxJiwuϰRpN6TT±88c1 ]6jTGoaPt~ Q*DGყKY8~Q,a=[-aN%6A '[0~4 xΉ xI f:]$/fNq>D@$.:=⟅;!K0>[ ۫O9}cG[zV[@֤ģgHU mhQ`\q, U#_Ͼ$ԍ=iPP_CԸh=_M-J8yE5S3S63&!QHk뚮V^iF Aa>op%O$հWאldH@yKʠ2&huB+$-,\@U- zlC:ҷX,"ZyLw㲧o\b(w]NS +Qiꊶ;TT};p胱)zmk21(6M%Xy2;KoC qpB&ł<]tF;X R۪[чZF8Rgf8N8):q@gqL"C{]w.7>6ӻf.[\ &VH6D? 5]}sKq`hT5CTRň/.˰֭/&D8DӡJ6Ux $ -t瑴FR4}&RՍ{KWqKmVcEi Ku.uV2ioX\,m0wjhHp_FIޭdlVzς|e\^[ w\}i'zd㭜<~*+]'X,;F(2HeLQb-Y7eɺ7/^B="v=(FT֛ܙph򳐨~u7^z%6v [۸+l8~߃n !H D`)!v ɘ0# c'3i OC%A5% 1 *Ger_]ABP~b%ym`~~@ڑN0^[Qh [~ S%3gL!y[>xmVo]ZM4,S^!XczE _\K\{'o6+#s>?Z4<^W_~瘑T "R qo@l.+Yſt_8}fјï1Τ8ny卣: )\sNEdy f*abzƭF_ɀ2Uxsl[!.h&YH jp뚨"+e?s!yW PK IPRȒv * cpython-3.9.2rc1/Doc/c-api/refcounting.rstUT&,`Vn8 +xk i@ []locLjmːx~%{Ls(P`AH>RsjMv EA:˲<8}e7o~'nKVזWYOfOu0v &fP @q#O/shwy⨋z"xﭩ`}|e3ҍ2"㞇 |#끛HX/  6Ў,zx(ˏdjA$Q  фV2Zo$J*ߢof^$~C(j~CktKZyZ*'2OxY}}H`)Jvv<2Uj&R_̕5!{<<(7@E(]+ۙ )]q etNyaLhZڢn+ےVHkt QXnF8H+K䣳jd?DSck͠ kHMgwrF:Q ճXn5̫TR}+9N]%A(rpɂV34Ϫ;Kl2PVڎ33p:DBL_cJ8ˑ7؀H%&"!$RdҊǻ7df1I G= )8f).Ij;^7w" ek," "GH=o-23O hӅt=zUfYԅFT–Yɖ /S׋y]ke^%=FjO˧NJƥ`JF/(dϋ;D:U}OSas^{?39$3D[G&VN+qF&tNF$ivOup8wEb[},?ye''o{0J~OssqKX"<@.^KsM@2{tcKK'uLiYl<pŜF3* DY*,Fc_~oM0M*BXIVW0x?%刀 iqB>А^[#\yӐˇ$Ed%ќGN694ibh<-U];T,玤7PK IPRu+w' cpython-3.9.2rc1/Doc/c-api/sequence.rstUT&,`YQo6~cFG}(ڴ0A,Z:leQ#8ޯݑ%[J@";~N&bVTdd"`:݆_ōNg9l)]U:qk֐}q~9 !M)"MZ '*++ Y5Ѹl  r°m/AZ"+hxZH1݀[O|N9)٢:uYNHbʫi2 [/5GU`d!2ioGjSikբ@٨Ė%nW!;Kۺqv"ZY2+d _0pO,Ok(Wn}LnpE ʩ(lQˑeY!t\KqjxMt"6X%㖪 HP4qh[x  )_i|<̤k_m3^d^ .I~ӯ AE#.2¦I3} m3]nX\P"^6XZP9<H{g7?dSa#`37X*_UW+~00*uD%/ aA ;<`E QbJŪQG;?|USu9@y>E[{ol`'gD x *~%N8"o^bv*vx#1(*^1T'_ab0ْ*5>T|,z x; /9Kyk>kKb -CA}WtFo|:M&rO=23dI|>'>XDu3DJ~iNC tՆkr+ 3~ƒ.rg k:|!sd{fA]<"IفIU7fs6f 4 z!Na}5NIӷ'0FޛdЌ&2hu~tx8:XܙLOxGW\+/(uy+ z=hHɩ^(S4 !ji$ZGyOΛTꪀrGvŏh͖f8,QpZcB 6E_֙:#Ex,(lÍω?ou=h҈ds,HqԬ-?_MEW hɍ*vƣ}ֹC0Xvg]&je4UpE'$oV]wܺF'1rd9pfma$F$#cRD;/Sw%8CIlP6w+ԪMBsBM%Ks* |׍17q;L;;Eln~;jy~ k&L)mlbGT8m֬ IHK dQ }taO{̗~J~, *(y8UBȜ? !g4o8q_-nJEɰ@Y5tc%*AC`Hn7FZ[#%[_>W\8W4u|nI HY="z1ƀ*[1t:9#闫쇤 jM: |J9tM8 vh%WN,`L La4#ou+)VH= jPK IPRF4!" cpython-3.9.2rc1/Doc/c-api/set.rstUT&,`Xo6 ~_ǶWc]bw]p^bEVIrSۉ +Т%"?~$=[k Yd2."l2&oaUY밶MiM.f A;UON:L!l2+gJ۵2V,%Vϯ: ͽr83 [Y$lعiت6 ZV>Ȃ-jƅrRZ*&/_tV9(#t]Ld+Mtw?[鈈ܯʍ򷮖Noo#pOypiSKȥbiCi^ї%֍n2sͅ$U#Tt!-T`@DM^3B}sV#ek 0C:@&+x k WkuAP"YPe@+G0ȫt9IYuJKuN-5ʫ,\/9e)# L[q.)ei]CJY$Q%*TꞱkkȽ軕 \-B@ k*KV`Xs1 $N +PiX;[QhPyaE]J47@lXɍjC$\G-g[[WD:a Hl`_kzXx[SzNb|~STb-G%z0e"A(;%ƌ}mSpy$jLOH#%.j1Fв6YuJn,!p cV|nTNoMf[ RegbJfPJdk-:m<9=f4pO /{8 ². [yUv@ی=jgtkYJkYۦhΌ AIEx 7ckL*.S"ϯ|TUɲ:T|,"]j+ܰff,Ч ^: E3<FyJzGkbش؛jMYتAW_?sO^/t ^l^Hj܋KjG0*.۬݋du TmJM%+pIoV'rmHlіxE&H1>HwgLK3` %,A%߸ͩ_U+h$(2$m(Q,n^H6Q"혎X1=^?.cZfFZԥXQW @$:eʽlI䪕M1ݕy&mD熐|1ȷ}sj,_,R"g%Mok@ae Sl -Itf Cr9p|[`jp Dcښ ltrg?Q(z1=Pؕ.DS Z4@NVxJi HoqH\2S($# F7i}ZC$!!w8tɆHO>V6 4i [<-Q^%|GIh}Yvp3gm9Gh{fw // l[v JG+H w(8p%%v6tPhWن>\(O_N?x)#HD9R<ʈDo nBtw8l"bAtrQB}4*Mx,Boxg 1m8Vr#^{evbkݘ/<}~v@k&WPK IPR1C$ cpython-3.9.2rc1/Doc/c-api/slice.rstUT&,`XMo7W0En`$F!q^w$1-ɵjWZImy8f8шrO&L 9%<5 wgf8v{ ć0oFMc~la, K711850D(ܤc &5֯fo2EF#w,^@|<&rC3? ~_[D50!;^u<Ƴ9yw}]3AWuBZ&2lEyn9k7 UgitX`ɥ|! \),AI ": yC75n<3msf%Ŋ =)E#RA c-RŨ1NFGgZdD[Zٱ\)# ).(F]䧙stKd5<',zQaĒ p-p%=Y 4DK*oc6Bբxz[ÔOm< B8֊f[*D6 yj"v~e\*Ԅ7E}38X & ,˜;N pRY{Sʚ9-+M( \zE8E\> Jԕbm1?fY'iE2HQ$9Dr^=wk!Ρ-^).` :zR-Fq@`‘8 Phڀ;#{[{asSrINUB\kt-Yt+o\JE$#3m욫濎a2i$0EFV%_Dbҕ' VĘ@4 9vYϥc&s wc Y&ȓ^?>+$$*$ ^?wy,h]_D.}e7yjͿmYNX",IfG|1Z[v3z+)ThBHM f=xL"0aP1 v_OuB%a %FÓpxi5 >JM@֡csD P }L5>k샎[.筝)>?wl~mqw-G]=s*ápxk*+Lٵhjm2qWٛЖR{e15UBv!&,Ӛؾ5"}p:z57,[:5.OߠI%BG?2Y>Re_CV B#DFIt' '-jm 8..%Lyp ;J!uVt_Va3WBQRJS[+ (/)oxwp ק)tFCen-,!T#8q%*f#}ziP੘LPK IPR}X\% cpython-3.9.2rc1/Doc/c-api/stable.rstUT&,`U]o6|X).|҇E $m]&׻{)ieH;KI{AsG!3TUlwiFǘtmywQ%F'Ñ.qtߔG=9=.)~5i{c-5;#~f lYGJt} i|?"qXԡHn[RoIAxdQ|01M!yR[Lf$v-%OHe9~^T@4`жD𳷹c IWԈKڃ VٶK!cf<MثIT!P $-d8ܠ65tzlsV`}+Dh27B=>4<^ >u@JJw7"ә:0-];YJOƵ~5hk\Mqt jW =_Z֒W!< pͽIsWջuD;X/5YXQVEW&^GVpW/dFXbnB'1m6w>"b\k<66 pxC`\SmNui#2E&D{(4RR\~ݢ0s:^n3 X70R2Nͺ4'ƁDE2#5e* 2zq>A/yo7z6wf1Ljsb[GxHtնBWdN(f7w7޿yŒ2UAuinkaw7Q}m\Јm9@)\/o2EqNR~F"Du&YFVò2/o9N/K"+qtԠik>n'y3D+?B PK IPR& G) cpython-3.9.2rc1/Doc/c-api/structures.rstUT&,`\[s7~%bvjvXt$K&(`ML{.2HJRR7pp PUVH{PS^T6̨;brwVbJϷ2oz*eyD]ߨR0xXe銆mZJZfEVe^4/[60aK~Wt1bʌ0G.I Ud+/v=ذ뽔0FeZj;{e0bWZV* ⭛qaL X}ި۬(SʈRmqUTZ;4A F1JXZ (z7Y7A$]-$mY zLVYĐZY̍&8Xd%@TYBp£iZL{$~z=!b_ZIuX? i<#)Pb0#[P[CXyz_]>7#MF"w/x-'} P-A%鰖j^,X)FQo&U%H,8R*!9/tMWl,vUq[C oAa l,;d>4:8O/#B26 T2^;رl"?E6;3 X7bt>[䍾Ww3M.@W5$:P'fQhNtDdpAaոfhDbu}^V999>=O:=_OjAG!Fn $p\$s ;}<=&ݳ=&[AKsϳ1f_y@4xD=Yi]X4t OB.כ\ :dzx zwb(0f'Vp9ZYL ᲼<iӯ8h AgQ bⓠ?4`-~d݃<5tv>?&&KE69ꭃ |!pPrd^%GP SI"5/Ub1OQǐ{IF19G%Q>{pDGCd9 !G,t%K_}_8Chy2|?,Ҩžwĥ%݁3k[\b~*CTRHn;& =Dz a'*Z<:MDL(oQ 쳌ZzHYyV 18fe;6ȖzW=>6θPjH2WM4ۆM6Rd9CjP_5M`k֊+<φ{vMض8SYf%d&~W? ]LF+7L6JeUt< eAf9_cSk[y(ũC6w-2P$nj+;%-G^x>{ mOƳ$jqR+6 w/vnyiQsRH/i'ZFXH 0,dD%7^lPPk Y׾{K\Dv}|E#SS܂B e#Za0͐ T;)5w31.oei KPFw;یI?ZQX:ÊZJh h]Ҍ wU*UEFVle}V+$`HQ;8Fef!P]5qZF3MPBbҒ ~L,l7]QvE}sW0R:T]`#YrGj7FH-H b*+ кY #a }1롉aqy*7fT(ɳu#G:,_lVtQo-wU&b͉|zڲ2i-@EHC9 j3jBK@+\5<.YI"6KL_Q!ֽ&I3'LH$\\q CV{#:@ זؑB\RnzX-@mbmQO>Dik#D|ȏjo\lV_vc{r45^U ,*)N]4pgρƧeB$5PL($8๓ AV0Eo,wg6ޒN.ht;9ZAs@]_)H ,ZuxL`:W:ǫP.] ".VѫyV?p(_w8'@ 4C i{;Q'|PJR(+gB?xYn_PO<[h_m؍]#0Dm^:C.!lڳߨɭcLNGb\F Z> ˎQ3Ƕ; s~mر9;N}#{و]GUજBFGvtuVTJ4qe;TNÊhQ?E\L0Xns `6w W'4PL&DK6G(0̸ uÌJ[2waHȲGE"TȼU*Q.+"sOn>!Cdn"\Idj]ѥpB:M ,H~yrKd+o[ʭ-"X&zSihiN|T?JQ;8}}COmdm9Dv[G23|홚q\⶗03/.mwq(y?=RzvƓ ;?SK/$Sq/7JP>b_>ll>}3yAeˊ_\E2㷓w߇ǹd6v2X &/^ f,= j&/2?w>3 "a~uŶ. h@ ?Cs]ҿ0G_N&oxya.&]֨F]ӝ *>P$6dm"f V eyWmRf㳑9EieK*,;>J!L;um<*?x G: _UyB*rKbp+ر:$g s<;Y,bj19kL"8T+2PtRٿQjy8}fq40q2seL @zB|BqdZQrBwZ'.ou0ꞿ.zQ)dm1t(#hqfKHS7d$sl{2T&zs _NM4 V%_Vh]:?5S7%9w"r&VܧfgyB&\>gH4\gbs V u9D.w`n<"%f@Ӂp_I w!)UPU._.~+7DHUYu;˳;-ZnBUSR`(tdrĥq>LeYho~,O!j(xh' U4#P[Ux25L'}V`.N3`_ *_x(:*cNg$Dqڛ:=9Oi fcnZk^<x:qM:M GjU{t-m{z\;I`] ;,N3 é94k- @Em +[х+J?O/+Wϊtȇ>w-NUϐ _,,>v 98ڴoؐr/EU=jX :cWP2Bdž{I~2֤|?APK IPRsUTvA" cpython-3.9.2rc1/Doc/c-api/sys.rstUT&,`[[sF~ׯV$CqLeC{D5J28UD h=y߾֍o}ۤfЗKFji_*=9Ԭt㓓tmn\mVCms[[N4?ϛ"mYrze?U5?9QJ7uS^5Q̺2ռx`4䥬SvnJoj=ę 2EjTZ6" 5FuN=ng&鵩:5C\L'fs"LiX/\_'G$䣩\g@dWpR2rWxh /MB !ppJ-t%^5FʾlW}ܰBjd%"̀T2f=S1Rn ',TOPp_OK. hɲ7_IBj|l A~;݀EAټVVGk(M,GVDS{gfg# m&XP2v'#d*A<AGzz6SAJzg,"Ag`&$9lâ $%@d(F̂ƂX ֐4K"x 0Wد" RԜc`9x-' a5.z?ל9ew۬~{F;|]Q&8bl&_f4" ye䴎2 ss*Sv иT @ !lxp$DdQ]aHc vZ~13Ր%syG ~-"u 0-8mg…,UK&7\Ty3<[VޠBD?Ӕ$.^a_@L*|O{{x,!I7r ,,uTPCQв0|:j$d6<͡4J,b^&7.wyZ/4G5G_B\C`wǭmB3I7g^}oG|Ϸa1:sNi)9p?~Ip9 "VfUVR{^, lmfu`>XT$!|H|mhu{WD--+x]N'!=F>]>F-ąg,  k!Chi>*24Hfd`I1FɮbˑD ,'RV|)Zw&{f-AY ;dE1w}Q+hNHw#1 W}|ЌK?  =P Z%&MC{#|8~&7'b 2 H=XɢG0dg<=ҧc RD#hi=)rێpvjj~Ћ/w/۞_f _9^c!G:<0q`zY#{R<=H0:c[>e*zH\a/7u|Iʪkq!PJԝAe돺*n;.<1v`QHVqϳp;03 wGEU&t>G}@Þ<J9jiIpiOem[wql 8J!R0gcM8P萯J#> 3lj$N!4gqhp<ŋRM _6>\ Ƥ0kSl`8ECjKiv ;`%L RWf)G!`z^VVWEphCK1u'?G~L FkDb2Ȏ*{Ϸ42m[ߟkx5T;kB!e TB'dA}%!D]]xQ!Rεo^|)xZlyV՜ .a$|bڶXP{u*'WҾ؅>Qɓ%=$~*na}Vr . sDYbũmBFso?B>1~~Ar4&% `c/@GV`:K,^%RXRzm64v%vB.\/ ?;{2_۝dLpaФz7"ΞRH=l)؃dHrdk~mM~N]8J8 l\,J; 0g'R +|sks( [=Y_n] =#tNIYsε>G-H+ @u vvt:oΏ}W#tÈZ= i9g!'7@`ܜyH< aP" ;UBxX*?`D-6=3 )dC0R%/] 9 IVLi5>;f y(k4nQMWu1M/ΑQ7` Ht4D 鞪TkիR:HVі7Cqp_Sh||+I3):7ć[UP6I,:Z㐽\|$s剤&S="$DPmXN7dt[I ]([$?E[4I"{.'CN})+>e"a3ZfvNV}#_2uHznsBMyo ycӘB\:HHA6R/z u έxD86yAlX92辚Grv=}#] 7^0 7LMouͩsB \>(u;|0$)}ڙ-M!RU&Tzuk-MwO'A6 Ì_8O0k`0'k_Bf?jS'QLQx(I#x{VĕPnobYdggm2W%3 eڄV@hPrYF駧*B+rbz\:2zn&%6˭#Pcc3$Ɠژ i]]:rd0Dz*O9DqM(%b.p!(H򰎭xK1{֣s YJln֞]!!`$?{Ru1$!T॰`[냥fIˆE&-DmL̬I oV0$NoL^+3ZMBWtCP; =]eU5kHS(.Nlqr-TK"źj]Wwe֤XNG6muEp+uVc7?g^.8;٦0:O>qsT~x7XM|?'uɢj/PiG>L]/77n'm] ۷xz-= nVxz1"h! /\{qQ2Z--s/;@nwxPK IPR:H !$ cpython-3.9.2rc1/Doc/c-api/tuple.rstUT&,`YKo#Wstd!8 țCMuS(0S_dwdꫯ^L|.d6wu]KO&U|kSowmУb^ }ٓ2!n ,q+1k/{^ Nyej/$Hְp,(xs<}C ]<ϽDu sZy}!+*jLQkk@sm:֪x lƁ4(Ws:!HهTAQ-KTEj'薢PgzMeS cW;ꗵR;{uWJRXd6"y\+Ʃ"f*f 8QaףQtk-+_2yWn(R\fCZp647d %?LgU/ R(vһ]C}.\|M!W L┬y|}{qGbZl_qiJ5V(:*nHoj<۶試,26'-h$*$ن)4``Ws7XE\jgi'~9#rNGUo+4gt*U;CF!R;Q 2#d3MGD(\z 1a5`$GpB^CVnXdT=%xlikyNE2d7+lSXFe B2Fѣ G~<{.a-@pADĸҽ񵒕3LcJ J?zdal^:%01!ZflJ9pY:XB~m nM@gtUuK+:Oac1hvПt,ze,S=Q,,Tu>z/zy4_ב@v,2v7.,nu!}_ IQQ#2 I0{ij6GhTh5jzW@6x 2cwx}?'ҵi%(0齳;~yPǜ < 씽(SZ@ԢD=Zt!W6D*piQ5Q9{y[Z#T-Q<϶ k$y` d6$9Z7X؂\X#aʋFV\B?U.bq>#E7 uR{`!g ܇T _{kS^82+ &꣑W [U3(RDuk@ mqbT"8/D./BF ` ΦNJYKL2:v#t63l$h v5b= +8%0rZZqB !-ݻ17]ʓa %xpG2sknO <$1\eYlOR URR7HR7)xp`%~o?n'W _?O<>8+ xJ;gsЎӤGtf.s~D,Йqeն/'^Cx=0Ӑx68dg" lccRL%Uqփfb e{  ^@oG&<4#d(h}?5/&h[-rvjF;~x~eoUv#]-FO/3_i r5\ *GEfC= 'Rt_{-(>,ywyW?PK IPRVbM S$# cpython-3.9.2rc1/Doc/c-api/type.rstUT&,`Z[o7~ׯڂ,d}Z,:vb >iJf4+o﹐34fѠ $ yx'өXպl&h:s,rf|௣-U>V^?wDO~G-` ičp6of)<SFV/X4W"n?KKY83" qg8@,Mqnt(eҹY;2J֯M%J*lkSRQ?^D-\r(0(kN}ƨLԼl ]ʕߡ4r 8gҚ [ iT̴;Z#RXkE.:7:.Z+u5yT1EaXgJ:þrzUgSCK%ꂭH/Xl%KQhX5zኼVgeıs(WʕHjL.23gY(;.zD!Xc1E>Voe7JV\BPbZdB?7QbU(dH b"(5 < A$x 勆q\>>L7Ѡ<~E wӿ=ײZg㣀c6x3ڊ, \ +)=ȀP=]87^jUęqe cDPSu!6փr a+6R&{@#0Y ON twJbgسLhْĔX acF<\~,,p/!;滥i5(B,kc}KT*c4Fu6 4ݻ7׿݂N)*9bК 5,OG-Te+rln8q"k k<7ʯ)9$g>bcte0@ϰ!l0ȈoP:Z]35MY!P7֜_;wNQshvMFQB|8Ʉ+ k:B`ؿ gXʦm(<6;TԶ)(N"A4>a޹G<ե]m n;* 6t<32H %(*xzOK10 J /d !s#H?hبh@EQ?E蒾 ,^A[ĺ$>!gH4"t6{:kC D u<%>>!&U &4@qP)Qd+] %-m ȜQ>=-^tfߌvZRⱡOOjrwѵS"dQfrMǸb ul XuDKjtȥX+Y' ςl) g~t&GI@][sB"CvH;(*kglSeGO<ژmOQ-''A'8n7*q^):2؀M{khුy 1P_9B0ˌȖ"n0`V䐸tRl Dqlzyx)<I{xn2±S=9padz/o 4o"e:EL]8Dh<Π?&Z1%6Hm؋/T4ɠoWׁ{48ȉF'`%q\tNw̪,׉}Yْ `$jN2@q%ʋ7]$k;/č첋7oR DVjk9g%%hP3 \69>5 j[>|:">ۭڵU-.Ҳ~?Pa,7{ f!cY_(ΨvWHGew+>"bq~}W\)&bH̨J|}%%;uWhȌVn9o!9oiOF[Ucݙ?Ӌ īnKA0M>~⧺eQ#Wf˳'{`ߐp=?7˥nXW/c[={\ [ ,Kf YxD,JEn Х=M֌f_fSYin_݌{_0 ? H'%> njuuȲqjy P!xGBg:u]Qt$FѸ\/cSiiN.wWK{^%m4Q%Q~IMe^qVF<̪H6x.o,iȬM,,N3GYrNh cjM\(xM,J8͓Y2ivZ])c`Ł233V<FNh(]\eNp9<4(MLZc{<xn* /ylw|q6XفIiF)XEk_7h$ÿO&zSǸj"eߥ3vyc 3$ I<"3:x4_EX:^:?Bjf渌 G2_'Qܧ֜D~x?}:4 cC"Dі:(C3lx,$Py:6fLS ~:gO?ݚO, go;{pthjI?gKHLL\3 S e4hж1u,1l~8p]M:EJ?j=6۸ysn{>xf$؃}/ౡ-/&}~~Φ1p&)'?s? 0BPL]>"5s=S` ^7n F>l,?:쏾ze.j^{IuɲNkc;o'nùX:KX;ŹM w_.{_%mln;~m~+>9Iź%f0uEY%)2_9`U6߸_xMX y:O!!siVh֘x޸/",m qL*{X><!}{5"WW ]G,.)Ls|]y4Bާ$﫴XW1g"ފsbxX6u>0(<ʼٓg?ojAglB!wqo)U=Nޅ#xa2Иˎ ~K$Ȓ߃{ek#?>/TԸWkV=K'ud;~;hq{I<8k{~1um8>KWްo;vm 1O ئ1H罛$d+>uVIݹkq2K; ~-mz{MƉV)GpYr_ߗ;|m4G}ߢH~]$~mIGԌoq=mb+i;9+a{?o\Eޡg gG{n65C{7<6]O>o.tG:NN=޷C~ޖٸo=;lp͹w6)w-I%h??q{{w_+ǀ˦aSw0c!3 ſ&y\_c]2_EdY$y6q^%y]MR "Ql0svgu}Q/zǒ6rԟv{맏c*a)# 4"AN=\L x2y7L&G#EEg|0 }h08"a8E̙h˶4}Mguaz'Ke5RX4%W L99]$9:kG0 g#JV;xmj};EHF:"^]o@(Ap2XO&> )Et휁UJg4(Eiy 5x72p[S-D[7 ^tz^r#Z+K+` H{G't'(dٍ.`^JȻ-/vPy[HxX/hoVKIZcZ#lnڇOy%(v?;[fFlތ[ǭ>$SFb5UU33 4?lc~=:[bhaٓs F8ͪ# v爏VA9f*|*7n}j-4C/T#%pu*w07BU1]{\P.u B=sܔ UŜtwH xU=rS+Tsj{GaoG0MP]͢NUCG7BUc Bu%71jŇ{a}27+W{}Wy^ ͯ)fL=͹K&Ns{z;yn}V5 =cP)>< Ԡ+TpqPj"֠+Tpok7[ИW*Ԡ+Tpm{[aCU1-n7[H徟cK]ڒh{y7dsip*>4vJsj{,VI1#[=9,yC7Yem0`ťY?NP*tw/dg9Gxd7`wФ=h>XߣY]~9{t{iܧo𿸸FK CQY2ɡ THK8ͳix^HI) d3KְGu4 {DRްhy@?(4q iq(atvW^v{+Ԯ/H+ٓsÏ WcO.k[Տ`E2Ob4cCE뱒4qWG''?thxA1TNU'!;}ŕZJԐjGaF=ɏDc{Kz)Z}O(Օ?۴$_?JJ#lB.?ܨI?J7dxI_Pg0>ߓ(O[w~ֻWP*wP\/e( JCI_>TC_ j_ ANlu6>JߛxWk.^~ؕ6oJA} VZOoOeӆw{wn _5F*߃wغ[l'ǵ\-}!:gLo6(aQTCB_jo}ﺾ/- ¿0xP ȿ>H_jo}/p$RD$pDWm:`ZJ0>Q2:hVDj ".oEDzX8lo˃4\ :f< 3"KKL6hYxZ`-x/_=~d&F2ZZ8q&L/70#'~~l|r2!if(x )xYp.NmE~{>!C qHxHrY4bL0c:_8m/GQI0{piB_nnBrU,s'tU`9 k!s8@|" H(;1e:þqI17kbcO3@4N._.}E!ٴٹAv24[l,@؀׾ -sh9DDӬѱx"=6"r]co=qfhu^|E=h-wKIDW R8T##(4/WOKVvqNoIV 8YxB?xR>/fRps'ᵀQyv^ Ou:ObX;y2SQ<*D!S{hJNQpA; AJEKOg| -,/ѱ!-QKX. x-["b dP<6՗~rM|]410<%D)mD >˳^ɉ>*ߢ#8si,YL M8zwl|_Nd`UO#3ʣ޲&\Qje@Mpn@&{VBql'q=@$ i,{ZfE@i@y ,)ʢBR W*u nhXȠe+UYc" #VLZѣg\.f>tp =Jb9)fRN֌1cH@AJ\: b`2C , 1)R{X&f_ؘ:^` ˭q8 {dL'KzV<O+=@nai##؈1%.Mby Z(% Tێ΂J8[ ҴĖM5NLPՕ?9xvRY *W};|"GN&Cܤ%U5e^0lYʸ?#)L`^T`(%`'9BR㉝JlxgkkntH.?= kpB!N2ӎ`&7 0>uH",iW,|x f%2`4M2Iz F1ݪ*KT^e-:_H8A$_#d 9ٌvW ˄$3^)奸r _G7ʗˈVW9ɶ9ubv @)ys^J#1y5Ӗdؾd9/29炈&p|pְ['4>DU=Z԰0}E=$DQx˰F1]("0#K["B3HlpbX8z'RcTzXEI#TC ;+1Jx}EM?Q.F C>E!j{IoPVgU^"k|1BUz36PcF4@F^*}6*AvuCZH$ƒW^ f %D} 8|NWjECO&df caz$;hY7EX$)h^zrMe 1'NxՙCV f)jz {uߧIb4uGǯYTnJ N3$C;.̃65qgX@^&t`%9M6|usK0cZ$\`+{=.O%$Xʕ]:JpT$NzD#roVp\0Aheqh9 $^VD"ǝ*4Dp)=O&tiRd.:M4R;Z$'k"ؿyϿr8tzYr_5$=nBJI6F-vҨhY~qG!m i7[ރ5{mLbe Nov2*`_]=Hg3mT07QM/ M}Čgtq5=[ȏ|J{L9Niu["}2N`2-C!ٶ駟2)hEH]ryTEm K˥[z+$xpYzᨖ܋gf8v[_ 3"v]ȭ4GN/N)"e<']Cd Gt63SD:.?ckKdg¡ra<[ ,V>3& ~^ (UO 17À=V c>{yJ aL`ge-<%{p4HpCCH  ElK&xۗ◸wI: ?x`>._gy^*Ir`EOK?ÿ#y,28B1Q0e:&۫5H!_>,g$ eHtڀ&r2Voa-ʁV D,@U dDCvκCNTKkK>nQ~HSFyŴu&V@?l xZMc4 ~5i_Բ{S3 k$.wl=\jM;5;~ѿ"ޛ93U '[#4DYPO#E,g(VWLDsdaDoP􈪘 V$bPɘ|V[,<1%A*^yV{+:4;vcNo_xd $\VCK"l%M%h&#:o)ó$答[M|2FљV*K8-{TJ (W%nQ`}0/^w{v}x>5l*u=.pAp|ַó jjՠc;`ccG1r ֝L8"_r[HPf'FΎadWQc^6E*{߄*/I7l5-y I1ʢ[UxwKdtFSu $ / a0͸W%VOl)e1qB8u*5v|SˎUUJzq}n=Igvª: cwc\DB@%r2&Y@DEYxT_"tS]!y_pP6"> xBjp~ukL*ԋZHeh}jЦ΢a=} (;Y=}+cUeӉSP@d+mWX e; 4Iu F\P<_d')`~|ֿ)0$ak{7RZs0惞N,x>-}ip۟ [XղDZ&4d].t}Gg!l̃zwk3Uv1dr6NfDmR'f&E>SqpUUzA ha( xYFzdb^h#(g^#6d(&%oЅ3*5V' "s$PR65˼ԿH$ aK`^1/̼;3o5}dv ezzj~aQ{t(WL@$FxXͩp)]臜+u śzS'"\ 4tUÁ *Jѣ"q~~};ț<`6x!Vu4x041SqE%GT4`cdń-:$Ͻ̫ ê֖wm53")OvUu)..6f*Oهw#=өХ"Viggywh55emq4zWЦ|Lϋo{_dsp$7i9ΧZ d 9'M*+<n|u=eD]?껮;$dz,xf}b[*|m~Xq$L;\@fjJƾsHĞ/ }BH_'8%aLI0P7KVhr% @y4T:yUW%OK۩`?nw&T-B%/g0/fY R Q3;©»mK% 0zTs0ut=sSB䓨!˹C?AhS@6a MR&Le ^ZijwX&SJêݤ?-b^ -K25K zg~(.' :Pkƨu:  V8na+$+.I F!)<<Cl~̪3~Q?cz!`9:`~f(xC3r$#9Cjǭ9j]ܲ~Nuiad.8 Z~U 6F#eˆfO-)0TydkVGN]8Ɓr^vI&`i}C(Q5${#SgYn7߽|1˳oN/.[_\nnuoon_._lnY! 6Cw;iV{ GV1#?Syof|)bMߐ9|4ۙ&[F /2_SvqYױ)5Skҩ>lrsa&62_L-rQEd P-!ȗEJI0c(g΍McĒ6OK1łɽK 1{WEPh®Ǜ_~sl:w-1̗PB "[>JhJڅY" 8[/(3]bm PU.6}.})j K3Rq t=SB=nӳR3pF+1zs ~Gܷ|mH҉پj4][]b 3gOBycOrVKcs)#s,.L Q%`'yA^S@8d-O_=j)iR>S7j?2eMu_$AA>K[cʠ1 z 򢨎uv/Yp|/K2٩%kc@(Ӻ9,Ic\H,,"?'SQXB#-FUb|y 5Qqy |lRK263O8!3r2,RXQ }W*|'o}5G0|!stdӀoܦ9M cZPQ Nyh6̋kiNJTZ$w$:E a9ȦK\MW6ȕqLutKx@fF*9batbq~f:BZA!3eC^*Nx]Y8uD(w\WJz,|W7CAoG<.*?]\_ư+NgR Yu1 qZ6eOz9X3ɦ ؤAJ؊7ETYDVu$bD Ԃtgϧ|Yoؽ+%5g+F MMķ1ց*VZ'IbG$~K~~:<<t,\fBhNG9.7SI1Pezl[Ob"yzFg%+7GݖҜ|)dFKj=ʋOSjt2JFzc! L,bsnߥ5nCW`f$pϳR[[P{V}2]!\ףpnYZ}8s){b-9c󳵫U>̟"X[gCP] EN*Cwݯd4 f!%bŵ<ՕںP+mOT@˔Mj }Uk#_1/*yx,K8t3V4yԮZc⻃H^p1: x5f DDE9M\J5kilhEWu!Xh!kN$~q . K N /+ 0?96Cꞯ4,'$oN7g*a̋8{swȒe]a}q3PPGåkhğ4 +S>1*%(y)qN7rIoo]=dL6^Pw eUHb8-!9{t〾՛ 9X[8qH)8:~ XНlgPFSא[ ]=n?|#. X豞v:9<φ*(8!5Qـk}h!HYIxvиn4@ G/Rf󐂼sX~͕jKe+ :ĥfP;a}ݞL1:J8;R!8a=Eroz׈`ywER6"i(ejє{# ~HblmQ+k FbF萔[^5pJa~kr1oV&E*|"WP/{j#'~%kml¹F0 N{U_ཱུiW" lL(8zu8Vv4a ] {UGM7s^moӭ8fun-A&@s ,R2g!Jag !BmrɃ֨zr}-R3>+u$6| )khr#Siz ;ɯ1lpd:%!߈ih@ے%-O*"Ewaq!LėıY֨ZO< 1d22VcDR1;fŽoDf>fGs^z |2:AEu>:%Y4 5Ou站+.%gWi]u{lQeᢈ\<Cg"% M0ڵh$[B$^_)Hh;ǣvhE 4gnru$U_!Wo߲;։Ϫqp\N1o$pfcy UE#q^hE_1AԈ46K_2-YHQ_OVo,䑉+\C'9ozߛ6E<M*uXIR ́ d{ )n֣*uֹ@g`r5$E5NƳ5;7$Z%z"$[0cx[eP{4z?1t.N q܂`>fzs,9lz&h"6LYAq7vI]QW>|&L&2)iccW( >#jI,iRq()f3-E4>!L*7Kf9ΞiYYFBTD- vdܔ(&֓q@_ٜ,}\\l(B|Z ڇFcRj-F{a^-M#q=/`yV Aho8c=6=chrU~z[}sD?TJ"}IQİZ7%+[ȡVH^" TT J"9Xhoj<ڜO9M̽Tոm}O-Jwsaj腥[3Pd3I :Rs oIyu7 Xtx}˥YWuZ  @\ݳm Y˕3-xULHU:D~pIlwQf=Q$sN@ UZ169bD|CoOLqP:!n;9˾B2F'x..ho`Mc3ɲw bZA#sio0!4TCqL%{Y9Y޶EmW= ]7$>2Va|b\7~9{g;+-H]>փ{" q 19$c'L߅tJMo]-$ke25:(əUVIyqz'1V" ||K'j'xq:9BkO fU33z8hL{֣s)W8<StSx̩9+mf4M~mX'”ڂc։?H޲*x`' ׶-֣hi0wk_2QuшTwDӸ i#XF}VDTvI"^T5o EfL5#'R3ʹc@$6eid,O&&G5 6og@g_g&}˳ɢS^lq\-`3f=Vm 5zGc*8O&Zt z@Z VDpQYrOessHmAўcXJu#g GA:$ʄ?RP06) V6 q2,%1Wne26V#?4MP.bU<_7!JL/cq5x5G2JvsꜱyȀ=vCe)wV@-@|7?[ER#*+c[XgD: r_R(KO؛dX01CۺM&wAjD́dMz9x:L%]J΃"I a,@{[gwS,pR#Y\6!Rj.Q Toj*EʼٜܞInqϸoM}7}FIRX kPAlpPJاvcvġqj{B|*GEU݌ja¼ᶥ1 hV\Ư=DU~9_wHyAW='U-(Cd^?H%F)Y%*y&H]PEhޜD9ŵ`TX̗Pq?8 [Mb9s sOj_ɥ&:x./꘍Sv s5wiI-Nm2 oI~ yI?Dq_|ՔƑL 6l"^kd;]Z@ef6A!3eDiFNOABmm RVPN[7^.w g66Voc:KhVw,y۹E ,ۭP?Ok|rYzkq! O|tH >.1 0)ϓΓ"[47y1lr δxɀ7)]wI k/ڔуWFK6#qcۯGߪI,ǔQҽ$9&&ߌ~;<`߈_+5ݪ^:YU/*]|ЇhsͶnGm('jS끬630(۴kT]=4h$`jSqKکs۵pG>jwې퀶c۩ߖ|j{:w&2sݘY%s*o-t"PdB+";"dd.D3ҞTyy hŎ1'BiT,vJ_hǑ^pdF|791̸&7;nNaٜ1]^N>V$6tڽ(Gm:;Eb7J4aAMSm&4𿸸P:@ccvft6ѳdΟ2s?8W:Msؚ@;|jdDh̶;8QKg6a<⧸ {>:N*oK~L9c )* qb#>'^5l er vx_+烈 y6_t 375d F4I^_Ջ7[-0`1ck wF 2 ԯ;=8^Sc, b _[bJG"dyPD_@49VnT4}鑍X9sgS>J,-s.A^I9>IF4J&䠫ڢ%U9Ү!Vaav%_;ZY(:Shg2k,QRG׌̱ϓ *WCxѱ4cé 7xYj_cHZa"DO~xЋ"'ns.HO:|dGkÆF050o#/F[RÝ8TD>c3 \zߋܞ.6y*P"Pd^j&)y y;]]g!ͪ&lgwk=# 1t눇wir?/_HTa(CPJ9xZ@><<yE?Fgz}3~q=dmNR}GUZ)^`qsʺ6855f@?GDpsO&Q*%!w}%p>V?ε;ccEr\: VVԖgN/SASfda.6׬0gg7tI*./sҜ7/Xzm =2#e-~61'hEX]q2Zcx p2ώ)tFInʆ*3Fu]Üi06kd$-nJ65 4pV2_ʹ y쓪MxYIQ{fݮ6hsK }ێGVV χWWB54W1 Ъ{FwL7=Dі\y%y8J!k":y>Me Jˡ76}&I(;":{qG%Fx9ŗOzdeoOB .m%$L7}%8OdZ/ļFHCq sUkƷ !#O,^)KQG쎑J.H|M=/=5 OA;E2O,>[4bHߎ)EJ[U2=W R$9[Ąʯ8mgrO p%bLie︚Xo}GO 'o8ҵl2xˁC Ȅ'rq`x8"S)ɐGV?]Ig)LHge 5LmKnXaJM%+D1b9T'7!$@۴jvnߺ)(,3 \ޤ#F5\G/29ᴍzHNpz?~6lt[lm{{v|Qzy2Q1RBW_7^Sv]n y,OBvP̛=e34cb{{7-{O˯ u`;^66cT)N- z#0uIȊ#58~Gxѱwi(z8֎W&)Vk ߆W-m VXyaDGg/im[΢W:_{L2 I_"cK2f_4IjHΤ Y륯AI`.=cUޢxYg_f\[&=}p10RkN* TSR?Ts\C 9חf'{8x\K`.ra[?m*,k34›^R,-(u?q4>y~y0]EϣG"tGC>(h8˧8ַk]h<:8~n+߂~bcrS'@/H䝃pQ>aR̜u ^ wL/ut 5 \9\e9p6?"==Dv8q6miwvBp,[AX֭ņ>p֑zCO3C_'ܶ+r~[w\[ͮز}G2K[LW@u[{vipCel-lnL?TϞu7я_^<˫R7wn$Urs):HiK? km|#YmyRd*2"Zf$zRΖINϰ݁+n*A&G:;xͿRr񽽸|9+zQ]w>Ë  ѧvT͒ph@=y.d[M(}BtHu6kM-UcwquK_$Eo!V6PK IPR7R& cpython-3.9.2rc1/Doc/c-api/unicode.rstUT&,`}iwؕw S]Cq,eW$*Y(֖\t*-@䣈4M:w RwWl[`MI凇ް yJyv/7#f?4VχII twjz5OM?#0&?ԽJR:~ws5v9 Sq^2gjv?c c-=<{zX4hٙg A|jLq$^I״+,$WZu`=pfʼ$_i.=5fxD/aD0T')[8=o8,mdΕe|yڇzO^KLaRG^γ/?? 3x3v0_ԡvy'=p޷e r58Fj`8Qg+Cī8.w qϽ0I2Fc>T e<:ל7~1Wx`W*_(H`g|X- uA HArEQ1pKo,(:'h`j o9 ۰\{&)e}aax+H]eu#b O.zVxq: ]@ 4@c<2iL.ET{d-B gS;9zW &TW# %B.8! FHp#8kh\EO! #jP\4)޹RB>>0q£EAR^" C/ (p><ӏs\";pg/L-w[7S4v MjL`2<rS5(g'>R"g6bs풟sHZag "MRJ}f㯉@9hBoI2)<SӸn$p[-a`$-%1J\u\Md,͔o |`@i T˓`C$Yb3 41co $&61G7X@~!áʬ4]<QJ)}F.xف1z.O2_M=%B7..V݇{#wVLܓ8 cZt]\:FpHH AʆixE!$1J0 IO A$cl}W}A/S9>;voѢYp5 f@3E=Cyp)deB cw@+TD{h&4A~Y)\3unhUJߪet_ ~#l FsPQLk L3kn+O5D]-=$e1j:Eؽix a5nu2'wyr $V5 TjԣsjMSkrAH\k&8 6$> c:`kw1 NPdBP~#k!bvYjLjf^a2㒵Z]E}hXĘ̀2 f^xmpf;4]awd8&-\10p(ّ9Z+^rF:TBj8N`*~CԦW(y]Q&|/W$Kq@6'[͕8QU-$)ǚX=q8y۳lC6^~GXwE&. fS$)|D['+j!3I :S5> 3+8ul*tAweM-QIC<\F|F"mRhu1u'P_Ǣ-]/D.ެgm,8^1p4 g ɜxm,dzPHrKk I 3dCe#Lnu/@H ŷ8!iPh m0"I? IM@5;lwo?8=R.ԲBksG@ OOO}wr?}va)k1%v3b@yM7gt]Fix3+<Cs .K=7'y6Wr$FS|^\K:"ֱugbLj],oDRgslVkT:5d_E1_}i A/+ U 8ɳ='$u^"k E O;q&8M 'LQT0#>_?(D_ =̋`s}+sPq  &isCGS1ba<:G/@slf.[d->0eEP^m׽I L .HT>Q6]m]؝(Ʉ*M_p?=}h>` Obeh)Ns!X)9Ú _s%_Z^{ޗDx:0"fW7/eBΓH=F 36s/F-z,5_`daC2dQ]ɝӽW sy2/ ?F8hZ(`7 8pN0"-0"()yo-Da6@S *,p3 -H?y⨐wzO R2I +!YAŹsbL Uw&H.5p{BxYFPg%Řcbrh0=ZjOP13Xhd秙e1:8Ԕ+Wˬr~,iwov|g%,vϜ9MH q0  CFjOiz&p(┃1) Fa(- `anF#KP ҥ1 % pozyݫ#ָ;;!F,lf(*mFh>34?G/SZ]]ӷGpğ=>1;L)scN3ꟺ->k<_}*kD(8'VzCga ~U8\z[w7sa$po?!PDŒT66ݵ/,hg9~Y.w=wv&ӮϠ{%Nw:|]k;ۿ]עڠuz׵(~(@C{صF2|u(~p@Nwahg?Įvhxy뇡F"=uZ~o*&cǽͮM7b8b9f0N^[Jc#U=>F_ҭ`t|l GX2T(+oWM5>UK[db auw~N{^kX. ,WjS\C|n~.f7ٺ25D5֏Svu o3f\-9v5v'-ネ]Xϻ^w(cPFO'eVטIgeRd{af*#0t.Ṕ:mKz!Sц R8{>'>} iVhz((e5#QA>9PB&VVsqi ZhTKL Go3OJ3 u(Z JW =?Ժ?QH1RuNy BZ Cz|Pu/[~5Ot3"j)ylj24< b zZ:Yvr?(D< J谾UϠCo:(Tzh27=ڡItNR7(: 3pi Hc̘й0Nh59X3 Y*"nB-|F1i~b–JÒ2= KE|øi0aqǣ9C{ZCԄPK* `oY΄>ݼ,q2[(g}yr сyrI:C`-,`dqj,0zP&qٓJI)dÁ56c*s ?TMwm-GJ!eDIfB닅QX*<z]y e6g+{9}) C[=:F|ei/Xr#k-:9& WH h6hs#j^,DQSF/lÉc+R 9yNVm|&~UAS=x5G9\Ywڗx%[Vڥt>IexeXtBD`!+VHAu'fVXfo b}:&m_ ue"aª)yvdF`Eɐӯ2haZyuTd4e<骅UD6Oe5H7BLȘk nX]ms1n0"ir&l7u;@jRa)^Џ /e-kN-j雹`8m9JX!`Ӽlr"*2I hPmYuMAZnZ$R7vF-U$sEqƺ,#QfQyQLRtV{Ԓo]`;d~/EBYhnՇ^!Z"F.A-2)g\GFyGʖ05q5!%p)RKPt:jݵgA!!ՌBw'V[wPÊ= b!(Qc`/IN]C7jmmnWp7̲f;soQ,4|G#rZ[OX@SDĒZ6 J2Rml-9T:}:yD-59ߠe;C H٣#.fH`U2.n~ !"(/`Vac|?Rתּ?iS|ą;-QЖcK &ъba8k=C hq0vJĽpGs"&,}n -ѕ_Һ@ ~f~_=7k. kEsHVƒ早Q5$ޱ ۳t3uO8=3̻I6xN-Rn>!y>C!rpTs8 tA/[H9=9-0'Y{_Aʕ="p& ܈iIUt@HgZuHLcpn(b]TNwhӦʈ@ԠI&BVU(cI'Q8YK\!kwEa7; v%{0<雪2$yjn_bu W1`AjšrPX7`0Θ.H LEP~:?"9֟ڵi}u@% `K !'G0o h:=li^R.'FԚAC~ѪGs兛 (k2|A_BJR5M *iţ \1iYH{mGK+K3.x;է-&$E[մd,,FEk *wCfNք:E^z E/Ez7#9Ϣ6r☼OBZ# 0q\mOtWXE"3+Ҹ;8qLaGMYCy(݂|JT%Ʈ[1q6%:1pY}H%N2A5/h ~i7<.щ.;1!4{@t:0Mj rMiUqTuBxS1 Ɯ ~RIjQOrбWNl}a j7e+]vvgòc %PLMi&v\j&t0,s]'+pZ9R+;%{$̣B֪i_5TBTu1ķa'ԱB ɸCBlwÜb A,GVWn1>W|;k>^(.&8JGc0¤Z=0sbjXKW.q2K<ؘ !^"SŅKI.i?*ƴ>j 4+ɠH9:=aeT8苤J#*SΌNO&ňR.FF*tKgV!sFCx"Œbs>ʤPzgdr:ZE`#nntIxħKmɡ4cH`9-0û&uA֪YZRi)y0jCf= ,\ t c>f||9!2Ukmsb8! ro~ASytZ$|Hh"-Pߔ r6v>*HfmQ@m s y< 4s:Z19p2HQdL|2~Ch+lﲛiχ jԅҊpZKOx;0,矤#]OB 2\!{7Ty8i Xs;N=nN4 #: >5R͖DcŜKI9#զtvBc;{{$ȊQUGh "j]C0֬v|>ŬJm<-a.;MLX븼owo^햀dbr+ UKBW5sX[H&b=s%W)oS ĸ{ED7¯ X[p q; )=>SH;X{|J[=o3XWܕ4A*pQ1$o]_@Z(3 :pkÊ"G" _Lå2aķjtT\ k$:&>[QE W[K*-'lC{9G[r=myq!fe$R07Egc|ӓ݁VNT"!RaY,N "[E@51WWjgkr(7e%ޗ%kCP6OoK4K-}:CLRbw}X4 ;!ϯGzcQނcQg({hTO;RbtcKܵLк^_Lox(;2+yވT޵ė\"2nK YTtnSZR&0?>;pB]J&t*چ<ABH5ܛC{KlD̻,{-sS-*H6jNe .$z\o'8g~J_#hblS"58Ʉ9315y7 f+n1-D!VP|i`Y "@@;oB4\vD8 G-1""0֗MG#`5hIX7!'5DRșs$Hʆ8tKTq JSѽvY}a 9igRfH8橱F)QN%L'ޕnpɨA*-eXٜn#Ia>R,v^d`.!C9^ѧk9k J >SJ>_Zkjͪ*WB6!k ͍dj#!,ϠE<)23lMxf^p5ضbA/F*A;ڱ(10 MzKI"ZWH_Ѩ@6. A/II0MoٚZccdQ+1d͸cF\s-))cid#*u\3XJVT73BtTeMRT+w ,Y=mJXώwEj )Γp"N]iB$y6rVMQ8єDgU|kKi >u/}"6gjnj[ugTG{ xA8Tb+j(t?K;>׆qDEWR`?/p<+| ˆ +ʨ{|Ǔ”YQwBUiz c tC0 -b((ymMt%/VcWD)]š 4W*qn#`5T(=\/4J~|wN:NHc}&8X*׺a0jEZ޿'Wd4Jo Q%Al8GX/p۫=.:I[Y]%buރYK`ȿsdw%yEjrmdGÇu<; ȋZ$& $1x tVA ?ctw!%`J?%ʆiHǟ<(Yh 3KC81OS)y0F ג!HV ph76. Ki0 8To +ZmWplΞYOO&) Ψf1QYWa_!s5wBƚ124 ԓb} )~םkJb4(6 kzXR=@L"̷. 22'P4@Ķ׌0S3S6n_QI}gD9HYIvF`tz(uܸ||C=V #NV⇎Bv3("ـ"[ε(?U&o]̐ Fh.'Ca= VZn(tØE7WokR^,qmRzG"5XhRF{+A+q.WZiw)T(dq2QGU@G͚@݌H_A) *Z:MI'6?& '$JߢQO u%g;+5ƁG8ƈȢAT^קz}~LWXix2ڜ >(vW4  S{go M<.$qniBdĻv.Nл}N>Nfr`{IYr׌+g\mDsȐtΕ-0ߝQܥx* m0Q^'v \Wa"5Ö\q-'UxNKfߜ9 K|R|_. ua$L(c¥aAz*{ea^﹉ Jyfbri+,şs2 k,Wn*p.ŧ&(.뉦N/~(_ZtMg'ژt"^O]l)1$99vtgW/Q~p?NB6 E5P>xt& ]G7 56璍n C8^-r[3Ѥvj!QuØ?tGj)h5Ld 1M0q!ZIhjeoq\O@ecW #V2ݹqty]2>u#Xzz ϯ'=4;B\%xJeh c>ю\8{i=@1sQe$ W%L&w!zuO||ے1Jcgp(\tH(k\iiFlYTqTZ3(H~fw ^$ AYdZ]=PK IPRݗN( cpython-3.9.2rc1/Doc/c-api/utilities.rstUT&,`MPAn 9W+~\ m"K-όl-B\C_ k4d2m<9z#ƒ1CC/7ci[n`טW,\6(Lx„ZX#"}?4sK$7p α[dvڟ/UxebY,vfh(N=Pɣô$83 <PK IPR18D' cpython-3.9.2rc1/Doc/c-api/veryhigh.rstUT&,`\[oɱ~he)b<bH2i4ʼn(!=UuυR-ETWU׽=ezO9x0L&jh-C-JukMnGU͝JsU.S^P4TfJ2O&J>n˥͕UĨx[if-Vj0Ř- ܖ54Mt\je Sj r@ua`H+tp]f]0WTnL- Ru_JrrA*6GY ˴КF3Y2Z߃y~ǥ}T#5"dYf71mH,xG+`_,Μǚ>̞R?i]it}s{5ڰ SqR*QȍIUsD N)&Umi;;DWU\VD#I!&/;B!964j˔p'$OnjvX%_[Tzei@ȚNaeʵQ3}-m%@˅\Ӿk[ڽH$y;zCŅ%:߲;16lXTysVA&b4i؎ )-YXmHϋYF#x1(ф0ZdJ:]$ezڗ~tV!z < fEZ7c1jq2ϑΎث!rk/nL#Z`”Z` -F>=b)PfI!ttUZC"H+E[ʒ[FҼt(.hs4ͨͷ=0A4It(U+PZ2G[FBcL)mbŊ2L'f2fk+ -!>]+~<(m{c8(y>_d"k;: " +!$"frf4 -.6)IC4%,+ Eɘ]Gjȴu{ac6hIvRܭM\^g>˙>e[F~NW)l11ccv$> 1#? G3‚$P'I?M~>ݧ*oɯ ah+vjI<&X|I%2q-WO`#Z 91# 8#N"l,x×(:֎34w}cF+ī6'w,ex3'{CŸ|þV6NBBJ-j)1YrNSҜ-`Z;S%2<[E4Z&UV#4`B͚Cl x=i"b