From 660d86d42bc5089a8fa13870393f503f6283d191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matteo=20=E2=84=B1an?= Date: Tue, 14 May 2019 22:12:49 +0200 Subject: [PATCH] A Great Update: py-kms_2019-05-15 --- py-kms/KmsDataBase.xml | 1982 ++++++++++++++++---------------- py-kms/pykms_Aes.py | 739 ++++++++++++ py-kms/pykms_Base.py | 255 ++++ py-kms/pykms_Client.py | 266 +++++ py-kms/pykms_DB2Dict.py | 47 + py-kms/pykms_Dcerpc.py | 731 ++++++++++++ py-kms/pykms_Filetimes.py | 105 ++ py-kms/pykms_Format.py | 248 ++++ py-kms/pykms_GuiBase.py | 464 ++++++++ py-kms/pykms_GuiMisc.py | 334 ++++++ py-kms/pykms_Keys.gif | Bin 0 -> 537089 bytes py-kms/pykms_Misc.py | 473 ++++++++ py-kms/pykms_PidGenerator.py | 85 ++ py-kms/pykms_RequestUnknown.py | 16 + py-kms/pykms_RequestV4.py | 132 +++ py-kms/pykms_RequestV5.py | 180 +++ py-kms/pykms_RequestV6.py | 108 ++ py-kms/pykms_RpcBase.py | 45 + py-kms/pykms_RpcBind.py | 175 +++ py-kms/pykms_RpcRequest.py | 70 ++ py-kms/pykms_Server.py | 266 +++++ py-kms/pykms_Sql.py | 96 ++ py-kms/pykms_Structure.py | 763 ++++++++++++ 23 files changed, 6589 insertions(+), 991 deletions(-) create mode 100644 py-kms/pykms_Aes.py create mode 100644 py-kms/pykms_Base.py create mode 100644 py-kms/pykms_Client.py create mode 100644 py-kms/pykms_DB2Dict.py create mode 100644 py-kms/pykms_Dcerpc.py create mode 100644 py-kms/pykms_Filetimes.py create mode 100644 py-kms/pykms_Format.py create mode 100644 py-kms/pykms_GuiBase.py create mode 100644 py-kms/pykms_GuiMisc.py create mode 100644 py-kms/pykms_Keys.gif create mode 100644 py-kms/pykms_Misc.py create mode 100644 py-kms/pykms_PidGenerator.py create mode 100644 py-kms/pykms_RequestUnknown.py create mode 100644 py-kms/pykms_RequestV4.py create mode 100644 py-kms/pykms_RequestV5.py create mode 100644 py-kms/pykms_RequestV6.py create mode 100644 py-kms/pykms_RpcBase.py create mode 100644 py-kms/pykms_RpcBind.py create mode 100644 py-kms/pykms_RpcRequest.py create mode 100644 py-kms/pykms_Server.py create mode 100644 py-kms/pykms_Sql.py create mode 100644 py-kms/pykms_Structure.py diff --git a/py-kms/KmsDataBase.xml b/py-kms/KmsDataBase.xml index 5554b42..cc454ca 100644 --- a/py-kms/KmsDataBase.xml +++ b/py-kms/KmsDataBase.xml @@ -1,991 +1,991 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/py-kms/pykms_Aes.py b/py-kms/pykms_Aes.py new file mode 100644 index 0000000..dab0ef9 --- /dev/null +++ b/py-kms/pykms_Aes.py @@ -0,0 +1,739 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# aes.py: implements AES - Advanced Encryption Standard +# from the SlowAES project, http://code.google.com/p/slowaes/ +# +# Copyright (c) 2008 Josh Davis ( http://www.josh-davis.org ) +# Alex Martelli ( http://www.aleax.it ) +# +# Modified for py-kms, Python 2 / 3 compatible +# Copyright (c) 2019 Matteo Fan ( SystemRage@protonmail.com ) +# +# Ported from C code written by Laurent Haan ( http://www.progressive-coding.com ) + +# Licensed under the Apache License, Version 2.0 +# http://www.apache.org/licenses/ +# + +from __future__ import print_function, unicode_literals +import os +import math + +def append_PKCS7_padding(val): + """ Function to pad the given data to a multiple of 16-bytes by PKCS7 padding. """ + numpads = 16 - (len(val) % 16) + return val + numpads * bytearray(chr(numpads).encode('utf-8')) + +def strip_PKCS7_padding(val): + """ Function to strip off PKCS7 padding. """ + + if len(val) % 16 or not val: + raise ValueError("String of len %d can't be PCKS7-padded" % len(val)) + numpads = val[-1] + if numpads > 16: + raise ValueError("String ending with %r can't be PCKS7-padded" % val[-1]) + return val[:-numpads] + + +class AES( object ): + """ Class implementing the Advanced Encryption Standard algorithm. """ + + #*py-kms* + v6 = False + + # Valid key sizes + KeySize = { + "SIZE_128": 16, + "SIZE_192": 24, + "SIZE_256": 32 + } + + # Rijndael S-box + sbox = [ 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, + 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, + 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, + 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, + 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, + 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, + 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, + 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, + 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, + 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, + 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, + 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, + 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, + 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, + 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, + 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, + 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, + 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, + 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, + 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, + 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, + 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, + 0x54, 0xbb, 0x16 ] + + # Rijndael Inverted S-box + rsbox = [ 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, + 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, + 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, + 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, + 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, + 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, + 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, + 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, + 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, + 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, + 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, + 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, + 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, + 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, + 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, + 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, + 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, + 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, + 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, + 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, + 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, + 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, + 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, + 0x21, 0x0c, 0x7d ] + + # Rijndael Rcon + Rcon = [ 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, + 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, + 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, + 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, + 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, + 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, + 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, + 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, + 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, + 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, + 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, + 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, + 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, + 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, + 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, + 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, + 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, + 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, + 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, + 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, + 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, + 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, + 0xe8, 0xcb ] + + def getSBoxValue(self,num): + """ Method to retrieve a given S-Box value. """ + return self.sbox[num] + + def getSBoxInvert(self,num): + """ Method to retrieve a given Inverted S-Box value.""" + return self.rsbox[num] + + def rotate(self, word): + """ Method performing Rijndael's key schedule rotate operation. + Rotate a word eight bits to the left: eg, rotate(1d2c3a4f) == 2c3a4f1d + @param word: char list of size 4 (32 bits overall). + """ + return word[1:] + word[:1] + + def getRconValue(self, num): + """ Method to retrieve a given Rcon value. """ + return self.Rcon[num] + + def core(self, word, iteration): + """ Method performing the key schedule core operation. """ + # Rotate the 32-bit word 8 bits to the left. + word = self.rotate(word) + # Apply S-Box substitution on all 4 parts of the 32-bit word. + for i in range(4): + word[i] = self.getSBoxValue(word[i]) + # XOR the output of the rcon operation with i to the first part (leftmost) only. + word[0] = word[0] ^ self.getRconValue(iteration) + return word + + def expandKey(self, key, size, expandedKeySize): + """ Method performing Rijndael's key expansion. + Expands an 128, 192, 256 key into an 176, 208, 240 bytes key. + """ + # Current expanded keySize, in bytes. + currentSize = 0 + rconIteration = 1 + expandedKey = [0] * expandedKeySize + + # Set the 16, 24, 32 bytes of the expanded key to the input key. + for j in range(size): + expandedKey[j] = key[j] + currentSize += size + + while currentSize < expandedKeySize: + # Assign the previous 4 bytes to the temporary value t. + t = expandedKey[currentSize - 4:currentSize] + + # Every 16,24,32 bytes we apply the core schedule to t + # and increment rconIteration afterwards. + if currentSize % size == 0: + t = self.core(t, rconIteration) + rconIteration += 1 + # For 256-bit keys, we add an extra sbox to the calculation. + if size == self.KeySize["SIZE_256"] and ((currentSize % size) == 16): + for l in range(4): + t[l] = self.getSBoxValue(t[l]) + + # We XOR t with the four-byte block 16,24,32 bytes before the new + # expanded key. This becomes the next four bytes in the expanded key. + for m in range(4): + expandedKey[currentSize] = expandedKey[currentSize - size] ^ t[m] + currentSize += 1 + return expandedKey + + def addRoundKey(self, state, roundKey): + """ Method to add (XORs) the round key to the state. """ + for i in range(16): + state[i] ^= roundKey[i] + return state + + def createRoundKey(self, expandedKey, roundKeyPointer): + """ Creates a round key from the given expanded key and the + position within the expanded key. + """ + roundKey = [0] * 16 + for i in range(4): + for j in range(4): + roundKey[j * 4 + i] = expandedKey[roundKeyPointer + i * 4 + j] + return roundKey + + def galois_multiplication(self, a, b): + """ Method to perform a Galois multiplication of 8 bit characters + a and b. + """ + p = 0 + for counter in range(8): + if b & 1: + p ^= a + hi_bit_set = a & 0x80 + a <<= 1 + # keep a 8 bit + a &= 0xFF + if hi_bit_set: + a ^= 0x1b + b >>= 1 + return p + + def subBytes(self, state, isInv): + """ Method to substitute all the values from the state with the + value in the SBox using the state value as index for the SBox. + """ + if isInv: + getter = self.getSBoxInvert + else: + getter = self.getSBoxValue + for i in range(16): + state[i] = getter(state[i]) + return state + + def shiftRows(self, state, isInv): + """ Method to iterate over the 4 rows and call shiftRow(...) with that row. """ + for i in range(4): + state = self.shiftRow(state, i * 4, i, isInv) + return state + + def shiftRow(self, state, statePointer, nbr, isInv): + """ Method to shift the row to the left. """ + for i in range(nbr): + if isInv: + state[statePointer:statePointer + 4] = state[statePointer + 3:statePointer + 4] + \ + state[statePointer:statePointer + 3] + else: + state[statePointer:statePointer + 4] = state[statePointer + 1:statePointer + 4] + \ + state[statePointer:statePointer + 1] + return state + + + def mixColumns(self, state, isInv): + """ Method to perform a galois multiplication of the 4x4 matrix. """ + # Iterate over the 4 columns. + for i in range(4): + # Construct one column by slicing over the 4 rows. + column = state[i:i + 16:4] + # Apply the mixColumn on one column. + column = self.mixColumn(column, isInv) + # Put the values back into the state. + state[i:i + 16:4] = column + return state + + def mixColumn(self, column, isInv): + """ Method to perform a galois multiplication of 1 column the 4x4 matrix. """ + if isInv: + mult = [14, 9, 13, 11] + else: + mult = [2, 1, 1, 3] + cpy = list(column) + g = self.galois_multiplication + + column[0] = g(cpy[0], mult[0]) ^ g(cpy[3], mult[1]) ^ \ + g(cpy[2], mult[2]) ^ g(cpy[1], mult[3]) + column[1] = g(cpy[1], mult[0]) ^ g(cpy[0], mult[1]) ^ \ + g(cpy[3], mult[2]) ^ g(cpy[2], mult[3]) + column[2] = g(cpy[2], mult[0]) ^ g(cpy[1], mult[1]) ^ \ + g(cpy[0], mult[2]) ^ g(cpy[3], mult[3]) + column[3] = g(cpy[3], mult[0]) ^ g(cpy[2], mult[1]) ^ \ + g(cpy[1], mult[2]) ^ g(cpy[0], mult[3]) + return column + + + def aes_round(self, state, roundKey, roundKms): + """ Method to apply the 4 operations of the forward round in sequence. """ + state = self.subBytes(state, False) + state = self.shiftRows(state, False) + state = self.mixColumns(state, False) + + #*py-kms* + if self.v6: + if roundKms == 4: + state[0] ^= 0x73 + if roundKms == 6: + state[0] ^= 0x09 + if roundKms == 8: + state[0] ^= 0xE4 + + state = self.addRoundKey(state, roundKey) + return state + + def aes_invRound(self, state, roundKey, roundKms): + """ Method to apply the 4 operations of the inverse round in sequence. """ + state = self.shiftRows(state, True) + state = self.subBytes(state, True) + state = self.addRoundKey(state, roundKey) + + #*py-kms* + if self.v6: + if roundKms == 4: + state[0] ^= 0x73 + if roundKms == 6: + state[0] ^= 0x09 + if roundKms == 8: + state[0] ^= 0xE4 + + state = self.mixColumns(state, True) + return state + + + def aes_main(self, state, expandedKey, nbrRounds): + """ Method to do the AES encryption for one round. + + Perform the initial operations, the standard round and the + final operations of the forward AES, creating a round key for each round. + """ + state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) + i = 1 + while i < nbrRounds: + state = self.aes_round(state, self.createRoundKey(expandedKey, 16 * i), i) + i += 1 + state = self.subBytes(state, False) + state = self.shiftRows(state, False) + state = self.addRoundKey(state, self.createRoundKey(expandedKey, 16 * nbrRounds)) + return state + + + def aes_invMain(self, state, expandedKey, nbrRounds): + """ Method to do the inverse AES encryption for one round. + + Perform the initial operations, the standard round, and the + final operations of the inverse AES, creating a round key for each round. + """ + state = self.addRoundKey(state, self.createRoundKey(expandedKey, 16 * nbrRounds)) + i = nbrRounds - 1 + while i > 0: + state = self.aes_invRound(state, self.createRoundKey(expandedKey, 16 * i), i) + i -= 1 + state = self.shiftRows(state, True) + state = self.subBytes(state, True) + state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) + return state + + def encrypt(self, iput, key, size): + """ Method to encrypt a 128 bit input block against the given key + of size specified. + """ + output = [0] * 16 + # The number of rounds. + nbrRounds = 0 + # The 128 bit block to encode. + block = [0] * 16 + # Set the number of rounds. + if size == self.KeySize["SIZE_128"]: + nbrRounds = 10 + elif size == self.KeySize["SIZE_192"]: + nbrRounds = 12 + elif size == self.KeySize["SIZE_256"]: + nbrRounds = 14 + # *py-kms* The KMS v4 parameters. + elif size == 20: + nbrRounds = 11 + else: + raise ValueError("Wrong key size given ({}).".format(size)) + + # The expanded keySize. + expandedKeySize = 16 * (nbrRounds + 1) + + # Set the block values, for the block: + # a[0,0] a[0,1] a[0,2] a[0,3] + # a[1,0] a[1,1] a[1,2] a[1,3] + # a[2,0] a[2,1] a[2,2] a[2,3] + # a[3,0] a[3,1] a[3,2] a[3,3] + # the mapping order is a[0,0] a[1,0] a[2,0] a[3,0] a[0,1] a[1,1] ... a[2,3] a[3,3] + + # Iterate over the columns and over the rows. + for i in range(4): + for j in range(4): + block[i + j * 4] = iput[i * 4 +j] + + # Expand the key into an 176, 208, 240 bytes key + expandedKey = self.expandKey(key, size, expandedKeySize) + + # Encrypt the block using the expandedKey. + block = self.aes_main(block, expandedKey, nbrRounds) + + # Unmap the block again into the output. + for k in range(4): + for l in range(4): + output[k * 4 + l] = block[k + l * 4] + return output + + + def decrypt(self, iput, key, size): + """ Method to decrypt a 128 bit input block against the given key + of size specified. + """ + output = [0] * 16 + # The number of rounds. + nbrRounds = 0 + # The 128 bit block to decode. + block = [0] * 16 + # Set the number of rounds. + if size == self.KeySize["SIZE_128"]: + nbrRounds = 10 + elif size == self.KeySize["SIZE_192"]: + nbrRounds = 12 + elif size == self.KeySize["SIZE_256"]: + nbrRounds = 14 + #*py-kms* The KMS v4 parameters. + elif size == 20: + nbrRounds = 11 + else: + raise ValueError("Wrong key size given ({}).".format(size)) + + # The expanded keySize. + expandedKeySize = 16 * (nbrRounds + 1) + + # Set the block values, for the block: + # a[0,0] a[0,1] a[0,2] a[0,3] + # a[1,0] a[1,1] a[1,2] a[1,3] + # a[2,0] a[2,1] a[2,2] a[2,3] + # a[3,0] a[3,1] a[3,2] a[3,3] + # the mapping order is a[0,0] a[1,0] a[2,0] a[3,0] a[0,1] a[1,1] ... a[2,3] a[3,3] + + # Iterate over the columns and the rows. + for i in range(4): + for j in range(4): + block[i + j * 4] = iput[i * 4 + j] + + # Expand the key into an 176, 208, 240 bytes key. + expandedKey = self.expandKey(key, size, expandedKeySize) + # Decrypt the block using the expandedKey. + block = self.aes_invMain(block, expandedKey, nbrRounds) + # Unmap the block again into the output. + for k in range(4): + for l in range(4): + output[k * 4 +l] = block[k + l * 4] + return output + + +class AESModeOfOperation( object ): + """ Class implementing the different AES mode of operations. """ + + aes = AES() + + # Supported modes of operation. + ModeOfOperation = { + "OFB": 0, + "CFB": 1, + "CBC": 2 + } + + def convertString(self, string, start, end, mode): + """ Method to convert a 16 character string into a number array. """ + if end - start > 16: + end = start + 16 + if mode == self.ModeOfOperation["CBC"]: + ar = [0] * 16 + else: + ar = [] + + i = start + j = 0 + while len(ar) < end - start: + ar.append(0) + while i < end: + ar[j] = string[i] + j += 1 + i += 1 + return ar + + + def encrypt(self, stringIn, mode, key, size, IV): + """ Method to perform the encryption operation. + + @param stringIn: input string to be encrypted + @param mode: mode of operation (0, 1 or 2) + @param key: a hex key of the bit length size + @param size: the bit length of the key (16, 24 or 32) + @param IV: the 128 bit hex initilization vector + @return tuple with mode of operation, length of the input and the encrypted data + """ + if len(key) % size: + raise ValueError("Illegal size ({}) for key '{}'.".format(size, key)) + if len(IV) % 16: + raise ValueError("IV is not a multiple of 16.") + # The AES input/output. + plaintext = [] + iput = [0] * 16 + output = [] + ciphertext = [0] * 16 + # The output cipher string. + cipherOut = [] + + firstRound = True + if stringIn != None: + for j in range(int(math.ceil(float(len(stringIn))/16))): + start = j * 16 + end = j * 16 + 16 + if end > len(stringIn): + end = len(stringIn) + plaintext = self.convertString(stringIn, start, end, mode) + + if mode == self.ModeOfOperation["CFB"]: + if firstRound: + output = self.aes.encrypt(IV, key, size) + firstRound = False + else: + output = self.aes.encrypt(iput, key, size) + for i in range(16): + if len(plaintext) - 1 < i: + ciphertext[i] = 0 ^ output[i] + elif len(output) - 1 < i: + ciphertext[i] = plaintext[i] ^ 0 + elif len(plaintext) - 1 < i and len(output) < i: + ciphertext[i] = 0 ^ 0 + else: + ciphertext[i] = plaintext[i] ^ output[i] + for k in range(end - start): + cipherOut.append(ciphertext[k]) + iput = ciphertext + + elif mode == self.ModeOfOperation["OFB"]: + if firstRound: + output = self.aes.encrypt(IV, key, size) + firstRound = False + else: + output = self.aes.encrypt(iput, key, size) + for i in range(16): + if len(plaintext) - 1 < i: + ciphertext[i] = 0 ^ output[i] + elif len(output) - 1 < i: + ciphertext[i] = plaintext[i] ^ 0 + elif len(plaintext) - 1 < i and len(output) < i: + ciphertext[i] = 0 ^ 0 + else: + ciphertext[i] = plaintext[i] ^ output[i] + for k in range(end - start): + cipherOut.append(ciphertext[k]) + iput = output + + elif mode == self.ModeOfOperation["CBC"]: + for i in range(16): + if firstRound: + iput[i] = plaintext[i] ^ IV[i] + else: + iput[i] = plaintext[i] ^ ciphertext[i] + firstRound = False + ciphertext = self.aes.encrypt(iput, key, size) + # Always 16 bytes because of the padding for CBC. + for k in range(16): + cipherOut.append(ciphertext[k]) + return mode, len(stringIn), cipherOut + + + def decrypt(self, cipherIn, originalsize, mode, key, size, IV): + """ Method to perform the decryption operation. + + @param cipherIn: encrypted string to be decrypted + @param originalsize: unencrypted string length (required for CBC) + @param mode: mode of operation (0, 1 or 2) + @param key: a number array of the bit length size + @param size: the bit length of the key (16, 24 or 32) + @param IV: the 128 bit number array initilization vector + @return decrypted data + """ + if len(key) % size: + raise ValueError("Illegal size ({}) for key '{}'.".format(size, key)) + if len(IV) % 16: + raise ValueError("IV is not a multiple of 16.") + # The AES input/output. + ciphertext = [] + iput = [] + output = [] + plaintext = [0] * 16 + # The output plain text character list. + chrOut = [] + + firstRound = True + if cipherIn != None: + for j in range(int(math.ceil(float(len(cipherIn))/16))): + start = j * 16 + end = j * 16 + 16 + if end > len(cipherIn): + end = len(cipherIn) + ciphertext = cipherIn[start:end] + + if mode == self.ModeOfOperation["CFB"]: + if firstRound: + output = self.aes.encrypt(IV, key, size) + firstRound = False + else: + output = self.aes.encrypt(iput, key, size) + for i in range(16): + if len(output) - 1 < i: + plaintext[i] = 0 ^ ciphertext[i] + elif len(ciphertext) - 1 < i: + plaintext[i] = output[i] ^ 0 + elif len(output) - 1 < i and len(ciphertext) < i: + plaintext[i] = 0 ^ 0 + else: + plaintext[i] = output[i] ^ ciphertext[i] + for k in range(end - start): + chrOut.append(plaintext[k]) + iput = ciphertext + + elif mode == self.ModeOfOperation["OFB"]: + if firstRound: + output = self.aes.encrypt(IV, key, size) + firstRound = False + else: + output = self.aes.encrypt(iput, key, size) + for i in range(16): + if len(output) - 1 < i: + plaintext[i] = 0 ^ ciphertext[i] + elif len(ciphertext) - 1 < i: + plaintext[i] = output[i] ^ 0 + elif len(output) - 1 < i and len(ciphertext) < i: + plaintext[i] = 0 ^ 0 + else: + plaintext[i] = output[i] ^ ciphertext[i] + for k in range(end - start): + chrOut.append(plaintext[k]) + iput = output + + elif mode == self.ModeOfOperation["CBC"]: + output = self.aes.decrypt(ciphertext, key, size) + for i in range(16): + if firstRound: + plaintext[i] = IV[i] ^ output[i] + else: + plaintext[i] = iput[i] ^ output[i] + firstRound = False + if originalsize is not None and originalsize < end: + for k in range(originalsize - start): + chrOut.append(plaintext[k]) + else: + for k in range(end - start): + chrOut.append(plaintext[k]) + iput = ciphertext + return chrOut + + +def encryptData(key, data, mode=AESModeOfOperation.ModeOfOperation["CBC"]): + """ Module function to encrypt the given data with the given key. + + @param key: key to be used for encryption + @param data: data to be encrypted + @param mode: mode of operations (0, 1 or 2) + @return encrypted data prepended with the initialization vector + """ + if mode == AESModeOfOperation.ModeOfOperation["CBC"]: + data = append_PKCS7_padding(data) + + keysize = len(key) + assert keysize in AES.KeySize.values(), 'invalid key size: {}'.format(keysize) + # Create a new iv using random data. + iv = bytearray(os.urandom(16)) + moo = AESModeOfOperation() + (mode, length, ciph) = moo.encrypt(data, mode, key, keysize, iv) + # With padding, the original length does not need to be known. + # It's a bad idea to store the original message length prepend the iv. + return iv + bytearray(ciph) + +def decryptData(key, data, mode=AESModeOfOperation.ModeOfOperation["CBC"]): + """ Module function to decrypt the given data with the given key. + + @param key: key to be used for decryption + @param data: data to be decrypted with initialization vector prepended + @param mode: mode of operations (0, 1 or 2) + @return decrypted data + """ + keysize = len(key) + assert keysize in AES.KeySize.values(), 'invalid key size: {}'.format(keysize) + # iv is first 16 bytes. + iv = data[:16] + data = data[16:] + moo = AESModeOfOperation() + decr = moo.decrypt(data, None, mode, key, keysize, iv) + if mode == AESModeOfOperation.ModeOfOperation["CBC"]: + decr = strip_PKCS7_padding(decr) + return decr + + +class Test(object): + def generateRandomKey(self, keysize): + """ Generates a key from random data of length `keysize`. + The returned key is a string of bytes. + """ + if keysize not in (16, 24, 32): + raise ValueError('Invalid keysize, %s. Should be one of (16, 24, 32).' % keysize) + return bytearray(os.urandom(keysize)) + + def testString(self, cleartext, keysize = 16, modeName = "CBC"): + """ Test with random key, choice of mode. """ + print('Random key test with Mode:', modeName) + print('ClearText:', bytes(cleartext)) + key = self.generateRandomKey(keysize) + print('Key:', bytes([x for x in key])) + mode = AESModeOfOperation.ModeOfOperation[modeName] + cipher = encryptData(key, cleartext, mode) + print('Cipher:', bytes([x for x in cipher])) + decr = decryptData(key, cipher, mode) + print('Decrypted:', bytes(decr)) + + +if __name__ == "__main__": + moo = AESModeOfOperation() + cleartext = "This is a test with several blocks ! Some utf-8 characters åäö and test continues" + print('ClearText: %s\n' % cleartext) + cleartext = bytearray(cleartext.encode("utf-8")) + + cipherkey = [143, 194, 34, 208, 145, 203, 230, 143, 177, 246, 97, 206, 145, 92, 255, 84] + iv = [103, 35, 148, 239, 76, 213, 47, 118, 255, 222, 123, 176, 106, 134, 98, 92] + mode, orig_len, ciph = moo.encrypt(cleartext, moo.ModeOfOperation["CBC"], + cipherkey, moo.aes.KeySize["SIZE_128"], iv) + + print('Encrypt result: mode = %s, length = %s (%s), encrypted = %s\n' % (mode, orig_len, len(cleartext), bytes(ciph))) + + decr = moo.decrypt(ciph, orig_len, mode, cipherkey, moo.aes.KeySize["SIZE_128"], iv) + print('Decrypt result: %s\n' % bytes(decr)) + Test().testString(cleartext, 16, "CBC") diff --git a/py-kms/pykms_Base.py b/py-kms/pykms_Base.py new file mode 100644 index 0000000..5f71a43 --- /dev/null +++ b/py-kms/pykms_Base.py @@ -0,0 +1,255 @@ +#!/usr/bin/env python3 + +import binascii +import logging +import os +import sys +import time +import uuid +import socket + +from pykms_Structure import Structure +from pykms_DB2Dict import kmsDB2Dict +from pykms_PidGenerator import epidGenerator +from pykms_Filetimes import filetime_to_dt +from pykms_Sql import sql_initialize, sql_update, sql_update_epid +from pykms_Format import justify, byterize, enco, deco, ShellMessage + +#-------------------------------------------------------------------------------------------------------------------------------------------------------- + +loggersrv = logging.getLogger('logsrv') + +class UUID(Structure): + commonHdr = () + structure = ( + ('raw', '16s'), + ) + + def get(self): + return uuid.UUID(bytes_le = enco(str(self), 'latin-1')) + +class kmsBase: + def __init__(self, data, srv_config): + self.data = data + self.srv_config = srv_config + + class kmsRequestStruct(Structure): + commonHdr = () + structure = ( + ('versionMinor', '= RequiredClients: + # fixed to 10 (product server) or 50 (product desktop) + currentClientCount = RequiredClients + if self.srv_config["CurrentClientCount"] > RequiredClients: + loggersrv.warning("Too many clients ! Fixed with %s" %currentClientCount) + else: + # fixed to 10 (product server) or 50 (product desktop) + currentClientCount = RequiredClients + + + # Get a name for SkuId, AppId. + kmsdb = kmsDB2Dict() + + appitems = kmsdb[2] + for appitem in appitems: + kmsitems = appitem['KmsItems'] + for kmsitem in kmsitems: + skuitems = kmsitem['SkuItems'] + for skuitem in skuitems: + try: + if uuid.UUID(skuitem['Id']) == skuId: + skuName = skuitem['DisplayName'] + break + except: + skuName = skuId + loggersrv.warning("Can't find a name for this product !!") + + try: + if uuid.UUID(appitem['Id']) == applicationId: + appName = appitem['DisplayName'] + except: + appName = applicationId + loggersrv.warning("Can't find a name for this application group !!") + + infoDict = { + "machineName" : kmsRequest.getMachineName(), + "clientMachineId" : str(clientMachineId), + "appId" : appName, + "skuId" : skuName, + "licenseStatus" : kmsRequest.getLicenseStatus(), + "requestTime" : int(time.time()), + "kmsEpid" : None + } + + loggersrv.info("Machine Name: %s" % infoDict["machineName"]) + loggersrv.info("Client Machine ID: %s" % infoDict["clientMachineId"]) + loggersrv.info("Application ID: %s" % infoDict["appId"]) + loggersrv.info("SKU ID: %s" % infoDict["skuId"]) + loggersrv.info("License Status: %s" % infoDict["licenseStatus"]) + loggersrv.info("Request Time: %s" % local_dt.strftime('%Y-%m-%d %H:%M:%S %Z (UTC%z)')) + loggersrv.mini("", extra = {'host': socket.gethostname() + " [" + self.srv_config["ip"] + "]", + 'status' : infoDict["licenseStatus"], + 'product' : infoDict["skuId"]}) + + if self.srv_config['sqlite'] and self.srv_config['dbSupport']: + sql_update(self.dbName, infoDict) + + return self.createKmsResponse(kmsRequest, currentClientCount) + + def createKmsResponse(self, kmsRequest, currentClientCount): + response = self.kmsResponseStruct() + response['versionMinor'] = kmsRequest['versionMinor'] + response['versionMajor'] = kmsRequest['versionMajor'] + + if not self.srv_config["epid"]: + response["kmsEpid"] = epidGenerator(kmsRequest['kmsCountedId'].get(), kmsRequest['versionMajor'], + self.srv_config["lcid"]).encode('utf-16le') + else: + response["kmsEpid"] = self.srv_config["epid"].encode('utf-16le') + + response['clientMachineId'] = kmsRequest['clientMachineId'] + # rule: timeserver - 4h <= timeclient <= timeserver + 4h, check if is satisfied. + response['responseTime'] = kmsRequest['requestTime'] + response['currentClientCount'] = currentClientCount + response['vLActivationInterval'] = self.srv_config["VLActivationInterval"] + response['vLRenewalInterval'] = self.srv_config["VLRenewalInterval"] + + if self.srv_config['sqlite'] and self.srv_config['dbSupport']: + response = sql_update_epid(self.dbName, kmsRequest, response) + + loggersrv.info("Server ePID: %s" % response["kmsEpid"].decode('utf-16le')) + + return response + + +import pykms_RequestV4, pykms_RequestV5, pykms_RequestV6, pykms_RequestUnknown + +def generateKmsResponseData(data, srv_config): + version = kmsBase.GenericRequestHeader(data)['versionMajor'] + currentDate = time.strftime("%a %b %d %H:%M:%S %Y") + + if version == 4: + loggersrv.info("Received V%d request on %s." % (version, currentDate)) + messagehandler = pykms_RequestV4.kmsRequestV4(data, srv_config) + elif version == 5: + loggersrv.info("Received V%d request on %s." % (version, currentDate)) + messagehandler = pykms_RequestV5.kmsRequestV5(data, srv_config) + elif version == 6: + loggersrv.info("Received V%d request on %s." % (version, currentDate)) + messagehandler = pykms_RequestV6.kmsRequestV6(data, srv_config) + else: + loggersrv.info("Unhandled KMS version V%d." % version) + messagehandler = pykms_RequestUnknown.kmsRequestUnknown(data, srv_config) + + return messagehandler.executeRequestLogic() diff --git a/py-kms/pykms_Client.py b/py-kms/pykms_Client.py new file mode 100644 index 0000000..f36f259 --- /dev/null +++ b/py-kms/pykms_Client.py @@ -0,0 +1,266 @@ +#!/usr/bin/env python3 + +import re +import argparse +import binascii +import datetime +import random +import socket +import string +import sys +import uuid +import logging +import os +import errno + +import pykms_RpcBind, pykms_RpcRequest +from pykms_Filetimes import dt_to_filetime +from pykms_Dcerpc import MSRPCHeader, MSRPCBindNak, MSRPCRequestHeader, MSRPCRespHeader +from pykms_Base import kmsBase, UUID +from pykms_RequestV4 import kmsRequestV4 +from pykms_RequestV5 import kmsRequestV5 +from pykms_RequestV6 import kmsRequestV6 +from pykms_RpcBase import rpcBase +from pykms_DB2Dict import kmsDB2Dict +from pykms_Misc import logger_create +from pykms_Format import justify, byterize, enco, deco, ShellMessage + +clt_description = 'KMS Client Emulator written in Python' +clt_version = 'py-kms_2019-05-15' +clt_config = {} + +#--------------------------------------------------------------------------------------------------------------------------------------------------------- + +loggerclt = logging.getLogger('logclt') + +# 'help' string - 'default' value - 'dest' string. +clt_options = { + 'ip' : {'help' : 'The IP address or hostname of the KMS server.', 'def' : "0.0.0.0", 'des' : "ip"}, + 'port' : {'help' : 'The port the KMS service is listening on. The default is \"1688\".', 'def' : 1688, 'des' : "port"}, + 'mode' : {'help' : 'Use this flag to manually specify a Microsoft product for testing the server. The default is \"Windows81\"', + 'def' : "Windows8.1", 'des' : "mode", + 'choi' : ["WindowsVista","Windows7","Windows8","Windows8.1","Windows10","Office2010","Office2013","Office2016","Office2019"]}, + 'cmid' : {'help' : 'Use this flag to manually specify a CMID to use. If no CMID is specified, a random CMID will be generated.', + 'def' : None, 'des' : "cmid"}, + 'name' : {'help' : 'Use this flag to manually specify an ASCII machineName to use. If no machineName is specified a random machineName \ +will be generated.', 'def' : None, 'des' : "machineName"}, + 'llevel' : {'help' : 'Use this option to set a log level. The default is \"ERROR\".', 'def' : "ERROR", 'des' : "loglevel", + 'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]}, + 'lfile' : {'help' : 'Use this option to set an output log file. The default is \"pykms_logclient.log\" or type \"STDOUT\" to view log info on stdout.', + 'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logclient.log", 'des' : "logfile"}, + 'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"}, + } + +def client_options(): + parser = argparse.ArgumentParser(description = clt_description, epilog = 'version: ' + clt_version) + parser.add_argument("ip", nargs = "?", action = "store", default = clt_options['ip']['def'], help = clt_options['ip']['help'], type = str) + parser.add_argument("port", nargs = "?", action = "store", default = clt_options['port']['def'], help = clt_options['port']['help'], type = int) + parser.add_argument("-m", "--mode", dest = clt_options['mode']['des'], default = clt_options['mode']['def'], choices = clt_options['mode']['choi'], + help = clt_options['mode']['help'], type = str) + parser.add_argument("-c", "--cmid", dest = clt_options['cmid']['des'], default = clt_options['cmid']['def'], help = clt_options['cmid']['help'], type = str) + parser.add_argument("-n", "--name", dest = clt_options['name']['des'] , default = clt_options['name']['def'], help = clt_options['name']['help'], type = str) + parser.add_argument("-V", "--loglevel", dest = clt_options['llevel']['des'], action = "store", choices = clt_options['llevel']['choi'], + default = clt_options['llevel']['def'], help = clt_options['llevel']['help'], type = str) + parser.add_argument("-F", "--logfile", dest = clt_options['lfile']['des'], action = "store", default = clt_options['lfile']['def'], + help = clt_options['lfile']['help'], type = str) + parser.add_argument("-S", "--logsize", dest = clt_options['lsize']['des'], action = "store", default = clt_options['lsize']['def'], + help = clt_options['lsize']['help'], type = float) + + clt_config.update(vars(parser.parse_args())) + + +def client_check(): + # Setup hidden or not messages. + ShellMessage.view = ( False if clt_config['logfile'] == 'STDOUT' else True ) + # Create log. + logger_create(loggerclt, clt_config, mode = 'a') + + # Check cmid. + if clt_config['cmid'] is not None: + try: + uuid.UUID(clt_config['cmid']) + except ValueError: + loggerclt.error("Bad CMID. Exiting...") + sys.exit() + + # Check machineName. + if clt_config['machineName'] is not None: + if len(clt_config['machineName']) < 2 or len(clt_config['machineName']) > 63: + loggerclt.error("machineName must be between 2 and 63 characters in length.") + sys.exit() + + clt_config['call_id'] = 1 + + +def client_update(): + kmsdb = kmsDB2Dict() + + appitems = kmsdb[2] + for appitem in appitems: + kmsitems = appitem['KmsItems'] + for kmsitem in kmsitems: + name = re.sub('\(.*\)', '', kmsitem['DisplayName']).replace('2015', '').replace(' ', '') + if name == clt_config['mode']: + skuitems = kmsitem['SkuItems'] + # Select 'Enterprise' for Windows or 'Professional Plus' for Office. + for skuitem in skuitems: + if skuitem['DisplayName'].replace(' ','') == name + 'Enterprise' or \ + skuitem['DisplayName'].replace(' ','') == name[:6] + 'ProfessionalPlus' + name[6:]: + + clt_config['KMSClientSkuID'] = skuitem['Id'] + clt_config['RequiredClientCount'] = int(kmsitem['NCountPolicy']) + clt_config['KMSProtocolMajorVersion'] = int(float(kmsitem['DefaultKmsProtocol'])) + clt_config['KMSProtocolMinorVersion'] = 0 + clt_config['KMSClientLicenseStatus'] = 2 + clt_config['KMSClientAppID'] = appitem['Id'] + clt_config['KMSClientKMSCountedID'] = kmsitem['Id'] + break + +def client_create(): + loggerclt.info("\n\nConnecting to %s on port %d..." % (clt_config['ip'], clt_config['port'])) + s = socket.create_connection((clt_config['ip'], clt_config['port'])) + loggerclt.info("Connection successful !") + binder = pykms_RpcBind.handler(None, clt_config) + RPC_Bind = enco(str(binder.generateRequest()), 'latin-1') + loggerclt.info("Sending RPC bind request...") + ShellMessage.Process([-1, 1]).run() + s.send(RPC_Bind) + try: + ShellMessage.Process([-4, 7]).run() + bindResponse = s.recv(1024) + except socket.error as e: + if e.errno == errno.ECONNRESET: + loggerclt.error("Connection reset by peer. Exiting...") + sys.exit() + else: + raise + if bindResponse == '' or not bindResponse: + loggerclt.error("No data received ! Exiting...") + sys.exit() + packetType = MSRPCHeader(bindResponse)['type'] + if packetType == rpcBase.packetType['bindAck']: + loggerclt.info("RPC bind acknowledged.") + ShellMessage.Process(8).run() + kmsRequest = createKmsRequest() + requester = pykms_RpcRequest.handler(kmsRequest, clt_config) + s.send(enco(str(requester.generateRequest()), 'latin-1')) + ShellMessage.Process([-1, 12]).run() + response = s.recv(1024) + loggerclt.debug("Response: \n%s\n" % justify(deco(binascii.b2a_hex(response), 'latin-1'))) + ShellMessage.Process([-4, 20]).run() + parsed = MSRPCRespHeader(response) + kmsData = readKmsResponse(parsed['pduData'], kmsRequest, clt_config) + kmsResp = kmsData['response'] + + try: + hwid = kmsData['hwid'] + loggerclt.info("KMS Host HWID: %s" % deco(binascii.b2a_hex(enco(hwid, 'latin-1')).upper(), 'utf-8')) + except KeyError: + pass + loggerclt.info("KMS Host ePID: %s" % kmsResp['kmsEpid'].encode('utf-8').decode('utf-16le')) + loggerclt.info("KMS Host Current Client Count: %s" % kmsResp['currentClientCount']) + loggerclt.info("KMS VL Activation Interval: %s" % kmsResp['vLActivationInterval']) + loggerclt.info("KMS VL Renewal Interval: %s" % kmsResp['vLRenewalInterval']) + loggerclt.mini("", extra = {'host': socket.gethostname() + " [" + clt_config["ip"] + "]", + 'status' : "Activated", + 'product' : clt_config["mode"]}) + + ShellMessage.Process(21).run() + + elif packetType == rpcBase.packetType['bindNak']: + loggerclt.info(justify(MSRPCBindNak(bindResponse).dump(print_to_stdout = False))) + sys.exit() + else: + loggerclt.critical("Something went wrong.") + sys.exit() + + +def clt_main(with_gui = False): + if not with_gui: + # Parse options. + client_options() + + # Check options. + client_check() + # Update Config. + client_update() + # Create and run client. + client_create() + +def createKmsRequestBase(): + requestDict = kmsBase.kmsRequestStruct() + requestDict['versionMinor'] = clt_config['KMSProtocolMinorVersion'] + requestDict['versionMajor'] = clt_config['KMSProtocolMajorVersion'] + requestDict['isClientVm'] = 0 + requestDict['licenseStatus'] = clt_config['KMSClientLicenseStatus'] + requestDict['graceTime'] = 43200 + requestDict['applicationId'] = UUID(uuid.UUID(clt_config['KMSClientAppID']).bytes_le) + requestDict['skuId'] = UUID(uuid.UUID(clt_config['KMSClientSkuID']).bytes_le) + requestDict['kmsCountedId'] = UUID(uuid.UUID(clt_config['KMSClientKMSCountedID']).bytes_le) + requestDict['clientMachineId'] = UUID(uuid.UUID(clt_config['cmid']).bytes_le if (clt_config['cmid'] is not None) else uuid.uuid4().bytes_le) + requestDict['previousClientMachineId'] = '\0' * 16 # I'm pretty sure this is supposed to be a null UUID. + requestDict['requiredClientCount'] = clt_config['RequiredClientCount'] + requestDict['requestTime'] = dt_to_filetime(datetime.datetime.utcnow()) + requestDict['machineName'] = (clt_config['machineName'] if (clt_config['machineName'] is not None) else + ''.join(random.choice(string.ascii_letters + string.digits) for i in range(random.randint(2,63)))).encode('utf-16le') + requestDict['mnPad'] = '\0'.encode('utf-16le') * (63 - len(requestDict['machineName'].decode('utf-16le'))) + + # Debug Stuff + ShellMessage.Process(9).run() + requestDict = byterize(requestDict) + loggerclt.debug("Request Base Dictionary: \n%s\n" % justify(requestDict.dump(print_to_stdout = False))) + + return requestDict + +def createKmsRequest(): + # Update the call ID + clt_config['call_id'] += 1 + + # KMS Protocol Major Version + if clt_config['KMSProtocolMajorVersion'] == 4: + handler = kmsRequestV4(None, clt_config) + elif clt_config['KMSProtocolMajorVersion'] == 5: + handler = kmsRequestV5(None, clt_config) + elif clt_config['KMSProtocolMajorVersion'] == 6: + handler = kmsRequestV6(None, clt_config) + else: + return None + + requestBase = createKmsRequestBase() + return handler.generateRequest(requestBase) + +def readKmsResponse(data, request, clt_config): + if clt_config['KMSProtocolMajorVersion'] == 4: + loggerclt.info("Received V4 response") + response = readKmsResponseV4(data, request) + elif clt_config['KMSProtocolMajorVersion'] == 5: + loggerclt.info("Received V5 response") + response = readKmsResponseV5(data) + elif clt_config['KMSProtocolMajorVersion'] == 6: + loggerclt.info("Received V6 response") + response = readKmsResponseV6(data) + else: + loggerclt.info("Unhandled response version: %d.%d" % (clt_config['KMSProtocolMajorVersion'], clt_config['KMSProtocolMinorVersion'])) + loggerclt.info("I'm not even sure how this happened...") + return response + +def readKmsResponseV4(data, request): + response = kmsRequestV4.ResponseV4(data) + hashed = kmsRequestV4(data, clt_config).generateHash(bytearray(enco(str(response['response']) , 'latin-1'))) + if deco(hashed, 'latin-1') == response['hash']: + loggerclt.info("Response Hash has expected value !") + return response + +def readKmsResponseV5(data): + response = kmsRequestV5.ResponseV5(data) + decrypted = kmsRequestV5(data, clt_config).decryptResponse(response) + return decrypted + +def readKmsResponseV6(data): + response = kmsRequestV6.ResponseV5(data) + decrypted = kmsRequestV6(data, clt_config).decryptResponse(response) + message = decrypted['message'] + return message + +if __name__ == "__main__": + clt_main(with_gui = False) diff --git a/py-kms/pykms_DB2Dict.py b/py-kms/pykms_DB2Dict.py new file mode 100644 index 0000000..eda7cce --- /dev/null +++ b/py-kms/pykms_DB2Dict.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +import os +import xml.etree.ElementTree as ET + +#--------------------------------------------------------------------------------------------------------------------------------------------------------- + +def kmsDB2Dict(): + path = os.path.join(os.path.dirname(__file__), 'KmsDataBase.xml') + root = ET.parse(path).getroot() + + kmsdb, child1, child2, child3 = [ [] for _ in range(4) ] + + ## Get winbuilds. + for winbuild in root.iter('WinBuild'): + child1.append(winbuild.attrib) + + kmsdb.append(child1) + + ## Get csvlkitem data. + child1 = [] + for csvlk in root.iter('CsvlkItem'): + for activ in csvlk.iter('Activate'): + child2.append(activ.attrib['KmsItem']) + csvlk.attrib.update({'Activate' : child2}) + child1.append(csvlk.attrib) + child2 = [] + + kmsdb.append(child1) + + ## Get appitem data. + child1 = [] + for app in root.iter('AppItem'): + for kms in app.iter('KmsItem'): + for sku in kms.iter('SkuItem'): + child3.append(sku.attrib) + kms.attrib.update({'SkuItems' : child3}) + child2.append(kms.attrib) + child3 = [] + + app.attrib.update({'KmsItems' : child2}) + child1.append(app.attrib) + child2 = [] + + kmsdb.append(child1) + + return kmsdb diff --git a/py-kms/pykms_Dcerpc.py b/py-kms/pykms_Dcerpc.py new file mode 100644 index 0000000..e1df1d5 --- /dev/null +++ b/py-kms/pykms_Dcerpc.py @@ -0,0 +1,731 @@ +#!/usr/bin/env python3 + +# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved. +# +# This software is provided under under a slightly modified version +# of the Apache Software License. See the accompanying LICENSE file +# for more information. +# +# Description: +# Partial C706.pdf + [MS-RPCE] implementation +# +# Best way to learn how to use these calls is to grab the protocol standard +# so you understand what the call does, and then read the test case located +# at https://github.com/SecureAuthCorp/impacket/tree/master/tests/SMB_RPC +# +# ToDo: +# [ ] Take out all the security provider stuff out of here (e.g. RPC_C_AUTHN_WINNT) +# and put it elsewhere. This will make the coder cleaner and easier to add +# more SSP (e.g. NETLOGON) +# +""" +Stripped down version of: +https://github.com/SecureAuthCorp/impacket/blob/master/impacket/dcerpc/v5/rpcrt.py +""" + +from pykms_Structure import Structure + +# MS/RPC Constants +MSRPC_REQUEST = 0x00 +MSRPC_PING = 0x01 +MSRPC_RESPONSE = 0x02 +MSRPC_FAULT = 0x03 +MSRPC_WORKING = 0x04 +MSRPC_NOCALL = 0x05 +MSRPC_REJECT = 0x06 +MSRPC_ACK = 0x07 +MSRPC_CL_CANCEL = 0x08 +MSRPC_FACK = 0x09 +MSRPC_CANCELACK = 0x0A +MSRPC_BIND = 0x0B +MSRPC_BINDACK = 0x0C +MSRPC_BINDNAK = 0x0D +MSRPC_ALTERCTX = 0x0E +MSRPC_ALTERCTX_R= 0x0F +MSRPC_AUTH3 = 0x10 +MSRPC_SHUTDOWN = 0x11 +MSRPC_CO_CANCEL = 0x12 +MSRPC_ORPHANED = 0x13 + +# MS/RPC Packet Flags +PFC_FIRST_FRAG = 0x01 +PFC_LAST_FRAG = 0x02 + +# For PDU types bind, bind_ack, alter_context, and +# alter_context_resp, this flag MUST be interpreted as PFC_SUPPORT_HEADER_SIGN +MSRPC_SUPPORT_SIGN = 0x04 + +#For the +#remaining PDU types, this flag MUST be interpreted as PFC_PENDING_CANCEL. +MSRPC_PENDING_CANCEL= 0x04 + +PFC_RESERVED_1 = 0x08 +PFC_CONC_MPX = 0x10 +PFC_DID_NOT_EXECUTE = 0x20 +PFC_MAYBE = 0x40 +PFC_OBJECT_UUID = 0x80 + +# Auth Types - Security Providers +RPC_C_AUTHN_NONE = 0x00 +RPC_C_AUTHN_GSS_NEGOTIATE = 0x09 +RPC_C_AUTHN_WINNT = 0x0A +RPC_C_AUTHN_GSS_SCHANNEL = 0x0E +RPC_C_AUTHN_GSS_KERBEROS = 0x10 +RPC_C_AUTHN_NETLOGON = 0x44 +RPC_C_AUTHN_DEFAULT = 0xFF + +# Auth Levels +RPC_C_AUTHN_LEVEL_NONE = 1 +RPC_C_AUTHN_LEVEL_CONNECT = 2 +RPC_C_AUTHN_LEVEL_CALL = 3 +RPC_C_AUTHN_LEVEL_PKT = 4 +RPC_C_AUTHN_LEVEL_PKT_INTEGRITY = 5 +RPC_C_AUTHN_LEVEL_PKT_PRIVACY = 6 + +#Reasons for rejection of a context element, included in bind_ack result reason +rpc_provider_reason = { + 0 : 'reason_not_specified', + 1 : 'abstract_syntax_not_supported', + 2 : 'proposed_transfer_syntaxes_not_supported', + 3 : 'local_limit_exceeded', + 4 : 'protocol_version_not_specified', + 8 : 'authentication_type_not_recognized', + 9 : 'invalid_checksum' +} + +MSRPC_CONT_RESULT_ACCEPT = 0 +MSRPC_CONT_RESULT_USER_REJECT = 1 +MSRPC_CONT_RESULT_PROV_REJECT = 2 + +#Results of a presentation context negotiation +rpc_cont_def_result = { + 0 : 'acceptance', + 1 : 'user_rejection', + 2 : 'provider_rejection' +} + +#status codes, references: +#https://docs.microsoft.com/windows/desktop/Rpc/rpc-return-values +#https://msdn.microsoft.com/library/default.asp?url=/library/en-us/randz/protocol/common_return_values.asp +#winerror.h +#https://www.opengroup.org/onlinepubs/9629399/apdxn.htm + +rpc_status_codes = { + 0x00000005 : 'rpc_s_access_denied', + 0x00000008 : 'Authentication type not recognized', + 0x000006D8 : 'rpc_fault_cant_perform', + 0x000006C6 : 'rpc_x_invalid_bound', # the arrays bound are invalid + 0x000006E4 : 'rpc_s_cannot_support: The requested operation is not supported.', # some operation is not supported + 0x000006F7 : 'rpc_x_bad_stub_data', # the stub data is invalid, doesn't match with the IDL definition + 0x1C010001 : 'nca_s_comm_failure', # unable to get response from server: + 0x1C010002 : 'nca_s_op_rng_error', # bad operation number in call + 0x1C010003 : 'nca_s_unk_if', # unknown interface + 0x1C010006 : 'nca_s_wrong_boot_time', # client passed server wrong server boot time + 0x1C010009 : 'nca_s_you_crashed', # a restarted server called back a client + 0x1C01000B : 'nca_s_proto_error', # someone messed up the protocol + 0x1C010013 : 'nca_s_out_args_too_big ', # output args too big + 0x1C010014 : 'nca_s_server_too_busy', # server is too busy to handle call + 0x1C010015 : 'nca_s_fault_string_too_long', # string argument longer than declared max len + 0x1C010017 : 'nca_s_unsupported_type ', # no implementation of generic operation for object + 0x1C000001 : 'nca_s_fault_int_div_by_zero', + 0x1C000002 : 'nca_s_fault_addr_error ', + 0x1C000003 : 'nca_s_fault_fp_div_zero', + 0x1C000004 : 'nca_s_fault_fp_underflow', + 0x1C000005 : 'nca_s_fault_fp_overflow', + 0x1C000006 : 'nca_s_fault_invalid_tag', + 0x1C000007 : 'nca_s_fault_invalid_bound ', + 0x1C000008 : 'nca_s_rpc_version_mismatch', + 0x1C000009 : 'nca_s_unspec_reject ', + 0x1C00000A : 'nca_s_bad_actid', + 0x1C00000B : 'nca_s_who_are_you_failed', + 0x1C00000C : 'nca_s_manager_not_entered ', + 0x1C00000D : 'nca_s_fault_cancel', + 0x1C00000E : 'nca_s_fault_ill_inst', + 0x1C00000F : 'nca_s_fault_fp_error', + 0x1C000010 : 'nca_s_fault_int_overflow', + 0x1C000012 : 'nca_s_fault_unspec', + 0x1C000013 : 'nca_s_fault_remote_comm_failure ', + 0x1C000014 : 'nca_s_fault_pipe_empty ', + 0x1C000015 : 'nca_s_fault_pipe_closed', + 0x1C000016 : 'nca_s_fault_pipe_order ', + 0x1C000017 : 'nca_s_fault_pipe_discipline', + 0x1C000018 : 'nca_s_fault_pipe_comm_error', + 0x1C000019 : 'nca_s_fault_pipe_memory', + 0x1C00001A : 'nca_s_fault_context_mismatch ', + 0x1C00001B : 'nca_s_fault_remote_no_memory ', + 0x1C00001C : 'nca_s_invalid_pres_context_id', + 0x1C00001D : 'nca_s_unsupported_authn_level', + 0x1C00001F : 'nca_s_invalid_checksum ', + 0x1C000020 : 'nca_s_invalid_crc', + 0x1C000021 : 'nca_s_fault_user_defined', + 0x1C000022 : 'nca_s_fault_tx_open_failed', + 0x1C000023 : 'nca_s_fault_codeset_conv_error', + 0x1C000024 : 'nca_s_fault_object_not_found ', + 0x1C000025 : 'nca_s_fault_no_client_stub', + 0x16c9a000 : "rpc_s_mod", + 0x16c9a001 : "rpc_s_op_rng_error", + 0x16c9a002 : "rpc_s_cant_create_socket", + 0x16c9a003 : "rpc_s_cant_bind_socket", + 0x16c9a004 : "rpc_s_not_in_call", + 0x16c9a005 : "rpc_s_no_port", + 0x16c9a006 : "rpc_s_wrong_boot_time", + 0x16c9a007 : "rpc_s_too_many_sockets", + 0x16c9a008 : "rpc_s_illegal_register", + 0x16c9a009 : "rpc_s_cant_recv", + 0x16c9a00a : "rpc_s_bad_pkt", + 0x16c9a00b : "rpc_s_unbound_handle", + 0x16c9a00c : "rpc_s_addr_in_use", + 0x16c9a00d : "rpc_s_in_args_too_big", + 0x16c9a00e : "rpc_s_string_too_long", + 0x16c9a00f : "rpc_s_too_many_objects", + 0x16c9a010 : "rpc_s_binding_has_no_auth", + 0x16c9a011 : "rpc_s_unknown_authn_service", + 0x16c9a012 : "rpc_s_no_memory", + 0x16c9a013 : "rpc_s_cant_nmalloc", + 0x16c9a014 : "rpc_s_call_faulted", + 0x16c9a015 : "rpc_s_call_failed", + 0x16c9a016 : "rpc_s_comm_failure", + 0x16c9a017 : "rpc_s_rpcd_comm_failure", + 0x16c9a018 : "rpc_s_illegal_family_rebind", + 0x16c9a019 : "rpc_s_invalid_handle", + 0x16c9a01a : "rpc_s_coding_error", + 0x16c9a01b : "rpc_s_object_not_found", + 0x16c9a01c : "rpc_s_cthread_not_found", + 0x16c9a01d : "rpc_s_invalid_binding", + 0x16c9a01e : "rpc_s_already_registered", + 0x16c9a01f : "rpc_s_endpoint_not_found", + 0x16c9a020 : "rpc_s_invalid_rpc_protseq", + 0x16c9a021 : "rpc_s_desc_not_registered", + 0x16c9a022 : "rpc_s_already_listening", + 0x16c9a023 : "rpc_s_no_protseqs", + 0x16c9a024 : "rpc_s_no_protseqs_registered", + 0x16c9a025 : "rpc_s_no_bindings", + 0x16c9a026 : "rpc_s_max_descs_exceeded", + 0x16c9a027 : "rpc_s_no_interfaces", + 0x16c9a028 : "rpc_s_invalid_timeout", + 0x16c9a029 : "rpc_s_cant_inq_socket", + 0x16c9a02a : "rpc_s_invalid_naf_id", + 0x16c9a02b : "rpc_s_inval_net_addr", + 0x16c9a02c : "rpc_s_unknown_if", + 0x16c9a02d : "rpc_s_unsupported_type", + 0x16c9a02e : "rpc_s_invalid_call_opt", + 0x16c9a02f : "rpc_s_no_fault", + 0x16c9a030 : "rpc_s_cancel_timeout", + 0x16c9a031 : "rpc_s_call_cancelled", + 0x16c9a032 : "rpc_s_invalid_call_handle", + 0x16c9a033 : "rpc_s_cannot_alloc_assoc", + 0x16c9a034 : "rpc_s_cannot_connect", + 0x16c9a035 : "rpc_s_connection_aborted", + 0x16c9a036 : "rpc_s_connection_closed", + 0x16c9a037 : "rpc_s_cannot_accept", + 0x16c9a038 : "rpc_s_assoc_grp_not_found", + 0x16c9a039 : "rpc_s_stub_interface_error", + 0x16c9a03a : "rpc_s_invalid_object", + 0x16c9a03b : "rpc_s_invalid_type", + 0x16c9a03c : "rpc_s_invalid_if_opnum", + 0x16c9a03d : "rpc_s_different_server_instance", + 0x16c9a03e : "rpc_s_protocol_error", + 0x16c9a03f : "rpc_s_cant_recvmsg", + 0x16c9a040 : "rpc_s_invalid_string_binding", + 0x16c9a041 : "rpc_s_connect_timed_out", + 0x16c9a042 : "rpc_s_connect_rejected", + 0x16c9a043 : "rpc_s_network_unreachable", + 0x16c9a044 : "rpc_s_connect_no_resources", + 0x16c9a045 : "rpc_s_rem_network_shutdown", + 0x16c9a046 : "rpc_s_too_many_rem_connects", + 0x16c9a047 : "rpc_s_no_rem_endpoint", + 0x16c9a048 : "rpc_s_rem_host_down", + 0x16c9a049 : "rpc_s_host_unreachable", + 0x16c9a04a : "rpc_s_access_control_info_inv", + 0x16c9a04b : "rpc_s_loc_connect_aborted", + 0x16c9a04c : "rpc_s_connect_closed_by_rem", + 0x16c9a04d : "rpc_s_rem_host_crashed", + 0x16c9a04e : "rpc_s_invalid_endpoint_format", + 0x16c9a04f : "rpc_s_unknown_status_code", + 0x16c9a050 : "rpc_s_unknown_mgr_type", + 0x16c9a051 : "rpc_s_assoc_creation_failed", + 0x16c9a052 : "rpc_s_assoc_grp_max_exceeded", + 0x16c9a053 : "rpc_s_assoc_grp_alloc_failed", + 0x16c9a054 : "rpc_s_sm_invalid_state", + 0x16c9a055 : "rpc_s_assoc_req_rejected", + 0x16c9a056 : "rpc_s_assoc_shutdown", + 0x16c9a057 : "rpc_s_tsyntaxes_unsupported", + 0x16c9a058 : "rpc_s_context_id_not_found", + 0x16c9a059 : "rpc_s_cant_listen_socket", + 0x16c9a05a : "rpc_s_no_addrs", + 0x16c9a05b : "rpc_s_cant_getpeername", + 0x16c9a05c : "rpc_s_cant_get_if_id", + 0x16c9a05d : "rpc_s_protseq_not_supported", + 0x16c9a05e : "rpc_s_call_orphaned", + 0x16c9a05f : "rpc_s_who_are_you_failed", + 0x16c9a060 : "rpc_s_unknown_reject", + 0x16c9a061 : "rpc_s_type_already_registered", + 0x16c9a062 : "rpc_s_stop_listening_disabled", + 0x16c9a063 : "rpc_s_invalid_arg", + 0x16c9a064 : "rpc_s_not_supported", + 0x16c9a065 : "rpc_s_wrong_kind_of_binding", + 0x16c9a066 : "rpc_s_authn_authz_mismatch", + 0x16c9a067 : "rpc_s_call_queued", + 0x16c9a068 : "rpc_s_cannot_set_nodelay", + 0x16c9a069 : "rpc_s_not_rpc_tower", + 0x16c9a06a : "rpc_s_invalid_rpc_protid", + 0x16c9a06b : "rpc_s_invalid_rpc_floor", + 0x16c9a06c : "rpc_s_call_timeout", + 0x16c9a06d : "rpc_s_mgmt_op_disallowed", + 0x16c9a06e : "rpc_s_manager_not_entered", + 0x16c9a06f : "rpc_s_calls_too_large_for_wk_ep", + 0x16c9a070 : "rpc_s_server_too_busy", + 0x16c9a071 : "rpc_s_prot_version_mismatch", + 0x16c9a072 : "rpc_s_rpc_prot_version_mismatch", + 0x16c9a073 : "rpc_s_ss_no_import_cursor", + 0x16c9a074 : "rpc_s_fault_addr_error", + 0x16c9a075 : "rpc_s_fault_context_mismatch", + 0x16c9a076 : "rpc_s_fault_fp_div_by_zero", + 0x16c9a077 : "rpc_s_fault_fp_error", + 0x16c9a078 : "rpc_s_fault_fp_overflow", + 0x16c9a079 : "rpc_s_fault_fp_underflow", + 0x16c9a07a : "rpc_s_fault_ill_inst", + 0x16c9a07b : "rpc_s_fault_int_div_by_zero", + 0x16c9a07c : "rpc_s_fault_int_overflow", + 0x16c9a07d : "rpc_s_fault_invalid_bound", + 0x16c9a07e : "rpc_s_fault_invalid_tag", + 0x16c9a07f : "rpc_s_fault_pipe_closed", + 0x16c9a080 : "rpc_s_fault_pipe_comm_error", + 0x16c9a081 : "rpc_s_fault_pipe_discipline", + 0x16c9a082 : "rpc_s_fault_pipe_empty", + 0x16c9a083 : "rpc_s_fault_pipe_memory", + 0x16c9a084 : "rpc_s_fault_pipe_order", + 0x16c9a085 : "rpc_s_fault_remote_comm_failure", + 0x16c9a086 : "rpc_s_fault_remote_no_memory", + 0x16c9a087 : "rpc_s_fault_unspec", + 0x16c9a088 : "uuid_s_bad_version", + 0x16c9a089 : "uuid_s_socket_failure", + 0x16c9a08a : "uuid_s_getconf_failure", + 0x16c9a08b : "uuid_s_no_address", + 0x16c9a08c : "uuid_s_overrun", + 0x16c9a08d : "uuid_s_internal_error", + 0x16c9a08e : "uuid_s_coding_error", + 0x16c9a08f : "uuid_s_invalid_string_uuid", + 0x16c9a090 : "uuid_s_no_memory", + 0x16c9a091 : "rpc_s_no_more_entries", + 0x16c9a092 : "rpc_s_unknown_ns_error", + 0x16c9a093 : "rpc_s_name_service_unavailable", + 0x16c9a094 : "rpc_s_incomplete_name", + 0x16c9a095 : "rpc_s_group_not_found", + 0x16c9a096 : "rpc_s_invalid_name_syntax", + 0x16c9a097 : "rpc_s_no_more_members", + 0x16c9a098 : "rpc_s_no_more_interfaces", + 0x16c9a099 : "rpc_s_invalid_name_service", + 0x16c9a09a : "rpc_s_no_name_mapping", + 0x16c9a09b : "rpc_s_profile_not_found", + 0x16c9a09c : "rpc_s_not_found", + 0x16c9a09d : "rpc_s_no_updates", + 0x16c9a09e : "rpc_s_update_failed", + 0x16c9a09f : "rpc_s_no_match_exported", + 0x16c9a0a0 : "rpc_s_entry_not_found", + 0x16c9a0a1 : "rpc_s_invalid_inquiry_context", + 0x16c9a0a2 : "rpc_s_interface_not_found", + 0x16c9a0a3 : "rpc_s_group_member_not_found", + 0x16c9a0a4 : "rpc_s_entry_already_exists", + 0x16c9a0a5 : "rpc_s_nsinit_failure", + 0x16c9a0a6 : "rpc_s_unsupported_name_syntax", + 0x16c9a0a7 : "rpc_s_no_more_elements", + 0x16c9a0a8 : "rpc_s_no_ns_permission", + 0x16c9a0a9 : "rpc_s_invalid_inquiry_type", + 0x16c9a0aa : "rpc_s_profile_element_not_found", + 0x16c9a0ab : "rpc_s_profile_element_replaced", + 0x16c9a0ac : "rpc_s_import_already_done", + 0x16c9a0ad : "rpc_s_database_busy", + 0x16c9a0ae : "rpc_s_invalid_import_context", + 0x16c9a0af : "rpc_s_uuid_set_not_found", + 0x16c9a0b0 : "rpc_s_uuid_member_not_found", + 0x16c9a0b1 : "rpc_s_no_interfaces_exported", + 0x16c9a0b2 : "rpc_s_tower_set_not_found", + 0x16c9a0b3 : "rpc_s_tower_member_not_found", + 0x16c9a0b4 : "rpc_s_obj_uuid_not_found", + 0x16c9a0b5 : "rpc_s_no_more_bindings", + 0x16c9a0b6 : "rpc_s_invalid_priority", + 0x16c9a0b7 : "rpc_s_not_rpc_entry", + 0x16c9a0b8 : "rpc_s_invalid_lookup_context", + 0x16c9a0b9 : "rpc_s_binding_vector_full", + 0x16c9a0ba : "rpc_s_cycle_detected", + 0x16c9a0bb : "rpc_s_nothing_to_export", + 0x16c9a0bc : "rpc_s_nothing_to_unexport", + 0x16c9a0bd : "rpc_s_invalid_vers_option", + 0x16c9a0be : "rpc_s_no_rpc_data", + 0x16c9a0bf : "rpc_s_mbr_picked", + 0x16c9a0c0 : "rpc_s_not_all_objs_unexported", + 0x16c9a0c1 : "rpc_s_no_entry_name", + 0x16c9a0c2 : "rpc_s_priority_group_done", + 0x16c9a0c3 : "rpc_s_partial_results", + 0x16c9a0c4 : "rpc_s_no_env_setup", + 0x16c9a0c5 : "twr_s_unknown_sa", + 0x16c9a0c6 : "twr_s_unknown_tower", + 0x16c9a0c7 : "twr_s_not_implemented", + 0x16c9a0c8 : "rpc_s_max_calls_too_small", + 0x16c9a0c9 : "rpc_s_cthread_create_failed", + 0x16c9a0ca : "rpc_s_cthread_pool_exists", + 0x16c9a0cb : "rpc_s_cthread_no_such_pool", + 0x16c9a0cc : "rpc_s_cthread_invoke_disabled", + 0x16c9a0cd : "ept_s_cant_perform_op", + 0x16c9a0ce : "ept_s_no_memory", + 0x16c9a0cf : "ept_s_database_invalid", + 0x16c9a0d0 : "ept_s_cant_create", + 0x16c9a0d1 : "ept_s_cant_access", + 0x16c9a0d2 : "ept_s_database_already_open", + 0x16c9a0d3 : "ept_s_invalid_entry", + 0x16c9a0d4 : "ept_s_update_failed", + 0x16c9a0d5 : "ept_s_invalid_context", + 0x16c9a0d6 : "ept_s_not_registered", + 0x16c9a0d7 : "ept_s_server_unavailable", + 0x16c9a0d8 : "rpc_s_underspecified_name", + 0x16c9a0d9 : "rpc_s_invalid_ns_handle", + 0x16c9a0da : "rpc_s_unknown_error", + 0x16c9a0db : "rpc_s_ss_char_trans_open_fail", + 0x16c9a0dc : "rpc_s_ss_char_trans_short_file", + 0x16c9a0dd : "rpc_s_ss_context_damaged", + 0x16c9a0de : "rpc_s_ss_in_null_context", + 0x16c9a0df : "rpc_s_socket_failure", + 0x16c9a0e0 : "rpc_s_unsupported_protect_level", + 0x16c9a0e1 : "rpc_s_invalid_checksum", + 0x16c9a0e2 : "rpc_s_invalid_credentials", + 0x16c9a0e3 : "rpc_s_credentials_too_large", + 0x16c9a0e4 : "rpc_s_call_id_not_found", + 0x16c9a0e5 : "rpc_s_key_id_not_found", + 0x16c9a0e6 : "rpc_s_auth_bad_integrity", + 0x16c9a0e7 : "rpc_s_auth_tkt_expired", + 0x16c9a0e8 : "rpc_s_auth_tkt_nyv", + 0x16c9a0e9 : "rpc_s_auth_repeat", + 0x16c9a0ea : "rpc_s_auth_not_us", + 0x16c9a0eb : "rpc_s_auth_badmatch", + 0x16c9a0ec : "rpc_s_auth_skew", + 0x16c9a0ed : "rpc_s_auth_badaddr", + 0x16c9a0ee : "rpc_s_auth_badversion", + 0x16c9a0ef : "rpc_s_auth_msg_type", + 0x16c9a0f0 : "rpc_s_auth_modified", + 0x16c9a0f1 : "rpc_s_auth_badorder", + 0x16c9a0f2 : "rpc_s_auth_badkeyver", + 0x16c9a0f3 : "rpc_s_auth_nokey", + 0x16c9a0f4 : "rpc_s_auth_mut_fail", + 0x16c9a0f5 : "rpc_s_auth_baddirection", + 0x16c9a0f6 : "rpc_s_auth_method", + 0x16c9a0f7 : "rpc_s_auth_badseq", + 0x16c9a0f8 : "rpc_s_auth_inapp_cksum", + 0x16c9a0f9 : "rpc_s_auth_field_toolong", + 0x16c9a0fa : "rpc_s_invalid_crc", + 0x16c9a0fb : "rpc_s_binding_incomplete", + 0x16c9a0fc : "rpc_s_key_func_not_allowed", + 0x16c9a0fd : "rpc_s_unknown_stub_rtl_if_vers", + 0x16c9a0fe : "rpc_s_unknown_ifspec_vers", + 0x16c9a0ff : "rpc_s_proto_unsupp_by_auth", + 0x16c9a100 : "rpc_s_authn_challenge_malformed", + 0x16c9a101 : "rpc_s_protect_level_mismatch", + 0x16c9a102 : "rpc_s_no_mepv", + 0x16c9a103 : "rpc_s_stub_protocol_error", + 0x16c9a104 : "rpc_s_class_version_mismatch", + 0x16c9a105 : "rpc_s_helper_not_running", + 0x16c9a106 : "rpc_s_helper_short_read", + 0x16c9a107 : "rpc_s_helper_catatonic", + 0x16c9a108 : "rpc_s_helper_aborted", + 0x16c9a109 : "rpc_s_not_in_kernel", + 0x16c9a10a : "rpc_s_helper_wrong_user", + 0x16c9a10b : "rpc_s_helper_overflow", + 0x16c9a10c : "rpc_s_dg_need_way_auth", + 0x16c9a10d : "rpc_s_unsupported_auth_subtype", + 0x16c9a10e : "rpc_s_wrong_pickle_type", + 0x16c9a10f : "rpc_s_not_listening", + 0x16c9a110 : "rpc_s_ss_bad_buffer", + 0x16c9a111 : "rpc_s_ss_bad_es_action", + 0x16c9a112 : "rpc_s_ss_wrong_es_version", + 0x16c9a113 : "rpc_s_fault_user_defined", + 0x16c9a114 : "rpc_s_ss_incompatible_codesets", + 0x16c9a115 : "rpc_s_tx_not_in_transaction", + 0x16c9a116 : "rpc_s_tx_open_failed", + 0x16c9a117 : "rpc_s_partial_credentials", + 0x16c9a118 : "rpc_s_ss_invalid_codeset_tag", + 0x16c9a119 : "rpc_s_mgmt_bad_type", + 0x16c9a11a : "rpc_s_ss_invalid_char_input", + 0x16c9a11b : "rpc_s_ss_short_conv_buffer", + 0x16c9a11c : "rpc_s_ss_iconv_error", + 0x16c9a11d : "rpc_s_ss_no_compat_codeset", + 0x16c9a11e : "rpc_s_ss_no_compat_charsets", + 0x16c9a11f : "dce_cs_c_ok", + 0x16c9a120 : "dce_cs_c_unknown", + 0x16c9a121 : "dce_cs_c_notfound", + 0x16c9a122 : "dce_cs_c_cannot_open_file", + 0x16c9a123 : "dce_cs_c_cannot_read_file", + 0x16c9a124 : "dce_cs_c_cannot_allocate_memory", + 0x16c9a125 : "rpc_s_ss_cleanup_failed", + 0x16c9a126 : "rpc_svc_desc_general", + 0x16c9a127 : "rpc_svc_desc_mutex", + 0x16c9a128 : "rpc_svc_desc_xmit", + 0x16c9a129 : "rpc_svc_desc_recv", + 0x16c9a12a : "rpc_svc_desc_dg_state", + 0x16c9a12b : "rpc_svc_desc_cancel", + 0x16c9a12c : "rpc_svc_desc_orphan", + 0x16c9a12d : "rpc_svc_desc_cn_state", + 0x16c9a12e : "rpc_svc_desc_cn_pkt", + 0x16c9a12f : "rpc_svc_desc_pkt_quotas", + 0x16c9a130 : "rpc_svc_desc_auth", + 0x16c9a131 : "rpc_svc_desc_source", + 0x16c9a132 : "rpc_svc_desc_stats", + 0x16c9a133 : "rpc_svc_desc_mem", + 0x16c9a134 : "rpc_svc_desc_mem_type", + 0x16c9a135 : "rpc_svc_desc_dg_pktlog", + 0x16c9a136 : "rpc_svc_desc_thread_id", + 0x16c9a137 : "rpc_svc_desc_timestamp", + 0x16c9a138 : "rpc_svc_desc_cn_errors", + 0x16c9a139 : "rpc_svc_desc_conv_thread", + 0x16c9a13a : "rpc_svc_desc_pid", + 0x16c9a13b : "rpc_svc_desc_atfork", + 0x16c9a13c : "rpc_svc_desc_cma_thread", + 0x16c9a13d : "rpc_svc_desc_inherit", + 0x16c9a13e : "rpc_svc_desc_dg_sockets", + 0x16c9a13f : "rpc_svc_desc_timer", + 0x16c9a140 : "rpc_svc_desc_threads", + 0x16c9a141 : "rpc_svc_desc_server_call", + 0x16c9a142 : "rpc_svc_desc_nsi", + 0x16c9a143 : "rpc_svc_desc_dg_pkt", + 0x16c9a144 : "rpc_m_cn_ill_state_trans_sa", + 0x16c9a145 : "rpc_m_cn_ill_state_trans_ca", + 0x16c9a146 : "rpc_m_cn_ill_state_trans_sg", + 0x16c9a147 : "rpc_m_cn_ill_state_trans_cg", + 0x16c9a148 : "rpc_m_cn_ill_state_trans_sr", + 0x16c9a149 : "rpc_m_cn_ill_state_trans_cr", + 0x16c9a14a : "rpc_m_bad_pkt_type", + 0x16c9a14b : "rpc_m_prot_mismatch", + 0x16c9a14c : "rpc_m_frag_toobig", + 0x16c9a14d : "rpc_m_unsupp_stub_rtl_if", + 0x16c9a14e : "rpc_m_unhandled_callstate", + 0x16c9a14f : "rpc_m_call_failed", + 0x16c9a150 : "rpc_m_call_failed_no_status", + 0x16c9a151 : "rpc_m_call_failed_errno", + 0x16c9a152 : "rpc_m_call_failed_s", + 0x16c9a153 : "rpc_m_call_failed_c", + 0x16c9a154 : "rpc_m_errmsg_toobig", + 0x16c9a155 : "rpc_m_invalid_srchattr", + 0x16c9a156 : "rpc_m_nts_not_found", + 0x16c9a157 : "rpc_m_invalid_accbytcnt", + 0x16c9a158 : "rpc_m_pre_v2_ifspec", + 0x16c9a159 : "rpc_m_unk_ifspec", + 0x16c9a15a : "rpc_m_recvbuf_toosmall", + 0x16c9a15b : "rpc_m_unalign_authtrl", + 0x16c9a15c : "rpc_m_unexpected_exc", + 0x16c9a15d : "rpc_m_no_stub_data", + 0x16c9a15e : "rpc_m_eventlist_full", + 0x16c9a15f : "rpc_m_unk_sock_type", + 0x16c9a160 : "rpc_m_unimp_call", + 0x16c9a161 : "rpc_m_invalid_seqnum", + 0x16c9a162 : "rpc_m_cant_create_uuid", + 0x16c9a163 : "rpc_m_pre_v2_ss", + 0x16c9a164 : "rpc_m_dgpkt_pool_corrupt", + 0x16c9a165 : "rpc_m_dgpkt_bad_free", + 0x16c9a166 : "rpc_m_lookaside_corrupt", + 0x16c9a167 : "rpc_m_alloc_fail", + 0x16c9a168 : "rpc_m_realloc_fail", + 0x16c9a169 : "rpc_m_cant_open_file", + 0x16c9a16a : "rpc_m_cant_read_addr", + 0x16c9a16b : "rpc_svc_desc_libidl", + 0x16c9a16c : "rpc_m_ctxrundown_nomem", + 0x16c9a16d : "rpc_m_ctxrundown_exc", + 0x16c9a16e : "rpc_s_fault_codeset_conv_error", + 0x16c9a16f : "rpc_s_no_call_active", + 0x16c9a170 : "rpc_s_cannot_support", + 0x16c9a171 : "rpc_s_no_context_available", +} + +# Context Item +class CtxItem(Structure): + structure = ( + ('ContextID',' 0 else 0)+len(pduData)+len(pad)+len(sec_trailer)'), # 8 + ('auth_len',' 0 else 0)'), + ('pduData',':'), + ('_pad', '_-pad','(4 - ((self._SIZE + (16 if (self["flags"] & 0x80) > 0 else 0) + len(self["pduData"])) & 3) & 3)'), + ('pad', ':'), + ('_sec_trailer', '_-sec_trailer', '8 if self["auth_len"] > 0 else 0'), + ('sec_trailer',':'), + ('auth_dataLen','_-auth_data','self["auth_len"]'), + ('auth_data',':'), + ) + + def __init__(self, data = None, alignment = 0): + Structure.__init__(self,data, alignment) + if data is None: + self['ver_major'] = 5 + self['ver_minor'] = 0 + self['flags'] = PFC_FIRST_FRAG | PFC_LAST_FRAG + self['type'] = MSRPC_REQUEST + self.__frag_len_set = 0 + self['auth_len'] = 0 + self['pduData'] = b'' + self['auth_data'] = b'' + self['sec_trailer'] = b'' + self['pad'] = b'' + + def get_header_size(self): + return self._SIZE + (16 if (self["flags"] & PFC_OBJECT_UUID) > 0 else 0) + + def get_packet(self): + if self['auth_data'] != b'': + self['auth_len'] = len(self['auth_data']) + # The sec_trailer structure MUST be 4-byte aligned with respect to + # the beginning of the PDU. Padding octets MUST be used to align the + # sec_trailer structure if its natural beginning is not already 4-byte aligned + ##self['pad'] = '\xAA' * (4 - ((self._SIZE + len(self['pduData'])) & 3) & 3) + + return self.getData() + +class MSRPCRequestHeader(MSRPCHeader): + _SIZE = 24 + commonHdr = MSRPCHeader.commonHdr + ( + ('alloc_hint',' 0 else 0' ), # 22 + ('uuid',':'), # 22 + ) + + def __init__(self, data = None, alignment = 0): + MSRPCHeader.__init__(self, data, alignment) + if data is None: + self['type'] = MSRPC_REQUEST + self['ctx_id'] = 0 + self['uuid'] = b'' + +class MSRPCRespHeader(MSRPCHeader): + _SIZE = 24 + commonHdr = MSRPCHeader.commonHdr + ( + ('alloc_hint',' 0 else 0'), + ('sec_trailer',':'), + ('auth_dataLen','_-auth_data','self["auth_len"]'), + ('auth_data',':'), + ) + def __init__(self, data = None, alignment = 0): + self.__ctx_items = [] + MSRPCHeader.__init__(self,data,alignment) + if data is None: + self['Pad'] = b'' + self['ctx_items'] = b'' + self['sec_trailer'] = b'' + self['auth_data'] = b'' + + def getCtxItems(self): + return self.__ctx_items + + def getCtxItem(self,index): + return self.__ctx_items[index-1] + + def fromString(self, data): + Structure.fromString(self,data) + # Parse the ctx_items + data = self['ctx_items'] + for i in range(self['ctx_num']): + item = CtxItemResult(data) + self.__ctx_items.append(item) + data = data[len(item):] + +class MSRPCBindNak(Structure): + structure = ( + ('RejectedReason',' +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +"""Tools to convert between Python datetime instances and Microsoft times. +""" +from datetime import datetime, timedelta, tzinfo +from calendar import timegm + + +# http://support.microsoft.com/kb/167296 +# How To Convert a UNIX time_t to a Win32 FILETIME or SYSTEMTIME +EPOCH_AS_FILETIME = 116444736000000000 # January 1, 1970 as MS file time +HUNDREDS_OF_NANOSECONDS = 10000000 + + +ZERO = timedelta(0) +HOUR = timedelta(hours=1) + + +class UTC(tzinfo): + """UTC""" + def utcoffset(self, dt): + return ZERO + + def tzname(self, dt): + return "UTC" + + def dst(self, dt): + return ZERO + + +utc = UTC() + + +def dt_to_filetime(dt): + """Converts a datetime to Microsoft filetime format. If the object is + time zone-naive, it is forced to UTC before conversion. + + >>> "%.0f" % dt_to_filetime(datetime(2009, 7, 25, 23, 0)) + '128930364000000000' + + >>> "%.0f" % dt_to_filetime(datetime(1970, 1, 1, 0, 0, tzinfo=utc)) + '116444736000000000' + + >>> "%.0f" % dt_to_filetime(datetime(1970, 1, 1, 0, 0)) + '116444736000000000' + + >>> dt_to_filetime(datetime(2009, 7, 25, 23, 0, 0, 100)) + 128930364000001000 + """ + if (dt.tzinfo is None) or (dt.tzinfo.utcoffset(dt) is None): + dt = dt.replace(tzinfo=utc) + ft = EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS) + return ft + (dt.microsecond * 10) + + +def filetime_to_dt(ft): + """Converts a Microsoft filetime number to a Python datetime. The new + datetime object is time zone-naive but is equivalent to tzinfo=utc. + + >>> filetime_to_dt(116444736000000000) + datetime.datetime(1970, 1, 1, 0, 0) + + >>> filetime_to_dt(128930364000000000) + datetime.datetime(2009, 7, 25, 23, 0) + + >>> filetime_to_dt(128930364000001000) + datetime.datetime(2009, 7, 25, 23, 0, 0, 100) + """ + # Get seconds and remainder in terms of Unix epoch + (s, ns100) = divmod(ft - EPOCH_AS_FILETIME, HUNDREDS_OF_NANOSECONDS) + # Convert to datetime object + dt = datetime.utcfromtimestamp(s) + # Add remainder in as microseconds. Python 3.2 requires an integer + dt = dt.replace(microsecond=(ns100 // 10)) + return dt + + +if __name__ == "__main__": + import doctest + + doctest.testmod() diff --git a/py-kms/pykms_Format.py b/py-kms/pykms_Format.py new file mode 100644 index 0000000..fff7f75 --- /dev/null +++ b/py-kms/pykms_Format.py @@ -0,0 +1,248 @@ +#!/usr/bin/env python3 + +from __future__ import print_function, unicode_literals +import re +import sys +import threading + +try: + # Python 2.x imports + from StringIO import StringIO + import Queue as Queue +except ImportError: + # Python 3.x imports + from io import StringIO + import queue as Queue + +pyver = sys.version_info[:2] +#---------------------------------------------------------------------------------------------------------------------------------------------------------- + +def enco(strg, typ = 'latin-1'): + if pyver >= (3, 0): + if isinstance(strg, str): + strgenc = strg.encode(typ) + return strgenc + else: + return strg + +def deco(strg, typ = 'latin-1'): + if pyver >= (3, 0): + if isinstance(strg, bytes): + strgdec = strg.decode(typ) + return strgdec + else: + return strg + + +def byterize(obj): + + def do_encode(dictio, key): + if isinstance(dictio[key], str) and len(dictio[key]) > 0 and key not in ['SecondaryAddr']: + dictio[key] = dictio[key].encode('latin-1') + elif hasattr(dictio[key], '__dict__'): + subdictio = dictio[key].__dict__['fields'] + for subkey in subdictio: + do_encode(subdictio, subkey) + + if pyver >= (3, 0): + objdict = obj.__dict__['fields'] + for field in objdict: + do_encode(objdict, field) + + return obj + + +def justify(astring, indent = 35, break_every = 100): + str_indent = ('\n' + ' ' * indent) + splitted = astring.split('\n') + longests = [(n, s) for n, s in enumerate(splitted) if len(s) >= break_every] + + for longest in longests: + lines = [] + for i in range(0, len(longest[1]), break_every): + lines.append(longest[1][i : i + break_every]) + splitted[longest[0]] = str_indent.join(lines) + + if len(splitted) > 1: + justy = str_indent.join(splitted) + else: + justy = str_indent + str_indent.join(splitted) + + return justy + +##---------------------------------------------------------------------------------------------------------------------------------------------------- +ColorMap = {'red' : '\x1b[91m', + 'green' : '\x1b[92m', + 'yellow' : '\x1b[93m', + 'blue' : '\x1b[94m', + 'magenta' : '\x1b[95m', + 'cyan' : '\x1b[96m', + 'white' : '\x1b[97m' + } + +ExtraMap = {'end' : '\x1b[0m', + 'bold' : '\x1b[1m', + 'dim' : '\x1b[2m', + 'italic' : '\x1b[3m', + 'underlined' : '\x1b[4m', + 'blink1' : '\x1b[5m', + 'blink2' : '\x1b[6m', + 'reverse' : '\x1b[7m', + 'hidden' : '\x1b[8m', + 'strike' : '\x1b[9m' + } + +ColorExtraMap = dict(ColorMap, **ExtraMap) + +MsgMap = {0 : {'text' : "{yellow}\n\t\t\tClient generating RPC Bind Request...{end}", 'where' : "clt"}, + 1 : {'text' : "{white}<==============={end}{yellow}\tClient sending RPC Bind Request...{end}", 'where' : "clt"}, + 2 : {'text' : "{yellow}Server received RPC Bind Request !!!\t\t\t\t{end}{white}<==============={end}", 'where' : "srv"}, + 3 : {'text' : "{yellow}Server parsing RPC Bind Request...{end}", 'where' : "srv"}, + 4 : {'text' : "{yellow}Server generating RPC Bind Response...{end}", 'where' : "srv"}, + 5 : {'text' : "{yellow}Server sending RPC Bind Response...\t\t\t\t{end}{white}===============>{end}", 'where' : "srv"}, + 6 : {'text' : "{green}{bold}RPC Bind acknowledged !!!\n\n{end}", 'where' : "srv"}, + 7 : {'text' : "{white}===============>{end}{yellow}\tClient received RPC Bind Response !!!{end}", 'where' : "clt"}, + 8 : {'text' : "{green}{bold}\t\t\tRPC Bind acknowledged !!!\n{end}", 'where' : "clt"}, + 9 : {'text' : "{blue}\t\t\tClient generating Activation Request dictionary...{end}", 'where' : "clt"}, + 10 : {'text' : "{blue}\t\t\tClient generating Activation Request data...{end}", 'where' : "clt"}, + 11 : {'text' : "{blue}\t\t\tClient generating RPC Activation Request...{end}", 'where' : "clt"}, + 12 : {'text' : "{white}<==============={end}{blue}\tClient sending RPC Activation Request...\n\n{end}", 'where' : "clt"}, + 13 : {'text' : "{blue}Server received RPC Activation Request !!!\t\t\t{end}{white}<==============={end}", 'where' : "srv"}, + 14 : {'text' : "{blue}Server parsing RPC Activation Request...{end}", 'where' : "srv"}, + 15 : {'text' : "{blue}Server processing KMS Activation Request...{end}", 'where' : "srv"}, + 16 : {'text' : "{blue}Server processing KMS Activation Response...{end}", 'where' : "srv"}, + 17 : {'text' : "{blue}Server generating RPC Activation Response...{end}", 'where' : "srv"}, + 18 : {'text' : "{blue}Server sending RPC Activation Response...\t\t\t{end}{white}===============>{end}", 'where' : "srv"}, + 19 : {'text' : "{green}{bold}Server responded, now in Stand by...\n{end}", 'where' : "srv"}, + 20 : {'text' : "{white}===============>{end}{blue}\tClient received Response !!!{end}", 'where' : "clt"}, + 21 : {'text' : "{green}{bold}\t\t\tActivation Done !!!{end}", 'where' : "clt"}, + -1 : {'text' : "{white}Server receiving{end}", 'where' : "clt"}, + -2 : {'text' : "{white}\n\n\t\t\t\t\t\t\t\tClient sending{end}", 'where' : "srv"}, + -3 : {'text' : "{white}\t\t\t\t\t\t\t\tClient receiving{end}", 'where' : "srv"}, + -4 : {'text' : "{white}\n\nServer sending{end}", 'where' : "clt"} + } + + +def pick_MsgMap(messagelist): + pattern = r"(? btncltwin. + self.iconify() + self.gui_clt() + minw, minh = self.winfo_width(), self.winfo_height() + # Main window custom background. + self.update_idletasks() # update Gui for custom background + self.iconify() + custom_background(self) + # Main window other modifications. + self.wm_attributes("-topmost", True) + self.protocol("WM_DELETE_WINDOW", lambda:0) + self.minsize(minw, minh) + self.resizable(True, False) + + def get_position(self, genericwidget): + x, y = (genericwidget.winfo_x(), genericwidget.winfo_y()) + w, h = (genericwidget.winfo_width(), genericwidget.winfo_height()) + return x, y, w, h + + def gui_clt(self): + self.optcltwin = tk.Canvas(self.masterwin, background = self.customcolors['white'], borderwidth = 3, relief = 'ridge') + self.msgcltwin = tk.Frame(self.masterwin, background = self.customcolors['black'], relief = 'ridge', width = 300, height = 200) + self.btncltwin = tk.Canvas(self.masterwin, background = self.customcolors['white'], borderwidth = 3, relief = 'ridge') + + xb, yb, wb, hb = self.get_position(self.btnsrvwin) + self.btncltwin_X = xb + 2 + self.btncltwin_Y = yb + hb + 10 + self.btncltwin.place(x = self.btncltwin_X, y = self.btncltwin_Y, bordermode = 'inside', anchor = 'nw') + self.optcltwin.grid(row = 0, column = 4, padx = 2, pady = 2, sticky = 'nw') + self.msgcltwin.grid(row = 1, column = 4, padx = 1, pady = 1, sticky = 'nsew') + self.msgcltwin.grid_propagate(False) + self.msgcltwin.grid_columnconfigure(0, weight = 1) + self.msgcltwin.grid_rowconfigure(0, weight = 1) + + # Create widgets (btncltwin) ------------------------------------------------------------------------------------------------------------ + self.runbtnclt = tk.Button(self.btncltwin, text = 'START\nCLIENT', background = self.customcolors['blue'], + foreground = self.customcolors['white'], relief = 'flat', font = self.btnwinfont, + state = 'disabled', command = self.clt_clickedstart) + + #self.othbutt = tk.Button(self.btncltwin, text = 'Botton\n2', background = self.customcolors['green'], + # foreground = self.customcolors['white'], relief = 'flat', font = self.btnwinfont) + + # Layout widgets (btncltwin) + self.runbtnclt.grid(row = 0, column = 0, padx = 2, pady = 2, sticky = 'ew') + #self.othbutt.grid(row = 1, column = 0, padx = 2, pady = 2, sticky = 'ew') + + # Create widgets (optcltwin) ------------------------------------------------------------------------------------------------------------ + # Version. + cltver = tk.Label(self.optcltwin, text = 'You are running client version: ' + clt_version, foreground = self.customcolors['red'], + font = self.othfont) + # Ip Address. + cltipaddlbl = tk.Label(self.optcltwin, text = 'IP Address: ', font = self.optfont) + self.cltipadd = tk.Entry(self.optcltwin, width = 10, font = self.optfont) + self.cltipadd.insert('end', clt_options['ip']['def']) + ToolTip(self.cltipadd, text = clt_options['ip']['help'], wraplength = self.wraplength) + # Port. + cltportlbl = tk.Label(self.optcltwin, text = 'Port: ', font = self.optfont) + self.cltport = tk.Entry(self.optcltwin, width = 10, font = self.optfont) + self.cltport.insert('end', str(clt_options['port']['def'])) + ToolTip(self.cltport, text = clt_options['port']['help'], wraplength = self.wraplength) + # Mode. + cltmodelbl = tk.Label(self.optcltwin, text = 'Mode: ', font = self.optfont) + self.cltmode = ttk.Combobox(self.optcltwin, values = tuple(clt_options['mode']['choi']), width = 10) + self.cltmode.set(clt_options['mode']['def']) + ToolTip(self.cltmode, text = clt_options['mode']['help'], wraplength = self.wraplength) + # CMID. + cltcmidlbl = tk.Label(self.optcltwin, text = 'CMID: ', font = self.optfont) + self.cltcmid = tk.Entry(self.optcltwin, width = 10, font = self.optfont) + self.cltcmid.insert('end', str(clt_options['cmid']['def'])) + ToolTip(self.cltcmid, text = clt_options['cmid']['help'], wraplength = self.wraplength) + # Machine Name. + cltnamelbl = tk.Label(self.optcltwin, text = 'Machine Name: ', font = self.optfont) + self.cltname = tk.Entry(self.optcltwin, width = 10, font = self.optfont) + self.cltname.insert('end', str(clt_options['name']['def'])) + ToolTip(self.cltname, text = clt_options['name']['help'], wraplength = self.wraplength) + # Logfile. + cltfilelbl = tk.Label(self.optcltwin, text = 'Logfile Path / Name: ', font = self.optfont) + self.cltfile = tk.Entry(self.optcltwin, width = 10, font = self.optfont) + self.cltfile.insert('end', clt_options['lfile']['def']) + ToolTip(self.cltfile, text = clt_options['lfile']['help'], wraplength = self.wraplength) + cltfilebtnwin = tk.Button(self.optcltwin, text = 'Browse', command = lambda: self.browse(self.cltfile, clt_options)) + # Loglevel. + cltlevellbl = tk.Label(self.optcltwin, text = 'Loglevel: ', font = self.optfont) + self.cltlevel = ttk.Combobox(self.optcltwin, values = tuple(clt_options['llevel']['choi']), width = 10) + self.cltlevel.set(clt_options['llevel']['def']) + ToolTip(self.cltlevel, text = clt_options['llevel']['help'], wraplength = self.wraplength) + + # Layout widgets (optcltwin) + cltver.grid(row = 0, column = 0, columnspan = 3, padx = 5, pady = 5, sticky = 'ew') + cltipaddlbl.grid(row = 1, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltipadd.grid(row = 1, column = 1, padx = 5, pady = 5, sticky = 'ew') + cltportlbl.grid(row = 2, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltport.grid(row = 2, column = 1, padx = 5, pady = 5, sticky = 'ew') + cltmodelbl.grid(row = 3, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltmode.grid(row = 3, column = 1, padx = 5, pady = 5, sticky = 'ew') + cltcmidlbl.grid(row = 4, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltcmid.grid(row = 4, column = 1, padx = 5, pady = 5, sticky = 'ew') + cltnamelbl.grid(row = 5, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltname.grid(row = 5, column = 1, padx = 5, pady = 5, sticky = 'ew') + cltfilelbl.grid(row = 6, column = 0, padx = 5, pady = 5, sticky = 'ew') + self.cltfile.grid(row = 6, column = 1, padx = 5, pady = 5, sticky = 'e') + cltfilebtnwin.grid(row = 6, column = 2, padx = 5, pady = 5, sticky = 'ew') + cltlevellbl.grid(row = 7, column = 0, padx = 5, pady = 5, sticky = 'e') + self.cltlevel.grid(row = 7, column = 1, padx = 5, pady = 5, sticky = 'ew') + + # Create widgets and layout (msgcltwin) ---------------------------------------------------------------------------------------------------------- + self.textboxclt = TextDoubleScroll(self.msgcltwin, background = self.customcolors['black'], wrap = 'word', state = 'disabled', + relief = 'ridge', font = self.msgfont) + self.textboxclt.put() + + def proper_none(self, value): + value = None if value == 'None' else value + try: + return int(value) + except TypeError: + return value + + def clt_showhide(self, force = False): + if self.optcltwin.winfo_ismapped() or force: + self.shbtnclt['text'] = 'SHOW\nCLIENT' + self.optcltwin.grid_remove() + self.msgcltwin.grid_remove() + self.btncltwin.place_forget() + else: + self.shbtnclt['text'] = 'HIDE\nCLIENT' + self.optcltwin.grid() + self.msgcltwin.grid() + self.btncltwin.place(x = self.btncltwin_X, y = self.btncltwin_Y, bordermode = 'inside', anchor = 'nw') + + def srv_clickedmain(self): + if self.runbtnsrv['text'] == 'START\nSERVER': + if self.srv_clickedstart(): + self.runbtnsrv.configure(text = 'STOP\nSERVER', background = self.customcolors['red'], + foreground = self.customcolors['white']) + self.runbtnclt.configure(state = 'normal') + elif self.runbtnsrv['text'] == 'STOP\nSERVER': + self.srv_clickedstop() + self.runbtnsrv.configure(text = 'START\nSERVER', background = self.customcolors['green'], + foreground = self.customcolors['white']) + self.runbtnclt.configure(state = 'disabled') + + def srv_clickedstart(self): + ok = False + if switch_dir(os.path.dirname(self.file.get())): + if self.file.get().lower().endswith('.log'): + # Load dict. + srv_config[srv_options['ip']['des']] = self.ipadd.get() + srv_config[srv_options['port']['des']] = int(self.port.get()) + srv_config[srv_options['epid']['des']] = self.proper_none(self.epid.get()) + srv_config[srv_options['lcid']['des']] = int(self.lcid.get()) + srv_config[srv_options['hwid']['des']] = self.hwid.get() + srv_config[srv_options['count']['des']] = self.proper_none(self.count.get()) + srv_config[srv_options['activation']['des']] = int(self.activ.get()) + srv_config[srv_options['renewal']['des']] = int(self.renew.get()) + srv_config[srv_options['lfile']['des']] = self.file.get() + srv_config[srv_options['llevel']['des']] = self.level.get() + srv_config[srv_options['sql']['des']] = self.chkval.get() + ## TODO. + srv_config[srv_options['lsize']['des']] = 0 + srv_config[srv_options['time']['des']] = 30 + + serverqueue.put('start') + # wait for switch. + while not serverthread.is_running: + pass + self.srv_togglestate() + ok = True + else: + messagebox.showerror('Invalid extension', 'Not a .log file !') + else: + messagebox.showerror('Invalid path', 'Path you have provided not found !') + return ok + + + def srv_clickedstop(self): + if serverthread.is_running: + serverqueue.put('stop') + serverthread.server.shutdown() + # wait for switch. + while serverthread.is_running: + pass + self.srv_togglestate() + + def srv_togglestate(self): + if serverthread.is_running: + txt, color = ('Server\nState:\nServing', self.customcolors['green']) + else: + txt, color = ('Server\nState:\nStopped', self.customcolors['red']) + + self.statesrv.configure(text = txt, foreground = color) + + def clt_clickedstart(self): + if switch_dir(os.path.dirname(self.cltfile.get())): + if self.cltfile.get().lower().endswith('.log'): + # Load dict. + clt_config[clt_options['ip']['des']] = self.cltipadd.get() + clt_config[clt_options['port']['des']] = int(self.cltport.get()) + clt_config[clt_options['mode']['des']] = self.cltmode.get() + clt_config[clt_options['cmid']['des']] = self.proper_none(self.cltcmid.get()) + clt_config[clt_options['name']['des']] = self.proper_none(self.cltname.get()) + clt_config[clt_options['lfile']['des']] = self.cltfile.get() + clt_config[clt_options['llevel']['des']] = self.cltlevel.get() + ## TODO + clt_config[clt_options['lsize']['des']] = 0 + + + clientthread = threading.Thread(target = clt_main, args=(True,)) + clientthread.setDaemon(True) + clientthread.start() + else: + messagebox.showerror('Invalid extension', 'Not a .log file !') + else: + messagebox.showerror('Invalid path', 'Path you have provided not found !') diff --git a/py-kms/pykms_GuiMisc.py b/py-kms/pykms_GuiMisc.py new file mode 100644 index 0000000..45d62ba --- /dev/null +++ b/py-kms/pykms_GuiMisc.py @@ -0,0 +1,334 @@ +#!/usr/bin/env python3 + +import os +import re +import sys +from collections import Counter + +try: + # Python 2.x imports + import Tkinter as tk + import ttk + import tkFont +except ImportError: + # Python 3.x imports + import tkinter as tk + from tkinter import ttk + import tkinter.font as tkFont + +from pykms_Format import unshell_message, MsgMap, pick_MsgMap, unshell_MsgMap + +#--------------------------------------------------------------------------------------------------------------------------------------------------------- + +# https://stackoverflow.com/questions/3221956/how-do-i-display-tooltips-in-tkinter +class ToolTip(object): + """ Create a tooltip for a given widget """ + def __init__(self, widget, bg = '#FFFFEA', pad = (5, 3, 5, 3), text = 'widget info', waittime = 400, wraplength = 250): + self.waittime = waittime # ms + self.wraplength = wraplength # pixels + self.widget = widget + self.text = text + self.widget.bind("", self.onEnter) + self.widget.bind("", self.onLeave) + self.widget.bind("", self.onLeave) + self.bg = bg + self.pad = pad + self.id = None + self.tw = None + + def onEnter(self, event = None): + self.schedule() + + def onLeave(self, event = None): + self.unschedule() + self.hide() + + def schedule(self): + self.unschedule() + self.id = self.widget.after(self.waittime, self.show) + + def unschedule(self): + id_ = self.id + self.id = None + if id_: + self.widget.after_cancel(id_) + + def show(self): + def tip_pos_calculator(widget, label, tip_delta = (10, 5), pad = (5, 3, 5, 3)): + w = widget + s_width, s_height = w.winfo_screenwidth(), w.winfo_screenheight() + width, height = (pad[0] + label.winfo_reqwidth() + pad[2], + pad[1] + label.winfo_reqheight() + pad[3]) + mouse_x, mouse_y = w.winfo_pointerxy() + x1, y1 = mouse_x + tip_delta[0], mouse_y + tip_delta[1] + x2, y2 = x1 + width, y1 + height + + x_delta = x2 - s_width + if x_delta < 0: + x_delta = 0 + y_delta = y2 - s_height + if y_delta < 0: + y_delta = 0 + + offscreen = (x_delta, y_delta) != (0, 0) + + if offscreen: + if x_delta: + x1 = mouse_x - tip_delta[0] - width + if y_delta: + y1 = mouse_y - tip_delta[1] - height + + offscreen_again = y1 < 0 # out on the top + + if offscreen_again: + # No further checks will be done. + + # TIP: + # A further mod might automagically augment the + # wraplength when the tooltip is too high to be + # kept inside the screen. + y1 = 0 + + return x1, y1 + + bg = self.bg + pad = self.pad + widget = self.widget + + # creates a toplevel window + self.tw = tk.Toplevel(widget) + + # leaves only the label and removes the app window + self.tw.wm_overrideredirect(True) + + win = tk.Frame(self.tw, background = bg, borderwidth = 0) + label = ttk.Label(win, text = self.text, justify = tk.LEFT, background = bg, relief = tk.SOLID, borderwidth = 0, + wraplength = self.wraplength) + label.grid(padx = (pad[0], pad[2]), pady = (pad[1], pad[3]), sticky=tk.NSEW) + win.grid() + + x, y = tip_pos_calculator(widget, label) + + self.tw.wm_geometry("+%d+%d" % (x, y)) + + def hide(self): + tw = self.tw + if tw: + tw.destroy() + self.tw = None + +##-------------------------------------------------------------------------------------------------------------------------------------------------------- +# https://stackoverflow.com/questions/2914603/segmentation-fault-while-redirecting-sys-stdout-to-tkinter-text-widget +# https://stackoverflow.com/questions/7217715/threadsafe-printing-across-multiple-processes-python-2-x +# https://stackoverflow.com/questions/3029816/how-do-i-get-a-thread-safe-print-in-python-2-6 +# https://stackoverflow.com/questions/20303291/issue-with-redirecting-stdout-to-tkinter-text-widget-with-threads + +def make_clear(widgetlist): + for widget in widgetlist: + widget.configure(state = 'normal') + widget.delete('1.0', 'end') + widget.configure(state = 'disabled') + +class TextRedirect(object): + class StdoutRedirect(object): + tag_num = 0 + listwhere = [] + arrows, clt_msg_nonewline = pick_MsgMap([MsgMap[1], MsgMap[7], MsgMap[12], MsgMap[20]]) + srv_msg_nonewline, _ = pick_MsgMap([MsgMap[2], MsgMap[5], MsgMap[13], MsgMap[18]]) + arrows = list(set(arrows)) + lenarrow = len(arrows[0]) + unMsgMap = unshell_MsgMap(arrows) + + def __init__(self, srv_text_space, clt_text_space, customcolors, runclt, str_to_print): + self.srv_text_space = srv_text_space + self.clt_text_space = clt_text_space + self.customcolors = customcolors + self.runclt = runclt + self.runclt.configure(state = 'disabled') + self.str_to_print = str_to_print + self.textbox_do() + + def textbox_finish(self, message): + if all(x == "srv" for x in TextRedirect.StdoutRedirect.listwhere): + terminator = pick_MsgMap([MsgMap[19]])[0] + else: + terminator = pick_MsgMap([MsgMap[21]])[0] + + if message in terminator: + TextRedirect.StdoutRedirect.tag_num = 0 + self.runclt.configure(state = 'normal') + + def textbox_clear(self): + if TextRedirect.StdoutRedirect.tag_num == 0: + # Clear "srv" and "clt" textboxs. + make_clear([self.srv_text_space, self.clt_text_space]) + + def textbox_write(self, tag, message, color, extras): + widget = self.textbox_choose(message) + TextRedirect.StdoutRedirect.listwhere.append(self.where) + self.maxchar = widget['width'] + self.textbox_color(tag, widget, color, self.customcolors['black'], extras) + widget.configure(state = 'normal') + widget.insert('end', self.textbox_format(message), tag) + widget.see('end') + widget.configure(state = 'disabled') + self.textbox_finish(message) + + def textbox_choose(self, message): + if message not in self.arrows: + self.remind = message + self.where = self.unMsgMap[message] + if self.where == "srv": + return self.srv_text_space + elif self.where == "clt": + return self.clt_text_space + else: + if self.remind in self.srv_msg_nonewline: + self.where = "srv" + return self.srv_text_space + else: + self.where = "clt" + return self.clt_text_space + + def textbox_color(self, tag, widget, forecolor = 'white', backcolor = 'black', extras = []): + xfont = tkFont.Font(font = widget['font']) + + for extra in extras: + if extra == 'bold': + xfont.configure(weight = "bold") + elif extra == 'italic': + xfont.configure(slant = "italic") + elif extra == 'underlined': + xfont.text_font.configure(underline = True) + elif extra == 'strike': + xfont.configure(overstrike = True) + + widget.tag_configure(tag, foreground = forecolor, background = backcolor, font = xfont) + + def textbox_format(self, message): + lenfixed = self.maxchar - len(message.replace('\t', '')) + + if self.where == "srv": + if message in self.srv_msg_nonewline: + lung = lenfixed - self.lenarrow + 4 + else: + lung = lenfixed + self.lenarrow + 10 + if not message.endswith('\n'): + message += '\n' + elif self.where == "clt": + if message in self.clt_msg_nonewline: + lung = lenfixed - self.lenarrow + if not message.endswith('\n'): + message += '\n' + else: + lung = lenfixed + 10 + if not message.endswith('\n') and message not in self.arrows: + message += '\n' + + count = Counter(message) + countab = (count['\t'] if count['\t'] != 0 else 1) + message = message.replace('\t' * countab, ' ' * lung) + return message + + def textbox_do(self): + self.textbox_clear() + msgs, TextRedirect.StdoutRedirect.tag_num = unshell_message(self.str_to_print, TextRedirect.StdoutRedirect.tag_num) + for tag in msgs: + self.textbox_write(tag, msgs[tag]['text'], self.customcolors[msgs[tag]['color']], msgs[tag]['extra']) + + class StderrRedirect(StdoutRedirect): + def __init__(self, srv_text_space, clt_text_space, customcolors): + self.srv_text_space = srv_text_space + self.clt_text_space = clt_text_space + self.customcolors = customcolors + self.tag_err = 'STDERR' + + def write(self, string): + self.textbox_clear() + self.textbox_color(self.tag_err, self.srv_text_space, self.customcolors['red'], self.customcolors['black']) + self.srv_text_space.configure(state = 'normal') + self.srv_text_space.insert('end', string, self.tag_err) + self.srv_text_space.see('end') + self.srv_text_space.configure(state = 'disabled') + +##------------------------------------------------------------------------------------------------------------------------------------------------------- +class TextDoubleScroll(tk.Frame): + def __init__(self, master, **kwargs): + """ Initialize. + - horizontal scrollbar + - vertical scrollbar + - text widget + """ + self.master = master + tk.Frame.__init__(self, master) + + self.textbox = tk.Text(self.master, **kwargs) + self.sizegrip = ttk.Sizegrip(self.master) + self.hs = ttk.Scrollbar(self.master, orient = "horizontal", command = self.on_scrollbar_x) + self.vs = ttk.Scrollbar(self.master, orient = "vertical", command = self.on_scrollbar_y) + self.textbox.configure(yscrollcommand = self.on_textscroll, xscrollcommand = self.hs.set) + + def on_scrollbar_x(self, *args): + """ Horizontally scrolls text widget. """ + self.textbox.xview(*args) + + def on_scrollbar_y(self, *args): + """ Vertically scrolls text widget. """ + self.textbox.yview(*args) + + def on_textscroll(self, *args): + """ Moves the scrollbar and scrolls text widget when the mousewheel is moved on a text widget. """ + self.vs.set(*args) + self.on_scrollbar_y('moveto', args[0]) + + def put(self, **kwargs): + """ Grid the scrollbars and textbox correctly. """ + self.textbox.grid(row = 0, column = 0, padx = 3, pady = 3, sticky = "nsew") + self.vs.grid(row = 0, column = 1, sticky = "ns") + self.hs.grid(row = 1, column = 0, sticky = "we") + self.sizegrip.grid(row = 1, column = 1, sticky = "news") + + def get(self): + """ Return the "frame" useful to place inner controls. """ + return self.textbox + +##-------------------------------------------------------------------------------------------------------------------------------------------------- +def custom_background(window): + allwidgets = window.grid_slaves(0,0)[0].grid_slaves() + window.grid_slaves(0,0)[0].place_slaves() + widgets = [ widget for widget in allwidgets if widget.winfo_class() == 'Canvas'] + + try: + from PIL import Image, ImageTk + + # Open Image. + img = Image.open(os.path.dirname(os.path.abspath( __file__ )) + "/pykms_Keys.gif") + # Resize image. + img.resize((window.winfo_width(), window.winfo_height()), Image.ANTIALIAS) + # Put semi-transparent background chunks. + window.backcrops = [] + + for widget in widgets: + x, y, w, h = window.get_position(widget) + cropped = img.crop((x, y, x + w, y + h)) + cropped.putalpha(24) + window.backcrops.append(ImageTk.PhotoImage(cropped)) + + # Not in same loop to prevent reference garbage. + for crop, widget in zip(window.backcrops, widgets): + widget.create_image(1, 1, image = crop, anchor = 'nw') + + # Put semi-transparent background overall. + img.putalpha(96) + window.backimg = ImageTk.PhotoImage(img) + window.masterwin.create_image(1, 1, image = window.backimg, anchor = 'nw') + + except ImportError: + for widget in widgets: + widget.configure(background = window.customcolors['lavender']) + + # Hide client. + window.clt_showhide(force = True) + # Show Gui. + window.deiconify() + +##--------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/py-kms/pykms_Keys.gif b/py-kms/pykms_Keys.gif new file mode 100644 index 0000000000000000000000000000000000000000..540eadc3de9ed30de537966137e386e072ddbdd9 GIT binary patch literal 537089 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%0A!zBBNU!Vq1U3DXfa>B^5XY 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%0DmjD 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

Z)eGp|gf z!RIXZ<8tJNA1MTK0`hR4PMzBLiQKSDO?(Lu(EjKl>cpWzOv6-Zoj_+#zePUgdOYTE zc$qLh)o~Zf;)g&GfW0uANVu;y`vx+zy3{d{250#a?kGvw!XwopIG1AOC!?7ctt8Vx zM}_8mt3al+`&~armC{I;DZ{dNG}t%PG<@^*{^}v;%0YGm#naH0%Y6`KChIz z-=w>LE6uyaCW+9qi)v^Q#bBcVBA}p7FkulCM4Zqer?VukaFvr==PwoIp(qy(>J)~BFpG}S*UKRVsJVIl#B)Wt zZ@gaekah1(_-d09B~;sGX7~=hS>B({GLD}@PY&yb_ysH#8pI1L27vO)jGr2i?!1iH z2be0T7RGkw6fMA+pw(S5OqR)ep>ezGpO^s#JIBEU86Lv1nE`+sy#|H^z1z} zh}8ShJT}j$hQ|wFMfD1651p@RyV&X15;>IrVHBQUC8g598ys&%Vyh+S^XHzwp z!qaJB0p@qXpDASS5Lj1`?3!Yvo2&!gO)z(`4?X+)&<1;ki_Ncq^b{Iwk!1{>rHu*A zu_CLGX|OH@^h05`NQDR*Q_^i5OetLhzEwY575u<$mlVY(dXFU_4y&q`?T`gr zbP=CeMn~1Qp%5ta87cY_5!0z5cBwGW0PLU?J9rm+3xca%neX0@TL<80`jB&N_%Bko zMa?Q@BjJB^;!YkBvp`%Qq+|3@XX>20)k6!rhq?#ncDiRY)!o-yBv+7kYcIdT4ED7f{NZ9)&~8{BX7hGaHm}v_&#;nITgIfo_)-P8BP^`z zp^37BF;uZCdC>G>nAx+3X8$hZ%->X)AKosVv$NPNw)jtn0;|L!7gyn3sb6^1&JCY? z)l|z&+PWs%O4tA6JQLnq`es@MFIsKNw5}boPFVB{%(L08Yx|XDd(d^;(eW8^r5$R{ zu4)liv*>t#2kuW-hjSecS2FP(;kk@F$6JfWig2fqai@pjE1reBrN3EWMsa?Z;0zgX z{xbgb+jvT~Y$XUyhdlx#AJKywDY{uMCSP4JeJQjeSIB4AeKu}i6WrE(bvy3jIK+ZJ zr|8Ar$^-RqWLQ&Yc+!WV8Cr&NyzdyuE~!+SA@xCX^-KB z##XpTj~!nL&2tn0Q40-;;7lu8CLAsj_`5#@{outXt7fAy-amK~&H#i-OXh%Gn?!cb zOw5x-1NWr4>tHjD5*2U{6w5+6`LQ(0O+5(&v8S%Kj5S{#{1Sw=qgu!WkQ5%SMuriy zLaP*e&NE^8!p_+JJ{^5#js3>B?ZnR%d~<^7jTW8DnzkapFjWxdGv)I9XRi+}%TXLG zVgcNg+`g(GoqSwjd?~Dqtu%uEgAQ2l7C}WWD$Tr=m7pJ@JjDL2i^!c5x{DigagYv~ z^AZijR~UJs;Wb0VHCI>UsR27}flMFq3)8I!wB2fYUF7m7B6$g%x#Z|zS$Jys}!qdvH4jg%13Q*6jafmeUt(Aqyu^la&pZaQEPfNC+Ji&oDa%9 zR`n4qYNVKSB5X-rw149~kjD7NsG^&Vv4-*r>rPI4GYOa`jKL zMIy*)B@?+z@l-r?Ju@I(d&`2P02GB;UEQrNh%kST?!puVsebMx1jwx-XGls7o9VgEkT3J2T(jeH@j73bdcV2CI&B5qK{!N%d;1!yiCW8%-ig*6nNX? zEK;Z__z;#tHF2LYt&X~PO-VMFZ(BX3L!#>MV%6@q-D$Hb*)>@B^38|`S=K46wE%-^h20=Z<8uGCAXfW!*uuIWFW0H-xe&cgh( zADK-h0F2EeIs)6BTN=k6K#U;;sSU6e&`CH_m@TH>$l=zkBd3G4nwSY#*bwb~G1%2FqY6?xVB-ow6EmBrLS9ndQ z6WJhm$c@W&ITpj$kI{vw_w)EeO7lNwhBbod+brm>b1r!$I&&4MCkbXR<%auJ<&iLS z)+$ojAcnYi?=9MR5A8se5Um(Q14@(01k$p#&TmQWYPsI>H-EjMQ@Q#H_hw}mR($y6 z)6}4uB0rJog(u)ia_mu8i%RAF_X_MarNKpkJ`GNc0paJ=y3s71LZ(sIy(?$7lPA=; zyE5#&f^b)+ReO*n2gm}d5r3*(PhS7>=bi1z1h4`Xam73x1XjNT<5?IRu*g1{%0z?M zYV3X9|BPFIi{aqkOL@1JAY8S!;$h93Yo zCz#!50*f7ILFrccfQ>2Topw#xx*r?mc`+qyZ?vkon`ahcbXGSIRRX|IJ3e?W*z?3; zMXws1Pl-MXM!d3xrL!_7*r;AXW;k=%75@6+fA?6g5{#-9UIV;dk0x@WX#afYx%bdA z!$DlE+`L&1Z%7F6ep#dn>Nm6xzsy8mzq)GPO8VE7N!iOo{T_$g=(bSML<=OpvpzXTa-XpD{4|F3Cc54d0oLQzd^k|^?U&;ZRt zU&_5d`wNJcK_x9;%zX}cWj1K@7uzml%|=fZlGX>-+HAh=Qw2Gm@=v!y^u&0z&Bf*#UjbCOs=G$*HS-Gpuy(j6CeYfguyO|u<)9m_nxb`@^$UScH>PSW7iyLNM@3a36 zZ}iG+`DytnvT;qy$bFXMfVcjsRnJzB2M4^_FZbGh`i%)J@R4cc*geHmz{*d(g-ZiR zsO;_c8$O)MJ$3kHdz?>>Y|hTX-NEAa!Sq`*gw^v)kHVa08196%GaQH#=8?OA< zTtC#Z{@S5?t8Nue9XF|0S5${z^-L@{4k8oazM`3((BI?cdqp7A!w`;5mcA=z#NmywZ&2E+7zzzsU`^k{`io8 zaL+qSo7m-$N+uew5tMfu=BTItBC1uzMfP2FeMR=tr9{b!ZL-0Ye>0k;u;nKLrqd{q zcmEdQS(Q0rJuyS%^z&sS*k@s$+HbeIH|!d{FIPTWsG3S=JmyT&WVuv5?cq@;1e zBL}KmXx6Z>h%>2l$qY0pwi?WLU0FYa;`(*|LK}oGipssy&TPK&lsNTh)ME(xP{-uZ zU=V3jr+P}_aCufKA$8_%x@2fNWyxC^@@?^+W8uRUFw2Sfsk>W#eas?kZ8{z>y5hTO zR>|_wKV%ggTS;u=u+7oQ$UBF7>=TEK$No;ixY3^#mz%D>241hZQBMu|1{Yn;H_D1l z9QJxE2-l`ie}hb{M)=#h?tLzF3v!*vnZdaWE`l)LH&fOLL3!VE)%AT|Zp)sW_IyE+W#)YgPfQLzg%3zBXphzTKlq(x2z zad~rIrT_WlH9Z2nzp4XkEhzAI(7^}gD^Yi`5E@0{jGiq&D9C3NK8m!6q(cp%a(HWW zK@yn?w!EfwN0CiBT{4MdEVU$vE}DUR2G}qaMrCOgCp>MT)_f&go5o(oS;3wEp?)sk z)6VgmZ70BwKism5;pelMfL+lnGbmetZq`uXX)a(wsUdWBbtPft1hcqRIu^SaR-X1u zsI#jDW@{k780|HR>&SdUDO^0B*vX1|nKU{Dyd!35Yt|aP2Z}F;5po%F@De`&T|zwL zsGSxMY91U6up}ICe`t|7ZN1@s*1e2aZ4Yq~5wFWDDl3@*(b|~RY=H=#G1tyWckXXC_%$wvT~=a{oR)25jzCY-jz?IjiLHF5frVXTjedon0TTf8 z`J=f`+Jbo3aTr&9XTuh#HrNT$sg#OMBZNe+CAQUa5f@tX+#QvP?ANVfiVPcMx<6kQ ztW`CZH$G3QeZFh-@-=mSfUHtSJ}fpV(Uj)$*w~$;17`U4vb`@8Rvu0pcs`&gu8keg z3o#U58=ym-V=XOezf z%u2buiyfum2d(5ZTK-U{WM~p_7E5ydOLkC=*w%ZpWIyg}63ooG9i9SMuB!#ao*fI7 z|9sD)Ep-*7JQfjBdWBwnqw%h>9W`YQNu-o{C~ftWx&K%KPBt&r7lf4^@tO5DkB}!V z3Ng&CI|j@0K%WkfWQ$-1ClL7Q0?Q!W_6aAOd(lil@$3plLV@-S7dSZZz)scz#5y-q zpZjWoV|R-r=THTbt>~{A)NT-S3X{~=R+x|XBm&}Hy%MpTt*#l3HbE2IjLjftdB?Qrc3WP zU+sB(`KbQI#7@YTd++hrS~vgwf1%XZZ#{Y%@0cC9_aXk@Ad+I5)z(S5n4sfm%Y%6+E8k(D{=6B>x`)=R(utW69p{E6U*x@2*$HyeWu1Xj(9_ zNHh64%n1!2s~wxQvB;Yfw$$Hyl=;tS?Q(lnjX?w*E9Clnr=Nhz3krN`-b4Z-KBF!uI`ZI zt06eodUM3~&C%NtF@u}qVUf#q?vdM%XMMgNxd4xPxJgi#xc6Az-kg0p|IS4%!};I? z(Z4qH5pSc-v08JPP`%O{8%Qh zNeVrdlofvGcNCW3JL2ch#D9Df@0yYQ?M${#=C+@m z+y2{U^*?>yRm*+w>me@5`!G*&{69Q=ary^+EpC+UlB<>7M+*6R4aVOCk zp0qzoCuc`E&y{eq4P4P_gOUOVG`LoP&d}H*$!FF>u|5RZLC`SMDG}7Xw zY|yG48GDEh&CnR`mXZ#%afK4KJJ4I<|_>VyHWlX5QgdaU17OPNS$wdI9y7zXR|HZ5Ti2o z**2G)@lY!doSnwkBN@Qz9sHkiW8V@HHlC`jks0NK;QsbRE`&j6c~>Xu<`Hf(0TdlK z#{}>i%*}9HYjUD>3YZO88b97|hnFNql*g=+PYdXJi32!4yb2DJ$8r=eIf&8F;jtt$az~r(> ziPq?btC9~IbakiRQ$8YpbG85~+9|AUSHNDYbc%V{Mhbi|6LGoCpcWcj%!8J1##TNAb&^h5CR3M{xShG6&1pv8SgZfjAkVw)0f=p^vs9G*E4#5268W8uWoh94W8Bj-PP$ZUm$f{7cE!JD{*pEBJ1ckFp7G@YBZtV^ZLNMTSu$SuOwo(s|^ zVqOa%MhdD~BgP?uvBbxzXF>n6SytfvWIC>$Uqw%Z8a>9%3bICdAgBW3D+Xe?iQbDK z&Eo$JvKg5mi=mzD6Z;*iQgcKQDi;(=p@(WHc#UqW4WSarNzWim3anyzAY=^2Q3OfK zhUMx8{HDPY1&|vpP{u){85K_8ibS1<^$;=kL}OHt?Fq2u15QjAH=FifXxeN7YkmH^=^uq#nOi)9YJ3Zq+GLNB*9@yz;q zP2>YR_*E+-zMI$8Z~CL-4vEa=a%$k-^_`A-?zm56-?M7$Uoy-N4TvtaG0>!ZQ=GL= z!meCMZRc&sk4eKdVZc%QQjn*P5D=PsD74D6kQ23r0-AY(w zGLXq`13DPE6o{&%+Gkn8^8mO8IGI#_N8YhGMsUb-e5A9hdhX~OY`*=x>T__M&8KBqp=folA z;~2feGIX&*zqXnr5^Akf*v>ps6f>ksXn1c?U%mx1=uRk(z#O-NHMVhvj1x?6?p{*i zycHP!vOcDnQy<)p9F%!phU%Z@!$Wy!?WVYshowtVg9GdmfvgyCh)+Q9HxVqKl7Cz` z`=aCBC^0d-VIfdiyr&?(=%5;^vFicUE8f}&CbRnuF~r?;sh+Vw$BbRI7(^jA6HUh} z2onHiFCC#ldEbSgzXSNyK=(h{3|knU%lp&CKK=#~b(?RN#e+wxP&)-NeSB;=7kQhH zisWNHQS|r;_!$|-2_8B#%?+T0Q7M4C3O8|=Or55A5~=n@Eax9Mm#Qin4+8pNc$f&# z-vjtI?2G^u01mhIOhkXzt&?W!Y0cfb=74Fo71Zxk>Sn(pAfOw&e3-Z4dEW*}k-arS z?}!3Zpb7ZSCD_i`1;_%Eo1tM9h;WVF*o0<~#U$<<-)WrAvf(9?xh$PF1M{zfSQ9rT2w-9XMgd^Od@zTJ921yUD1fbyDu?x# zR%3PA`ABs1iZJ~LKh;>y3uNOvc&7@p`*?JlJ5tC;w5koCYKGR2!t1z9Gioi@YWq!H zXiXcU*{Jn0(I`)Vx-8wC`9$|-Bj!rWkbE`L>>)gdznZ~E*3+HhRmga$O1M++M+#m+ zjA@&SH8hAF1ED`k2^DSdA^`PCrE{wru9drQ13r5N-QFfP&pRf@bqGJD*c4)HkqZ4@ zhO3}#>XTwCRIst-tcJ7uP$??(i-)l1n%CbkrRkkJ%Yxr#Pyt(=3~@~lv#tccf5C%>*yAOM7E-{X z5(dyOrG4^f^}MshLxU;jTicvXzuS4pU^ISoEZ@5Inby#R_L^e8wIP|FP=>VFmj}IB zXjcd9-#bT`V@BvcyT1mj1JHEsZH$ui8@v%~+28pU)~svye{10q7n+IB^I+Nyf4krZU*>N`8S({iHfWfhzt zt(*vA9LXl9D!2Ycx3Y9)ugSDJp#2JJVM@x;vM^uwgP=hk7BBN1r{E;x{`Q)JTXXCH z9@wk{>oJ$QBt>|s&`r#a2*q(X3Sx|la^QnqWe}CepJQAYM+To@2CeT0lGQa!euOtn zTt5Z#f_X)=``S_K;EU6+%c}E_XlSMqP8XnFx8X+;cOL`~U^YukzRX3=2`f$JL|{ z3S@Wd$==mAA(q%vf`)gu^B9+q7u(FrWj@d4#0eEFi^yEVKnMiglaITPa0s8cc#Tvk z_iy+m$9voVnODK#QnbMvA&0H%>{^>zE@` zfYW^QwYj0!V^_+es%Yk-N)k(fOcu@qLT6AS;Htgl-9=m zy4s-(To3mpdsOvr$|uml?TsQrPfb;T8ol-}!0#Ohf3hlo2JYeE4_dDN$^)QkDEOu% zEV5iYV*?1wPq&hmEwDw3uo4%y(qC#W)lGL97hz$mloteZ6 zFruuKCW_TaX+p1D;_g=i^={{G9a$P^;Lrl``i<)=OGLFREv|Al7mhI&&KxUqb_wN- zSk49N;JpG^8B=U{0ScS>=}~>;rIK&TsA-5ofmr(rGK~B zaPv3l^vy+wZ7aRwueBr&Buh{3eSJB1^zHg#YS#5HKM#L?Hn&DtvHaWK{haDda1klv ze|QwJ!S57hS*KEOeOY5@?VMfaY~aI&Rf^|tEE~RdugU#+U-@eqp6Tx#H>oYqU0^ zM*#{k?>p!FZv1&h&%xjF%O=iF^h9gxj(NC67JZ6?VeTBcqaT&dT)>-l5#>00v2>Y@ zcCOaQ$h1G6HOYM6pFd_Ee4_qZbW-_$Soc5162_1Fa@SznS%wJ^Pw$T{WB8T%c`T$0 z`Mf^CWq^_Vf*ZfkSgVb!4wMCS=$@(LzONj`I6qJA*H1q;*o?E8RQO?6O0)V)74v;F z`ilInq&AMVf8>fozn|TyB-Cj{DC^G@?26nH;gohEE@#l@bG8UqVfbx=$0sOdhFfya zQh9fciEV|}HD+zQP2-&2MTjxsEz~oP7IZ-3bkwMzEt;ZTabh|c{ngPqE^n~d`_el$ zqz?)8mNkBKn$YudcR+1)BB~F<@aL=ZFdfzZf^Tl(t`9z5L_YM!HetDM3UVUxcACY( zA)RR`O?=ER-?UODDzxDpvvRbHQ2d5kwNV^OXhp*b;OJ||X2lP(0Prz-n}%n2A6a1b z=ic5nh)Yy+x2QBE|7M=Sn#ICVObGMiNQ3A5@l!bOI==OvQSgyKvP=4vn#+taq0#=% zS>?IX#Gp}Il8xb(JN4bqPm!;`C7fsJ^S&BQqxqK(** zpoM{TO4f^a10pMJ$M?P+Y*e<&^og`+!hzIrGNMRCM29K?#A9K7knwKQOed;22A69!h5-$+C6U*n6Pj z|GU!{5F70WK<=pp)?hVYOYAQltqa)j4OFp*0)P*+2_Wx>b*!rJkl;H!iT?t)^P!(UHn<(s?-MU&~rZ;XUeumPaBWV``ev; z?3_0u(b=c;rTp%24rsVQuH*KtYR*7-E?=~?cymbN_L7eaaBqzJa@UtKpoZUUQ(`*1 zhE{#%89Y_9(8X$r$#Y`cnwCD?zw9~#V%0H6egb`JVtv|=1pGz?4;gO=#wRK_9O5g_ z#Hb%Ih88fJ+V*Oz%|wnsXMONy^qKLDKqp-(*tuaAd|DMAWU2`GV{*F-TA%_y)`#cE~9vFg#I; zsSCTb^FJnTb`Ds<90C88V>ZP*MhJ>v!8b^iDB6OAMx>%_x&2N#6~zf0U(;vEet0EQ z>`WBeMHE7vk@9YO$ubSgiDnxHsC$~sF&3va;CO8>MJ~NM=0HNNS-dt3%)jWqWS4JX z{tLb8r4rZE4L7M%uUKO@bnwMupT}+FsaMltP6$%6`4-VIM9oC!6=LGYN5oN_Yw*kS z1j}o@lfI-RvwazP2KV1cd|$G9jt_@r!-s1Qs%OZNZ6eD#wK*dFEwikPOS|nm=x3FP zU;UA7;FBvuEQ79(sRO*#LFE}5Ha;!~V$}md|41eZ->{?>;mRW2|Kw}1V`VFP6N)`l z2*aPCd)}vg{c?dMoF;6*gfGPG^GiJT(@PGe~S>^tD9<%$t*pT1Y4#DT7=>>wHu# z|FUAlQIN;<-2>5YN_?+5Jz_u7JsHp__LVhL{J-jep(@0CC$E~T7p?vH=Y!+56WBg% zj7xd_*mlpa_2Gqc?iZeU^yONfd|_3xYV_vE`z2Q!-iEwg{YiDdU$N=*e%ZOT3+Fc; z{iP=ZTeq&ifq*tSwH-Zc3b=58Rq(P+@$r*>?N&pe^si>+V*c^)v&A zF32~X{zYnGZ+Gx1>fxn~#+(n?=Mb@~Qgl9atTh_<(){Pd<16`{@T3(Vwmj;I^g<~v zE%Qr1#I6c|dNYQiWdSajgGMXXlKuAN`vZykFItA+sE+oAUE5cle0FdDkE?RC-Dw+7 zK7V}uM`!z~OYe6TZ~c4m`qZhPyZHP%{=+SWj^Qz`TtV@abFsD5~s{o z_9q>D^=*2__`^Qm!>>)Yd5_(=eV}Xa(SM4|mzNJPzyVQ0LIaO(d_hSl(}>r-R6zS| z`%Rws6|C#cCzemHA$n&NMZKIhxRW#FakjtIx;e>wljhDV)S|RF*22oyZ)BO*Q6+cU z?yz->{gzjmwQCmM(965Wc03u$dF-w6+^W8}RQR>wL+)GeFWnEwOIb36StZ8M_~Gz! zpia}%-}8Nqx_im8YbxhBcSf8&vf;eGL-=5h zpPtX(?kZeEm-L}U6rQNjMTDFX8FNJ&e-#?r!Q*+yPZN=YJ$b$@upMoJXy)w;kaNK! zD3Vo4q5|Z}%X?Xm>19AO_44*-7yvQQ{Jy-z7Q`7o`S%jsT7`=zinzn#kQT{K7dw+{ z5Mc)7$x?nFQu1UNYSSV))FRnY0Z-$CL*`+-5}+ITkoY=-$sE>y$^!or2vRPdWMxWx z1~;CU#31VtzXjVW3ypbT8->tQ1C3${VJ)DIbxcqLJh0wymAkTGnS!4YOm-RZqtF{-cHH94z)A=I>7}SRO{?sNh?dAjlKtUNVsf zAPyFYJq%%d?ZAyL<|xW@Ir+}>;-xOJUyj&|Ar0mSF%^<5K+IN&JpdS22KLvYYx7_a zS^jSh=0zRsuiWxrI>b$d_vehQ>VgJxp|^9PTUGhNOL-m|Ni)+YrsLMN7E~@@1TY|^ zXAlToKy8OYh#*iK^boxOrU2|7igqdnyW2r}T>vB+p4%qg-4(F7h{$FN2x>!Um#awbQWzbbKbPu<T-*Np;a#{1~N`q{cxL$d&O}W22 z&$Jn1{!Qr%u&HARnmgMnf}PP%wiUDOo7s*7>=m=@l~7+7D_?JVzavvS-1glvZqBIo zUG0Y(?CamA^7Z-V%Ov@+FM@pi{HUk6Uq$xpV{2wgB8?2_N# zM7kCcI~bWeSVcTmYPT_{WALw$!H`Gw@y)tC(omq&P*TXy_FY3e#DdgorD-JE{IXxf ze`@KjmqUAg5AjX!WR{S!BLesDx^$rA&cTa!4rikqC+`fmj;pvZ!OI@uH?hc@jXi+gGkzF!`CCvMDY(OZln^}Hxoh-B z$!Pb*(VJtz>n2BU{~lGCj`ewu4aANO<&F)HMV^#}jQ%bgdpUOh_n0bI{Lty%qmT{1 z=ZR06!vjhRCmS~OwcLA=9Qya{hS$*0DXaT^uA#FLp>x@xLBh~?&7p+0(2oX2Yqx&1t=PDZVol+s50?^7X@YNp3#?(9#7i>cpY4zbv8#XS> z>fb~->`;)l94d4uE!*RI%y@X1@!Ubo1U!o*R^5Z|j#Tc_bqe|l=+T!!CP*hAofBaL zejusdwdYpy5nUgnL9yKll0YabWLEI>YHw;^2i~NT{QKR=+fw(BC5a?jcyu7buv)GDYBuMP+rE{NrWQUEgtDQN9{U7|;qYG_l?R<0*H2=c^vyXJ#e?k1D0NIl<}R(=e5&RyaQd%d@%Vo& zZ&0uuhGOcHej&3s{`=#G`4bI%#Ae{i#iimkK+U0+^;(QIzJ;uv8tv57M&(GT+L;z$ za5U2{V0h~eh1g&~>{(QAM#b({!8vWB9U8dTk|<02)5X!We{Orq9u7f@pl(|Bn21Oh zz?jj&$n(@s8pvubG)sZTGR0n$J2{L3vlwXv9m2>FkNFb+3dzsa^M;_@anAU0y z6vRBS(8;jbldcC{vOb^|!eqj&?qJ&mJU-0n=;G>2p z+`!-ZuXR(6zvWf_m_f=Dj4Taf7yA&K>OxI90wM)_Kmk|+fGty}L6&%((s;5Ck)4B| z|5s3wAd2sTQ0d@ztuf0!=Y@{H;e@5;vFKxKIKro<$1zf-C0Asenr9ff^}+CIn9rT6 z=He+W8ey2fFBSKSgAIvB#J34;_S?lT!Q&?Lv`l#1E%;+~!oKN;X$NgRi4bQ+i`~a^ z$JF7y4CoY3d^4xdzYEgKgCsHX(lk)5>=Dn0y;~He_t)-Y+!;Ppc3?iW)2=ab)3G<* zB1aB#45;>85>TY@->H_gjB2fVPDD!fNzVi)@KQ|Da*@LB^}sT!q5B!cNk^END?ku8 z^~&QveD|xxn+9Q=7+X-i>yf5yp*Q8-t9yVC?#L>|NdhvJlrzw3pTDyW3T^@YX0qNh zAb?`oeiIP@7Tm&#n`fjFqUt0! z?!xwX3;(+e=5by2NG0A&V6)*n!T*87hb6L`&)Fm%2ICSP9R6mUS+Mo!I;N%o|xe)gEgu_2Oy`U7pRwX&XEP#gE&tJ@MNU9&m zgsqsg9;SOtx6d==zq#6KhiQc4fk&h@vqr*gbp*U1uM5UQs_JOmIcO%InhoB68

C*H|lr0 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%0A+Gv_MfV*t=W+X%z60NCqkhya!4 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 z

tbKlh+iB(~{PsNE;kRR7jhwcmQtaj&L`duNY;tjEjH7vc!+ot`hGB-JiCdpYbx z#fne#l2cQp83i)PNFYyPolVg714z+0j_?52Z`_|+gpT@Xcjgmzj{#9Yvv+>r@Y`{x z?IP4R7M#-@_s4P6ZP1rAx+GAxouHd%nFjg=kzNTQBJMKgQN(3MX|xbY*V{@y+6M4( zC<-n>3+CB2jG+)-h4_u+gqSpgi!0!CU?fk2xE-lJS1+dA;Oa<)WBSadF`0Aq>V7jhVif|JU z>^{Q06fycWsmu8AWCh76q@*Dze`+D7S_1wR36n%TiwO8j2nDsSL_Iu{UH#pJv`-6h z0&|~Q;!`lM#ztRUFq><{TdR;oEZB-N_|aaIU~n}>3-K|+zP?KNsz71&aDE-xUx8cs z$jm#f!iWf3GU6x#0+~X}rlFRpP&b9dCN?y7NrUvb8XTpCtoSDsTE8xFK6GSv;Zult zd?xuX8Uj@8_Oh{lWFH|P{sRktlaF|w2KOan?t*-((frEU!-2QpYyh0^68W!E_X7A$ zELf@vIjtr9K*lt)F*j*2rDILJ0+vlCFt>Q^0b9Ts_#gS;rW-nGu&N8rda6h45N&!2 z;MUfdgB4mk$e~_9)@?NU`9G*K0DVzO(z4+T{diEN3jy$VDL;&|W3)3z{#RmE2Qlv> z17rgbV8H*TLOlBjiD2(_Pyj?4uu_lj_Rl+a71c$9GK@@BG6W_*`CNdJBo}b_u=+;C z)m+;QGW4>LJT2L~bn^jyz<{u-#pnhdw;K{a3-A?M_*x(mK8=rK?R%|)zZPTe^Kl#X z$R_~hiV*Sk4WdGedt%)0EJ5w1A(IVJD^r}8lJKo8XQ>c@0)ayE=6GevD3Scic^L zzI_*&n&ohamb+04YORjR0{nfgc;*e(>mRCi=7)b-#78}dfO=FZ8|I>2RiA} zkb@OKuWyCt#w}Ycwz1R`yyw=js+2q392eLg$Iy_=nGj3X_S>0I@P>Uj4MH*i=>I2E zJ%fbkla;5w|07v2;&5!_sESylhtsd7$7&$SM{B;6gKAtVYaX!-KrFBcFa=KUTV%_J zXDdkSn7FomIR0h=UI3lfZmLNIw(KG=Ga^QT5Vi<@e{Ddp3h)vV@AA!p6)YbW@r1LL z9Tx**W1ngv&02h_-XvC^ZexTxv0!OrlVBDEbXL=}kQ$@wuol>>KrNyZm`@7$YSMRu z_pM6mZ>zC*(YmWi0n_W?^8QO{La3K!`FHIPYu4GJmelxcA(U-MPXTaGoMHDC5I^Ys z5H+MI1-wXKc0fI_ zT>{y=w3-T>fzx_}0eMc<p z?dFe^lLw@HT$tSHgbJ%o{J1nWPC2xOIU_-9c*#KJ829vY&$ z2X{=tVUd}?39$F(&qkB2KWR2alMy8}W~Ul%Py4Nc-)kW_wFuqzvFc{3$F{A;a#S%S zh@BkBT7uX83s~_XR1t*EhHVvLx(rSGB>QW;tm{k|df_aW1I%)U|a)kMk56ll({yhk18;{60 zzGQ>X4d!K&mP2^0HKGC$kXB}5ObZFRAWTGP!ZNnp;7>B z8w)j8h1;MaY+$3^>W)rp!gtOipDIXC74RxO#vX#ZRmvGBTWElQj-G30^ZUO)H0v|) zE=T}Eq$g;$9%B(OI8^vye-3sD>`B2d_H(hRKeg?R@M z%tf{f0{l9S*-G6tpDb*UMr>(~-pkiku$kLb*d4W`k#)EeG-Rs=y-|ozD@fOA$UPe3 znPgIl5HS;D|KB|J??j4J~5X+G}xdd$D;oS%pi-U$im zhUOz`&HaIZ{Swq|kh(TtPOY%Fq^HGrAxFai9$zjpH%Y+60$d>=AXj@nZs$znNg zRDt4m) zZb>_XqS$e?{j`4Ejz$Cr?4=~*UJI~n>v9fg>avKNneb#X+-(TqLPI$E@4X<7)R!ME zta6!K|LA@>X{*uGRRALz0g|DFEb{ahL5Kp(SGeaVq1|f*0YEKg?RN(x|Plcf#53~#@`qK#5DlnMh4j( zpCYY!umLhR%Ayk-b#&qnDr7KwL*Oll^RFRM0^dx4kjaKevGtdu;Q7LE%q8Ro;BtuJ zQn;u#AAp-C61>O|YZ~?@85Y9A_Nb8ElZZSav{X=?==09Ih)dL@1(>rx(yX%Y&1ahSZX@qC!Xa0M1Eyt!L%;TLX-MZFcuOWG zeKUs2a=MfW33+MuzqRgHY4km{Q5W55+YH#pUtM#H5h+fR*dE+<7JR!<)N|?O6JU#4 zkGp^BKrA$-wd0w^Xw?5MzIgT~Dw=EGmhH5HffOq+8x08bM#-7mM5L}@SBahI5G(?K z1qxt-8{+7q124rGr2%_ggMV%$2%80*I26ZZ>1PgeMm?%qKI5mjZm4NG^ghgAA@;!I}Uu%vFoH4v?ek z(-z7|XMT|VtEXpAXr{vDMCX;wX=Bq-)mHzlGZE6oFw@cxr3?JtAq4#SF^b^U=r6yO zEq(a9b1hxubprkG*N0CYZtO2x811h*{x|Lz=Gw=a6NQph!KGiBxk~LQ?M|lcvC_K` z=QFy@lt+DXS-iMS`hE7Od!wTXitzN~(w~{M!>4hU)5d%MR9s1`#_&}g(kHv4kCrS9 z|Cq^wT+)?(JunLiR7YYg`7Yhce!`{|K0dWhm2_tZ?#{1sx1F2b^p#shX20XrMnpRW zEDPc{R{U+(^Kxk>*Xe_B3s;7`Hx+tbS9X2qW>8BF{Z${vJX`c9Fi;IUkukr|axmz3 z)pc~&j&EY(7+~R5vP?lBQ!v&p3P^K8JIJUI#-z*q0vj(L&)S zJVW)SQ4Y_3?}uA4XMVAs&bQx+&vQiB&fP*v(sF{DY<|{ELB-Y`WNtP6GPMV4>tQuW zi)Xc*JswKauA3NWf)=7;#xfXe~sU{3s*hE-+`RiP3Y4a^^b@Zebc7#)M;YalH zJ9oGKl7HvxYin;K`t0!pqftVM&bgOO4pi7>lfx#5oJ@1AavvXxhUWGi=Cl!xQI>Z- zT2syTo$tZ9n*H?o@UDF}m*Y#m&W%uQ%SAe*jpVcB(DvM)0?iUwg=dfb*!6YGQ%?J( zv&t=2RqkG~F>dn!d1OQg`qy~ip;eklQ5{OW_3AJ^L$@rxgffR=NWV<< zHoSNo?1c7=(LsT)@42?o`pot>;gF`dZnjDtDV}X+D-WccJB6>s)Kwjk&x>8W-xtwrda4FJ8Ji zee&YvUq3#(c;z>!O&iOO7+-L8!2V#I@32R2g5UixSfc-fgowm|#~ISZKp_8D&zsNp z;k-Kcz|N!lUe#}2x*t6IvF32dJI%wxp?_;lcf|iK4)ebK`PqK&J74F1_5SU@Z{NMO zkb5dNDo!u4{-i=Dws0+n_2nU-%y()E7>wcA%9Ztv=2J~k-c@7OdBsh(f3?JXT}V2b!`b+W>@QcDFNJPJb~^v|6*Ro?BlGFq90#VMtSD^H=llY-!U5tI?_AR zw~mOjbX@w<&xSQbh2YR9m#R^fzZzY)VTV z!2>PAOFJd`kIjJ7-mRpc8gr$5yU#Enu;)EQ}w1nDpcuv zn8P$V0>Z2z?UBK#`$UqTCnDf(AkbhPf={{eiMV&+P}rsBq3}TGA1)+EQ&Yh*cSe%T zG)0Y0o8>yCm|6LbHrlxjad+Hsx}v@CnAQ#;>DdnvIZm#A*+Ly=9Kd;0tNhx@5%wZL z<~<}rH;q9kG6+$a9YM|1i$%poxXG;8<|`j%A`&do1KzKV02}3r+aX6%qbnI78Ix%j#pE&DI13(+o5AIKa@+-GxR-n*hBsq)3pROwa>g|mzRr1 z3>N%GGP56T^_DT#b<}nQ-eS*gzbZbNrH!=lrN50TVPr`4pUlHRwscC2fsHtIG;8jy zKBzPI&O9reayHv(n}zPO-WblBzqAy!UuUW{^9~QA4<%$@JR&ysm}mIdOEVlFmkb?i zc`mq`w#g%_X6&5hKxTxy!%g}z1IM#dAhVWdRwb}#%@$z7E!-;)Upj6eUS1Gcyx3;q)#2_C{;CJn-Fdv`+bK+3j?_;kkTo5h zfgMXbobb!y$CGo@`1ivVKH&F{b22m&4LzyNXu#UAIqY_D1hks=>G)h0NjFj3WtZHu zNAGBX=tOu0=?|A`vtS!Q*5jlxUHyBXnF~`=UL?p|kz#J~Mgg&6{3CU68aV#?6c8}2 zJLHg~()cKJq))zedzK7RE5{tJ6T?T0uJ55WDs=cQnlEp>Ag~wla1S(Wt_J4DmnJPpT!zFB{IF_}M0|G; zy;r)7jNBoT`LbjI)Utvclp5x;4=4*}!uY5YRW@FP*iE{)(Y{OfO!woPYb)IpH*ryr9a(;ho;Gb+K)w^Fc0gLaD=eX8Ov}R zxQ_zrLp$+vk94g99!tI+EmW?{JhnX(o-0H+FO-M2R>WjkET3@Q_Wk@WL)o?-XJ=t~ zsSzF~fUTN!UaO&QT|fpE$U^)j8&26eB%t>xDl&!;RH`i12fdaG&7QMZH!sO&$@dz= zN;{FBR9V(lX?T@+ps;M0kw8;d?9fmvtd3@JEH-M6Z5wvlyim0(O}13A4!LZ9#Va(n zRBIZj6$i4QUJA*9XRrky)SeuvHCf^gez3ywO$G>V2nL#ebcICr4e|3VfuezzlEw5i zSri{CHtn?@f`So?nsn5ud?_u6$-ISPb}?L8P+NBJ&)1Fzrd6bOipuv#)mNWM1B*cP z;0#OzqybP?dH&F?+@ag|abm;}bf*%zL62Bv6yc13sYV3m8({#j%n)!;$(d1AY|5$F z$pXhl)C^>J2rdJ?T%ZH1XL+|BP3KUSOZ>O0HAV|z_sCu-JsSg zf)grb-8Gz25%gInk;zB)%TWS@$O*l4``HjAPJ=7~PytLp*9Kgxl0kEz&n#X*tn zkklW<)p+H2XoZYd=?|^y1`hV|3MYBR^E`zuw8km6&bG(umov+n@AX0#s`@3NEoPMU=5p;m+q!CVXo zX^z`gDm0MlT(S4qhOW^Sp3#Xm<{PtR-NBbv{AaPS{5=qA!Zf7ETK!X zG0p1l8cTxT|344mN(44~sB@63Be>a9sWsk1Slu^qqit8gPe*RTS6IvE#2mMI^fTg3{^2oU?%8iE(Q^pD-Tv_ytQTC3zD*< z!@MDJbLTHFm6axoHrSPiix$LL=OnKiN7m`PO;wVBSqVdN#6<}_kCZ%4fI@O5YwgQ+ z11K(4>_#m!Rr+uh5SsEnK?S|mEcvfW2AjO(gqC773CxG zz8UJ`#OZSv%v!|m3nIw^lEh?s@gS>N@=Y{HFHi^^6?poYU26;dnZ zN;@W0z}CkJ0D%U%j)n+64`s4F%y~QQCPWz4Z0Yq@Q@QNE3M7I$lq6lxgwlc(whNLts(AfS zd06M+NiegbDlecSKD-Z=YAWh3qf0vxc1mfYP!_B~Yy(ivFc+z^%u5N2VZpWpaxN3Q zOXV_h7;;-sZMNWCDX*fy2*w`a*i>2kEWGuL9(7=78{y(RUf zJj2{l)kfZ+f)cWig*+&>$p3YzsxniWdD1+Pe>+_yPS84Wx+PoK^6f24)cm@IkS5V<#i} zBQ(_n8&hxCRf0%rI>-0lwzaP!-EjQbZ6!x8-GmR5sVefRF3YJF=}(VsRUhSGo3j=` z^4~mKAW3LJO@XKHG+p!Xc5iP34J)wqGalym>uZ^&*eFvLGi7>8n9t`pNzSEg8{o<*C`_zX&==fAXeHCK2aM+PSzj>-Gjlo7tdH(JMlS;Q7|%1E(VNhID! z0h!!K`mh8)6S~Pseeb7WGkPzwbEYoQDY9jX;8ipO``yyCx^V!L=zmpU={KVt_1F{% zgA3$35CVLWhoHl+v9!WV$mgv&?EkTaw(W%&Z90 zSmji6u5Q(X4${7N&mShoc-?Dy9=@RWs}GwUn>n)Lugq^wD{Hw!r*|);)k-KEOT@i) zBgNx~+FGfZGK-9yDFr3yQ~P0eMvx%F`#yS0YOAuS{&)B7cyI-_g8w+)CVIS`c>dE8 zwYQHZH58V)=l%2wYqPdfjIuBIRJ+QPmCY!(Ea@(a^7GoYI>NKzvELP&R{p?2lXk;Y zmEV=r@X7W?PA&B-#Ke>Hd5I~&(0FO$>4qM*iJ&%cG&~m*rADe&#~(4+Pmic zr8^USz!hM$>51`IM}|huoy?7Y7{rON2&87lF3$)O$Pn&R52LZZ`85*%g-)qih&xjU zZtE)jWr*}oAa=So!-xxqQnJZhtj`QN(j+OH5^Y^LGlrs7M%KnMFZ4Y~T#72ob9-9< zt(e5;UP>QNik(`0G%;~Snd{k<*i_Rs>4krqr)AarXpx@xtnb(l+d0%H8M~ezeX{YV z|I8-@Wp>9VvJS0yoRnRcx_jN0Q@g&b%V|2gJ3a5>^)KlK*Y6<~)9-f`CJC)b3{ZVyk`o^=Vlg;`nDSoe#ud0F^Z3}3>iSCh}S1TO{5C97L2 z6ZuiD@js0^e@II>Kh5AA_m6U@WgMN0>onc7$c3j1dJrFIXAbv49WADMu3)p^UThOo z=Df^3Bk5qS?bs2zvN51BU|v>XFPuI-dqY{9zQ=FlBpE&!&HLXaENBA*PO@*3|sXl)#Z zA7pXK9~7j`%>e4MY7m+*7QEJ=YTcgKJFQf~ZPN_+!fFN2q2q{BRRJEqn8~S6+t%%o;li^Ep=yOV_RZ#pI_$ z(UgKZd}a`J|=ta@?S{6SFU<)X8G%dMJ_P473fmOQT6I66X9qY<9B z4OQEL!KbfHddtJ)at`Zo+r`@y_tYZtmTY!0Q~`JEM$R5PhkJ`pPCt z&rN^qlMt5OL+E?)M@V%c+SQ<@!0q5J9{||VDYc1M0d@I;wEaWZeB_JZb6v=E^`3UR z*%Q%Y+QxZ)U}xs3sg;%wxl@Q-*LvT6!whYLfAxTM3cgiXwv1IM=bMcaxyRF^9_`Y* z3)O^~C5vxe&wlYpk72H^808|KiK5!lw2XDPd&rlyvd|JP{OUqK&EW&Wk==m#Z9wOB zg$CW~(SuCZn-e2hgs&OB=m2WQ^WHemRiy&Qg&_%qm`hyN&~N%q*!jec0lj{CjPq8u zZ{-&^(n3qW-NS`4ue>CSRkm5Ai^}NbU68ARQHqDA)t?h5mE8d=qv&>5`=B(?^8ixK zl>p>#x>0;E^vB&#=ks~q2kR2%+jivLMZku%E@j3*l#jNjc7BY=?4#jdzBM~9f+7ft z>fK&B{2%XlXU7%045Z2D6&UC2f8zJ;5OTxld`` zxrsvNfUYSlfo(FR6!ufi>jC=c%dG5P<_z0X#`#jlu_X8GzFiq4mmop!Q3$YRBEr}@ zI3E@|$u%WI$oMHsqh&b%ar@-j(4jSz6VOIYk6$U*P0wNENEl8~C$Iv_tjC5YaB9=p zjEavcb*75At&KtZ4n?Bp8En(1Y>LDV{q?>NkT6k=}RhIZOy zyobMg-nVfc;%r+R1a3r*rl0MLi5Z3ccxjAs!``IbG+Y_s)AvURuNMVknXbCPX{{kh z=5FNL7)~RYoY!NpH#ODg)zp>x-sO{!F{cKmW|US^?cWty-y*SOW-w*Auy*{z(nOaT zse4%MGM3JL24=$(FDs5)HDmXPUu`4Qg~+%!FGws}xbBZLv`;7PW^||04w^-d=xxow z)+m~h>p3a*U=yB{$y(O+UnG>RWG8r16IPV;+~keiR85Z5{4p*%Xwwb-;bXSvCrMmw z!#Menom?Ci2eDC@n@-^E6%9d4b}1cXf=vt8Qz&*5_65wo@}(0oNiW{c5?|s^qcf^P zl~S}V)DjM{)Q=~)>gcMY2!ob9I!=B++)EIfP&sRIA;j^sV3?HrX?WdRu1EG^i*YTZ z&x~)SvukF*=Y=NcE?01K7E!eX&l9 z_@u?AvDXQbJtj_@ruBF$rD0+Cl?&7D4d>$fxB!h^gk(cYfsN0$@YS?^-O|+_{UIM^ ziP=?2VP&Cj~B)|Lv4w2O@r?E1&|Bb zpgza!6a~FUginHfNDzO+8&ZpC*Q5LA>S1PW79O2|rvP@$5yqpZB zqhVIrFb{?3XN$Gw#X3_yhmykCD&SH20JR5)%8aFqa+Na?p~lAtIS@Z#4zVF3EE0+# zi}Oa=82`I-+UEC|yzm96bwQ6`ORwKVC4<@Xe=OaLKhupHKmMK1Ck$i5Hp3j7^W@Mr z!;&;ABx#NbY0i?nc5)^oNu}CQsk?(prBe4c$4cF+BpvSVDV4gryD4?+aQl4s{r-Oc zfQN^N9p2YSL?o?9X0PXV-ILNgma<(MPMxp?yJ8N~lVt9W)-AnqSJ-=(%b>#) zYetXUJzGZ}(;ol(<@yCWd0#^y0rbmNr1t=@a{$Pmz*S&EJtU!LTJ%#Lk@FkgmK)^G z6%rS=+%Ov%${wN%6c!L|{D;F%?ed(1GEosfabT#2op#1N6gBmnir8c?srP(t5%WAW zn4&XhcHF&>)<1gSFWmTO0EEfnP70)!GohX=uJ03Eh(J!5;!+_xY9COKm5~^K`1e9W z+D+qlYuzX0uFs`{PxiJfko|M5&4SK9C_F^W^&F7dC=c;Y>O7`SA52*LUy&k^)hZA> zkjtcQN%99D_g*t_nM=w;6S-#OblHU1Y<;ryfy){F^YQ*C!0}|M(U8B(M?V^WaL1ZR zPBO#!n1^u46A0ikWmNVXe*SkH{xt8__y-%3biC{jf}q89L1tn!NIMkdpVpR4E|#hF zo#4fNJ7}1Z65M#_3`ZP#Kx@s-MO*qfT2S^vobT0qg>06J!Am;D1gZjB&e@ zd}GkAWN_I}os|jzVMxFUlD~~&swnn9%w`BTZ5^v?Ed%PEB_Ro`e0wB~1fa)H3HqnR zcLuyfQ*uZ_;md8HpRu7qWANZ1u*0~evseOigL!j+#qRK|2A!1!*Q7OzjR8Ba144MB zL$?4P9fM4Q7B;5Ew*zd3r|~sh6ZX5U04@mt24e;*Vs#KDFtGn0JPRDyQ|UFPf%J3y zW{l*oG$=hTfT%%gKyVB=xRsa4XhKB}|8h6Nq(UHVwREV^R;>p*AS|T}DTXn~9Md2X z`5`{Xn2N?f4rbhXu513Xg<$}hAUu5=beP^y^I47MIPA)f&ATIY@)V^E4Afc*!D<38k4#YXd%x*8xHDM_d)zIa#r6G&r!y;nUK;?165%% z7AKVU0O-1?V~XgMc5Y|PQ%ZZP6I0e>0kWaq_LS(z4YK9wgGQLwma4Tb>!dGg4@-0o za|N^_U}14x^4;#}4pGvO+N)1SnWcLdNv$NQmKxo*>E=TmFhwIH{GgF{Z#|R%f;WBAz=t^ey7dp}sC}lH8jpf28gf-E1r7a?$Q*>d7o@9FFJMv+e%LUPO zGj+5qlT5#f#EKz~Q<|Lr6-G3Kk^#rhyH|ND&LaBm`iQ>Ll0KfxGAgND|4D!#0rYn& zB{e5D!VL`Rle&tzajTC<2SDOd(#Rrm@Wf$HBiNn90g<%O1)yio=*F_d^&cLEC@>{O zau1R0TA~C>m4GV%mIUxpz}&c(i+}Xbl;yq)go|w~Bebs2!e$Y~832+Akc@LoNYk;b zL5PwU!UQ|C>ukqCaD?113c#8GJNHY{`5^dnp7Gxsi?R&8w6eNFn$Gvi$_1E=Nm~fg zqa$kTB@Nz~U1xA{4NTUIg!L0(*Do)>f+VsyuA>qZU*gsu8kAsVGA^+tu?;Y@4v&@sgif2%(D-ys~Vor_CsHAk>jRiIyRS?TA{84u> z#30}I-&+Xf0&d*+ipVh^<1%`H<_$6m0BC$+T8l1F`gmp<+M!)Q(^-u*gKIu3CGeL3 zU_QroMvFKNG+!q@X{JNYYQJki76V#XuEbWAd`fa~Ek)1baCd}(nEaOx<6MT1Wd@>$ zlA!e*N(txy`wHdDI5I21Q|s9aC(2LRLUEn|8OO3TuOn6 zM%2`u&wCDK89&UV{&Me-8t;JLr2$>uYkRx{uNU$zdM4g048DWH7z(ko-YdNGus^+H zAqyPK1@3R3%ia1``7HPc^(Aa~3)|=up5t@LlNa$!8&SO=*uStcr#`U9XVvw-cSDs? z4~wW%KGA;_@#gv-?W(r~d@)D(#_X<-vA^W?VldX9w|293ZN!&#@n6<2$+yI9FODxX zy;51s-+O7pGhpK5=WgeV^(11_?lX_?6>s{}_u)HV^4ul;qOS<;mqNb$O?UC*V(6|? zep;Gk`l_$d4(l>Dmt<})*%GSRQvEe+zaJM8oxQpK#ig$~&p5evpxZ1r3SWcsc1!X$ zg0}A+-VWX;HoKB<|8MLEf5^$O!WE@Oc-*V?rKtZ8QQciy)>OJ9VtB{(8|BpvEBgN3 zxjU@l_tIbfEZy}Pmw$Or4+kRw%Oz(0(zjrlD_b7OKJhJ7v8JqYbJ_pTs7B~&_Al0M z=U8@^-M_Zdudj?TP=*^?Y}i}XI11kL7rW_4KO1mWX?C^wRs2#5da%X++un$8t?}RX zIq?r=1?&eyPH(^zOc%bztAG3DhpAswzy8l)#lIh|AZ=;jeT+>l0IOn;2emE>a~tdj zrKo)_PHb@xZ>xnjFRa^8SZ1~*`ml-f`$2eAxS5q%&#d0_6`EbLeuf_#n$b$3@_o)C z?IWUpb<}*)(&wSIdwf@(nl&+%auq>4!cWIMY11Qv*VDDSPnm z-!vI^tmdFVg|WKkoR<^7QSeqUM;(u%*`5{&5vMe(kD>^ph{n z<%40X(pqAkUj5DpgDN4sT4D|Ze@d5&n` z9w|k+hBt6ND8q@)Uh}f%ilD9b!R4Qj`2>HG_SI;3(E@94lwW#RTgBwcWk=1PBorLB z54}2KEW#jkVWWa#hRx&GY15lMFDZ3szd6#-t#E2z+RDJQ{kqV=4@3u|Uw68k@1IPW z;fKTKc?VM|6_w5IR<*6o9yr`s&&d zDDHGK+%8{ok`A|Gv!!(&sZ1F$Hi;m&F2315P+Kskb_9vCIwOw!(tqbI+{&+qVHZg< zq_xpAsWNbW|6T{sv&L5+Ev#zT(~vyoE2J9Ilvcwk7sO`Dur=+pTE|nIP89DTDTA2z zbi+K_w1+x_PHJ)H!3@8(t4!PXhcr!JI1mG9FDyS%SL4VQ+GA$_6oAlF<*aO%r?I6V zQz;)mnF6^r2KzIb(^xVSN*N@`VLn1Aoj^kt=z%6Tg$nvQAX=c(k;Q8G@4mS-Ns4u8 zKX6Z3)EiRel2Tn#G;9-Vlr`rC_>lL_4gLdMa_~AnjnZ5ffVq!~V-1?#Ro1K^^87FN zR@$f6SU*Zit=TiHu%ZJoL$^LS1`JjQWO8ekKL?QJC3}i`(riBHm6d-Ye=i%md^7Rb zmf&yFri$4#yPy3L=pXNX=f@FMz`Lh@!Ep(pLaDsz9C9IB|=(PUAj9i_)s!i8=oc-FFUzxq`*z)zK;vSufAI^>| zNnbiDHSPR$$K36Bjj6@?hDx^#Pvh#k#p2TGO80H~cQzVKEw7GOdK4etv+1L3|G;d< zvX3)4oB#VBuYtw&%D>sCpx2&=&XwV74)9Wm7fB;NBc4st4`8~z6)vg@-};D?;Z}Iy zd+t8L!6zSV*`a$1%HDXZe&J;Cy{#YAT@0xuyxAIaDDlzRwo7M<|ISGvZ`=`8db#h+ znQhzG);^!j^dETFxP2Em+2A6>>#T73b!i>1s7?X5H{c2nzUp|(aa!)IyjQeu{WyhM@$K6l)R*gq3AI|SIJuu5>9_Q7qb5oeFm50&u&ev~_N}pGH zk9ZyNY>X3y1&4E?8#TSS6H=J-3;@bp_tN4CV3gU?3roN>v1U1Aclgf;Ee(U9B%uru zqJmN|)8=YIn@NpBW!}8RHp(7TDi#3?6$z~GSyQ+Z_s_-;yhJ@V#;@t!J?sEM4E-9& zvd;ju+o@es(i^(08~AI5AQaWu!>69r)Z4rqG^3@;ee3c&g;B?`r~2bFmUy0O!Bv`B z4eE2f<$W}2)3o_xR+VRx7M)z?z0!%-`YY^wP4K1^gf>-fnRlxu_>Yv(qp7C0h%f3? zBG~K-V(I9ROAbK_5Wdw5M*gU& z;fQLm_5G&HB(CA_^))T~14;*2_z*tnt~txrVAOtbXZoGA{%cT9f0 zI0dk2R<_J1vHd|&r=fE)mmcR8h6({lQFBy_8~vfE{-rtKD#M_;Z_nepx%1W44*~Fh zOt|F@S~vHxAK-8nbo0-cYcHQ?-?$uku;7{$fPT(}AlQ7*uT+p42(a;c<;&B@90NNwqZfO(ttSGkzcHb3k228jjiHt&*ih$PbKsJx8Jp)OP&g_GjQz=>d>aG9ML;z4 zr^fo?oSQ>XHGTue055(U9mJfM7bbvFDG5AGbT6=53?)%CI?IpiaoBOXsRv>7>`D;s z)4a^y>UOny?0oU{h$brkGq6!a&XCe~4K(0~rZlzS5)AIFjczfGnD`cxJsq zg(JzqN+$-gZa3q_J~X5k2^#n`X6a9ca2ib+3(c=iHg1Tz>9<81RuQ`%*&`)v(%0a6 zH6{!I4f9P?iMytf3q)&}0o2F3-q&6QH8HaLSdv5oRYf$&3y)O1-s&x7LX%a?j9H(MJQgGowN(h*g2ee3>Hd!+G zztLd)v?fa&GZoX90IXXs#ZkCsZ&YZ7l#%K26$K9Xs-}xmu;VK8{xqD2+WZ>8bbv-~ zPa)psn2a0Xdw~?k(6Bk0ZF(B^9=Dpp(;}k#Qt@_T4NxpH`J}b#H=ra?m{_!-U4(#X zK~dTjON><8IW^f006#9Z{Yqm^o(LLOudYk68K4e2DtNqZiw`Z*ApW@*D5%>t)}RZ)K* zkZj<4q1#eSJS6CH^;D|{nH(PcRf2}W;IVtqu~dsVhMg(L{5Y`NLj@B968ub2OsVY! z2~42^HE`mNt3e?KaFkU0ldG-L2i3^wx#>1ZTnO`Y@^P$PtLTZ?ka3&~ISVl6XYB|P zmR=l`*ns+|f<@6RE&!BY$8;7F_%5yE*>gP>j&CxLv!ZA~3c${2!nuhO->a=l)Odu4 zXHFPh=V6!51z(uXX;1O$PXP&lcDp#Z$$ubpDY1ZN-3iQJ5cRf>u%ZFzB94cny(OKB znKb+z{nny@3J*8HTe%h}3GtKkQ-7NO)g`&9qX_azVtSCe%-RWdP+|lpNztQFI?$5H zVRuwjO5mt|pdC}4uLB?^L_6!!Y22FqHv5p+eOe&^J}cT?WVz{C6c4U-CDNOh1g0TagSeO(S^5Otv2g zsWiHCoM0({6rSRe3837Yrf9g>0u@5x4d;84qp5JviLQPv)DcW7TN50>!`6tf$7QG) z4qhp3wvN&&xpZf}MI--Zhd?vQ9q}sAwVp&e(hupP#qOvSQm<<>RlhfpW z`Lg#kyRzwaMx}|@G|FXb^zv>KhC6UF0T;efcOjUkpzleN}YBpuCUdN5br6m1Wujfgp%G9>Tg1(QMHIyN% zJ*TmWCNTqs$e-Mhz}C3$%A{BW$nCVP(QJ;@nB7!kV~t=l2NJ|hdZK!kbipD?n)5`H z>Tw+FShe9=V|=v+Q3iw)G*23goGHNUBM05?pi9qRQIUstQ*SoLE?Y$zRMqx<8uO>r z*A42h7hsT>W1VnsYsZMI?`?z${p+OGObh^J1MG^XL9wEz4YVm9&hQ)v7l{y`#9QjP z$ghgLa}KXxgz8?%Ex%GBZ-%KIBSjQYLkayVO9Cick_3LG0xU$~be)008$Q((_*6|K z0U|~v1fzvn!@-urE&70_MXK%XQbru#;_~({ga|9P3h5&vwL00Yqw>r(J^>!KKkGji zXm%C%gtvAv908Vy6wr{y8nnl1f|_geJICIlBem8~Q#|^(!2Sgr&_{$yWWiSbMl!&A zXr|BqrQF+Z>m$KDPq8yH*JtCc?g7hCon1f09zR~%m^w$kDY78aZ#8_p70%bUSg(DeOEIe%$HX z$5Q`&>SC1&>Bzy)7?7C;$Woq^@ltEOOJbEttNld;yC#CoNaT-2$ZIMz%!fiL7=A7_ zZK2k-sAG#o#y1T59G9fmn1s`88z7dqHFydTC!w15qnfC}Ne!xsi4*~C9pwzww1q}%?CK&pzM^na24wv*Yyicd>-m&I+>?cSBS9ViHOQ~D3j)42R*7~~!Jf*4*J%;F*B}KoA!>R@?O9fc z0W-qISEp_5zQQ`o4Nc78yF_ZJuRN~ zac%hJtZ&Ww)NM8$v}3MAqbzC9h}SXm%F&OiEPHD~(o^&)MbayXUFW5=O|p*>i*#`uj1PQ5aMIvHEpE9-A?=wSLO!2ZJHJ|UGc-=_k{Q4DFax>L6@gE zt>sKrRid9#pRSWGV?ADmGRgi^YZ^<1K3HuW;}x&an8kGm*R4il43;;6aE~RG#Z76> z#bYm9Jj2{2&hw62BO<>UrK)-n)V1xXfx zG*yLl9FmHLp-Umj96atSL;3kTW)P~-1zqhTCaDl?NzBn)i_8>Qk>+1S$^!0X#Z{^4 z*d9oosLTjQf6~g1{JwK*1h9P(UBDsLaBw9|Oa7Y188%+9p0|brE|4z!#KrrFs?-{2 zKQO;V0*MxpG?zR=KYX98r!DHNNdQW;5Z5bl5c?=(B+ELg6`clCEy{FN6?rr}qvAXX zu-vr~fv@uex)ejmC~cv6NFWl)$^fHw0BrWX=!MXt-Wcv(lG?vNXZw_9 zbz4Q45P7w$(Vb6>3kU0=eKr?>#5Wp~HzJIqk7=sRwr-i-3sH?G2bVaV{7Gwh^Qw8D z)Jg%gNT8Xc)XGOdO6D~7J;&ZST?POx8~#AWPLrrolw#Uc&w(w|k{v^zZxAEHo7nwe z3US&KXHINUYv#3vs_06+mU7PkzPC;H@`2-63SMyrD?1h+H_iG({bt5%!1b5DpWI=W zG?OaLBaqgrECsPJZ~bZB9Jh0c&`o{Xsu}fxP~s0^kDTZ7cCEV1F#7~C59E*W<04h_ z5nj@at@(Ea89eK0&Hz z^AEcvCX&fhzbHgc4CJ~lub^q%M{~1=Y3woDy0ZJmFN=>98j{yAmf>!96Sy+TfiPfV zU5IsRl%h$%H7@Cdj{q~r4E}%!Q3srUmDnY_XE&mLTcq=usugb zyE4I)CT0cX2@3bFz^`GN!s zM}`2*lGIOLEb*t@#t|MW>_jC!bq~E^&^B?q)nsolf^63y>ieuFd5BhwUAA!f5Pzzi z6RRqK|9J5y7~XQ(0=5xpA)T(`F1t!agovzoxp?1;EH~|&BB;%n+KTeh1{7Lp3!;Ag zMi%s{xblDBd?UZb9}UR6s#@0!hOFF&baEWa;wkEyu&dJ_-6?&E4z5^au4X>yMn+aV z-_>u>VC-(}1phJpYOp$#5o|4pQnfBS+MgnH;cW08tn@AaJa@+Iu>!KsYIF41ec0cV zc&t-`qjSNkq?;uk3w>S3(?*b@Z^qKKwlxBXSLPPyns|@UwvsnOzxyUD!B@(P@d?kW zn^a30`Qj(@&#LLkGZi%_8?$2_R<`_VJRm*EgRU|aD2s@t+!b^IOj`0(xFQ+-o1<7c6Xuv42g6)9A|&`kS<2Uo_>uCra*I21b(@ zE~*9tA(QBvy`t{5tGRUIkX1M0FqKgaba*}h73c#SE)}BvnXe01+oteM@gYx&Vg!~? zv(`q?4zfE1E;l)!_z|k{7zA@d#s9swIcDuxU1m}0Dw-sS)b5`%o*xys*t@sMf43_C z7NziXGvBH>Nq4(x_fJ|XZ9ntDEkz+^!HCF+0a7 zP3`kll=+UCLlW_K`Q8A#B>f1%w@>;Y5K?TWKqfM!EgpN<$(y3vs4QGaw2Jtai}Y2j zao;AORaweeFNbZC{%^f}Zo2URvy>8h$5m}S?DHOGO^+=9qG&ng{cYl6bjY9SIzIC+ z7JbCEbIL?OZA`aD*&nzt4YNP?so*dF>M|+ZzF|rWTh{+V>U=hq@*vzca#ltTDV_2h zqvrKXBaS!pN=I!<1yc8rKj%6pe&8D`tlzq< z|0Qd6dRdvahACw|7@-f8>0sms#AB}Zd4#~RYhy2(N0&1n8LwEElG7V1ORim9Oa27UvrfDYz%8Mm6l)z!6tFAroY=%h)})M{L54uq!QmLNjd6MSM36 zc~zm}W5W|f3JYJN{C6J3ZH_A zBsUMFa>>3dPyfhE2`av462x*~X4EWC8+AbO9+?r-9aQse`_CvG|Y<5sV=U z57{*b?Rp-*=V}b%=&q5a_OYH&+!{bwNYDAI=y9&eQKsC=z%hpXoK1E5D*q`U%DYHS zNs|j1Eru@NJ`f>?31NJqos1bs;k_M$2WFa7c_h)zi{}Qt`=-%+B1mvhps=ExujOaS zRvs4U>RyPVTw0A8+*z5qqzLIv>@>gJ3uR2s!B^|KCi}}`>8Satn3+MFVueGu^-D~b zm9*r6xRpmTgOJ73;PV>ezWRLiX0`&>_&yu~`rLnb8dCm1((WyqM29cbTiy^t9fu6C zEe(7x73zRXyQaSF(JLH#Y*a1mtn)LdZBH3=zBi@tpnjT}To`w)XJ2i2joM_mH{AUb z6}Hq%zk|KOJ~e8r&xx;@PC6hSr1ihU=l17pg6)Lff~CNBKPfhOPzJSa7oTJ~3xehYT+)LDf3-U`r=Ml!Us}uGohvVm!)j?79 zCV!cRu6_3i?cXakX%r7$wK!iBSp&*UV!?u8yoko-SNz8_Y(sGK%W3H;c~Si!v!oa_ zf+In44ZM(SskHSn7m`epnRIBtl>T^R(qgO0P<>0@>`R+SF(n z;d^v8k;-QTw-c2KZrRr?dbsYw2QV|^P%wN9zKkML6gLb~tb!52*F3R@mj>=4eIzVG!CJPp;2RJV7{Wzcl}~`e3{M&C}1OZ6z2jb*z4cmHG#QC=%`5CyHlu}4ep)k|>)m2zwaH{hG0N)hwx*K(@Pv_=n!oq0v^V#?6bF9*c^9H7E@b<&#O@?rXw z1;xn3-X66U5qItg4?@@_0qRL^DM$fHYJ4t&G89WO4^|;UNtvq^z8y^{&-Sp8cCGX@ zQH{8I6GhB+dDCc`PJ&Emtuuq$DEw55fJL2q9iU-El}_@|=*VZiz%F7c{GWSL%E39P z@2mvnA(5dFCRGV$G`DfW=qi;y1d<;L?#_yU{MBd{f?N}elvVq^5y1o%orFV+;QbgN zDoIgMz08P1+!j`)w{}q$07js;7bfiPMEA4dtVtm(tfAZX;#j8BZ9Qr;kwDNfQOwg~ zr27pnwplVn<}}x=sgU7nXNN)^`1f}$d8@#OL%H~a`bxhAwTb%>-?jWcq5j(zn|)+K z*n51-LE z*Qxls@8hn2f7E+CXF~(?uMH2cOe!~|uQwSSl4mlKXOAU+c%94!Z2lCsxvg~bw@aJ< zbMOZkXH=OY#BmYkjfk0#F!4)S6sB0VrI066>@v%so~aI(gPF%u-QJ{LHcj(x+vGRt z8*n)-_-h*Xt0_M-oxC^Qw>N$D*QNBBOyFABs?VZ~gyR`WU&))}2lb&$(Qcb8RFCJe{L)%pIyCKb7a+9?A7Gv=hUJD5hF~p1*QdoV$Sd8tZvb?FXMPaPdzF5~svCGWYdYf;XWI7!>u{P-S+IGM? zUf8R)YA^j?*~Bf88!CNHGmhu_%F)j;B!Gq);83AwapKAJ)4+)%|NKTaXr5 zleWAB8uTWOVnTx8- z+^^IW#Fm2aEhSZ3vZl7|w#bslWo;*k^2f6Fz_zx8Z*8mET0T~N)FQhpjwlr%PqyKI zoygAk8ea>$dxr1@JORU;kmvf!;xxYI)U%OvBS+(uy$hH@45QAgh zOlIEOuDTCz^3F21KVsJRW!3i!Apc#i2StcsSNO;)VsE_|Z<#-ml}|d6PkEbvmtEih zH+$G$P`zI@g(z&+E;ag=76x1?4F0$9KBI`grATn1DC%vI(5ZOcmf}nFriIz!O@NZr zh?30elI+ovJR{0?0%h#VwZyYx=wBjC zsIktn8J#GCr;4%7(@3@$-sOYarh>HAnZ6OT9W!y;2+Jllta{-FwFG`n%=-Arv%h%b z(aylqUbk5<#3do-o&n?Z5O$+(aI!Odcs`V%%pqvfJ5h|qqQ(}raVxJy%R*4@GRz&Gx zr#M~@V>gyaT#}q&52)B`4K!4;@qh^4DT9x!_ioUi%sjr|&ph*HzUdKRI#0~bNdq2{ z;2$WLJB!a=-wI5ei-`h&6Is|ll)kYlNTS9#DhZ5Kp`588f&{z+!)(^YsULo zFq4#^szT%M4eWpho%{TiLh+)%NRqS~&a03>LX}xf0Z`pwB3-g)-*VCOB=FD$%u~(?@03q~5 z0>@hqZ5CH8S4LKDp+C?7tmmN31Y~h|elHc?4Zv+;0fl1p-y9ge`f!B?uwss?Yr_Xl zV1=yEK>)s+3OBHT`|k^)Ji%9fg=;tnFDg8625($EbZdZ4N_gz0q$gvTIin0a2lXZ( z(|ZAJ!U*G_dwV?|#zS~o!wx7Qd0ZCCsbTn^SO$FV=T_ z4S+6>hi9q~m4u%CdT6rKdL|J2lQ7rt8=~0=nh$bprF=tOt9Vm6fpS?rA z3CwIUMX%1mFsA`K4a|#tKROi>D+ITRaMc8;S)t61!?rYBW+a|;6l4EVrV~pLnZ>Tv zBG67z>TT8~pQQjox*XhQz@a)Jf6~#9#qi`y9(l$Mc_IAasfzzCKW&s~k0{}JdW26` zB2VR?EJn1eJmB8$^%GkHNaeaaJp6Ia#dFo4fj1Y_AcKrIMsOAH_6~u-wR** zVQJ3DyvqgvkBG711W4E3D=f{WP%11{0)AHvr7J-z$??N1e~u&e3#b2v5{mC-F0gQ6 zldzNE$Cj+itm}TxDyXr#h%Uq|aDvBz@!wVW2l7Yv{@eWuV6lP_p?5@^aS$E3SnV^x zdLcwW1&7Q*(&n~l<{ail*c~e1J1$Zq{*6M2W_m*35%8@lKqnCLy&3yq4h+@6^*$Kz z9I;4Yx{$){B7mRFfxCtHBl)0g4$3Iqni&;yiMmtYoer>Z#;mr#jJYaCV_2Al-bf3+ z-?LskQp&%+rnO%`~(H*_9=EYw4dOGTv$*LNCGBu0*MP#2Zx+afGJ70tbH z%MXanWWjGr(Aje^n6E?K9BhJsA6nvOt6=Spn9e@V zxbZ!yZzl|=fm+UC&s75+VGb`YsnB+s319KOMIm;l_}kTNm(D|=kM70=xNso>ddX|YWXAQ6@J^J<2 z^@A@xV!IO?^k}6yYMAAIvv^mk0ZH}CyoX)&um1UG4u)=s8Knf?1FX+_1u(A7=zxBs zEne+~HDUV)t$-~3aPi-!4=5FhhYgcmT~N9KVA+fKvlo-Gx=%_6jWon8n@`KQaq;kK zu)7L!_8inc25f17ocIfW=sVyyF}8L$!dde;k>Gbj;+sn~9{Yp+gnjXPaKNkbYX-ol z2EVSoDT^W`iTd%On5|vi$L1J6*g$NtFDG-nZHsZ`iT*E#e*eI=<`(kUFaKI+m>o0l z!iv^9wU`)$Lqb6Qra7p44BjvY0?emZbud zlpU7NxL?J<6QLJpSN@#lQEu*7N{Z}j3k5clp3r@fd*$E*HH-IvW@c%FF#L)!Ouglr z!QQ0`4O_g(U1@b?>*C9+hP`VnkkWGBWN! z{ut2B_9T{}K;F3@Hrn8jv*p$kgNzs=Ud{fj6Fz8eH8<}S zUP$jcLTFZ3TOE6HVWa?NcjV$w**C)u@R!WhE-McC6kB~U{}6n8@%i+f$B{8kK3Ran z_3)$V1vUK6(r8e(GWt#X;QlSt18FN=o&Zk1x}#D3bk zc?B}&L+>k`N8LN*(flDo>cI;O=SOXeeriV#SeNa9HYLNXAo{2&vHjk>xsy=X*0~>5 zCP8!JQ1goS+PBu8&qZ>}_$kCO+b!+lkpszIR*J@Ccs_XTvgJ0ArkqbFPwWqj8h(Xy z?qheyhj(bf3Co^}U+?3Ro=ntppC(k>ZvB8@5d7H1gV><54R2A#417AGd`7$U_E6{x z8_1oCva6t`uumsnqr#uFIvazmuR87(%^Q8x?VVzv-5`$4#x9Ta>Y3CQq{2>joPC2!<`7Ed&?VM{mJ^P`kR~G?!N?k4CVa*Z<&mt zSDvRSN377TWmJpPqqknl@E;cedn<4op4PY;70+z@Ac71{zP+R|_n;kfY9qD^U*qig z0bOK8I>3<%>Jai8MvbIWNk>RMs*OeTT{U!N%`_xHl2S!3pS|S-iUjp-IV#@6 z#P>N)^vJ;G`nIulP(gFeE$SEFkbVQCSqc8;C`6U^E0Vt~a!C>{k^xA8k=atrn6Rk? z@JdoHk`SKG`x{&bC^W?5VQOZ%_L9EsSqH*%xfHw zjnLk1hY)Ce0N7N~(S`I9RQct7uJVAqUGiTo23jS}fw3JD#HLvuw?GA(KglKC5{BZP z=j9s^U5Ir`FtVT*Xp<|kas$8W_!!z$(E0|c&{w(tG$6vd;go@$EdkV6ToSR9u*-O= zSn_z!vWgT1V=#g-uB~;%YUCE-!^d(k)3~Kg?_UBw$6!S3bJj|;AOr292J|t2*&=tcmy};wV_k=K`>)DJ zVW`R}lc7&{MmU}oBZ7K75>9zPx>~12uMu!J-ALqn^v9qbbAL@JQ|z$QR>Wjq-FG1%&D;!+rB-VXWz@>yy!gq&F4(!L8_PO4-9uoOxYCJlL zz$Kr}S37MODZLE!I-JPEmFKIFuQl(2=kD)unNdN=f)R3rWbBnvLYP3vF-&c1MFS7G zSr}^Or~$wrEtv8}u6aU6a$YOl(z+e$#@1Vi7lv$B2(>G3+H1Zign~H~wu1+2)=PYQGxykkm=0XjFOBkF(d41A zQo{1t*OsT|$V^TOY$X!}mk?kKs?_uf2?`e|xk)pxEVgX`pZ$$Wq6eKrJVzL}mPtoT zeyWh{A&`ln7Zxx}g&9OuFc-Gb&jeEfdSw2J=0UR#;~aDn#@Z#^Q^E|jx+s+AQ@~K{ zn8xqp%@Q*S7i;ulkegIGvkDeU&`PD;Mt{m2S66%TpOBRtzKdZF;mt^MOI@fAjMm{~ zzl(5t#1JYV#m?c4#Cnl+V7&B;%P}z=E znb)oEM8U|9gr*^rQZRa)8n5u~zuo`>jj$m&@xY%$y8*g&*9ZN}ewhEF%C%el zw4r5V26)8ovPoWo!kZNXZaheYsY!PpGhXh=nM+;!C^huA57fHkKWLrjHB!%n*BJMK zJGflZzJRa2h{-qdyktZrVsQ&@S+AC)X12Y*mgrWq(s&+~rMT3fep^1EL!Y=X+0y`A z>)AuMJ15e)zMsc>rvHx+cW0Dtp@xbw=s%M6t~a_(PIJq+>;FQ?Qd8u)?<|9Qs*Bl* z9OKEcWWUkxjASd+URBl-_bmi))RMR=G6kZ#tq}IM9tYLi)%R1cS36nRA3P7)#73fp zP(YOQzwfYj*E~Ix9`<9h^8Tu&SP-SZsyGWw5gG|oh_Q{sgkbDsQWT3T?_MP!^q^V< zyijCw9>_asEU_R+gKMC_o`i1|dz_DvT{~G>VUVd~&e5{Yr)m!FZLdo1>7`T1$MY@y zI3CHfcH}IuL%+l=i&opKAPRsz(+6Mc0BiL<4nD9Tk&Grh_w3yPY7f+13vBT0y`YuS zBvMEZa0{v4^HZk@Bd|Fm-N`L-0|3Mj0*SYQyUpw@Ya~dj)WdLz!QNvNApJWKnL7~l zY&oHV1pC}9C-uk}dY~0sY7l}q`~dZjsY>l-%f^7uRFHfYEUg`oBB{J)Fs+!QTI#_y zJrFNp<7JM_K@VgI!M+?u#9uN;O=Y3vvea7JJ_u(7!UZgo&4jAs;K~~I689$+N9_S6 z%|Vw>K_2$PD)dzhCZV^#=_gZR^uh$QvQ=}?VjVnx7Q_Zb>}{@IJdeuimGPz&yg6uT zKm5D$Dn-1!XYcY;7nh%Yxcuzr<-NaloqvYE7#esfE%1u`x~al+uIGAb|Mh`q*Khu~ zt|1ScQ^5yAgNDt3BiD7KX40`k1Lu1N_6Dq!wbbMo1_tMY^k%^iUYV|E-~6Mb{q_2#QpH(%%6d|Q9>%aHv2^_w5++yCBM^YO>c>{`;i z{ff__E54+y_*cH-Ti0*VSAY9CSpA<_+yBs~kTvBHd7Mj~;o3oXGzQO}&vQuUm5X`IR^5+I z-LWTJw+Wud0`H_J*^?3KJpuArchh&M+OHziq$bonaR2gw!5|}K+GoZg4n5-wTH(%vNftQg7a7|CvB<`yCUFJu}85`SpPcN;B?8ZFKpEp3RvWP{2f z@SQ(_6%!G=S`oX`Yb6+T1yvxA0x1+VmAPZpKV?fbr-$o)O6zlF4bR8+{2Wt$kToYA z4Ze-?Nzo!dFa%Bk@Nm@zBkVYEY%K5r8x<42j9Vx6Clg7Lj2eePos{^HV+g*X6kFq z!z|YH^lTSH14%N^@z8?#wi}=Jg_6*vN|{;mG1JIOgW6+$!FYC9$C+8~=k>9UB;}GQA*|j+$*+1xC%X^GMG{`VMA&v)Zzh z1vTk`f?xd~lI}mA>HYs7|9=183}eGE^J{*O{FuVo3?bD>g`^EhNJ}bpoX&puF+Urr zBz5LjXX%%uT8?U)A4w{e^h>oNBz2@thjTi6eV^~|=P&>5VwcOF&*$TLzu#}y`^c(< z2GCK?hg!sDrSe>2DS$M;ylG)KOEs?V3t9$Imq?~pEemDv8{VfnW4%0=K&z6+WO2o_ zu1^OH_aOFsh-J?k>c1tsnQ-S0(V3glaKXa=i#N+wE=4f^8IeIwrs@NZ`#XsI`ODd^AvBD7&J2`PmUzu@iZK zQVgM#bfJ+Ud=P;xp^H#^J4#Gt_nhjBbL0?rr39^l9}87fDmwH(f${RD@vHlf~fmJX$}ki zX(wcD3oL^Ix6pwCDVv0aW&0WMS9{8ivr8YTs=~C_+@w`hTG6N3dxnZ{5ueJ$r9`B# zU?6?4B$CY7iDW>x2;KBD46{*-ZOrYy2#4FeXbh8OS=t~_}_ zf^7l~-0-RPzA0cYlpH-TEh!0f%*I&oq?NlItN%)nng+#@6L6c)rOL$TtFX`+?$nV9ktYZw~a~EHox2`a1JGyf^=`wsv3USLz z`0IVlEk9UAU0Yx0X1=~r_4?+;*MB^C&3m!MbN2Ne{J7>psrIk)9QHVeH!jZ}zgv}D z0KPcXW;XnW>sJFK=$pPrSVN=Jh96)swAn`$<7d zTW3sDf@mqTZ`f12pzpW8O%bNd9!r_KmNNe=<#Tar-SXRoeYAfW@4j9Xf7|+QAlB>e z;&(w8#LE}AvHQS3ZbARM1vUJ&tq{a7qv$#Xg1@@2z;4Tr^7+WmmnX}0=;M5^4nA&- zPx!9;A4YHNsW)AxH_H_~JBpxO_j=SMuo@6pPYbAqfAut*)W2LO>@S7d>mZI9sgY$* zCog$`8zx+DPaGYb@c2C8MVR#VoLsSP(l2*1;BXo1Oj?F=a@E60+ZU7c*|YxOl6lB;{f0Ho~;Pb2^qaole-1u|Fg84DK4?OxEpb>frRQ&(pgJGkZK| zBukL|b&!22Gy4zEfXinNJ}f@yi5nUOBY;*8AF41}x%US^Ig z_k>goWL8aQ9&v)mOGq_NJC8=}JoXuO{4DZB$p^#z`VWQ5ovT$lw+!z50YaP^EAeB% zwy0pWo<(a=zprByU5CO1JmfY|k%I_P8ejBZ0m8Zl8ZcBsjV#&AM*tS^wMNtX^`+fX zlBY`KwgCEbp>!uu{bCheGX{VCSZtQr2bYTNm=bF#32>LOLg2k%-O4)`FTyKQMB)^e zPpK?&tgO#pj*9wH^j9xW!b%rSa92@L2g#PNhv5xAyRrV@Y$m|?;em=EwvvIK*PMns{oj{Lt2l#edq`Kb9qv9JZhY5GnEc`VU9vr_+w}I;0!W zKd)L^S{{`Q&yiHGNLO}KoG50JhE;g-kps#H2et9kflw z2A|!YOu%utY|-oOm~dvd5_qLV_}#3%!eJ`TF@v`RqdKgnFx-txRDZE0C4qYPo+Nmw zIEe=j%DfWZ%GsfV+jodt&w*R3;8@0~xn16lLb!(rgj9>&c1qodU`NHP?Fk@~+Olk^ z7#0aud}zp4UA~go_`f_|cu_%cuNYPj%R{Z+6PCR|E6_g29U4(?sRu=8mhRUf{6Hx9 zMy2;Dnyb}{P(zqfZd~g1E|9R|cA?7?xlKsn*XiZ2C%&Ww5^65o8)^=v8(Sx!G-+h} zN*tl1T&{J#+;Zn<*1ie*esN^2!-_apMW2U#9s1L_KHJ&B=#ON0bw=yzIhY06lm$wB z>WHqPe+s#t<_)*qP#w6!kQtheuA#17H?ox_y;M^8sn$vSEUe_(kq~>qFy+Vyj&^9# z;wv%Yt_clsa^gbHvQNg5r3>EmL}^@5p_=4yKXdJRQ`dOyFpBFK)qgoYotV^6V^T_e zxp1)ZdEZ{MJ%iCVi6@Mbk40v&`WW=du$t%bbbWbW)AS$1uWoGHwCd5;K*qLeGfC^; zYwcV+9vYsRo-HY-@|z|(Kes4(P4O3NdA+3%(?VW$ErwYiMjbVZ&?X2X94xMIQD%R< z=`~)x)OvM*dXb$P?q;j!t|ezPCm&dr=SyT3iY}kK)N`x}8U4gCINIkCC~naH63)E8rXNZnGiKkI{Ul&$px=@DnYs!(zD-I~148U(iK1C3c zD0|?z7+fmHV`+Tv`iMz~ku?#lPgji&7{(7;H15J_2F!9)-YA>q1v>^2$Mb^6DErMiy9aJ5Dh-VMu5dKMN{pN6cashtDt0qi zY&BJ`=+R5d$W6(bL0S`FmD(4iPr$vN`1;6*1K;TVe(ka^LvEWh_aJSmbiml@HOkRP zw9TZWMmGvn#^q!&YeTNplfojj)k&4HjFg}96l!{_hdywvM;VB^l1u#goK@<0?4NCK zO)Mj6$s>tIA@7pCQ3HdPImmNdX59MKE7vY%oN+wW`1?9T`pl8w??v-Q!PE5;sc{k@ zkCOd<=c7X|CEP1AiN@)RjlhU0jtb0f3dj3ReZ`YmOgk6TgDaZCJ)ZPUzz{@PN2I~~0O@q7RrF|w z?2%trViz%~OAj}VV0__N^(XHweU{7+_ab+s`#ykD^1nXzNopnfJJpZmOcP%nKNtR% z3lj{jUUsLmt)8dn9|`f?ePiZc|A|KH;LmlnvHlo$MCGPKVNVH6%fZob^!j0@c|_|V z5p5PGXGdq+CSI>uZRvhIcGWiGV=B^B1%ewF4f}GyL+R=3hXOx@9dXAn!GZA{dgWzSQK{omRYf9U_G2!&Bgp(yxwmcOA~v$z~`;f(SE2tJoqiByz+$> zS1y7w=vR7UmC`B;!GI-ZPuUtqD6&I|3=X1KCl+aNzv+t1>h=AFs5HE2c72G5Qxse9 z#rkhG$~||a90YF0US-A+%Rm(cnQ4UbdalJ8pq#60A(pdyslyBO@On+-(oGnh-&GRZ z%8k{n!Zglus=OF3wjMoqLk!>acZOzRRy)}m2WDKQC9Vk((@s2=Mf5dJs6wZRH1tJ1 z8e1uKSyT_MbeA(KGfgT#Doee4*vxdj27B^Q@${S??Va4-mRu0epwwJ&1K3qdKS;<} ztdy57!BbWpx9U;ASKfR=O=iLDUl7Z8Q|B?ah6-f!Mq$W{<{RMGps!(iVn+UVYpF;#prCBFO zf=@HWNKeWK;-EIczNcTt&D2};uNut=Zou;RAv6Wg(x`-TVK!|^JmrRy{%Mp(?MBaCQt`Y=j5;!`uzGbZqk&O5Oik4$)sz9n8^4&PjnJ^bH$O|WFXXcU*?v{ z3pkZ{F(dqsbLM#^(p5S&_`t%*lQ3T85nWmOjsLuNNpmb%iCpMa%I}y4Hj2=wfE{8L zyOe+{$;4(XFz$&{##NgF-GYrYE!jy2;q%;2uo6%HG;W75^Q~DE-5M5H$1y;Il^`Ey z9>=j{kLjnuUhAQyRs`L<+_VvD+cu(xMWe#90p8E1xim3^PC!gaS`Q!ZJ$8y$WXjjW zuF}pOIoOQDH_{5%DkAIz;ELEB^)FkO(j1g~2!VYdY$T5pG;3FFE9BygmpG2*jYi3G z1!`EycgQCq+^0lP;|@+{ee==(!8S*GJw2M#dDNIc(l32k&;C`_1YAZfR5dNkBwu%o zNwYJ`KdG_a_7vvuLquv74UmCJ^0);%*qcn`igdZus}X8Wtp`DUX-IawCNi`;oRF`y z1bP#=Kg{yJyr@4Cz?K}$7IEE%nfCjpEFHAYorN3=x~?8V?$#S&-vpn zd#+eX+-}E8-E~yk{t+!)B{Hvk_uYoE@myPc`IWrbT;mg%UGa8>RVh;su(#CHhixZt zotHjZNlc{9VdKUJDtl1}BLBQHFyxt*UX+5dD)mHqTLhi9b zwcWV*!5|qog$a?Z{n}3^j6=QHARGm}`EjMOOysPT81w4!G375Z#crxlBCnc^1LJsv zePtq7`RJ+g?+)J*6#)5$4OF1Bik&U>o}{1 zfi&(3(p?=jMt%KcfUul3GFuBWQHr+|0Bji>7Aa=&N|JETJ#gySZxUoC+og}2|6a?4 z#e(A{-aJHuxF$mewf&)H#IQZni&%x4t>X~CFp-~p^w$w?;0WlEiW|bHCky(F3N?&z zqDc;W@315=p4K=eQPij{XVrffaU5U{?uBAP(R$;Ya8o6RQUnz0+1`Cn06_~TK}jGm zu@6MzNtr}I6%*SO7@4_qaE%S#@e=&35%!vV;YY&%x_GN~y{x*>ToT8W_!#XAUSSy5 zqKOcfA0mi*-)0BSMGnjbm@gxra=kN(}HHlAN2pUX5ZD8w5*$MEycv z88j9vkhnUGwOyz?=YX}MYU#>QuaSyv7r7z2C#+VHC-wLCDUw&_wunz-zv`sEeU!6> zYvO;oUtI-VYh39(E?$ElYEx?cMy0+u?A=N;8=}Ap7aClMHeCpX<1zN>S{hUAJ0*3k zFJCf_{-v99I9lxLE;*4SNQCp(C2oWZv>p8Wb~14^d<}z->0;w=T^Q}|3B3W6bi30u z>BALsBzs0o{`)X=>UdG|>s9m601U@bCSg?euT}P+dBeTm8nY&204TG0vO$Do&V)>D z!{VTH>N!d?h4*~zNqo#<^-Py$|6zj&PSKo5csTk)@?`3R8F0)TJ>d)EJfmnOT6pb zpLK{);}ok;eG91PNqMV>W}l*`Kx^Z`Xpok53vG3}m%PL_p~lg#><8#S zahN$1#NB(eCx;jepX>A($|g>71fSY~Q%JE+gD zLFOYuL)cu0j=mL3YRfk{gV!Ktg<#*QUXL7*uL2&V*5W$etOwbgnfy&VHdZF=zg=CtZ{~mx zr=WVr!81D!UE1+;+}oeevI`$N8(uoEc|UXb`|t6^5E0;dSk87cLnY-J$#j@B1V|@m zrd|OTYp05RLQ8TPO*l!ZL@BF{ZmVaMw=*iHr4?Fb}ls}AC_+mJV#`oi*>wTx9P*NO;?U*Ku#R`kXw9CUiIO~u@5KDerR}AwC11Q zQv*BU{$-~p&Yfw<`pvLYfzc=?Vla?rESf8Ukp&8vYZ=;%k8F42wYQ}j+Ru)Gem~@@ zEN?fKx1XDcX}^^9B6;}yfGc6R{io46`gqo*&smpEY&tM*S1jE+UEQv({K#UT?~404 zpPYR?H~YrnY*nZ6%?7vbEOB?|`J{&~d$rkf83R3W+*@z6Z-34XS$0!n+@Zt^8u|ry zMotLxLT~7WQ;`=`8|V91HeA+82l6hE59Vywp&u^496UbHRa_YAym0?4E?_7J{%roi z^!&r`^N%9fBZP|?4C!O~#Vnb_Q^erYh)<)NKB1F6+|xge?f>+=h2gUYdk}r%WVMHmlzoQaoL&Rzffap3d(ZT6?Pmn=czbHm z|Ie=xe}3!c{+06QgDkJV4|y$R^sV4&u2}a{m&A5dnQVJlun6j#uMOB53c%r8p%8Zp z(w(S@9h9Q;QX__Uo$iT3L%z;04~3|t#>t{@kEOop;yjm5lLWPOBsXAOGZ#~jf}QtG zCIC$-iv^q)8@s)P;s%}3t~GfU8e|41IPUQ!Yx#T0eKiq-aFqn(4TRe6CBR7~#GPrv%v+^vy5# zvc~()EOqXeS5E5L;|#IsJecOmHBTbHAbxzD03pCQ824t^LaqmF*;@U=I$jMKoN3>b zg$c3^5k7nnDRqV&d^28YGA{OBP!;0OkBrBRzpx3RNa4w#XF;%x=W08uwpd(MnE3I1 zp;|R1rT?nF*(FY&#D$1vMH~>AErKt+gBKZw-iorkx-?^>z4Xcx=Z4076GHKYpq3B} z_kC5~&GOvh$_mp*>(e5JR8lKH@oh&9f*9IyyVZ~So-&N+&jjw5QU-%vqw8gciMaJ8 zB!^_rI-_;UG+-r?Nh5%rdauuswg|#buS?6A-?V$9h!_t?4vP0Rim>iR%(E{u;zg`J z?!&h$Lx$If6ir@u+TBuyJL8+_39L#5?w33b;Q=6vh)-xj`?ho8-dvkOHjl?K6N)Tn zBSIFmXeFmRTtXe}e{Z>U>q9m{z9nKxW0cAEtmE<<->fD@2-3p>!=TW{@SsW%u}f>^ z>t)^tGEo-~(ZxrIoKVA9>#g=bC`!mjbB(n?6FTwOgfHeys}aNMzp6t`Gu0PoOf~>& zI0@`s{Eb1B;9@|eg2yEX{*j~0+`}YBJdPU)LY;yJD3yDmO9nTP-`rGw}t=(-3wxm ze2H1u;k19AhNyP& zMF-jp^XM4os??%Ez0iw&1T20Kc;|4{9O$Q<(+B{si~=rI>@=e~VB z^9$-<-ua&wyk~HGU)8h~Q5QQREXWvR#z7NC~HcgcsEq!r|oTn{k(a zMm_uezII`!vkgCAA(7GBW$`8SsTVX8zWScCZB{w0@3B){PN)$XRr7!2j`jKqCz*OX ziI5kWil-kYB0b2R7L&yV>-LE2GKb2XW4nfS?ywSyT$+k3%i_T(LBz=>8B@!k*ZQT3 zCQ7MF6cn3Ge+;g0i0oKfY|C1bp!{Tt>lL~CA|>UH#}%n~>)I%%*M$kml~*EV2~aZd zf*ubIc2dD@^FKend%x7ysmmsK5Hv%LtW~wqva~V*=?{^(MZVU5PgqSTO31PJ^nNgS3KF&5-ku|SveujOW3E4V+ z4{J)iG`kM{a`?Q)WFWL>K=M{4zX%YjnY|WWXGeY3$pXVZ0(<8KQv|2R&bd>Ci*wsi zWz9pdTMfT2w~=GmcOWGv$5lI(;gzZkUPaM@gV*{?l%Z<&BEP6g9s~JsjPpup-{#h> zxl1prel%6SdG6-4+%5Fn>J5d=$8;la#2)VQx1GB`RPQ#|OR6~j_wOE^&HfUp7~vQN zoBH>#%_4MqVkxEXe?`QmV=;aB9)2$`zEf@BywDIT2Voy16U7aMlV;3J=%&g6v&*28 zy=hHWNhNxTZC&%aWf9Ubf(daLg?hXx0NF0Y2H&DomDxPX^716!w3PiB$WldwnA<_9g&<^fq}VOwX$hoFVg67ArW)O-E@WxIXXMofk_EVr z>^SrRWw-|r+wMt!A99v8Vo{|ipMvQv->EtK+9%=5KeW{PEq(A-UL<-eM^2Q5yDvhH zKR70@PiaQFXysD6p~K$RRW8QFt8vjWe8?zkwb@Fbi_Md4v7&{ijPG%#iQBv<6fh`- zjm{m7var;F%p=)|E(O>2A7$L8$faIx8JwA4@w9Qa#)u&VVg55g+R_!^Xq1~1Pt;j#4uEkak#-!`A zOrx2YMl01A%iR8eu_M!O9<(I^@97{F`|9Ap?M zl%kXuIr25JQT1T+4k6_79LMM?1wpC>p|nn7ex7J`$TuRsW8q?b+p{=9(J`ZwWudt* znHwE^%{l{GT4M1t5{b%A)}ph$H*espumk5pMhjm_Yc= zZHW^8Ot+Bu)?9+waQ@Y^&g<7M*;1|-N78;=_Q=~s#kdJe$`WJ z`+}KOg^=|HOSCgzRS#)}{X%nM=IzIMM!YG}53l-sA`?xZbB(;1w8^Ici zMdx>=1urO9hn!U(5s@71@MV#Q7`52SdkfDW_Xc@2xM%tFsP%;Bx2c z(5BlydD|Mddyx0uPj(fYxbbK$LqE2-I!^gQ_I7d>#jCDAD;IAWBCEC>}qE5 z$=SfCHy;*ueLel9aYyi7cGB}#V>br&UD~MpxbK$ z4=CWK{YOzYzJrJuwbc7BHEeCs9T}sr*OSs-NabC*H)w{DMSqoQWNFTb zKaA|5p<>vmZhKUhZhxHu0W5a!V}B3PW0A$LnwTW4J2D!v(=v!JKh#7C zQ3TY{P>ZEDpV_c3U0@v)UI_|3+=5v5yUlk#_`03jh~`ZU4suYUr{U9wGu7U+0t$tBH|bykpZR%!*FVj1!EePp}?k#h_ztL zc3p=SgciE~ew%%ARDlvHI$+tBtEOFk&x4e+Q!;4iQ9ewh!-fgWNoT#}SBfGsx%(ek z)zZ*v{T&-ulUk6;8IGwZ*kp=LNCKOj(ODG1iQOVgrNEr7H(rOpj~EoVF^~yW3?OQj zFE!)~BD2CKVmIjef=1vEvrW?A*c>ZB+`XW<@m7rkfZVKz!ZW(GIk9!F7(?S&jq0iO zPPQ+=q)x(T5}074G5(=LzXh4!e(X8hWSt>~-3FOwaHvZ={~BpF4-v7OMd&V3K)l#a z$c7zmGW(D2Rm;VyxG>^9+%9>S?)>l%?cq9|i;zw-AdNnQFr93(0*(}d3Z7u2JLnG= z^j4L$UmMd7rf@7no1Ejd_*OQip5~M_K}_Y4c|4k>SR$J^5+reY#Wo+YC;l0V4lTvU z3mFkRKzsQAqd)5FqY<+p&Ik=fro}p(BN-~2%u8s$j%iRRiL>&8(aJcHiZ(seQg%sKrBdMYdMk_AeXo?lFohLUPq?XrhNw*!1p&j6 zW}n$fdlZOE3WV~S4Xqa?p_w0_s)|ullI`kfA0S+aaa54on6D z5y45gE`SJ|%$!89=AlgsO%y=uooK^~_@r76{x;1bLV)fDb$0N#VBFB{>N4njrn!{<}YQ;RYAd`1}v4G^O!yMjQG#T>Y8ie@1KpK>)tcZm3n;>3r$pzfWYQZrub-(#yoY7!uCh)`)<)K zvgia8FR+aZIaX&l#uq@OYK?hT_6?#w;5`WcLt%;m4x*vvWVYlfTiB>FV>HV%+E2oReZjGL7t`Ml9+%O`qM`?eI=bmP3)~95tE( zRJzz$iWuFh3nuR<8(!oeL;ohd!MB>C~jj27cI09?Ix$mRkRAS)uGk~RX7G3myQc4Y4+ zvL}tbiViPOEDwk)iBp(iG{Yu0dy>D}b=n(;~5@F9?GYFt^ied^?$!YWK_^_3jfB zl`cky`A}XPYGU|}HuX0M7xVIB>yikJ5kW_F=4vptUSQs#PF%-_EDmg25SXuH|g9{Ha?Y&lkhAWrsLNYL(|!aDfSf+h~iu9jhNe7 zX+_D^BL@O);?85{`>(h@bqY{mM`>Q``5VglH#`uhv~0YveD|;I7}v{p_JB3Tc8IfE zP`cgRhs_t(FlBETloI=rDn54o?%1 zBAU$D;Lp=+W44{`sGSwN=~t{KU8g7k3s&4}`eIXV$;d7pzi5`NgT_x13R>`0GiHL9FSUy73eCYyl$pua3fW9st#(wuQucVO{fg#$vF>Ou2FU1%HL%vc} ze^#3uvLj`L9?a32MaPH6OC-uvVyoUV)mmPfDnblmd)T<|Me(8xvclb1<)TVqqw~&iVeh+NpdQ zcv2n&pj`KtBBAz#-Qc>?z+cXOlPu5-#OAK@2b@UCmcJ*aiu&wUuhW&@fmjcQ1O|-M0Zi^DQQYg3qA~Fsz!Kcfwt@c@NR(-PYoi1RwVSU64|F+7X1`Q z3-DC4%)zWK9dVKFFRMbU>}>%Icxn(*sUt5C+$o6OEvu->BB&E+V@55E=W65|ZjBPa zl6z2tI;z^x)ZC!32Hj>x+CeZ{+emD2br>m3d=j8{^VtYd(L??HEB7FscOlHh=7dfG zDV=@Mmkl0qwORy|AD%Kf>mMl+&|SpWG!8ZdetK}TSqQDph4LPVF)ifWfTBq08crUA} zUUrlWo$wrv31ef4aiwE zOWrc}BQ|~7h{ju9?7x4!m1oC(xgfYzYILR{a=ByTJQgGO;ALMJ{tz!)*Y2n4TlPTS zFK-UbOgeqF;PrEM1F<_2!msqIU{fy&rNyKe+nR3`IM(^0sM z$MZSwc3i%2xFh-B1JC-`cW15p%5$AYpW&wE&?O1}vW%AREj31GAh~1EWW=q=SW%C${wzJdUK*k8XHG&qXDsF_I}q*L!i5orHkS$j1Y+ zf}(n0p>;$Q{q$wrV!13%IZ@_ZIy#H6f&0Ww(hj&@4`Bfs|GCF3}a#*N@;FEB)ZFBcOS05ezH_Y?+SmcSP z>-<{=nHsbuLk-9TQ_>2Y5AR9!w$GqmaP-nQ=QrR^{>DxDubJ{Sf+t^MIdI_j1vieO z8TZ0|D%6OX%L%Y>LVBGxCa#7JeMk-@8X1ZJvFHmFnZ<)XWQ33BEwSO&bt9qpVAA6- zv#oWHBdmWR#gXlg<;O+4UHcXnv*KC)(Z=~!=bvJ^yplLTqi;j6**UbKIZtvf{=IAB zOU!f6!E0Arw|mTF-rq9ebE13P(d*|A_qRb-P;Og0*_I{7q}iCByca+1bMj@(ju6u$ zBl2eAURhsg*yHlmYCX`O>I-~$g;20Gf$m_$1TBKA0x~55y9?G4`oGlKnQM)zM=HEV zYaBJSV$yqc`KFNKBirZgV0~Fq_(LKtsZj&z88q?g;)~O)&*S}s#g;q&X5ltHl>9Bc z`}CDi=6#T3<{Ve!2FyOX6}B+%7~CFN-&Dh6sG->xb3li%-06gqy zG3gtPbvkqI5BNp9y7KmmcAJEM%h`9E z&mEk_*!BrGW3uFJifiEHlSPjnsDu}RKsmW$mJqyH1J7^~qnlV3kO$|Wc24Cdr|&_qj65wJ1aDZInPFVb7;kfT8T zc5gMITnHI>KVn2IBflX(O8M9BiG^()@wqj0jV%EUM4UF^}&~qhl z2fo;%^eD7ohX!l`)K&^b+L>|?K9IQG{3pd0)2t^&V~%a8mV#ZTd5V&j7&3WvnJ&A6 zSJb^!Y~ma#A!O)W;XO2y8s)vnB5;+dgVf?DzNqGu0%7f7Z@Y~(gs4`6@iM7ZYQ37A z&pu`fEJ*vF9ZKows6*9mCTP{+rhGdjog@bLE>(z_ z9_Aw=+0C9J6^vFS7`T|cmXIB}`p%C~OrRQS`<_?o(XAk_a7ZO=l|wxXHK!)2P_@Pw zK}+o@TZda|`_~A9As1Ebs1$3K2TP1-u>*GiT_lPZ=4!wNmya&LKYM!#y4z+idIbnV zZjtt*J8SS6Ji6^S6>{@*jpIRmnh{I~4$+Ds-#W0{-4-5Nn`=BglKIrv1=fuR`+vK0 zu@}oym8_`L6|WlI9<__#=k}sQc1Q)?edm0sa|yF3d#cw=HWkkBwmXwst>l%vlDzFm zsI&{cW=2Uh)jhn*?r)ILZzSU~)U{^ImpfPAE_zHH7nYiVR}icCy=F9HI%~rv@2?Wx&2Lz(_+(?!mLMP>E&~#oTzqxp9xozfcFI{d{8L zKOcfNg|TElC>iAokzEiKo~#=9Go}Va1-2it)DE~FX5qvC&pNjvc8n%ec#W40byREL~>f6D3ABnV?}I zA$(+|Cl6!jGLxQ2GJG)v^fE!lY=oLeC~m@avJpTQ-<1bn%Y%gQfcwnK;wwg*pW>eq z3D#x>2A?!46JofOjXt7O~-BOz27l zv=d&oRRN7xf_ZXmE0IHGVqOX%c|^3S9IqCNM#q36HoUHY6wXguNkq3WAz5m|j1X%+ zw$f(=w*4%0Eg!wP#pRy^oG4}HJvQu!T6A{-x0h$~hz~z4hefebGkoloSjuk0eoCIg z+_}g|EriT0teRI-9`SePcc6pnPy^GbyI@TC7q}k>UIZeq%_npypjm3xG6Rtkqry*(a-ABe+Rd7TK?vIKE1$FMjBatVbqW@1Nq>Hqr+x=(|* z1mQL^vCj}kQ@>Q~F4?s-f_2ehx`l{n9yCb^{}~ScO9H*6!~JCfbKzk>DzIic*klK? z&a9B710^e9F3hN88e~C(;PRj^$~=2MkgtrKb_3+*?XZ6NuBQs@9I|n4b$kR3{}&NU z;Xyy$b!X{dhp!kNBU#QrKg?0X>-_wP3*a3zJBAcW?;w1LwK*#UYYwdVa{_HcgME(! z7T7_k8*nfk`pzVweZj`6+*5PVu)^LR;x~f-O5eodMg5j~Qk`J_V`hD)2{ce4yZP7u zv5#Ro=z2aJz#F}FDZ6RV!V%V2xe=O(Jq8nFK=9*s+rBM89EFrkVBAkk(2zXSRVDfH z9A8Ky1ct5Z&LH?Hk!$6!fR0j2C*-*mg!@c<{v7!Zqrj}l=yF*_zrBCd0)qPrwhS@~ z2f;S#Qk>b884!FJlw1jQ)A3u4?Vwp8+^`&K5o@~gajEZPc$N~ z_Kxs#BE;#DD_SAp^FPG}y=H(Rn!+)<(}Mk30Y~u~=^dCUxy?tNwe3i4cjzUX;%$C& zW=UyBxgDN=Gj}JKqWAltLIYt5dAm;1^KR+jzvjW8EZ~Ej5zl!>PNnvSK$EDG{B^yf z`Rg{*{7q2e4m;*wQRLMzRb`AEA|^!$XKp`6mmCibrD@aG?FR%&UA=ND|7Wek!w$kn z(7GH2<_X{a$Vd2@1^gM^o+cv3Z3cdc8PzX@FU8}Y&=Bzfs1zdI<}NB#n9tPiTkJGj z{^GLb55KYR;zE$?kQ#JQ=y!*U;1P{JEkHX00{{*6<#}9u1jdX{PUK!JPSEP^4Y}dKrOBEdl%SvchQLNtFHi2M;1?ruL2KWbUc|P+HgHLfWG*M`4lRysG(DdSiwZ|M8 zv>$c$Z}2TX?q}wT#=B}x2ce!1%K9-fl!;kpqXPNC`CQ1&HUvOMvUQMgkYbqzi?%fC zRReVZWJY`TRUYUnduO50?F$bxxo}`;74Mis&eqtIluVNvA#v>j9GJxOVdHy2=iDRB z|CJ|qN1y>Hb|V{=2TEJPGhO`!j{Yun=D~b~*eyf2i*cBV5uz&_H3B?7|wM=LS8*Qu@@RqlGgJ9dvX5_po?K}os%f^hU z@#FmaC9^3vQP?|v;88ZP4ABHP(jKk|y1|4B0b4?Wu(=QRRD*nJ*kRq)bM-Kc0{7p9 zTatU=){m^iHOOP^m78?f{b2lh;lQ#Gm#srJB5+Fz7m+}=RgMo#C%gx)xDmKQi0v4G z?*?ISfbg&Q*kU321P^s_1hZR#I?en4c)IVur1$@S{OqBips0wbhzmDv%@M;vIYL`h zW;ik}Gqh!8Cx#%dM6IDZl(fe%bTmWva)OfGt;cR$mEwab>Yh zCo>Kb{ZYODQ0IcGGtu~}8|mtba?@2?Ae?fGwZCgn5tiFv*XH@i^xum%-a;&FDyM87 zy!O4XIR|vTAny9E^6PsCukZhT-F>$YqagoVX4h_hS3!Yeg|S1G&5imMM-IP;-;hH& z-HSN!;>PVk*F~;3n{VwncjD#`)y<0+DD57%I=A>;H!iq2cn*4Cd~aa?@}7 z?*6=WcgLH%fVS1@WH2OrCEOE@toL+yY-j>gnh!xNPC2{=ZtC3!ZaMfM5%6_}b zt=`$=kN41oDhANgP;Kg8|1_wgrxvQM`ln|xv6q?B8{1a6v>p`ysdq1~uP0`~bOp+O zb$zzc`li*BeO%A}%-sI$w*F8>e;(>yLHs@NU-uq0+$;KY?=PTQm|{|#YgJOOUOS}z z`9nSa#H1!3QJXtZ*EV21@Z#j30e_eK&AIoZ`S%^^18w0+mxzOlse?rJ;Pv{!TjPUw zyDzBXhx#jq?hg%hk3(?K2k%G^Mspu*;6GR?e=uHz%UEuH#d&xtcX+2m+~oAC4y^96M1cL4rh zfYB2R^lvTqP) zk;d6ng~(36-dJ2?97#^)p&w~)#hV$8xT4Q%cjS?v>9W~e>XL6H$bkWqzIF%863S|= zQ9sr7zu%heAl}?u$XbEWqs3wn1FWTn_WcbUq8Zu)0Z+N;1tJN)Is|A=db@cg5=#v$ zGVJ@c05aQm8GEq_&z|&rbNh!2{P@l@fw^Q}3$fB#edNI`{2S~=C(ZmJ;WxBd7Lc`o zJ#NWv+jqhzc`%qhtV6Mny%VYjdQ$=5ZxhH4DteOIqkM1mmPrHG?PB=`1mXmofDY56a*4vy({j^CthP1O%`725T?(zYrNJymIzgcMdsC_x< zib=WRSKVv$OuHc)SdA|LIv9o4nZh6#y-|t)U_|2_7KlE1}zlg1=7K{ICQGl8U zD_C7q>bmHJ2gs%D6xkk+CbbpXs4R-Ca)_;Qx>NK35FefB6dEN}H#BApOj6TsVydgX zHh7yx^EQfhroW+5+H2TLgwCiM^rFO~)*2=nYr76}A9!=bJ6GUp>e-^aWD&hER(v<}EjSvx zn3&%ziz@=U+O5-iKx&Jg&cf~Y&~9$5T=X0{V7KQ_DcsV-C{1kPuAMzwvFI%z>O_$~ z|6Nmqe!wtn`GML~v3Sw@W=!m#t|>I9tlRzU9$Gq9A^X!&3J0%HZlWA`MccshyI;Q{7xJ zVL^u*(Y|#&5jF@mP+S=nzMw3w4#N+K%2UchGclZhW}P0>KKe>Znbgu1sAU&@C1@W@ zdYSP`Dq4IpymxF>avrnwosFAG{@a7J-hs@A`TCC7p$nY!LudUXj&m(*jWkT%9({GR z$ew2%4YNMqLO$`o@cXf%l&&=S$?XA#4D!qO{5|&dd1cmTckAExA6hGsrAu)~8a73* zH*4v4+#Qcq8vAg&R0yw%u5@Yo#aRg4c(cL*no}qclzP-D=*Glm<-J;?^!G7HVi%i% z^cu?|FUJeDjN?U;N2<*o5rkM{NFgtlfPJ2Kvoa@LrxHTUFgn!w`Xm+Nsz}2q597({ zR&mLE0LXixlfBk><>;LWBj>1)spABa{e+QMB>w)%jh@p$i2s4_tWt-H7XPG+A_N2C z$m0V_m?>D@ETIs;DedjU?VBu3aCKvjd1O4a^mPGGH)QcL=bY4>h0Fjum1zW%$UE{z zL}->;=~uP3lXC==2h<$@#bm&B^~bMo{@+o4GY+f<2Qy&iRk@B}Hsv0BZv%h}aD=g@ zLGTo6<@qtkEdSXh@p>#eQrdv)X_o}f(b1${zEPS26qT3HupVWa_Nd_@nY3c>cs}Zx zyq}RrH?q#<2DCjxW6SsuC$%j~DWP>s%$HG!P zb1a+PqTJsq>{)y;QBD<+IY|hQT0w9%CCMSNw$WnXbF}aAq{_V7Cfje*v2;Rm^}$ZN zYTtn+>>9JfZN<)BSECZ?vo+z09p(pQt-BnoT^%=0xP%NK?RQ)@kJLB2M*c*yh2#}+ zC^044_kNPB26x6&?3R#!f4SVuqII0>zQUKWvaP_PE%Vz#%i5QQF#f}nOHR(7>DI<; z?x!EQB6s%MyvBIl^9f7GZm749v^?c)I^^bPpZD%J;MBRsqqq5oFYW*KaRbn1%+_dE zd)<@x>hfHCq@88QduU%e{xSYuILr@F*_P=V_w4?W&4-UFJzWY5kPmVt{wHULHqp!p zBNdW>GrkXU*oO#D+9ZL0=RerOHMe;-Bni6O@n9?Okj=|al3>8Ue{VZrOngy6GYobn z=2vVdPSuh^@2@f0etfe29mi^sbH&9S=i+RwR{eAHpT4|ZSJz=9dFO61^)p6yz^C-m zP2p2+4^Pe%rG7nIQuSfI&%PH|PX181M$R2G-Txuu^l$Aw@`6k){OkJ{#KNa{RsZRx zHr?8a1l%gF0$S?%f3GBgZ4q>2vPOuny${>?h<>z)TI}elLoV-9S-#bZN2NN{mckz5 zOnXVfd>W>NBPQGVmc|h)%?|;h-I7PjIHT!iUDMIjvg(SgsHXI%EJE-#--A(g8MdwY z_rhm7st%wsBVlXQOqZHl{y|la4sM2NPP0SDr&E3fjzzT;YPI?i#q z2+`LD&lj(}!7wx@#MlsYC>vs<-PD@8gqqQ1b%lSdUWS;%L%4=yU&{)i%W-9ZN}qT+ z4&c5$@-G8=Y{3>bql;m)b**IEh+&n3K9LW_J z>lL_{lo<3XZ7H)T0hz2NoGs6XU$8y7HCZOa9Cra_OffAmEx^&aq;k{3e{HxbxJwjY z6h^H?rYPv|4TFzyo*8@WMxxQRnowm&1lYcd?_Qr~QuIf)Ibq$p7ZrfrMJrC`tkp7% z>H+c`slsp`GMn^~7Y9M;ySHw+g?ave&+Y*H>Hr&w&8QFDc*&k`$o6c4KS4co+buD7uT} zkh>(YYy|MO32wmKtV2+tcrm#}=pz;2DbS@_k$s5Z6$|8)ZBS7JM7}sv4GWctaxpM# zwIB&2fqfF9=RwIl!N)I%y#}+BRJ>g+2v@^5PAmIJm5;9r$KYK931p)W;{D8?k3 za9s~cG=%3jcI0|qVBL~15zrI!CzMR141?&}0?S2MZ0^DB zR>A{)%~IQeWrrlG(_+cw^?0d;4 zY+;MruL#(_5&;3?t2syO5_NYdn3Pr;{dmHj+ARP~QE0KCRm)DzT~~4hI8uaTA<+j9 z3Tgo&WFD#6B2`A116%xbwzz>JF_nj{Y!Niy0Hn@`IOh;v>W<&bIT76gKN1q_I1hNe zuU=&?3TH1hRuq#P;_jV@P%gEt3K4at9mi>f1O;F_rEUuq1R~vV91vbwBDj<$yy^>F z%@gm{7vmJi9eoMj(?nz5qT+=S_zBsehVr|6+F?*x&;0$8aH&8`0$NMqt$r}Hlz*zl zj-iG{sDZZGWOs!S3pkBr^V>CGzpl!p`KktOlRN47X+xo78GLiL5Xcv%=@Ai9K%Szc zugRV(hwmm8W9!7pE!ePJSA(*Mz(A#HNv;}rZ~$ojNBFlIo=iE7-w8j|A!(R5okoa8 zC`uOvXqODTHydsug=~`xUDzUPHrSQ~G*bi5w160-%25)~mIMmqOZLiPXf_NmB6ZQj z0@;ElwZxksew~f}EEjrnz_xN&0!ZSS3FB#Co*a;+N{F8qtdqkcq>!{a!~G!8Nm{(% zf`|HP09J*I=lzqya!bE);iMukdj}+%4TO^rIaN8V$TL;V@^F9L-hw4R% z(?V~<_ovR3#Q|?nmm~y;;@A*>Da@(4Y7-w~xTf&eNPs{HEd-v87dgpcMbeTqt;oq* z>|F>e)G!mMXXDs?kq|Ho154?Ga=DV+Lg&zS7e{*8UP^W7yl917XKlDm`!O($N_tCLpIx3cynvR^q^EV zyt-S$b~wxu)UvS_u{XfZEpT=csLANizOk5~R_vvUfW2CYr4+hdRgy9Md|u!qhf(H%ySfy|m@9phaMv+#5le8)`AR+wkct`3r;0He zP;(l%^9HzxT9P>@U7KxlZ!_3iMkMlyD|up)fkow<_>lt1;S#W%GdVn=X$#P+OL!p= z;LTYGL;9*ga#R;cDvBAJ`M~M1EL!4o~c<1v=KHuH>A&XdO}21vX|0a{WtwpzI8rdrVS^ zNh5Qrr(`1n9{tEr?#L&zgycGYN*(h+Hk?vtaNPO|d4iz_@GKh0lLjKGMe8&odkh#| z2e?}Ye5CsFl`UaObaS6t(D3HnNCPf|wVO8^%Ex_;Tl=qw>L` zIw)EO(#VUqYcGuy3SH}f6t3h`oDi9vRGtrP&W2}Eqs=glL3`Wl*JbQhi;-#=W4`VR z2dp>lapy=E+^5m6_>O^V!DdDHjatb%nZWR<>ly{`;=?(#bfj{CaNAv-JWG=1!3pg`Zz)7JP?AIftt*tQs_R=dElg+!h1SD&Q2yDA7YDM7 z6Wc*-y_i7(v#G_dEJ@ofvqUK_?$20=adYz^Q`*7ABIQC&1rzC#Oku}DpW$&Rb zc!-M(x8e6#;S_XJScot8H9uE$W*8pN6(#Kv6V%UB+pmYs!`8@zYh_^$h0xUe#7%X$ zApPMr%;V8oQ1j1#Jf$eQMSSzHB%LkZRtT+!Sf1*xjXPFLZ-K8?2%;(Y{73M<=qicx zod&kVUM&uU`78y%tmlDAl$!0~84)}q_m+c2B!A!5SbaMC&#_EkB|mxI`q-(CDw;fk z3XNw0scAOL3i)uY;L#oep41(t2;WY9?TPq5I(>M_iF*rz+h_NrJ}&q?@rQr(Hb8e{ zebpHFoIr5=4}jPOFbK)6)8ce|L~90N85`={BETsix}RZ)Y|+`=!0wzhr3v4EE~!69B@+O!F1X z;YA{+d0{U9)NNj$OLpZGn$s^*ZC%Iql_zJi|2h{W;OwQk76OU`<=I=a70&bE1$GX( zPW+QHLD(8$B?8l?g|RG2A+2l;2b?fn9LNIg{(jjND;a+!;Vg!yXm`8gpDv>o2P?#T z=YKetPOqXBC-92>05!|9p-hFiFuTNjE!Y+aWdKTw*l@b@>K#1udMTU@sAh0PhU&U# z>OA?G{lODCCF>Uof?5Oa#Bm+#VmB3TanT6rt<`1Kk|q-fM{s#q z$0Z@RgkwNH)Y+#!@MVa@t2xEYY!NKAI4tDorX$-f5^t)d;t!;hQj^1Kse{7T{`yDE?U2(k_rUPqMf4@MG&-PR@~pSL&@3|W>#w0wmQHK z#d3fSY}MsJKMbUVbhdl0CXC%(gIM`o!~baW;{r!)F%QV8gEc9E5H_fo9xV5|l$4=H|_Y2$!+P{ex}jSvzr`B#A(_?qO0$DrOR!xK6 zb4vFppIpVobm5cw&h*>n^wp-YwAvP|^V%709jC(B#EaZTX-&#_*q2K3EZn?&66{hm zGsB@KUs%T|T9}!5aACL4hHj%U&AW;r(pS150=oK)&khxn>;qTdeo0KL-s7*V+rF|g8mLu3Sv z)mhdYzXll5G=QrHQ?&p=G|IJ}#I!ry!j7`ofT8zNwy={R{@4HLdnnPgYSREG_K4VI z(FzBqS(J>bgl(u_zRbe41$dCSsAaa#D!Lv+vS?B;5ElMiV3f%Qg>aCvpM(`0w+3c zp(G=y-(;{M8!?U{CJt3dmU)OhfpL-FDki49=Gn|*>K*(Xa>4c>ZjR-r1u*-qifMi& z_NV8Q;FQy(xp?d9iX#ubR*iuwiD}t~;;~nzCKFSefEh6k8~HVr)H~Pa#FUSul67&n zy!JWgX`VSR3%<*`axkDAF%lP1UYIX-{|9&fMCjJB5j9CfRjF;$iK-ZvR9Y|0=XKGQ zgYE_oHP1J`P_V@3;eS`9X1Q8jyl=YaM1@su{qOsj3T+3%M?@VdXAGw(qrATEDPXz0 z%bI}M<#mNgZA#h>Jq+9p$xnz#FH|DTyEU%uHmTi>L)gjyVTtP-Nw?ZIwJ^WLwY(iT zYw@)P=Bq43fp$Lf^~VOYbrZ2!pZ-4SVxOl|`^yT3%)WH*eD|zx5 z=fy2tko}D=*${=O=&68xeKV&py)Iu}T(h`V_%L$K@D+?Rl--1JBdX~v$WU$iwJXEd zrc4*zDk6bQ14j!g&CZW5H%%m?fR_*{E8TrO11u z0`VE~k+%&m(>`v!!cs)~)>>gqpq6**gF!QZT4D3Chb*slr9ZO0sMsl8KablOwd9jc zniBqTRHOpu`0h+#ud*J2p;jG^GG02bfO^Uy%eWJutG5)kqh@!SGS9$HburPkRE0m^ z!@j?TP7j(xKhhhx1s-%JXww<7X2IYn@>O0g0C8bO4BSaywV1H_AXyFYT`nAjBw~P( zwM>U`J_F*^L>#2jtc`MFkIp5TrF zgw*C(2L+dAIZcNJMloO;FqtSB&v-M9j`|85wyL2)J)Inaw9rX7uM+NAFXc;{Co3yk999TJiV?GhZP(%UjHHe=q>G&>OD_BrvAL& zd*|1;OZy7Q8M=l?}`f1~erZtiOFFxHa z(nzxcn%ydMb`%io<61U{#L!iPp)1PZ_V8p_9AY>TIXv|H2*J2y*>M2+XCO5 zsB_=Z)w{kU|7&6WV%OC-1~=xNy?=A?9V7VWqm$k{FKn?jPqn)B?8(fo8!y&>{>!Rc zXYsjkU|s5$Q&zX%=Rn|3AA`Pk9yOiWV_G!fc>1Si6Y$&Y+5Mky#r%1@`tI-6HzvQ# zx$%GCii@arK0ICvvf+r}1$_v!W;t{*pT20Tp;C9Abdr%Rz#d^=-A8XQS~JbSyGKa^ zIvq@Q76#e5jeWxO1GoeJM$beIx(>Ui@x)6Jh0x{^0)ngFCx3 z?0$^hTMR3ZiNiC=7U?E2i_B_5WlqjsrArbD9vzb7Hb$~?maaHobNKcG&)IY1lDKsf z$w#}tI#W-O;?oJ{$BNlm=5@y)n;6TFk9N8QT^&f+Ru(e6&w3Mj@L1Z8^M_6@@La>+ z+<@$TZhpEzhx}g3oUd(>bQ1kvIGpsVy(u)Q)$ga&+2So*x~ds$uP^K+)Ff3cl`oO$jx`!WX{+xSl_^NOHJUa#(L;{N*We|Jh zy{0jw5@J1f`DU4jkV35}0)S(yL;5^>tASfsrNKQ?8g`goX^C(!EhaIY=hD!5>QEoe zvj-8!b%1!yIlEIBpbw-UTex42?&tJEE4an!75(IL486aY1Th|!T7ry>!?$`oJoz2+P$<9H>A~i|}4Q%SM@hxZ+K6m+0M948%d&01Lq1^NHeZ zcTAxTQhEbN`M*aMi|TqpJi+hQh@qX)8GY6#*(zi$&0?sO5!C~e0j!G-1=jPqpClJG zJ(LQXxuF=)t=KOf0LKB-r@-(oK;#fJZu)+Nh8f8wVAXWSs4OCLApXtEi{pmh;$iaD zaY#I$*g~t-j7E%!!vDx8wkBTQVG^lUk*B~yoyb_NByfRdPIME6EVzPUHmx8O(@{H= zC=4SgMb6MDOaTjE_%zL&v?Aya08?jX(OiSafXrHGk)6!&c)r~f)0w9*z*z)OrQxp_ z(kALq$sz+Nh@+!$Ec`SdH7*SK!#DimhRX!`Ep)RXzJDLhsfBD-!El)QgNbt} zeO2}E9KREx5>r<@N)AzRn~v;QSSYWwV%?ekXK7dLFj2W($Hvwf8Si~O|y^?&QN=v1BUE9#@s zXZ4kn^jD4Xsc+uf-KEmsZnc{ioMK4r-unvPH=O#=VHeqT>Ya}E=|SqheWo+-?LMy; zeFmP^V>hhUDrTKu&%I%OiP-Qp;dI!F*WWh2{ywnm$Ntmr_8af1KK--d^e;Ey?;G}! ziqi{!MqWpaZ&>(u!~g!<01z7g#*s{jT#z?+Hd_F8iF+Q!jg03)@1()WEKuwr_QI-*xt|36kZ6gUbXtXu>gO!fDlnbJm2* zt_fGk1jW77t+CNP2IO&*>=`8Re3WiJM)r6!;r)HW2j<9SIOP#D{8TExAjk0VjDW<9 zz-y|&tjVBVjwg#ULJl@ei{LC_5J2u0`k(!VK;P+vdou#(=$AI;9)y$5eqnSvz6gHF0c$(@Ax&-ODnK!Q30N+ z$eeM~xbjIwJY@)ZdTP)@^Dr=T-NRa&(L#a$s1V1h_f4U@qyT-I4>Gtai*|ZMw{VOa zPbmc2Q4OLWNNEt374;jAt-G66kMCl5k;>zrj0UeqDi$~*RGlpx(SO8{6_e-!4C5eA zf#d-$){Bhs!=XbA@6Hqi%_Y(kjKc_ZRDiu_87##-Lam}=a&{#mgPQr4g&?aG#o8Uw zMkz`Q6dmo^gHC4{VIJDymL_IaAh|-1-e?Sm@2?ek{CO3FhX4woK3zhD2L2c((5Eo~ zXNteAh>l08JPJ=?=QrG+>andmh3$NOBwmClJcZ6wW*cfw<$a6TvUtq~Om44jRIjSG z>T{p4HWwLL$AH$I!a;ymod;KrSb#z-?2WV0zn{g~)v9~c(}f=AK3)eK@n zKXZcVT>&t|2vDfj#bfWN6FrpVp89yC?MAS}cun6Z`_=m%Q_IQ22*-^p+B~TM9EBM+ z)e~y4jCTRCQ6RVZWYaS`M>5bMnr~by4Cw^pQp~L@L5>^2)MB9RE`eJr4?LO6ut%K=C~J5Ei}|Xjar+ltg80v?4#xBLKV?UDGU_z3k>N}SjeuOM zbO~7y+T&FIQ$1GdCAedPMeF6}kz>t3q4jSd8NGpu97uiuC;8M`bLi)G z3VkwrvZ+i9C&Ri8J#t0beowkbGYC%uS*&OYs|R~KDQzI`0WDy<#Zo6Hfe(>v&nu1O z%>L;=)~RC#YXQTp!^(Dn%~ageZC5wekiQb$ROLgnDyu-8d;gr5IjE zq0)WZf$Q}Dbah|oxJiF}Lx3yl39O^}whUR+4S66uAE4W8aF#bQ@iy_ITF419x|U5?OQ?z$%vo?I0Za=|&3O zca#yF5pY*niOIcyN^JPEH?hy}ktr@Y2mp7Ztec%+`?Y|pl2yb=gN{eLPz{Xe0{a|c zxM|=x643LH!g>eTF-bW5795_<_vC!C_!1LL&rF)8|_)NjRSr zfK4{gsIF(JyAq?N`$A-9yy(^K@kSKL`z{a)MfV!*Dd-enQA!LRx@XTRGpfqNPzKRK|TUqaVG3`nR4lT)}H+XF8J@hp*h2l}F04Ei!98-|Lf*zmcduzax6%y}& zW$^|Rz3l~HXHTRCY$~0xErJ4WGHd`BXG#@zn!bg9o+=(4DaPV^7%gbXaZKbC9T>$7 zQ1d}-VS~GZQmlOaX-)Va1*BKBRSOQ50l~a$#!~S9r?qy}9`Gf(onF3y(~rod0Z!Ar zHKY7t+)gPNH!a8})&1uZ6{H3T<<}?1`@*M15q~~;Q52AA8Xh4cB?0Y+`6f7^+oumU zlaIW5MSfC&5tWa)#a~=)X4u6-#q(h+Kwn&xlp&R=LU{B)fJYJ&k_`y#1cywquoWOD znL^Z}_xwvh#R%0kG^a-;+i+!p1|Tq^kpu){FiOG@$VZ%p#R!S@3YXAyt9pg$6eF@_ zj>6Ms^Lu>6KWZy3EiYMk9GNRJ%!On5Aj;_byk2mC6WvJxKA9~dPYpP0e=-_!9B9I0 z7X=OfY8XynQs$h$yvzc!C=v%er4d-rRH2!0#~hJ$Gf3X7B8~~`Gx32dfB|EM|H}OC z((gFb5mYE5;OIg1VE=A`^$vzv+ww?Czb6qF8P#K6Cs?EqI^685-EnaF>Wg<&ivAR) z9Z}=))xz>E^FFJ`1OIZ?`N560^JxRGvgescQS$c09iv)Ece~)9=g}JrRhVv2^gClm zTn|ZF6Hv$hbjDbn`QnMwgKH>boLRB6bA{SnvkyyBuzApe&rfMXzd0BDUk^`ECxZ%^z{(b9fY z0p6#s>f9Nj0dvg1uQXWREOER-5fxty7_c&olEf6MVp0^)uOL982PB2>tP%OPCsI2N@tzkwz@Y?ci`elt$M~vM4b4c>|Hj*>UD ztLc8K=;D-TDfNCKpL$PtuaE);4tYK!gf_2;qBO!>{H+&?`O_>$<5CDZ^Uky;NqkIE zq)3#xm3&U`tvnIB`+LRgsm1%|^c$~$kY-t>KlD#NHohGXOM?6E3qI>dbx znb434eXsL4=#v`6S(g0Yo)r&m$g8$L1%#dZ+h75_H+psGy3eUgapL5ktG-H%yf^>U zI$$N`tgxcbjMo?bDKl}}^;2;>srP(^pOG*4Na2LTd81^bz4z>k3>}q+eWV4O>NTF1 z^;b~7gnPEf3U82cD?7EILwn28$mR~=t*)oHZ64@F2m7UE%JBY5uxXHATDoj){rj^_ zk^Vh2n)p)RShqL4T2&tQw0eM)(~U2#r2Ao+7CAEu*^|dpJGC3DgT@qwsZo958OtEc z{QmeD-jvFEQ!+26aSx&Qp1JQQin+Ph3WpCitLJ!+jf1-N=`p^98>(YPMmKwmUG7x- zVZ6#(#YmU3B=J4rTt2iaCVPh?E`vG?iuKu{bgd;k>uNeB>dF?8c1OL4WtM*JIM=9| zc7vDYvPR^k#IM<#j-{1_Hg*-AC+Q$od|gJJ@O}>CAn^_*`v`Gft$=2YvYU`rbMlyq z6eIUH#hJykI;aT?8+$e7-jml7PUne=W@9Un}vz}`W`|fec zS|O5H!2^L1^@uAlfv9~<$~4h|;KYS4()ptVPfG_Nc38TRQ1n#SC<*FpX@F6;a(XQs zBia4t*s>%Q$SaEDYVVcI*P6svV05x=71Z=9PfMN_?0Av=%f#ypDYvhocO)owA+T+X@I@bJ}h$NE9UNKN!n)9#CPr4Er8rL}0) ziA{E>?dZQrr4@&wq1NsLuBPavZYD-BiK+zGm+4?shvX{b?Zak~n~bK)6cff4lpAl3 z_=ND%gcs!ebBGAy)$!C}eMgMQJVeU{nIv|VqL%V+yn!^29uu1m;lIB7Jr&p+TW=pC zpEyS@mL}u!tPJjm2>vD;4iUMd~M76)7Q4(4-;=iMW zX0_RJ6j_NrU#PY08lz$JfCtUhI?Hr6{cAfPa<)hyve5|sTRJP-EoT<38JdXTfKB{| z(oAMq9MN>XNlIJ8ewU6u$G?`BgoaN>O4z-`fY}lT5loC4X|gWmLf2(8v0DsF&L1?T zadkS_PmRPv3oxNrOj%ZwKolcictDEK;#wgX+m0z+wF5{{6@o&>>8D}q!I&%(WWith z$S7bQh;3DyhNEgs1KDJ|^Py^+KiZO{c1Ifq2WIJdu5Y-#AGe7bTRx_hgb^7=SJm*t z^$ut^?gS=Ry~4#WA4*8d!F-#C+2ECkpcEjSj<0sxkzcu`ScT50iJ|D(#y(>Ti$487 z`O~wNt5=l97iKek!j)H;ojQ}<7_e0@_e@sf66B-yvnOBciuGG;hS$NYY?m6b;wa|hJZKI@W3d}yaj;-Ti{A}_ zvF#kF(y%Krxr2G^yl!Q5KyTmJvjO}28h|&$(5W&cG@Hl6ofqb2`3)4Ns5Uz`ykO+E zkeUHXP)qXjW)~GHzPbC&13eBH+S92_H*-BbfHf;hc{*5Euly&vY`etZKV`1f2+b^k zKrafLY};7kTEQ3L>J1ZpY@zdx5j0fwAoq%&(9&s9=arW_kUiTl%9mg1Y8^}NV9__P zu?dbZ6vFZNd%>34M4zwdoOx;V-Lw7T)=~i6N;>8f=`3tbxCYxWh%=93mq$LT5+~4bnQots30Pijog2MjuG<24k=1RT^G#8n}^ujC9;## zQzfqiE1$jTff|N%-9l)vB8nr3t&R;9 zpjJuYHt>_ROjE4k9zEKCRX zo;x0Gew@n;>?N5VG>Z*7wNn`0LIbn4G^ZFW*nNnLjGHzL8Uc#eNJm1R@&qfg94eeJ zbXWox7NX5JZk-}sT>Vps;?rxlu+p$kNzvFuLxq!*4pJNfKfp~Al7||N99gQCof@(G z^f!2;x(`y9U!TU~j{2$lGgD}|Eki<-F92lF3XPafKr^#$sP(CojT!cjBeM{)cr~jw z2{&Q3gdZI_+OZ&s%T-}_W{Z7Zk?ut~2`vt=R0IROnB|m#V<}WNm%#{HcN)4{0d?}u zN4e87&{>%Ne1l5M%6@~FPYZn_kw#nVGjJOaJ@!L#8;|Usee>C|Rw@#TS*x@Dn*<_~ z(j*MShUwfa&SA97+WV=oElG;VEg;g%}Z@vsW6%YKSgTfh+xV6>`fqbb8|^N|~U3GJ|&$PrG&&FfHK_(I1c4b8@5t@lP|MJ0(CVI<$EHur~qvUSB zzBl*&y00alF!3UD!+lKS;62mxZ%iVmdI;<~D30?lrDzA(XwDbzd~@Ot%gNDJF|SJI zC5z2l9N<^vFl4$`DXdE;_Jw}m^i>c&SvUdu5Prh)Vh6%FyftJ-7UT2kg+!2MWnSD& z%8D}{ZOx2&yJ6J@SQp>e@W4-3lH{Lkzo!u^xQJmGe1?nQ(kx5_@N8`(mA{G0jf&Y! z{Hx&#%mwlNtYsAGyHUFBskbK0bVy9pt&0HIjGXjqBhZIyI<8!`U{|`09Bo_-fJ0*b zZ&}$)VeyonIm5+nCfSp>Y_8y2k+wvE-m(oMqDh+V!ka6FfHe1ebu+*Vj0`)y&eDaC zlheQyFKb#XSkX{~0~qZ>*&3;!1&W_#O~kqe1k0cd$_MHM1YRSug^%f`oBSmYF<5hE z+4?!>4k|n}Kno{|?WXB=U1|7CfdLIOJ_0}#kU(Uuz_XXpzWF~-&<0ipKF`zsvTl!x zws!^1v_RmF06NbJtcS_45E{6bkCJQQJN_Pyks~Q-_%?%*2}H~Z2(S!q8O@~A^Z{8> zlm#T-;UikOU_yeaopwOxXu}gCr1FJ6Iajk*U{tgTSp$f;N%F|z_f7+INY$x}nvwmL zXk)T*wsvb95Gmsu)o76{KIS+dW3om6M^Lx6CQXLVLuY5B4ML%UM9Zbyen?w9=b+O|T-gB3^$pInjx_gBhL;+Cg;6bJM$*p`$yJrL9WTWIr_W8 z;dlJRY3cB^?BJ;*7vG=q{=gQ0Xqz!k}vz!vW#Ig@$2%o-@Had zx9OkWsy{=f_L^n?ITiRnud2{4ThN?cn0XkInf||DpZ|w)0YGH{!vGtm9fp$uZ84zI zjQcL_AfNWk02w#}1DT~m)(arkY(gRxYAl1U*O1cLkgRst4J~Xt51ubEF2W#eoLCYW zvP_To5{EpdL7wzBI)~YMUT=TbJ~m?AkVI&$HfqD#1k!9m`8Kz)#J*}` zxnrm%$@W;A?dxjrM84g}S-USu!0%Z5U-{?-tUaiJWIRVQFL1DVL}ECSJ090j3iRH7 zw17v;7tJ{`3!J_*I4$#YUVYj5f!4W|?QETF@ zv%IL|=yc?~3HO-^zr4vsGn0&qM>-!(-AsPN8Gggf`;mF^e)ceV$nV{*i|_vOUYM3# zoaRBi4qhaccJYVzeGaqJV?EL*UX8Kh& z`PnB6sQ$A-k7r5C=A@tiAD=HlrVa7_U!|h2-HNa5W#9DtZ`?!indbIc+c29S2IW`X zj|8LLb_5^rnO~YVU*;2XxaudTHKb{oK=$}o`?B9%pF{8Z{OP~+$Gd6KW77`WH*)8f z|0b4Q?tZ+WUl#sz8RXBh%R|cnvknoyvWS;gfc8|-yF(x^40!emcrg_c+YSNapj9&3 zXE}5OJ1bKL+e%%|W5Z_+#j;=FqIO0!A5n=x26rM)>zS>*%`pMShq=bL7WBrztmu2~ z8~q_MhQ`}x8njLy^HFc&>u5TgX8Kzn3rxZwtIbeYY-K0b-q-9_(~=Eemo)A8x@gv% znU9N`#Vt>I+tq1tJHXPE9DlDfes_n}fqaNCA74I;7m%!vc37YGC7i3qoS!9Zk6m`X z!{)9pv7F3)P|f~lmaR*&+agU09!YXone6r?nTcACO?I$;z zDZ0if!OVGOjdPXKIW5^G=Q1kS%=KgfW7lEZqDR)+2dG@S%Y-5B1>we&HWQW4$%6ge zX-=DfX1FwSgQZa1V8>y)ZsR^pZa^6rVY0xw8)){5hBun9Soq>#_La2VNk}Qum9KSh z@f2Ek{F5p>N7}4Jzy!#cFBW%n@u_J`??dDaoy}M#_GyEi`+f803iB>N!uiYqXbELe zXS}p5en;;$DZ_%NwMbQR%aqo<;uwa5c?xvp)8gnzF_NLAe$f#OaBgbV(o~t<*#;P` zjWjMWX3z;{KHoa!Xok|HTYGM<0e_K?1}V?9KujwH*ctxPF~BKau~kI|v0rJNIc4$Z zf>o*@=Du5Owi9NYhWhJ1aU!QRQ)s6FqCHfJ6@`wLKS^_Z?@Ytf!41?VAZ0e-I}I`( z->%ETKAuLLZos(!@NydNxr0?58HDF9;9}^|6#yLqNXU{S4Cld2F5bI`SajpB(4N(` zgP>X(;``gLB-&iK0|Wv95ovi3B)3s6h-Tf^LLFF>#l`ClS3*&>0QhEw@q#gY2mQZS z0cR77OpzOnHQ2Gz_SP75Q<}uEmo?AzaGvPx<$}7D zgrx!$Sq=zTAfbp&BhMY|QyNb$lOwrlpu7fBn*cbv(f-w<)kjLK)im$~efyLyWKKt% zBJDXK$JwzQ!^6tI>%#shiGJmNceKVeX_jlHeM-$*a0zX>G;bHcB2j!s0I^Eg9!;p_>Q+*D5k>| zx{!->%cpeg!8Gj$0b!KpA#t>Sr7$AqtWKlD+q9Bdy6sIg7T1750If!q{n2KIx?c0Q z0JES3{1h2UNHBaL_U=lR-#b!^4m||Gc1MZH2$PPpb!7-~LY%M?a(P1MoSftA^V|3K z`yY1OUVA&3W9)`Od#nffU2St9uzFOHFqTEkYO!ku=3H6yGmQY1dnGGsb^m+qnE!lRSj0 z7RG&YwoOIZ2P;+ z9ht~ReUfNmKyXVB;9a48=4qGSk_!=Mak*@pfs1W%`tGeqg%efzM>mR^sK{o`ridSI z6*$0iO?G|K&T>7@HlyX#lw(0(Z1j8l8UcztyEzbsIB&4G(o=}OuoU6xKlJ&%LS*1p zYxjiuZF#~^8cJ%(rJ37Ehclf` zk_**swlWP)Xr{u_TZSeh_A|?|(+To%Vf1%Dgt-;jM@7+vMS)LsM9paU9qoq6=xPe#{*UyuN_eX3*Oz7^Q$&rUnHia?~ZSg z#8YeUO06nQ_cVOpaSdhebYxT<;m2#}3xLz?8B9YrweW}Wct1p!1R`PM;-&WS9QZCO zYKDsH0-?KU9WciG;4~xY`7Rt=?+`dApl^w6WT@3Q~L%jcd1T0 zx~Z4wT$o+Ic%dNrbKFXg>$?Yro)0wsQRTOJx4Eb#B?s@mL;Fb3wB_{bnA~Ml!`W2m z1ZSXCW3v2fPpQiqDCkXj`^WQN9tCf?-TtQFS>O6ilcxP1XYW&^@&l*r=Z~=p12QR7 z;p3iRg<(~noFWv91a6U;y2Qu3-rQ}Cs)Ap&pZ8u>7@r9DTD$r7>T{9RkAmpun@Pub zmr6drD?Rf+pKY6%R>GgY?l;_yc-H+jN%DUDqS0n=u$89hh3QqL1%FtT=vXjnr!-Sq zSifbsW%^!N;c2ibN7<$80-jUzeN&dlbZI&1ios4hCHd|+ug$JWG*ulip%1N%{%7Ih zJv(1GwJz?2u-A`Ah0J}y;dxqshrDh2x+2Nv+#xUP_|)P%#6)aQr>(8U zhqUeVRNw2i{UE(ZW90zywgRyT5z{9YNdsQAQwM0n*r~Xlj~nOAoU(n*x8T+xsZ~6* zmx#vo>q62>aVLs1Ip;qW?*ghgMSZ#GkaiJ=h}wB;n7FnW_>AZmHr<158XuT->8rk2 zpI3gNAtw|)${tcX^m=WxiY;p4Sv_$Ye;jy9zAmAod8cW&i&MD1WKH7u}xi|~J$o^#Mu+{36 z`jwkc4)c<%rAq@7Zm+H$AI1i_(;y)qCBF?h9{k&!D)Uu5Yn9}TeZc(zDbe*!%Azm=Sxt%cQ`^v1bbJ`!sXt^_Frr zG?TcGD7T#uP`!%lYQB5GVih8f!U#oqhH6VaIU-yo1sg#GVF#7qsZ;uX zX+dbEyhWebBfec4h_lhKwB6FA#G)R&{vpHRzGdIZmuCL zNR0O-_w8vC6jva#ZPyFDsNL`c#-r0+rxZ)~+(NQM!_H1HACif>HnFwb+h5!1FrMjr zzQgvSP6AnJPH)3~efo6UY+*SRDn;o_R^kM&?ga@=*!ejHGKN`GGL*MEK?Ps3gjiKG zU4-1hdgsi13g4c?K_zH80oMT^52yiR&y=F5-p~Lj2h*1pA2t_&JLt`UzUWwrK2PnG z&p^(qiD$3)N^37^K05!r?2rRXg9!Mphmlm$mmMZnc(u%av_pZ_sLD5|LtIU2kVoqp z>%tsR;r8K-sZ1>TlHrfmMd;#Y8F6-NeqUGO_GIE$H{DY?}f@jngf2CV2lL zA(Y8ggb-Vid_9@QAfEuwIB+Gs>~fmW)h%k*fc- zX|*9i%bOCbo@_8?;5KRoJvstH#c6J(#|4TbJw-(JtfqINI7#@`P<_L&ll*+l5cJLh zEiM?aYk!0UeQCkPre)yv3@ncn2FUI8mY5Gx9&w?i+%rdRzWYQ2rp|!yB{?dWxu{it zrSHBR`;doeqSR6xKDYQhLd0)kj)Yv#sOB&Xr}~8hJ_Q$z@yY@GUJ);#c?z|7=BfQa zOYMQcmgXg2E;MXtz9$}$53eOJjnc1M$$(Fl3T6sf1;Ur2KvLdfT}Sf|jL z3#95X+?B!O1)+?hsv7kxo6)bdfQDnZnw;35Qtge2tbft(_SY58Zix?IlDS*6256&G z2b~9@P3OFh9kNW;3XowUUuZlj3RG$>sc`v586i}%m5WDZ4(oCZIj-=Bprm5M;=K2{}abXQcIBqp; zIoW6CDk9aewtyp<+4Jzksl?@q*lW{P ze`{msK@pE6+aPeP8xexlm;omuYDC5B@W3xH3BYX8Q#s+W3gS++%~0Vc-5}`G@cR(V zE=f9xjcSkt>6qv^{dQ~}Bw%i%LIh4S*;uXz*%D#kSXkNx+g3dwV#BI9uv{jj+XlXh zzGyWFhMj|L)WS_n%n7&1a1b=W6v;HESrpG)5jflwZlocaA(%Q1NcR=L03swYfglj} zjUIG$41YxfeUBr(;koHqn31_6t&s%O}t%UI@S|;M4Ww@zD(CdSYkY!-xse?_51Bik;s5!qv~6k_^6FhsThDG}kjflRg@i!e{& zjYDNmsN~%s%ySL0JOh4GfY>>P&Qn3t*vQKkI1YsVHdgpIXtzbXi!foX&mklN*i}%( z5iTy(gvn!~_wK>Wy&){iWF#*7$pXRIzeMe0JC*i2{tPOF4IpDK;4QD&Uq!?}smR1R z+%S>)S2Ak934Z+ze!WEX0OZsY@7k|L?$F}*oT+UIb}2UH=W87MwQ=*G<4$Pnih`Xh zf(zb}&?7`w64?C(6-U|?Uo`~#C2N_KNb7+*T^gee8le3eOuvagn2f2C#E~9Y5HMJ; z=gxrur#ui2shs1BBW!JDsf36lb}cnmi^2l>E6 z2kL=~ssknv%t00I;)yZovDSi&SkZwCRJ=uK4H|>R5&;1y<(mMsj+y=Ap8?r!%IMb) z3tD`^BJhqmKrJG^7Gh5f_{K}T(gm3HROk*3bRQKQFY!p*3O=%w0Cx+pqvF=x$E_1W zQCh@HD(+N;_o~$p^%y3UYGEFeH*5pe6QQnShwU2}^IGgdEAa4@J%jtiDah{=yPmatY(e16PppB{65*Xn0Id((-~cn#(k5$=)-bP5#lo(UZqfO!W<=1o3{ z0>6DGbo`w6^cSFO43i*)9!Msf5JGKD=BO`oTiDr*Bn3fC#GQVKm;45GB8J9|L6^;0 zC|wANT9!-2zN0qUrdhwx02v?*S_6oQHK$*J{Uvq>ID`u(u>1e9w>YdyojXN9ECl=| zBv8^A*D}`^KY@;lFyVv1E;?osr1&PnzyzM!Wb1}$b@_v}lLD}(HDn*aS}n3iQxV}= zxKV=S7YXByPW1QswCwQ0bXP53WF$bKU0@eSMtIPCOq)^ zI!OR?Ih__OfR!*EERgRN6=b6z@SeNvm;|$#O>C23oFuR`Jzx^y#WK6sdMt|t46+Gg zHsqsvxS&HHCxiG2#o;h zr#Zw_F*ZU{wLm0j1js!0xe6viqRp9~bKrx!&(#r3Ohl7z^%$dOJf~)&qh@lpX1mqFmuUyzAdg(=Immu`@DEDu%wE`h zPVG!t?Ke&B_t{#ImkN3l4zExhxTNxXt6DsOB!$=6bfWF{#}y6LxpcZvz3TriM0zZ9 zWpvhC)ua5r)z6e60^ib?*^A^u@bIfHQEv~i!;#!&4K>0B{<=dS9=S3H;44sv&9dOb z?~)G>mK_Ez95#kCtb80ZQSDpzAK8BO$c}GEJ`)>v-#oiS*jU`zD1O^0@lq?ctCgMV z?!r?yg1f&#o9g!i4cnX4olPfYkmKthC+&~6tvh;V8KLv)(R1O@pY4xbTzBkB(=nFz z*e~CX8E!VEvztdMnn``lcfK|M^q7&rJpOS1@etKuXQ?r#*T7!PWo#ke0il%+c(a z{_a#P=(HQ_^tj;kwxg%>o}S+6aAx=VGY3o0D0e%biQFRnrngA_7+Tk|Y zQF|+}KB4nSW#`c@Nb|c+jdxdjZdb=Y8AwCd&V{a?h_jbU&h9;h=(~0Hx_3zFfYm^W zo*f!!?CKtU*FBa%c#wb_&pmfta_;G^bI;M|rxVV`77)p>K zRiA>?F&(-d<(i3vr&O|K8B-~QcMIVwK`4`eV4`Bvdu|kg(EodB_d$=pE`;s2B+uDZ z`%e>=Tjh2Okg3|7=azSxU=f6Wz^{-vq8D*hh~pKgy8@c%P5!N9>^BqE)hvPJZN(qB z?|ie4&J*E&0YQGz+BQ&OFaKKF^P1i?hh9&_oRn%(n8>wyB=HdH7cIVjj8-6_7Ynez z)e-usu>T&wQ&etmLtTfNPNYC&zl!jf3g62v2;7f*tVJ?1oxu+BI@!OiVEzeSR7ZN`* zu>zGaLke1K7 zU}Yj~rw}%#$CDic7X%ol%B_luxvkw?VOMMKg*#6LACZ_4EtnnwAw_%F{wlII3@R59 zpJ_k+(6Dp-@($~YyT3KNTrEWQGx7hz+}g>X&g-Ei4!+^@xb?^A#5ZI1C}(0LYV8=N zEd%{hgmZ{=O`Kb~59IV;2BJ!P@7x_I^X#1z0V+jB=$v;fr$UFT5j+$2u8QzL@BQr& zt&r@xU$Lsa2uAyP3$KeH?HDR6PE>gjMg^caL2!gSB;~rr(??_HS}(o>n>Vv@`{y7@ zD#&Wko0Cu1k7_fkNbnC5(g6-?dhVTBRfP6e4vpKL*D@1@z{yr<&+jfF0?6-~_&mGB zc&gx&X|I=L^fV4A9fH!e$QC;=O;bX#NnR@i4#@~Emyn_QlCzJ!I=|pTn8*7|2``05 zLj*v)7AXoz*-Lncg+K=W2L4kLo(UIkxUn~FIOQx|jDN{EJyv+L9fKKj-a!Qyxm&_E zYj0~Xr?&gp?D_ZII>G}J2=WqzH+`Cyd|V3x5>%$7%*3VWe;fM%_iEUOk3rS~s8(b* z$;38*U>U2TbD8Kx!muPk(b^KCIPie9l+aK%B@p5M6`RqZ0BU3SzPnF{2g?Z=SMx{d z+l53L9AWPy8A7@x-a+Let#4H_u_u@O^f%wry(#5Y!V$lX*Ymwrx?FKh$`o=^Jk~+8 z6`{tIjyF&nL4=CDz13}*+P-aecvTQ>WsG?C`Tb*TFW1HP8&$zg)R#kzxV-o~RI9g` za_c1t6_D41urTp_N61Z@o7JV1EU|F`*a~6n)MP7Ahul#%-m&%75tx~wbH&puj0;wr zgzIAOA4S>va+l~lw2;<(xDkTt8K1i`8-OjSB@rU!Pj5kl07=Q zZqRr0wd86V=UUd0VypCTy`}qu-c4Rzd~SB@d-DTWeP7*QAKw1<_ra|GusvVyFQ4eD z3fp_Vdu%_%-&N!OYP2Ttru(6>s~?^C=%$yoOGk@&R~4qn8@55{!l6q3g=O2?f3W%j zC-Pqx!##fb@C0!(ze70O=#LHewDHko+;IOrbMTBUWsZ`iipyFDzphAZeRGgAH^+5Y z8>@w0|9$Sh$B~kD?H2xGTf>`UH2AU(N5)5?oMg$UD(X0sIa`j4&rc2GJmH@QYIw!= zHuHyR4hTh!8kCY|TW z$T^{#Aky~RV%l0Y!}{d8_KvKJ>)#E%B+|@*`(d@T=0Z=`?bSJh%fkku8c0s|8JTwk z=Rt>0knXt&LZ4>2zjfL6xvsnkT*(5|;;g!i3jZU*vWBrEw{Mg#?zq`@+Nn$BR=(J~ zwXBI=IV-DVPH>Ph2}3BAdr|%Ip3Oh~FR6mPkbael^z`lEU_5kV^wRa|oh@aNa{*`I zZoN5!%AifxUdqUs%lHn+ew_?OvVHsNAd$=Gpxi_PS%r_U$b&`_r47OTY?CcGsjm2H z&CXm=X8ZmX4ojhKxgC0CTcf@Re{57*AK732*2*X)>WM> z)EmeXD;{i>Mt;iSK^IRDIfu=UkKBKSCrwB=sEgxbq2AGGQxrf2C1-H zedYFdL?b~O5^j5<+~J|N%_f`AN7Lk%dotor z{abk7B*PBt?^lF$1Nd`-6*0T&syy8x4%w2}(AlYLR?;_=rxFLOH zYB$Yz3kr1c(N@!V*Js(zTnbcO4Z7fA*haW*Ecf|fIvdI#be+$U<6_rV`#@!@nkcCU zM;cIDd~2b{~-!{iWyN>bM8EUy!il;1Fc&Gb!ok zoI}AK7qF|`+m|=@LAHHjc3ksoJ<@NmwBl%$V&reu8@xxf;!~yTXWDExA%`O#72--C zPCFEs_4n1j9-g6}xemGOhr({{cKKm8ew`#06+JIdBpapJ&!7=x)EPN_7NC73-tbKq zkdiy(R*M7>7LrzeP4NnP{wx=p4IC_1zqD%$SbDLa#Xb6nyxU`)m1l}DG|`ufOmnrp0y~T42uA-l zK+}x{`K96ziA*jUnqc+3$PK0o97(yPV)lBE+B8`vZ$HB?D8ySxw#zr*8cdaOP)eO30p(pqGsq;5la?+~zjtn85Oogx#2Z z#95cdDoY@mTD_q|18U8=5l+?|7E|QF5-P-FfeLlVVFNHV$Ue3Xlc#)X+b#ib3Y{yZ zr%J5`weXNEQ0aXEz9sbB_SZ8~LP35oHjNq^$^Q)DTCRij5-zHeEkn(kFr)k=>*ssG zDf#|Z0Ua>OT!8J~nU~OIpaScobEWP?z;=MoC5?L^>{WDHJHvp|-#?g=YH~u~HH6Rg z;9y8M$9Bd5makG2hj<#}auTgAGh1%62HBvCGh07m%NC1998S=9(FF#HLga>62GW98 zP!Um~Qsm6Wnd;b_RXJ1guy4vChcrvDliB8SQ$1+utXGEhg00qQWXy@W>JShY_orZ~ z6}7I~e->o-QNJ`&+^pISk|9MRTrYF2K+K*-slZDY)w7i$nik?^{;<;#L8^K( zZz$dZ2bb^Tk{Vg?C{Vkj*qw)HOT&je7do{P=~i{7#L(Bm(h&Ab(Iew9Q&J~i^=8m+ z_iU^WvZY*<_gIl0ED$VE@P9SDie9Adm#;BH@_d3b9gp%o~2+)D-dC` zA44x`r2*%qh)7Ga{t^p%+?@6b9-y2m=x3a$whqK6VhuQ6=0n=~0EU0Zz#2IP?D%P> zY`p?(-8D*boR~{keig884j;-JZJDDzY;`#=X;=3Pu{e)*LG8eekZNLO{KVAS{F2n@ ze$c&4G7p`Q!;3DSf^B}a>M(g|!O6)~kD!e=<+S`&z<+b0 zFVhsLe9MxicnbW3{st{q6}Hdlwk5+xYAgFWv~7fLo6hHK2$;hDI>kPETPKM;w6kY@ zN`7w4R|QIB{uA(+lU=e1VcylH!A~x?P%`J(ILhhJieEn9ntA#3?%(v@j0f*kjS_oHfHgA|J%`jR}Q@NN4q<|23P}y#EDMcwoN@V#R z(7f>S)Nuem1|hW!K4lT=jpg}ikT^bULz;Yp5s`zeEfPanO!=BI!cHO~hZV4QR%St0 zmnxyDgXOz)z-9_+)pooO5#FWm^dCUPf*^PKaGr(2Gs1VwLT6^dEG;aX5z2^g_(6qG z4#<`=6wBGfppJuOgNOs^;KE{pxY!(asM)wC2bOMx^OwWeLdG7DaqogmkyYytf?A}v zgo&~T?;H0E2XHNmTD~gw%)wQ*`>@POlw-KQhn~SK*ZYkeNblRksvys-zN#O0qQXe8@lO=$kb7<|t zqQx1C6&ao@>=l;fd_3h^<8R>ALS3Oswy{&k(>Eo3k!2D|CAu=b6{AD|bDAy9Q-L?P z9Lg_=2L)3znssO(ywD~{F7QC z^CpRB;nqYMTyd%|?<_$C`$=;Bm&{QGP2V^LHl~0{eD|cQ5@?70BDLeiWEoix+Sq|v zsdn%)LN2xZTGCP8_YLIFM?PmFmNUVgdf$~=Z$DA@#V1Fp5^0a4tePZ^v;blq-tiRK z#R}bEgyW@TN~5%?u@eT~U%r`H>Z^4)+e29?koiz#kBXWwLY*%Xyn5nS-2?DGc7z8J z9KdjFt|*P{03OWSWdrrK+L01946dnKLPxpwz!?_)P5@t3C%0BAJWZekCBj^whD8gj z{G%+(L$FX=c7F~TD3Wd%10`!+@@@mP--AM^;BY+*vcdno!7JN<2>uSHYh>?YW%d)G zK+w{UJ@-EK@YV+%&NpHLjSw%jv^YFyYYyTrQJz6bg{xo-x>C!3;L9u^nt>=4K^HdH?nF+ zn@ZhPz2OqYVi00Su{=zm;7TC-p{2W~19lh@=}0p~umIWCCd=2lNZpN-q_O}Vkk%0Z zJW;J=KyuWj{!EC#Se9-q&oW9kd;e8K%icB%j&n z;HHx|ezghE$@4m3ky=QAS$+1G-vaU%}b^5Z80%&@4R0RIytP67u1@YM@lzV<%m;1syEzu#mKn$AvdN z1(N?$rWs(ozBHL-7s3GB8Ow_$Fjorf=BwW;L#FJXs5Y~Ki*@#0AWm1L-0HCU%#+S@ z-|Q3hico=?JjeF@213qyeL8!T$CMGYpvfQvNhRyO)lKe@?vW7obpaC}VSYLgk_Zex zkQFj*5|yWXa(p~kik-rYCX_5x=$)7YFVdH1GJ(cr*Lg@;FG_zo5KcEId#F;7LGh+GXD_VFvuCIEzOol0+X(mdZdA!1rVa_NQMdI&5$~& zE2A?&KRtwy{5QZl4l9i1t`kgOO1!sj$h||>PoaiWWjLzLLvIFySIM(jZ<)*>t`Z1g zA%qODy}HzThb?hE>boXrK zh;U9R8J8Y?xY@c+?kIu&r@N+@D-E1o>P;zCSlCt&B0Hzts^wlIvo3iKwm|@0!!P9) zmn|xm@mXtgv}^VX+KZLt$(A}+R@tuhWo)f%xmv!4ab`_1IGlY+jD&39!@VV?ViqFM z2wO1OHELEKGUE1`!1N5+ChFN}KF~jpxbJmltyUhdKl5Vs@|Bjmwz)&0l+!$|oGrXY zo73+}^N7q)@QCsU&XL7k){7~M5}ntASyvW03#=r1u1?z=z$n`(v8d_tpBxmCs?!1? z#0jp88%xTz$j20@|7=-yVfoX;WrM)g8%1&pPrO!F7N`C=*xe_dQ#dFC#3InfP&^ndW*Ch9*$~J)DHuBQlD%0-b_-*r5izub(3$Xm`FZM0! zts=0KCgpwnDko9tR(AL0KKWKkc@XQt==!r&0boqWHIy3%VeF0+9xF*Jr(Xv7r@<4M z(q0FrUkv4i>N3#dU(Ey|c+*1JTBJkQtmQHfELlZy6T$vClzhnmIGSXx+;U5)rqhB4 zCQV&+b!_y)mrSjr`Ckcn4*K>$iqk?_i5~FJkGBp0bzy2WdW2 zbcWCYY)K{@ViOuo+Ye8aFS=E}!QvF-iS}M3i*Zk2gDsu87R{oLvKMG67i-}-Dr{SS zX@VZ?_q)XABrKO$=_vxj)2cSG5D7|<^ZV>Pc8FE(!v@_66s!EAT1rP^FXVm^wKH)> z;IszptCYH$$_@$O4jom+bD#tk0yhRppO75OF0-Bh^^QsXjet-MYiCuSP)nVRuvMMr zSGxreU*fF2s?lRYvOC9pzaAZ~g~3#?%?~B3$mLd+{oq`gwFJx$AI$v2FDbRhLWVEa zV?t)ZZ>``BD`bn=C6`U01~|A`2?{j5!kHv>SFRlr9C>*Awn9>#KL=YPfYvwnu3$iS zb|8v#O2gT53znZvkupJw<;c(t$j1r>!kGwwlDY{jc|Xu^$Zn9|l)^$WQw)^5X~Ni4V7~e;9rK;jTIV-=r0xf0jRp z`M5S^$MW1Aha?|MR6CxU!{T)xC!c?OZvJR;`816$eYxUOVp_qM>_cx3e(E;26}-QT z_)q}-_`2W^_|DIF5nn=gW-i+qkg@acvYp>f|H0Gl{QhXC`NWT#7XARa&Vd)FL)V^y z-6)5t>{HPt-y*r8A47njCvjSsIRNwmZJ#|dOEw}Q^ooA%9 zEsXl@mc6`1T>0mxas5>8I-FZVuSs_?f70G5p_(!^u(jLP&9-mqQ29N3JYwq~CVleG z<8=gEo$p{4_cqOG`|1#d%jdNlrVyOugTmVLa@!exz^O!>sPMJs+y; zcU1ZxK{;LelqMJ$HohirJ!fk@Ra#L`@QT`aHZJtbl@gY&_o|9;zRuyEWP>sboQHb|v4#9kD%-9RPjs5k7KCU@aINJ28i>QQgd0}dWnTI*}w z9CQmCME(pRFEAU)H6c%n>0u5t#1U+&kTgh`#42h7gN>A0L_>3%)J2!i#Kep?YYo`g z*|9jhel#W4nol-hX+bk8Ow2c(U?@CS$ce2=RrCzO-!Q|>^-=SQ)N((xv3_MtW{xl^ zX1W1{@qOM5f^Cg8n_Lh+dp@UF=Zfp<95&{Ul`@wLEy2n|yDZlEQLq$dMN)Cf;Ep1T zYlQyBqYK_WIZq5CQu+eHFoZ8qPSnl_VrC1pr zft0U2@bfg}pkG9{p_=!E9f+e#PKP+ zUcuV>ItWX?I^#BqotxQkh`Dh*gKslB4!Pr?$Xa#J@i^$qh;l*nRnB^?k4U}zb?PGC zGf`>4c*au(n|+x4-?}2VX3|HT^A%rkZqf`x9Ti9&aP`b24)x|Pu*z0#$gP5i0E=%0(H zhMhCBrW0e%Yb{1XG@*5vWuExj<(*QTyt1_m`(yc{eY*Scj;+DFhN;`b=I_{~^MejX z?!&gCH&$Ukl`RsxJlGfZO}J@!)9#=^C1poWMuc0+V)_?Je1+Y2_G{+072$&&f@PH0 zv?eG?^_mJNw^s9Uu77L3dfV5{3|3(SlrLbv=2okcVocvPU^2E@CAZ+Y^p)E$KK*Hl z8PQo@Yjtv?s2rt8)d|7Gn8RlHokr%2{xGssrYbKc}u9o{}k)%FqUTw6cW%9p6 zT$kB_!*P=U3{xyYrXnDoOatW`GaeVCMcz`p3T;lrG zDK4>BbM2gDDe7@uMob^C5tA+?(1V5%Ic$0Q_<-a^jxnTH2=Qx<3k~Vupi}Dz+q;SI zOvz+giWWQljOSW)wvPQ*fRz~J2I_8oS-ferh6wi zQY2a@1t+je=>j*`@G;2A>5Q7cJ2SvptxIp(qR1Nx<-ilr2wX@)S(=JBe!F(+ztvH+{(DNLPUX`rRd-BZkIGHFIokH%p3#sP;@8ig;P2Eol_#%8*?_;1-t z{3(AYwZ!*O7#mP7u^e4D&hb{#rf@sRT+(qh&stqa*qJtEl{YuShjRVs>1SgsL}%o! zqN+tv2D|4Jm`%5E++TA0w52&T@ePk`zkRvWem#tFeGFgHz6HCHG2~P)H52xYyAj07 zl}+QC@&gewPD%#EeSiqxypV}k&B3%M*fr5d1}Vc0H){T>tnkrUxB*&K@FSKYQHgMU zA*l&s(n)EGCwcCoQFl?D##^v(KneEtNc{%soS|z^?B;*Mw3s z0+Z)s3DcsQG9Aw$(KtjbxvwhG8gTMCt|z`F)}y1#r1|oB&iTL5{b}WP6I5t{sm*Ta)uBb| zxo6Kh!PdnTC+jGh>#!Hh)$;Ss>*hcRIhxjuRIp7w2xSh@DalzAtKeBALLpKb`;j{6 zYoftm9UQD1Ki)3pFe2Avi`q{y_+0?-;fWx7`2Mwt7n`>p&~0_1>!tREB1ccfH2&&T zY0zH}R0T?E@U|xjyT2yOiE20Y$*O9r2Ij%-HiO8uLK&`I4-33(5Bp(Z_{3u)#f`18 zRVy>zpRNNh0%!YbN!8e4AIj`_Yw!YV$nxTG+OCw~wBM3Wte$$kKF0uFpSIz5fZ+_5XmG^}`_9An#;_-8{1k)K~P5kGFs#2*KF`*W%2wDoyg+Ye z$k00F4Gwd|M*wAxVtmrPRm}p`e1%lIKxwo;L8{GAN|}M)heEp8HF=GTTvY-ElYSo- zls|2~htXwUUq{$Cdm-_{#O{>Yps|%NXk_`zL&29HI77cy*kxUfkNKp5t(|xbuUaVc zX&!iDgMI9blr939 z??nk5Bie2H)rd<;uC59R<~t~kD4RQH2=xHYWI@P+iQrUr@C?MhNWMflYNu*}k8)#% zAmmA|yOC?F(?cx`S%;K4yD3I%QSaESoR-0m)*531${zyk=iblZ;J!E6r33hMeaN`n zI!eDQE&fDld=4@`dJYVpmGQ=Se(9imrJe@WL~31;#Zn4ix@KJO%y#AIO2a=K^_pX6 zF(1<@at}CXWA!lOvOzQs@l?hU#UT8+zUY;FQM$xdJQ(3L&>pZhC$4Q)_UtgDeSw9&4{&ou5`iO zWPRsu7%iVayv!w54~+$fC?^Ri49knFNQqCqy>0-Pr?JNdjeL zrByH2T{L8;S=m}W%1zy5%jQJRSccS&~%Q5T!e6Ba5?0g4Ajg#J*Yo=oLG#A5a7*Sh}Oaf(^%f0pbiB4+4|A0jFw7 zuTh2>OA8Q;sD>b}Y)-U}ZN46m?zYC|k^n+2#`vpU^Sme8iuUCRO!9F{nY`PY4~}N8lY++-OA_Qhg}5Co04uC-(5Pv)1UZo z|HQ|Da_OwgAK(7JpnCE%?c|pL*C$agR@Nu(XWn?9wi$iC?ypynzYpB|yY$7v;TPXd zz4+&n>%Y%{?>All3!pv2g3WJT|M%^r9Z1N-YOKg6z>~TsKm#dR0mTnM*O*|}Rq$Pw z@qZHXpk{ynE!00XXxp`z>q6{Z&D{wq{vDOTy+e4-BjPhi(*}~~lvU^yH7a8tpJub3 zW*eAUA)=Kq%{T1IrYJ|I>`zZQ9Mw1uv^YIzah`5*`O@MFZlzka(&(-9i0y*&odWjs zS$-=?kQtCh_spd)DxotT$QcDNucLJD*KO6k(>^2gJ@;GvrdzFM>5HE}S-gwG#J7>i zF9ST=*5t#2c1eS{ZNVv9n$ov~7HkO{h+jX~#;R`%FMuy88;Q95GID(;+UOSjw2fkN z+w*bD60@5pbcSs^!*-f+t4G2D+_U{2@GdvUrnJXp1Mv^AF`_J&AKil#GyEf2yymQg z^X`b=8B~8(BG)77C{oZ*u6#AK;;;6c3vZ9&w6d#sK@#)j}3hu=>?MX2d6eppV~B%wmI8Ni1y3~9m?>0of(>K6P2B{B75tm z?CgTfvaU1?FunLRGhOAlApFyF9eQ)2X7tRSt4Ttx?Q-BsWaJtT(e7c;+sH&N*T z;$HVXZPOriWyxGefqz)BkplV1!)<#{Z}KY!-(x35kKG7t*E@If7&^|*anR{qRL2}n z0P_ZY0%U@YICtES=mqSIvisz_{~c(wbK-g^2Yj#t&f|~hqhrnerswI>ps^dxYPp## zwp%DIECve8rCj+~RbDvxwsYs-2!7B^s(C z$%+jPa`J~|p+=6o5fpcaZRfPrN_kv3%)6r=0MGEej9gv=&t}vDIdYy)-GI(=E>#Zt z3S=(T28%}>XaplVI2)*beS5V@cgCkJ!ypO5Qt1@j&d$c(LG(yWgd4Q-TYuL zxoTM*=)-0p_z4Njcku1urD4q^JG}(eK_WaeAe>}=he!5LAP=;!-mjBKDj*fi*zoUc z=y&~zNiLp$3Ka#q0u%Z-gS@a7n%$7t;dpJ77Nb0dw{V}qK&JOAs7QiMmHv0IJ+MI@ zIm^5T%JX7^SY#;%TCFS59@&15H4E4;?7DMj1HNB@O=J&)gM6vvGr_m~l#plvcrDKM zQX0ggSszaYY}kYAcImS!cyS~d*bGX*tMuVRyl~~97uM69l46%?X`}O$2FHdbvhmIA z@R>m%ZxvpQrloQwZb}^Zv6SydJEH-WD8aiMtg1ml%t0to7TV0_)GGcWR>1WT`(pix zWv+rs9JiK>j{@A;yy)QSFc6q31R{&&bcSrqQ|4AAqxZWr)CLa$(3gdY_FdFJgYgyF zFc!dtdu8^$T>9bB<)`Xz`a^$yFvv<)zxze%r{!9W0*v+~-LyP$a=>qLle?Ic1m@-2 z4tOpY9FX#>6%emrfZ6fdyYm5ijCZo7V4P_ft;Q`bmU#Drt+7(8A#Ojp(Ut{?Fv$Z< zdYb-@IjB!FuH(1~G~b8M`$!stie(hVK)F;yVGcZ>9|+0W(ll%9s55atBrn!UouOQR z{veexLZ9JyG+egp#qXY!k|uf_eYuNsYQFl*#3r5}e=tnX_S6|(4fyAEa(@q&QFIz_ zCg37@5z;HAqi#vB}NP zBgd9H;;_*U{H8%51+AcdG|rEYjX$vlKE!^km7y zt9fX?)V3JFDkWC`4qn>6JX$w^fc}gS#XbI@LMS}luSkP^2Tn_u5-A*_FE^SzXn#s# z8_QXve7t6sp5M+!vj#1NlxIE8`)qQs7I8lRDEBsjph`Be8D^aZ`WURRzc!F32J!kZ zj@trc;SjG!Y)4~@cjr!lF`;CX?DlarOUJAFy)tn20(Km{`#YO73JMzH*(S2re^OuT zWPiUkKxmc(ejsJC5YArM=GBF1vJ zdb)Te>aAkA*zV0FMo|Ja00@^)l(`6B}=c(~8 zHTB#pxx-|(yNOHpH84IL^0q-*Mh8P-P=-4v8oTVDSTI#1b+cG~dTyW~lGS`Rc^nau zD2FMsb6*11{jzguSIGa5rhAWTx&Pw^zVrFmaUFLkwazP*6|$|HGRhT46$ax(kISnB$Tw6$Tnz&r$x~_ir_r4#G`@jC|kL|nf=lyxTpRe>Y zvvY&x3mVJpx}Swq-6}M5Xz!u+Z#y;z%AAJQ{uMszct8^PLuO;?^O<-`3xK) z^d9bCyGQT%3Kz=zY$tZOHX2AKaDcjO9Ubp_mjwUNjLrjpWJBed_>G(Pd$)&LZpea1 zr7k9JfQ7f?-K=f*{gCW2AHC`0Zfz)`%;#h*>b$lhILQrK;kz0Ay=JC1wo1ugu5Mz3 z6|1@!&JwTuVj}gL{8dwV^D|9uQcG-&$MVZX8U?JD*XI*1 z$6XOdVF~`}-MLAHb55zFXIjmyW*D-Lo|gU_|C={8Vk=k96ct9tH5B~lgIC^!s}w{= zRB^4{sJdo8JOAyKaSqykWk~mk;Vnj0dumfv0eDmEpskzg`pNTEExyNX(CJUEv`0Gz zoJ&>V!h9I;{h80IP@?A6d#br>zLtXgG7t8ZU5m(d>62GJ?XqXx{r>l6-E{LmKj-XI zeRZ8tpl>bNwdn3mxz$~(#H~qDh>q>kn-6fH%-sTReaV#9F&q2(xS^|xFRO@+=(nI) z41MZSG#C|DIK5#@}+;xnNSe z^K!C>%3saz1G=dA&Dc55CS>v?`E9z2!H~%6or{b*b@AmsPY29%@VKfxqqrIERm;sp z(*}m#S9<>#()Jf>^|A{0TIn&2Lxnb~p|G^i^GN9cMO5uj)CjIkVskWyRwtThD({M7 zuUcxZ?!B&*d7EB7zkGD7UAj#tnflE_FC)b~NE&oLZ2Xwywe#N(C(Aw4!eWp7Hg4X4 z7o=@iw}*%Mz^J`GKt_Ysd*!UH%+s0PF(Ymzo)>SRve@Ft(A{3 zE@n@X;lsw0WyS-8vdpQ1o7e@7#lRpcuLeR~fGF^w@4WjELiFo!_>ksdUQj#xZip`q5wJ}(4UUAUBBScFWU{DI-z?ribeg^$In=z z<_2__?$~-cZjjg1-B`7rvT}-5s(G;J!3+HQj+v&KzL_uUfR8mvO)H}%Jkt~04(gjL zgI?%c_VOH0w$@qVHXLinsMv7);O60S<`D=yewMjPw>RTgbCWFIyRE%1-lxOrmv{Tw z;c%bR=U~rSYuU|f$y_osFXKy<0^6k1^um99_H}vDDbHg>T?ThbPxIWCO3)aq%f#Rt?<)$2v;m2qMR2l;NV|!KY6Gg*uO$ zCW}ri_{=U^u3q5v0f1QVDh@H5QY9sv)#h8|=^tg80)Q z%Zl9WNc;`!dc^ilq|^8ifehI#raQN{WHDGv@V?@G@IpE&Cb!?Em9&P2w%H8!{OvYo3>(TDz(?`_iy$0^zw4q{t~#Kgx%N-P9SQeWXK|sh=3EWx!J|V6MLXw0|9NpCvXeOVRSI)f_n^g?mP1 zP~h}6#0U$W`q>DD?iRp&e-q($H!E59+xL{RpeTONGV*mvIiMD+k~L8BYfvS>l#XoG^S}%mCa?1{#&fm@9#L2z5l_2Q zpBk)cBt|(S-%wnz0<}>2f3vk9wA)ZQ??-Q(%V`VqW3P(M=T`4ie0P}v!D+7F)QdZt zNqIvt`=@l(;UEY>VJTzSfHAqP!SpQ>Sp0n;9X>6zc_=_>x@zR}^ewh4Qu~2)IPt>f z2G9Oto`d$`{zGS>q`7K&(DO7>i5mLH_>ju)h=3sb*9X}mQ3bpv`9(KMF|89Zd-hn} zmltn$R`Fki3|JZxewct2HPvE!I${n#lK!;^>hy`G^#3-7$(OvOQ3BNotP#KvkIz9_$_ui(=0Pj;r)c$^uzVC|86eskvRIP{|-fH`Wwec&Sdy?GdvImncTm+Y2=KcvLu&l8@^8N46>Tb273)B5%Ne3 zL>vlg<>&(?ykuB8Gi4V(f^mcd&aY?=#8>z&s{@^pVEsA%;gRS(v*RNk?1jO>HIta9y*L4Of*H^y%}%wQh}~Sz zPhRjg%a`qycp+!Ag^ua$rS|wKI&=FbxDJyoR%6nQ6TR@=Aj))qe2++wBZ6hpth6A^ z<-Yx>z6BSelM6x4r92x3U<|8m7?PUbJ#x&RZMnyF2m zk}ggaVm8M_wFg+`_#xj4?G6ed6~G8mYh?^@t>7TlAOebxoR*w!uBJbQd+F~nEnL^P zBB!ShsYa=%Oyx)u;b%=m4Bhs!>FH=cbsU)NaS63x(zt=>-%C0|!{uwOXf7iOx@j zc-U#%BOv=xu9Hyor{q1|UiRWk?>S4a?SR&5N()b?Q%k_e;MpzCT?TZK)Rn+RrT2Pv zfRQ|%nEmjEMYw5{)1InYpJyhpq{yE2pq&8xELo2*XIp62tp-XJo$5ggea_=hUZD`C4+d!UI!jMo1$CNA-Zm7cKpJ@UG6xM`v5y?vQ5UUA2m#tmUk)i*J2vr>7GoG%E%jv6&7iX8*pWIWfTk{x@!j z&%#`-Q(m;KmBgP8@^j`KX7xgnY4F(&Y4D>lXtxR1MZ>mourd(Rzk;16jy~m0zpq84 zm`VN|v_B2r(T9?m2n_SAj0d_Z>4V3Fm|Wlo~{8JdL7gonCVn{OEOE;8Qs|y!=bfDvlJHVH7hlF-!Ey-0qc zUAxI4%?z`%x@$3GGdVbk`K672ajA~fCULCrqQ9gEKi3Hp8Pq5pcF(NT0VTq}H92oS z?$QjVJbeRnYWOYmAie&${CY3yrIzyRjFTx6^F=#%Cp|lgYm*@&8+o`6gRU=e{dT22 zW&inqqjkOp>%PbMwsC@B5IfXi=WnnTOnT;}U?g*`GkSxpzdJVd+Ws=k+98{H;5_a4 z$(PBvCQ(pIFD3g-yTycQrBjXP?8ZNA7}eURn8g;!kCHK`FOp#E?}ZkvU3zbDqhV6` z82Ed~QH-_k_YDIE+q~Y;3~xGyH=yoweF~@k45eymz!S%_q``G+KSpg5>{(}&fUpf( z6tI@UHeoGxTl{KJeH^@2f}6^B`JMB&G^Fg<3C8T-5@7q^$x3Ti%mtT8u!24ZqZizc zzC>jr0p(mn5}XiNmz7*4h@$_H_!swD<$Zj`2*NrUfwtALOCGgJf!E)Y6&!>M^- zNID&rP!`rV=)mA?vdo0c6M*gaoxC>~s{G)?m>&aX8rf-EiHQrvMaG%CoJ~pj+=aH%QlB zuiAOJZ#bTd)0kitrkpM*Sbu&kUj&Qkr5w`6YlTM#vleVWwjzoP=W~g2L!?p)R+?jq z8LkWou|uB}A^}fvX1%wHK=HjUF9l^cd>NkYE>rs*zE ze`843kM0W+i5v$cTi(|XE!Eh^mrXK>&ZAjuUiwoQwU zxU{NHxRle3W+<%c&BzhX((5MJZb_C_V#VZU_4dMpB`$m^IDcFIIUQQF{dWNAEE1w? z=}y6>b@sA#8|G9_fS(5o?Rwl@P2`3vtYbtt8ydEXW`Jcf#F7d&dsbhQ{NiOOM+%nhJgMP$?o89`|QwVu7%2g?!igs}g%d zk6o4Y5_Hbevxw&6np|_`LdU?jXZJNFXfmT$d89pfF z#JeN)^w^Gj@atM^kqLiLVk42_roC~mX=vUUvXqReFgr82qky76+rH)KArMA#;K0JB z*vyLZq;>vZKt2Op=E6ehiofCs?x8I@H1$I7ugue)OevVc0q4-y{15?x(F4;@ zFya_Iofg}kjM{C;{B?6JK$-0}xsTC_2##I;f3y9+Eq^m6dUjF-N<8eu;Ml$3;-*Y? z8X*8qe!+%&9TPct2%Op-Ff8v)T_-vGM2kYvaSgOu=So~V zomy`z$>PCx3+(^_HjzVkOLLEaphG2?P!OqS=etpvArg+3f1`4F7oS1akS98T%6F_|$}s(KY6E;f4)3xz4lsp36Y*-97J8*ej3# zy}Y83;Ljz8_pVakwCj>Cek=7fm}ly5drG*>e|T@_EpERZZgto3^pk_9UtM;4Q_|t{ zqT^fI8L;%se~z8K;?C-3+UV?5r}eJ0-*jiG^Sj=Qy2`pKzE0;3aL(K ziPQPzPF&08f{ghW&Im7T{O7{fT^AMJKM>}NNxYtNr*&0VcGWo%8?IbBI=^!7ef;s& z$2ts`&mO{dAG)%1`by-|tGAuzA3A<5;Qjg_(KYO?YvwC{-1z$shVic( ze?~gPnhbbnU~LRVdD(ji)aStI^Lp7An0|DPuz!B~=-C@K`?&)f6$4A0ZzjdhTlMm$ zD80K?G`LYaxMjhu9anGt-efOJuPATARxLPIn+|J8-*kAvrK#9qm1G#)H>4sy8~o6x zdf*aKg8Me}{qOtKOKaDQ)zjM6>e<@)>0+by+s8D#A6v|KXm*cwTE5FWg>|80B@iIZ zD^6PvUdAhZ)2$W+$>WIF^_H7fHGMXHMD~l^B$=B6ZbSa>-Y#{>si&vY|9o|-V!7+} zbg~VN%TTS35c~7#F9&seSQ6GNP^cB!^{IXhOo=RRNA<{WQ|HCpujYlnqrRchpN!Q0 z(t6ClCS^dz5pdU3^f)HGd*Wg1;=LIO0k7BPL4Ooh(oP+2TyRlymsT5vm~;2QsZuGU zHL!m5@`Fvx^`GUACDqabbx~rfH6bWxC~28o&^RYfEx*kjOuN3ySx=%D@^0>3)mPL6 z1Z??r&TBRK+Ac7O>@pkO_Et@gnd3PGqycB%nt7p1hD@@cN^{-P&_IwhiX7yAHp;#* zI4LR&8~FY~#8jili{%G?BP0Bc?cWBN?e446Z%H# zaI~%I&3w;tW-_0CA={c5G4-;H$QIGS_j%KxNO|ZHDW9=n<%c(Wq@Sh>{wgkv zW*%8}Gu1ESWx_=OwYTI>y7cqU=>z7Rhi5Pr+nNP z{QPE17r`w-ZdDOH)7h)w{a|m6_Bi%*Srz`-RY-qORrNBW>-OMGpUVg2eg54eV>NL! zY5EoalRL5>4f&i&PpVu${-flHxkl`+7FN-30YIJiVhI1`&+c-fI4C+6@ zMY9U4cu{0U0gzxN|7+;AUoIra+54Y?!>JXD@@-Gkw%`xW`6D9u6g;NtbX4GREim|T zD-gl#6N>4w#A`#@uz($@1{H<7(|ps`E0=yR{Nr>=zspq{YnXL{=}t60q`k}-z?dDO z$?V>^XP2Y$>*Zx+yAcx{Cs@@v6jU8jv9#r%)a6eW68C&xY)8GD9ffzG2PfjaY__VA z&aWO`@@z=Wl=^%WW=4_H)q)2u_Q6ULAq@~>3ccq@EJZrgk zE_LmfdLXI*_X+oIv zqXDI6yO&H{Nc}QJNfi&#!sOvPIWm7!4ql!MvF&6*Y=@APv6`D`;Wu~=s|AksQuz)@ z;Iy|=$4%WNt6C$>{w>$xGf4}*r`o$+{|2wo%ILLH;?`+5>UB+$ebZjHUgwVjHPyLe(HCBS3F*~*&X75Ss7w<7Gi1hsdm9!^V!B?CeGdlPbk zv-aE*AD??<2A9ioJNVG9vHMua=M71R9NBH#L)PbQJ0+S*%kB#eJ=lofl=m3&$4kV# zOAqgDE`I#SAHRNHG~hQEDkGc5DDT-r=E%bObI#+zx56Gs6N}ii!yibp@F!;z1J6{x z`ZSnxCDfF-G4X%1_8c!VuuqsmgU+rih?7T&Wwz-kM92`AI0luUJ-zv< z9_DV{EKqa_byyKI((wgJ75-L7lrp0jj^y(AD3tYKRJ2#}!-~`qhW$0vpohAqDkrMN z@%cmydpHnX)a~Z_*C;GvynnC6#-09b$551iS4~iHw!7!5IIlIe8xOq9_FUvJoYc^T z>qt1(lKLS&b-1?S!oV^AogWqpF?EfD`3XV$Z&P;U|K| zO7&Sb8zu1hW8^vVVmI{l+?zOIjd?o>GuQUV@WLNp$6eF?P19_c({u@5Dm`k75DD6j$>g8wdr0K*^>yB^LS(kbpnmhYxch{XtP>V=y7y3JYsP5uwNB;F{ClBatEupD4+qncggrB-na36#R&f z;^S~HdbVU6(DA2K*la<5`oia%a-IZsn&MF}ivu5f)Ce8QqC`( zY38OZ=gmY0ap+FoH2D0OubcOUfYCu}5VWlmM)PGsywV*V*e1Kp`4X7G@Ys7Rt!&m~ z!i>BtM26TE$*fa!m>voIx3?PTEHtKugpLWZn^_5KA)&)S_~j&Yy#+cG3ztjaQKrQ^ zK|lx{MAm}6IgnRiti=K?A)#k(fm3M+X$`RzK%hv_9x}q21zx1Z5dt?eVD#HUM2^Y* z7K|V=f9+D9jMZqhCwCfVYRu=Lw3waxalN;e%EwJ4z$0s-O5WA?%Ho^k!Cw(G})Y8@-PdhOK&tJ)eo(M?)Nu z05eDUhcU!Y#+;@{_!yzz=1x?jF#tGg0nX=5nh*66K2ZQ2G+@m#B-IU1cu2`Kz`6>H zuNeZSqrCqV&_ytO(h?uLl{UIa-2_Q}^OqNZ&qcM8K1nK9X zvrQ4-12Kyvp6_Uc_!i_F9SAu>>9;_ilhG*#moQ=EQx2lH)Bdh!9Xl6BlAvE1f$7I~ zff@Y_6c)3NFk@t=i{Z0e4ZPGs<_Tdc0rvS;cts0)@&1KWEoMfG36>B)3g%aAg;Vxh zMRW5Xb*6c-U@S{$f)++)5oS16i^$k&aOl9(Ed+WFe1k2@yknY$H@Cp4V$`$|Z>NPH z;aDABW_3h>^{2yk3L!!3SJ-#fduc1G$*>p@v{(!X+Nfk!XxZ&hfH_Sp0MD2RyNvkl zmzEO?cV-P9M2qlaBK$c4+Nl#}D}%X7q67jofRR1}5jW}(P8#SU5TOQ04e^NmT2KoM z(y^XUsbi)j6EFfaR%MH#W7&1kOCZKPcHN)lw(7BP4;gVx3&}Rb7!BahE9bV7X3>)Z zbi6f`4}zcL03DKce+liE^B_?M@IE8Krx^097AAVvXt+PJFI`f?f z@GmCjv@q{hC<@F#+*T8x31J5e*jpYx@5+eh#mI?1RND%_3y%={-|PUIt*!|n@xp*U zE7b4X;Uzbnp9!JjapEH_?0^s_Wucm4ygynn84~2x1LzAus5S{YpX8fCYiqGWHM1JA z@8IXf_)77rBSPFYBSJg0A;W}0BooCu;J2r|bS4~WnRk@{D+Mq`8vce6Uw_MX?Vz$c z3F~NrItk!2Gy+*eyu<>x&~R&6U~5)Mv=-bi#xAOJ04ztW%)y|6x|9$`fU9$(L#qJB z=Rj&egf8I8iVy#1jvD8{d`ecJ^(fvgek); z@PwJ(eu{$n1{Dam)z-vi8$d7PhlWaAgH0Em&lEuQ$<2>Evsm#2mDNwX!h z4`GO8ok2`+rXdZ2Ycm`ar*rPMAFcsg3D0RrY7e5Y6Xfo(LLUe<=M?01m=M3xu*pWme?RqK zM^ROvJ()(zO$qdjpxsW4>T^u0GyvkFzZA5$bSr9{qZyb)hYHXGzwnz)2p4Nq28-J^ zhVEb$e6?)Lw_qI3`I|9!iVfH!&8PP^oj#N4{j@nxB|-NjdnXt--IQ$qJqJm$#%Ru+ zycL83;OI<}{~g?&Gc0dSXhHi)+m7#~m4TaoknnyckimqV1L)p5WHyZ&TrVs%!c$F< zV?r?oG-s6cIc}fB0(h$N^u;-6MXW2CTBhZ3<(`Twy`ci2ZA0$JkUW5rNFDx~0&D@GS zA`D*$28%o)ZF)Fbh;AP6`f)d;qm0;L+8QZ_^Na{UH|4%3{HZCpYycMip&5b$v{);5 zGrCa>+@V8q|HGUIg==T9=S`Qg`k@P?paSjXpxamJK>*u`{tP1WwNPha0=5+w{BKt@ z3*u$~dv?M^AlM=SJi43oQUi6;B2hZ#FR^CF2K(ZvWiQ1rvN7Xl`lE|LYONBsm<8Rb zt*RCgR!P!{HTWekY@isjECGEDG&fJ8kJbUrcx}LJ9MJ%8R#KLG%sC4@ z2vp)Jo{dZj#W@}#I@0(U4r;9dyvi!RUxR(Hi|}3mTO)Rwn~E7G5r;XLwIpbm7<>Ll zUo?pDTwD`DgIXK4ashe~NgL{nmTMu$fKqnlsnqXo^Lv-w=D^nou^JNk0VttRGjQ!0 zT&y9c-*bK`!6r|;e-@@#K$sK|7W>W30van|W4t%Oft`%g2HY5F^*;t>3dFShvMmWh zxFA3kagezn)M>-b7VV4b8n@xjU8mv_-DJc&Cd_#gI>!#4MDl%-iQLTTET$ngiT%&e z{78lP(sP6v6Pl&*ZInPOjcwJPs3X8d9c#_B0qbMLqR3dP7^#^{xH_vrN;T*zNp)w! zvO!JByD@mP<i^4sKc$ItzXNDERi@|S&uK}U_J}&^XP=sur*J1 z|AD`C8D37j%)(1nV$*5ox8J&OUw~UB0Z!qdRmQNq)mBx1+suE}Qwg#S5rgF&ScDP# zmjPQBX_e0EaaeS@d_Uy;T&p%CWl<*Kh-IP6S=0>^Xm<5)4^F>H_`$*_)O2Q7LlyU& zKhhw?PLymMO?k%lqCK5MzZfFGU1Nn(HC1N?KqnK76lCQEK2@N7@e=vkFs%OK7V6EK+2aRVRA-piOD3kiW%e^Q zhq(tvP2a34Y7Qj~K7I1Wdz1Q5=}daLNTynHCUf)X%S+?&d_UE6!s(vzMAz$SJnxgk zZqW&DfmInI7n{i^KB4(dwx_n;T&z7&rY!F5AMyo$fjXEEGjU_rcE#TM5dJnb{)k}n zCmWyR@#SqRR}NUbbDrPRa;s)3Azfvj%RJi3ul49Eo+oPK^D%2hK?|(c1q}PlyS9*D z)sXq+@lXO7}tKONb*_pO)0 zs`Lf<795^4Go({ldT%)+H{|M?L|yum4BXriaU@~>593kGb?gKE2478%i*q+^aV0Ie zQ=&?3(0w3~t29cioA@mceZSi@b}%|QAIjUoV=>w{_K>7lzbfO{ZIAP&q{`B!ljbrY zIN<63yI=%@^iO};;$fkAfA7bA2x~!j9DLlYTY(*9uxaBsVaNJ5Cf4#IaZmvL$~IcgwjyTz>{d-e-I|Jy+t2BES;h^Xdkobb~&ZNWgIjKpOQ60I&@M!`Bv{03p(%#YTC2~wCXJ`X<2sN@`nDM!F{oI_{3?R+U^2# z&VEr(ITEw+t$RN_zAxFW+@oTYhIZ-HH>+71rmSMl)8Z^dShg{;sioc=dB4Vzq;x77 ztBKwV!I(^P)Q@R!6F*TyuL?*XeMT)EroXXUI0TBtyVT}>t#sEL6mQ(a9gjm+O(l8A z3S;ni*Q7#PbESKzG14X;71vzpkWDiluG#Y!i&OsVB`-v(!`XZMVYSMJ!@1O5j=t;bt#II5 zy{Z`R_{PAuLmuthQ!fqFgwdoPhYEW>Y{n>~R8=c#4*}mhUZ(;+lvfZsc z5WV?o`ih>&eUHBN96u7>F_f*&m_jSsGN)EWRV^sJc>*7By+G_We*hGriHY)RZ+MAF z+UVWZ*fUlU`fn{yJxmet<^>p5_7x{DYMItwU|m93zdL;UguQj^ZI$=>rib`>V~DdY zc5hbo z5OcO-1))tKL+6{YH6{tGt)a}p#2{W|$D&KMN-D^Wnmyf%=8Ni7D5=wo01n-)scepN zXBHOT3b@>hT*l6I-Fa@c?db`+ZqsdUOfEE_N(-Z>bFmD~pD5cokU7pkx3#H?Y*(O~ z&%PZ8j7ARUjS-f)8z_GnRQ^1J!p1ximpIjj?B)=6FwK>AYT36h+&wFQ2=~P3xk<0j zp7h?+>cr4X?L*xlD3_Zy_9oe$dLv>n8;r=vOqpd5ir5dE3 zED?A|`c#F}Bc!cYaviH1Mk85F$ z*Grx6hhkiU&9LR_-l&r`M17JJWzB@JCwmF;e7b8!zlxnm3ZfptyG|P5=p2C@)ovZN z`pL+`@dBID>^Jx|Aeeh;ua)o1=95|X5DO>F-rgX(m5JX(XhJmaVym5MEQ8EMV?`E8 zN@arhpTlw;>_xr>OVdB=NJ3h&r zm5mSgeJMJ*ddb^ zd4Fa_O&^>ep{k#xyYY_tjNFO{>>=)+YB~C!BXi*!%U9c3;PoDz%Yk`oqy)JZR?x4+ zWU$JduBwsT-0K?e7P)7F8MAu2k8;0LIq$BS0L(2vPe-bwf*DrmD+4FP$Q8-KISc&K zZ~6|GS7yLkD7SkawivytH|D=_dPA8L{^Fs>&X-x#|55m!(I+*kgtrW*4?g_(YPK{y0A{P@b^v zb=iSwu}AQ+xFs7immPZf!-IV@F0tZ(_2J2E&)iF;>v4JCo?8w_~F6QA}W2~WB%fjNA(@u#{#N9B>XOTd}zGr#KL|3OUuGXnq5Oq zF5aYBri;g%On%aq`XsMd{*!)2w!A$%#3${EH{rr%+m6CxK0co&HTTU~XMX!{qY&v- z^M=0SY}K{qEUya}um4xgmGvXdI2HS5;Qazko%1`;`t{}N?OTWZKfmYgPkXFO+*VuQ z_laq}`VaH}8?s8*q0oohN97|Ei&rW@PcF{LHS#-?u zA)b9QR2kH&!x!iyU4N0(7}rel-o~i8Ahx8nf?b4+beI)p^-j zbqT()UQfu#9od1@|4@AD%|?wfs+Fgg-uH84F0?Jr6W`i%)9mO3htICg0X{+5A zBc9{C&f#6!>!AGw16={q4?Eg-U1A7hem355Uec1VRkR_38+!5iy)DYEO}L;>VZAl? zw}rPJUUgz&*SN#plGk&O&i?c1{i5GICSR9r#OKqpF#9vtV-N#_nUM&mluf1@S(Y~PW@>aleW`=yYqYSiw&wC@o zz_7VYSTqwhS0c|I)&IuyJJW``t5f+-AX-LM88gbW2D}Fa;%0%(+*XbELFY{<0ONAL z5fVyq@w3SFomB}a_^qC@(rJYM5Y#Uf(Q1-$dz715@HzU57~zo^3Sq?~*&hNdyA3zb zBI63+2}6oBmU4DuuG~jhmY`S7>{M*YE!)OH-Z&TXn*}{wLPCCnML&XUn1IuJ5Py;( zV?8qSWz3Me;=Jkfn-B0n_MQ{D9p4I}W5TkPEW|mrs|Vn;^1(|-^`vivfBFKph$O$) zLgO`1YNOPfCdV5TTZhWXs4`~_G$dDMH7d#1Lzof>;B*OTP(&ayP>b+F*S!;QHhIDRr-Y+M>M2Ms#JE_I*Z&!Z4+G!@j}TQS<03kCKdQJfxxk^dQEejP(h+>GNy57@_bN(j7vSG+Ds5Kf+(t}sBVWd>B2W7U^k1$&>MEFnhHm-K4+m?O|V!R2Qpus3W9oWLP7Zp=oe7$jAWy zS`0$z5ClC$OhMSP!53giF%Y6Qg6$g>{8>o?LoN4KOHhppKw+!^n+V zpg$}um8Mtrkd}O~-)h{~sg{RGl-Yb)2nZ2M#ANz7}e^937mSIWY1U+&yN#^MQ@i39y48S`=V1Ps#Lk45{;Jq))*0NM<)i&;L7;ZwD zqp7T!g>**2vw#zV#D@EPg`Y%{QH=UffikkoeD!YDpw>u}f}M6OEj6`ppr-t)OmLGQ z8A%X>y~1q)kCXv|F!;)?L;u(5WDbGhYS3q~hA#k3Ws^kk6({eJicov6q|QU%12jk} zLj$(%Q4%177 zdPr{-*xpL9phxM=hgeM<_XQ~zXrkc??5+$MGKz=!NGUQ;sLwViY}*bU zTcBsKUzh6Tu}oNSE_}1aw(_5#WfRI$fh@SdyTqD|T&RB!G;HUd zl|2}fusWuvELxCkGDJ;}DNaqF9vG4bC*VI6P?4)tp`fS@8s&{1Na}fYvsmGSf_bGP zODRa3X~hEy`u|O#Ad{)7P8}HXS_kwEAMWMP=zE9KHsUHsXJJcwtoGnrqs3Ov>Nw9_tNCPU z$UX#ii0ox1&*>?1nX&Q*!U6ygu7|HQNE)}1Jf}gNzHE<^^~rishD741K9;7wO|@wu zrowIy$H=1XZk#IL|3jW>1hf%I0t%azI$B~w!*ck5iFxTUWF>QmD}o4$6zdym9fe%r z2M;@nurFQg?>1U9vHz4GoT-&=vM_TWL*Zh_)qfyM*bpY*lK@sEQ#HO=l?%v_&MGg{ ztmMxk(rT=8?4I0z&$HjZ68*ZWu%d8tOdtobG{6XEj7psOt3xD;4mk23P)zcKo$CJD z^urybIAH|)#M%XoKP3odjnth24%5SIIWh;Ml-~%K-A87zBzIa>fVi1Gaj$%sc=0Y$ ztW_onKvb08W9YcMM(QC{{u6S7&QO$jftY%<{vT2`$H~V64d%l+AVszWxwaTB=mc~} z*xFpUk5-m6?R9(dg1Z5Ze6HGEpjstfx(@_rtL1x1s{A2@$YcngfCckmzKsudlzf1X zAbc93vx_-K!M)`3Uj2@W*kXBr;nQlr<5zFTIu9L=pt(OFzfDvTY4ez!^O&@9S%9E|t-GK+8;SS%T3><2V-*JO6gJ=Y|MR zl=Prcf$0Hlm_|5{#@aoE&^xUm)7Ds%Vzzox>B|R4h#*)A39dR3a|D@bknHJ$p=fhj zE?9e^E2DeHx0n=xk01r@_4$86+@?XFweR?3sZEb^*AQ~J_6B7yY6rV4J!f78aO*DI zm$lOl!PZl?F!KogeG3A?hKNT!wqu;PUuQI(`r+fEYiSJbOdCAXQ@QQw>U&t7mTSpr zLP4X&YTyCx4i~YJC+HZ=jk{3r8g zgK4NqXBzzK0@v+YsqeIUI}^^EkS+6rxU2WA>RH>Lr&5Md92zCcN8pfAeQ_?*o(3OD zk*2ZMla6(N&3zkCHoG+1lJCe20|9YENC5YaUI0@rx{pr2c9^ib3+^d&(UZIAVm}@ajlFDx=YQ4gaAF!puf|Npg<5Zh=lyU`+ddgqRDyI z-g(V1H5|FKE+N9qPXbm-!3hTNrV!bi0^oh|olRq{OSw&nQGx9NIZLp6V4xFsWpkwc z-~J~1lOXw@;S$Y?fIn5tzo*ReTjba(+q#KY-#rT$H!JJ{GDlAAWn5Z5YcbzhpHPYN zOB0*)x_A5MI5VPBd$h;!1gGRGW?*?_IoW@@XjN_-7P(O?QWy--R6)_*Q~#N{zKKC{=9UCKbrYd z5moCP#Q5!YO%~fB`CL~`mcg{wQ}8C%0JNbXI+$te?@xQG!! zb1%9u1q|o?J#_9Ko91`%!Gd4fa}T3C-&v!{|A(o2|7ZIDOfR2wSw>OiSeWK*F^TpE~OZhw@wzIB}7bp>o$GtbKw zAUIM{OBmz0If&vFg-uz@^$k81pp--#Q&&oQ=nW715jBQX@&noBTqgkb? zQ-7IZe zFLugl2K~;f$)0Gdr0}s4r;IjAk>&0pj}EZCUR%J}|NVU@`CRzMUT#MG)I(qG3vIsB z$6uaNLAztYfylXK#grA>WK{>ePPAs`Us>&Uh-8zHH;%B`t!eIF@G(bLNPC*6>+rpr zeXQq?tE`x%zV+KCSI3+fQ}hMCMSDE(uk>!I_Po*Lk%05AqW0i7On6~Uy=(@OvF?RmbUUI@nx`|nSR@v@54H`4MMa?1`Lu}h zigXu@pW=}>TTjlTvU9&4er~t$)Pca3%CM+)uj6+tv!F}V`Db_M@&Ur;j`|3K&&1=U zgwi2#9wSVXOC{zetMe(=epiS=#D`v_Ziym+68E6aqkQ2P{fY?4Wn~vFNJHaCgj*FI zI^ZYb@gTe@L#EWT9_(0ko1S=cAWXfXu`1|l1LVT@0EOs?4SQd zTj-l>vXBtt#Tn1Lb`$sNAGkke+C22Db@d$x-0?GH`M>q+vPmCiB^x)~h|6P6YYP+O z8W5X-CG*;}7f)5;gXh6i$omkIf20Z{h=8K%qlvlyo7i=0;r7iCsz`7qIXNXv6^8T-9K6wY=`};XM_nRedriCLcQSU-uV8XvT!&4Jb#Z;-IBEr~ zb9{@Z^UB-SL6_S)-S&HwZFG5U_PDKU{@Stf%({)1f7jd#{62L+#!BXr=6Qy$ov@^A z!Tqh0l;)-vxHg1CIc{BewiIf+M_cGwAR9hYW5X^KLoJXV=rEUH>^5H4i5h)Dq+UzN z>Ats^j5&H>Xd@-P8D=peChVe10(6e&HoJcn%T^nFrET0W{J6b{o**XYkj z62@c7n0Z%@zIhp$d@gF6LGIKj!fgysB>#gbjxj_#_J3C7987<(pri$TH2k&sr>ly6 z&&b%1Gvn9{O~--}O)207PTw^`uWp(7p#Js#*(0b>H9 zpat4OmaQ5j513#Ok!VI6qvrvOO)h(slpq{YZvFgu-mfdJ4gI|%e7$$W5zp)8hd_;n^9JB@?7s)+{Dp4s@+ikgz3<;*H zN;3mA0F6L2>?9AL)wYv+DOa9*b{O8NrzUz1YdHDDKpGzy9Q8^k!kVMWH z)uR^2{YksVEAZ(Zi_DqDa_An#m&D`bGjSH@<4W(ul|5tz4GouTmsM=TuQSvffYd4p zag~;9#vRQL`I}WOF+05G+2Y*1>f)#)cW^bu&lW3dYXy*_XU&e?Fsth^JO0e<#Cx-o zb7rdidn!}oQGeD*EP4IyIZn)r1B>`a8>7va$BirzuMJ8yKeNZY>F_#2+1j%{eM=fg z&Rre(qjTi^Un3U~f{RzR7r&VY{aV{hSl41{vB+cO@|_2(1J;4jCt~dLtII;KZCiK! zw{>mh#|COFZl1Nc_3x1?&2!R+&fBNT{D&>>zF+sTH{{QM*MSM9aN4NWZj|L&*Dk0d zM~yCe5z@J&qghx(^GJCbiloVLi?wYH0X{}!LixkuwOabIYO@jGC)T-Wf zyX>BiN`-;pP?OsXn_+F8CL$ykD%bBeZ z3o+JWRF-d7LE*`qBlE#r9;n#5I%+vNGDf^2!V_F=4PJFqcD6~!Wy!A=$(SrT%^S=k z%3>mxOl!-->LOR!E)8VD0{s+}Rv8WC660m`cvxVaj1td(8$bZt9^Av*FPv9D=RbWH zPBjKi1VbXx;c@L431F9Ow(+3O^_ON~r2wDWuSJhYVj(CY)NO)qG70gU)VgY*E~8L0 zgAC&W(5j$piQ?REwVd&{i>|)$s}uCRfJ`uD;&CZGUPc*}Il;^68Vxs=W`F*vR29U?~=wMbLYVzDJ#ab^v$|K`yr@MXW4GK!vWF`M^nC~3p(u#5%w^4m_ibO*zQ zQlE|xabBJ$jlc6+r~8a{VNroqH-N>!!W;2^k$`LbhK^0vd_>s2+eR8v=@>L5hv_w_ zc)-3$W2J{7J9Iz#Ln;dnrHc42t@$RbV2@;eL>wQN3$EJBJoF(+{V-D9nbrCbm!_k_ zZbhz<;nsI-HOo|N+Zk;P zvrQv6>(!c%CIsccC^f~wyOR8c!PEf7PNRzW!C>Ka8)8`l@h%F>ozAb{1`j&lZs{mE z*}B>$vUDd+K_2EOmOyN5H&wglSJi~LxD@Od(V9*!31=#<&K5IT1@5t@oZ@9niPpE- znZeUJ(_lnDt$SXhQ(Wnd+dAiFfqkB?Xl{ao@9>qD?7Q)ln+mbdRjd}~1!=0ghdTp$ zQ;m&XlI$%Awf;@n>E4iGtj`Y5FcfGN_N!8_@3v&#XI0(eo~=7USUPhaKBli zk4tN%LZlJ8r^a8kZB@?BKx8AR_3m6 zQnjg|a43<{ie%L8Ba}KV40!Jy`>^6AB&a6XH+G58Z+(MDX9{ympop-XspZ=82{c&Q zZNtzjPs2^eXz-U&21Ecbji? zo%UV_ei|2_zl{N2*^M87m!Uax_ zROgZ^#RIT_iFSs!jHSw#l?B_jDr#Ks1-5QnQFg>n1oO)6VWrF2voco^Y+ z*V+9NF!BU;Gr^ymLYTtffV!6KVkm_b0vgwj=Vhj};F590f&d+h5A~Z(JF#hSQGUm+ zoxu*R!Qjb25s3Dd>)15{PY|fAkJ%bd35t_bnsh$5&A$@a7qPLerZS!};rl_kt{iVAYiK8Kn90QTr}KOwP)a z2L%uggw~`n;kS4C*(!L-8lRI$O)#YcpxVmJBQ@MwSRg)x35wR;5WA-TIpFhhW#~5= z=9`cJ0A?zY;*^(bQvP1HPPi^AG-$HykGzbDiM6j9rCyu|eoEmD%itjCu?XfF2lOR~ z*kJ9bMbH!uLmKX{$-!EkBtrYNNc#q@Li3&t#P=m!3=aBeP4?^zt7$jmjQHjPzrTIx zqv}9S%BzHV3nh?;GzAr|J?jA>hRcj(M*+c6hPZuZtJpniVSe_q%G5FiEml{#AmkJO zp8a=rZfw?Wn3TvH)nX9BMxFZCfszR3hXpjAP>?GS`lU|Cyp(*e^mlpRfm*Bob&V}fW9j2@II zA*Qz4QzcL@RrZ;48WPa%dY(+1gwT}L$xa&NgcKAuX*HQ^w-;GQ58we^alD+Z46n(9 z`_Q&J&l=@VxOm%PotH?);s{suqFp8w?%5DZHbi2J^T`%iToBB!3kejljet5D9B{rEcZ?mTnYOGuFaPcQ$#B>MYG_cnY;}a-Shh)|H$g}NcU!l#f;obFQYRR zUWOQZgDy5n?j*SHJfq{xNF9Ls$Pf8B4)hi2f3I)els)Q_?Q$CGbYN6ZTFX9N-UADi zC~#F5SQ8N1ZIF%!E`~%>Hno$aP7W)zxLJUnC!pGDF^-_K9um+C)oG6JG{%LvHD#Ny zoaPy1aozmiq#^56yp4zU{dfM4h1sAT55dQ4$#GHGPn*fzWlLsHc^4r+1dLhw!5EDi z5l=f7FLn9_^)pkz%HnUBK}fUy>*9j{l4$qtS2*wi#S`iAAt1Y={gL{QFRMCk)&nF} zg%fxe_Y$s6uk5fM53xdP{aO(; zA;0R=SC1GdN+~5u_>ek&$7ryrBi~Tlb*uYR{eS`u2OwxZJsCpMbO%jBC2Tn?ukN2u zkl|wrNMz$eB{8z*4j_#uq!Po2ppaYu|4KpOO92b6koU& znX&?Yc42;%-}((T?TPQTT8~~>xNGd0po!-JxvDvCEY*DbJNIaN4DX~ z)OmjB6XyUsjU3MxyfUk!!(eVTck$jbyaf1Y_@kxGZk1kf?TL)t?c_{r^Qj42CsLSa z%iNn43()Nryq^~5A&$Qse9voHvrv~fnHe9}$l@i0H zof}^(SgEt+OnfnrXX>?`9}PPb78SHhHNVO!|Ir3vvB|t2?eD%2O}1PuOQpPizt-M8 zW5ltx;8AV0K+zh1i_wzcZsSLg^oauP| zW^Lf_?jO%m+lvOsZcj7D5AB+CvTEu3Qr0_Rf8VXt^x3tYKj|6qB|pF4xwHEz`)1LM z;jr`Kd5g>JmS{SkuNtTOc`QQT;Mi;op*lHOr}_!(FjSY7B{Vhs(_$GrF2$DHh+^N# zeV5`h)(NM`#P{$2TI3jB&Gx~`VD(eQ{BKXT%&GE=k0fQ(|E{Sz zaAINZiz>$fc|#b%b?xocH%loe(KekDCdS$t;r=;3P0!qJ+qrB7yKHo>?~P*Xw0{U= z44?hrcpRK(ZD$eG-`Nz{=J-}&gs+YGeA=tyW5wMsReGH~!7$Lt`aOFgxs&F6^qw#` z%OjDQ#;kdBdRIa1sUnl))ZmIWHS-)!?wam#U_`WO3qws`MNFSMmc2w%L}CF_0R6px z6A8}gMwz(XZ2@3-bllt1*z6l`&FzA~i!PoH?k%k7ZGjhFoScV*pxi`GmyXpj7c(Gf z;Q)j}9^QB)t$WXV%ipSUTYZaMpy`TeeWuJTMdc^UvrQ3&Smo*mq-D7&bBW>NtnNg( z^+Aproi^R_7G-8%WJ@J#w43YDdC{-ogp8hdrR@7R=EZtSwS_b@@9xk++vT}uFWlvD ztq<-^Ut*2P_;9euXq7q9uRhHEN_j^Qe%S^mC-%t}SNPNBO%(e|dQc~CwZh(DQZmL1 zln&|h@|4HoZf~|)@^@y{+LA9f&i2^eIv7&Eqo#Hf&FTDbj!I69NL3eDnGp>Yfi{?L^zN9n%!^O8RVykQTsftp!TZX|uLjMFz z%6RSM6=fdxIETtSAMhTRc|GErlzTrGttj_-Dn3*`|G8vg<@K}QUM}<-FAItCe_N-B zTJYg^GjZYPwy(s1scx_3F~x)HF5UTO{Mew!N!4C1T#$R_apM8#B~M zkDiWuk=}nLKVIhdrtxu9z_$q#%S8~=Dp3e!WmWXz%#&+laviVIRxI=XMvIMJ;$!+( zZtSMNRyH3ry^x;oyngEbY7Ld%QkL(M>sY#`PrgdnXj)mYvSaP=ApQDnpGryjAMqi< zM{W+kam(o`P57=ma@U{*1Ld&)6DW6?buAu6xH|`*2<@mO_{Tyv)ZZ`Qt&K*@YPgu~ zj&R${U|o?g*zCSvbfck#_yIp=`c%_ld2y;lz|-OG=t~_gYR~~L@9ba1!STjnec9f0 z2l}=)nAJsb;o3YMu2xfG8H7dgvj@b2%Gd8d}iP z;!WhF+4}G*e%Zc>&%f>aW9@dU0@7Bc44(zaS>d9ycW3qUMPj7iw33vn1gIu{GDi&r z$373itZdSqYw{>zeHf&-+X1f-+h>I8IN&$!zfD2VvoQpMkPzAxd0O}1z8YmI$8b+&5VPo}s zzx0P9q~=bM9F>K_93^}^g`>rFP|=1C-?~a^T%@iSXqH9j;6q<=)0YCgdtE7fSm~ z4d6ebSztb=QCL*hEpc<9v%6-cUeijX3+A+GaL2-v*|Q?K zLjo7h^-k(ZZZ3R zF8mOsOe#O-*mpc3$HAmbQfD5o!Q7n9r^`9Z_y0JAo5u^CX!5C`F~^|$vkSn1rs81+7ncCQb1?m<(>bM8gt>+D+z3`oMDlmbXiY+s3)SdxQ+v zM4h_zX;t*Rt1GaCiNwdAMG$HjS;3Tuq1b*u7?Q8pz(nl+o9O^)_j?B=^0i=C%n=TkqNf~S^KWn@9v0~KwSY0nHTNw>(IOV&QzAK}?e_`;H36o;ExW|~ zIoljg81gngduIKvsKflFp73;VBW-~Fur~@W4x8A;O!|v&qEeM0acRJqLIa^d{@*f}Ntr{bQ8jh@sWW^T8!l1Q|VPK;| zwi|g5S=}ag{*Xyv8S0slIgVDBl*Ox)gR!w6un988L>a?~Y_{^05yt;E9oCrK3^r{Q zTMpZxOStSbtpidiv+7qvO)lt~G(pg}igOYZy4@abc0$8V>h z>_Ig=M@UQt7+F%E{VL170@5y9loafP;3JX&Z*y00z7ER<$jN}YM6h^9PoLGmV}brG z0c%`F6Ls283+UMso++HgS=y@x*<6|g`Mf_dYa2x<4sg=jWv2^#Mk?6M~(5P0Sv{JBlF^&1i&tlVmU zqIn$z)uw@2iOd@l%_7x-L3|^oOam>`kQ^T1%2b4r*9*H|gZ(h{QQ6vE-2{aV^Xwb@ zh%ppR3~vUo;J{5Npl2mAtF-179Z?+XG5uy=D-G=f7Xehdf0qJZ^w57M$Q+G{6&Tsl z!$6hKNdu4JKmxQT-L8y+oNO1aPiAuL>NnV|*$Fz676TFpmI za8N>-IcO7FkD;dd$Ra5@Lx#u`GdpD0+hkUK0z}go-CD)Ednz%!%sMAz`mF}vD?V#$ zv|jREVCCqFxi4Nlo%n4?U{TdXK2Ie}1ZMKdt0@P~IR#b;Ni4^QSnxfe1Xy$Qk*}ni zty=!0>CunoOU~CGS={{lr*8YNk@{c5(0_*x{5wiAP8=|PBK&IygSGz>W`v&}D31R0U>tnX;aS8Dwnf*nH znU;`#8c48AGAK%fKPo+ubR7es9Wegs864pXn?qPaI zZo1whA}N!;b;=^cgRxK-^!+nKF|e?>QeH-3E2GV72h7yb=4S`Y%b^yp7RS7lS=^zp z&SbD2WLoxlSUzpBeC1*FuEpxsxYgHA_RJJymcsr;;cVE-!A)~avbYx0;FYD`lQ#2x z+}bNEJXvNFNVRoOvRyiei1M`inrOFf+HPZ({nlyw9a#?hrX3Vnj-}I%hqC4!o1W(y zo;50Wy86he#WU;LW#_~(=k_d@2ZP`HV_cubxE#^DezkL3s&xB&8J+Sb&is@3$K^!H zq+K(T4Js$o0$PdGl9wE=;hLpGsPJ(@n9Qt9z#3AzEx2U#eXBO-jV0dHLNB(PW<|On z1?c%uWTT8xBc+T=yFCTnaup%oU@@&_K5=1xQT=x}m7Jh8yRC=3Q&3{nNZwf7jXZ*Z z4?{uNy;_rDscl(>HN1r}&7}n=k}m=#`?vYlRkwRFRbRjl+TTNb!U7m}T4rXg z-(aoBp=IzCJt`K!4$I8Fr54j_znuUhOpR@lf?0q3WhtqOYmueG%*x&KK*bn}E#cSX zlv1m)N%1BLrfyDqWX}r#5>cQJ7=sG=n2X{7T?1`W%VhC!B0auDfJNU!SLumgIOxGG z_q(s=b_p;pD#wg^hKt_R#rQtO;l5?G6lI@iephW9#MyP%W>JcPahZ?vj6fS27P|1^ zBd>=qbLf$fOIH1+EMSX&2`;t-7qcR2^%LLzMD~IMtRFEys}h;;;+JJ^nWkZneq44R zNTlvcBtcb#tPHc8G8A0De3~0Dok-en9vP#71_Ovl4m?N$Em1SwpzLZ0#5RfXL&_|m zvG>aWw3zi0&8AUJ+~ro;i7nqbaJb%fRBIZ`Eqa+$m8^VW7`LC*ApG=6elgS2f|@80 zd!}Oi`1tec*-;m^xlMTF61qwXD*-S{J}T{Ue=?um5d%p{{Mp9c=c`XBu!TBt*^L}r zv&VL0UW>Ib>Sx8|y!?TvyfI7@VBT?=?EOCllLnHRVQTydJrb`ry{+A_na|9bu~eS1 zlBmi38mu+fV!xCWIrMb~e3W@-KKAA6S_pYsMw{SU4s$J}TSL9U=WqQtUZBMix4l0cA!>jj(Z<)od`!ice1{ z#b@!W{?xN#pMCvxjZi*COyi%Z0oh^z<)Uw>0gyS%PST~MGA%4ez!;7IYV|>>Q;hF= zXpDHL&EkxOx{aqG54suxZo*I_J{#)KZ~I%yxT~l~4?Q_OHj)&L?k^91A7Xm@lYOt6 z5X7&jQW0i~>GRTB$Q3F{ZPlkl_S>;zlb>(jexQ0>CVzQv&u)PUTZ#+y?`Fxu^*hx+2f2 zN-eD2&i=xESY~Z?Tfi(5)BJ9kp4TuqT0B;}BJ3m1TFY1~!-gex+|)(C<*I&zv5UA^ zs{*j_tYZ0!2cYp8BdNH)5`R$@cSJT?6=gniqx6*E5OQqQB^~bIC-SJ6-0czHlCR%Ucq3s;Mz^W25x;fk-?(@dZ3$(`Lz8$ikQo86FE@C&aKO4p@M;YQJj3 zS1y#uUM>~66SzcU`R9P? zv<#_$#f{N?xUmJ213sfeq5EU(vnW@&o_VejY0zw{_8l^`qI6Uaki5P;Q zV{%?(jMF%C=AJ2-o2n#>`Rsy3==j(MXPKGk6xgK;E0MyQxK>fMG~)sbJ5VLZusgKe zKG;+ED7&@2`mKhH)lz=x2{n*SSKKWm|Kr@9)~So*omJ3Jg!3^9S2Zqo%zkLBFw&Hj z7iTr1w!9Bv)yQZ=D%{&mM9vuDzRILmOmyQ?8YATS$+vInMQ@CWZ0LtW=0AL!1@NpN z=15r&C`EfFQX0ABPpaY<8bYkVJhxym;<;%RaB*5-dd49DO`35 zhngWkCY!NRxbx%rh*&Z0t`zOWUfm_d&(B9IIjESGX4agf6-?`3JM%07DPI4mPfbk) znr65$cE*9P=|T>`@B54PP{y70vKB|b1lisNa`p2)1evN#w2I+wX@H64zT zh?BBHOX+rDt;{9da;u=qPc<#phpAD=4g)_86- zcQD3%_#uV|m*=|N+7l7Iu@i;!i7bC`Cb^QbVqf-psRW!mY;AF2W=b_W%gtRJgXeCf z?l>(V^0@z%!lfl%&@|>_)2)y4;cTIww7JRZLA5swXMbZmd+~1L%Tv9z+iOZOEWf&% z!|v?c(IzFz0p-W~p53$4TR3oMxqq(3`(^&73r?7G_(k3W%6sO`)X*s9{mqf#Z*s4k zBOeq*EGHtW;xdHqqfhtj`DrYG^-dX21XPcwKRmmmr;;t=Z%B$Qb3ftkbryIJP~Wba zpZg|nF8s{{tatVL+?H5}Gxr@+^wJd-0iRn}5dC_U^nkUM3d(}X(*^c;wXcwLB zp=Ar_hF}qlp=R4hK}9bbYQhwWHaef**LxLNRs7iUXb$quvwC-j={v=C-#@qQkt44Tc5%oV>ycbLu(!@#5|8HxIgz zB~t?TxtfEBpqUP9Inzh1qXq^PNfqeFhH5z-zg{gQ_^?V3&_kG9IsH%l#`~y94Zq5y znz;f`TpM5MYO*%2pK!U)kOw11=r#FtM%n8>F6M7)Ekm1R%8I={=8X3s)}n<<0eW7C zGK9QDSQ*NCv%qlgrmmJ!d*j-BYNV$u_uw+W_Z^3p^T%vx(P7+Ev=vbTJJXe`5>J_~ zPLSEr*QBUV(br{Y?HKEKjh$j_*k5~odI+&OZ@Ad8;4L%xV04OE%F)cXYm(IEt46k* zz3^mYYs!5ZlI2>aQ% zf>qb*u?cZ{i`iiXx=oyC&Uvt`nk-v6J%%^w*osaN=}NoqOdad-=mps4yBd%vS)^u5Qt+T)osCW zfwCLL(p=n<*M;Nppk{W~@;K3%L+mRiZoBvv zs-@9Vm!mN4?Z=AxwWLSNqsP9;NZUm+@?6n9Uh)9kIu3lKWwv`wkCihUW?7*bXB6k2AKl~S?C#PWk5Ttw+M@Qc2n8$9N;z}lLexDVGQPCa)AMw2v^Ti71 zv`jQusbW$l?kK&jEEaIwmt6EKU+SkjxP_N!L|^|3o%^I|oX^rR-|RTZxacvmd*Zd} z>YPqXp{O(=9ugTT9x!`9RSK5C<1)lBM%ol3E3dHxYS|0<+~~KbJB0oIkeOMAM@iLP zJ#JaIHp9uL&=#z!T1H+^y~``*otI(Ly4k+nqI{Dk8Gez}+VOQIY_O*a=AQ}Cy*46|X%LjUAR=NZO`yR#dReyNIU zKThQbl>p$%sm$A;E;V+0sbd2LkSO3ipe+M2~)zjq`C|B-GJ=~hSvA1Bhp ziBK?sXPe!hk5Ng^xfI`Xu?;Esv&;tmMuTEoiz;#_#^FnVyvg7~1gA)5Ue(|3FNGk? zhGUUQ0E!n@2{S8_FDQCuAzyU)fF!T|%wPl3_9h>Jc^g7JlG9%h;6;jgAj6K%M(_DB zglx9MUceyLs$YlzRIcZl#DJHMM&NV6R;xrs5a zL+E%%4Lq5j@8EX=>o5zo8&V;uHNJRIN1!(Ap^i;s!++01*+uabDVuGqT!(d6E<-YA z!^ZDwYC4f60D|5he9kB-44p0)VjjO=H6D#$?jJx>{Tz`BEm5Sk`_X@}k|^vZ<7J0B zNkJKBtNCbzz^YMCE^NZw7sSEOt*<0)X^e6E*1eeELcX#W&b6Kyd1A@&Otu(>I0|N^ z)DJ%IOx7dqi_{p*Qx!dzGYphfJ=EpgK;V+YxLrto1)5C!Ce7Y0 zA<(1o+xpREO3YO$>Tn~xMvQ-@B&GWjBi~YE;5mxR6=Xglx>rmvR!X2NRj6D&_!|%3+6)P-B0V8P&NS1m0~rm6U~MX}KpJN& zf}8DJ8t29Ajdr$dp-g0k*{-l$>6n^d8A|QOkqwYN9QaxTq^}=GmYB~Jk+!Me+c@Bb zZmB+2X3UCvAcbsJlAdy)qVJG@-eKt~?5`%oMsN7u6nF%OJQy4{v3v10m3@d51|3>K zC|+8ZO?t(r<%r>oW>gEGNIJb}n;!7fGiJni(ObkBL~YT)!sY%)EmLz|hz|dR!WbNA ztQNMf8CX08X%Rs-8x9xkBKU|g17pONX7{HYw|FUVPEV9-VK-HkHmvReA7E&#oy9<3=+Qe#)W)#76(Yc_3dS-N#`2*aN?4K#by$hJ(NB2W zPt+R_coiOZ8X_{l>a7d)0M3h#?&V>_$;eNF1wwE|M+vu;5a$4*xe9-Z40)zPQj|D% z;m*>K{K5gkGbDby7z|Pq_|e2H6*>j%Gcr_O2WU6W#9fobO-YE)q`2({_^M{46u^Q| zaFz&NBF0@^QF^_m^p@XzhpEzIj%E4$vaX`C``u-CPCGwhmOu1D52cnLIb6P`-u6Ws z@l}oUxF38XwPLcV;?rb>!STRMD)oEOfgeSrUy}!bc}i=(5@{?}u2m`Lc9DwBL^6k* z8&GpYbR`3WH+zP#cvi_aJ7}}!pr_>Eyc-8y=MI8)rq7;3bIL=nyAB1NEf)A!Sw>fd zS5d;Bd6a&2xiegL0eiwblOHqZ61(Ma+}XqN?+?$JRBv2U9WSYlR94S4S8toE&h$UB zbI*}IH;(+a2KW0GxNHkV(Syj}Q?rZSw5qkHd=2b?S?!@UwHbSAYl~g#ieV?r+!*Ae zB+MV5ZZ17t47R2nJ--KX5p%4|``FdmMb~SO-FkM+&v0y`ZCyt#rK`B^eotK==J?=} z<4^nv!)K3=zCZri+;d-h@~r5@yV?`B%_lz3otW}J`EAe1xf>^q|IVEpp{rnPRj8w? z#EtENV%=_P9O`&0+(T(7ZY?t*%|z4h~M*1N8SyYHoZ;WT)sHTa!t2>8&zcWM-- znO!iz2{Fi^GgQL8B@H>2b9&t6S@dxc`tQSVr5L##AWGG;%wW=s=0LUTRDuXUXCNf0 z*5qhxI?2ieJz}*45lBYVh;V%d!v0Lcd>;CrA!LRGMW@)j^9tDATtPjvXtxAa+Rs(D zpp(exuGfe%16KCa;v9H{$ejrc6O*6uA4kr)sPQ5tOvl3}>!FJ{$T%r{r3n6pOq%2G zVX070G{hlEOq!T*I2!J+hgOLYv77}SDr3}KKXDW!O_d}M1kM;rNEVqjz;MgN1XhVN zG(40vXP<1tZ{HDTrvAg#gY>uf+?kJ*S)TQ*0ryHN^K3_Cz&D+yAR^9j{jvj{*+o|R6Ke7<{Qa|?eJC`FN7$zatTjh5V#rFZ zHRudtIMADX7_u2ipTkv)f&G=xYKdh#e9IjPBfc4pZpJ!gf~YZ;D8hjha;)qKQ40N2 zxk%UvgYXE`MjjEOgwiufv}PQi#dONFW_aKqb4flC=tGq#e;(8Wfcvb32KB@9z%?`u za$HHe45GLIi9s=s0U8|u+#C6GviG2$*+t>hyvNQg5M;sG%-@+Y#vrbq{H{;MUi{%PE*B95rg z=bO-*^n@qo)D=}GcU7>Fer$>uHzL9B0L|8Bi<5pK{hVC>Q$_gG+`atK{2 z>{j1JJC9-1{kTg!bUK*OpE>vYXd-FP((Z#e+u{=<6{=lB_ypi9BF)B?s7e9$dONk3 z2dU&g(1{>p6J-HciCES}$mQWLwkl7?K4wuYZR>I0rx|aht_do{e@96}n=t_f0L&tnHoGTr z;6I-tb7NthdhCj5e5nYQTm_9+VZ$>!!gz4MCajMH5u!qDnp>Dq0PCJPAECVd5PFwO zm%3$IZ)=944?(v94QZ~j%~DwYJm|n~)HbmZP6w8+{P48TmFZ~%unhp214ZjMzXCn) z?~E`G@bxF~g-5t@4Mb*88|n~7@L)4UqRG(pDeyzQt_hE=eo_G1e3afyoZ}Irno$8_ zz)^~Q4n(XI1J^@$2`S?eHREKGC0XEbn8sQIsCNw0m8NO5mVyQj6JqaHDCy!Gx zLp=NwGO3q?@Z|U0sDv#sz}Gih`2+Y55+e60+@={`jlvIvVSm*^e)Oz}z50NYY55-L zRRKhkO_Wug*q0*o!#dK4vOxu4RWR^bo-1 z``dk=fAviTJo;uFm833Y#-Dz~d-3R%;SnSd4O`!jI^K_a(XX@(nsyvW;1AHt2aKu# z*5?6^>tF(Z(7t?dw`wp$Gw4Qm?0KP)P;t&TP&A`@40J&P|9vb79GVjiEj~U}+&L6Q z`0KncY{mM&Rv-Us-HX3ASU%af{>kQl@2t4`WXB+7`}(vuo=+Evp6)*Wbl<~$-v8c{ zekRHv=H)+x7akujeKCB%@|hp++2P-w)!un_{NHElz!CJu5f|CWxrZZR`jLOB&yBhx zt>u_&+ipHv;Cb`mbCap(Co)NsoY9Uz*L%lD9}p@|?l*W*UOZm^;^`gqvpX;HCSLpr zyd3`wOl*6}kiPuz@TKt!Vae1T?AP+z@8z$4JbYy&=%G=1WE2U#KMYr4U{C4YDP!@G zWAutK^S&{wyGV}PxC4LOzGB>|Z`?sY&U1V1o$)$U`g*|$ctC11HG>#eESBYS9mjGyp+lHk?;nr zgFAe4AGZ$iYa-x34+x#ZHSSdrV>v%@6y+Je!GT-^u^V`ttnVDr;kM z&tcaMU7rqQr960*wF)hR3lb^cSIx5_{*y)@G zis3YcCn>BaL=8nwZZw5u?#nf)?C{nvytX_wo7_gMN( zQ3qbsB(-Dj;p}s|FypOJwX1q%G8ChKF-`)9}IZBlnb&}MgMgA3iWYR149&V`4L zt(oW+AgN+V0UlQhK8fzS3s|EZhqtD3>4z@hpRpc}*|RhKYWS?&@h$SaaB#`B5JQc% zXPaO4Gg-EA(dksH-;#4b95Hu^n=r?&I4Tcut+1xu#NC&evQ3u6IK7iDamn!vrT zYnkC*p5{6Ro?C-uk~Ypr)f9zD$9G%7@MNng0wn@ig~Q8~jp57`EBwMZ*H3-D{GPg< zIm6-vt*(dlQn+(dgQmpH>v7T6?aCF3$QB(o>Kn)PLfH8HLj6NlN?o;wDT`7m6}uUe zca=bG^U25P&n8F7Tt1SuYO*(Avixx0=wZ7Z{n4%KIl1HVa1XZHT{3G)QGFUAl+ynt-#oONgx!X8?pl&7AHhW^VNRUx5aV*8#H(x z#T^F~zueMQHJ_typVmZBk+BpHK2$iWl-8KdI{maSm82kS*0*k&nrQTrDXClK z2;eL~G28lb<^^7K;s_J)(xcE62+1Tt=CBRHRn{lr^=duBk9%JWazvO!w#2UsEL~y% znU^};Loi3`3U6RVz=FjGmUu{amB3q7rxfLsnX6WJ)=jG@`Ux`$2NLr-UYU_!%cCY+ zC~mk{tT;uCr$I@%(R5xu&AUOX93=(lR7E#64ChHp>8z_}W`dsgD9j3b+MoX6oH24-C=7F1Ba;t5MLNlUw)VYEa2sgw; zOk}4XK9I46Hq*txN|E{U(IJJ?qC_E?%?6$=)esljsH{l9`J-Lk_@P_sxpOnUmNGwj zt?n`+j(n=}QRp527dsO(nM_GNbAMZ2A2!HCiBJrf(YI)^T}Z9gs*i)I(`lWvbyQw0 z*U@`g6gCk+3WQuq!x~Kv<7sU8ZL%8&V)&9{FsD_C-WsS2cjo4zK)a6-+&F%7e z69^WF&n!kPFUACb=uNs7hZNjRxRR`|EVL1ssYg*)P}{wb(X#Tz#TqfBao4M*#?p1{ zLzZq09ca7@P%$9b~l9!h#krBKy$wa9N zAKtYUd+s4=i?lOKueD}ty&JDHX=kMH1)2e|2`Y!DYW9r)r314;z$(>qB9DBQJoG9+D(@a|KQZq?euuv7&w&1K%^2e!ilv_{&>HnktW4%X)UU|5qDnsd3d zkXDMwbtw_Rg}9peqh$m(awTq;?Df94f6!6el{C%(8!mM9LvFe7xsF*kb5WAw=avfF4|G1dtut zAUOm8@Q@wA869zQX9Nzw!7D>R!qYeaMFVhscq}Dp$ zVfqYC+PIj9kQ))!9F@HR5tvoJL+R6T^T-{eCcD@Dj&Q)78 z(PI8ZZ~pF`IE)<+K~*vfd8NuNo_PWd0l>_sA!^yBt7aj5q-tv&cJUy@MBw51&U~82 zr7wwg43VW*ht?vU8dd9Vm*Z$W)mc*Tt>&p)$UtcC68#wu-bI-66i>u*EvZgCHA;l= zks()gp~)XZv8_l)x${jJwptEC-)2cM*e_Ho6h^f*LM7t&pU@P~la zMr^fNb+k`C6r|=bNry#%cc$yl9jN^d!v_K#4&LAAfI}S4Lh1#`HC^_;I2)qgr}6To zw~MiREQmz{&6OU4AQMa*HIE24NEv!hp^%QIQ=gt)oWW&SM_d+at;dbJ) zay_S#4d0eH+b4F&tmC%~Yk&?2)e$jxLZER2tSr)a95CG#mugUT^^mQkP`DD~ssyY$ z93K?|EFl!V81F0uJ&ilfcmP#@W+2>qBnRmmv(= z)fv>cClJa(O)4Mj?9*uGWQ4|T}&(3t}j-ATL61Bd+b@|kXXJ@uU9lffvzR!Q%PFN#ba^XC1v2@9$_L=9zjwM$g zJrA-h`RzPlw87%T{5s z%}yC^$9-nI!m;;0$q(cFHJQDgK%M}o~@ z`$vPe+c++JID31lbMva|>CrjY9!9))7!{H&a!*t8)0~89F)P#Nm5$}@J>fNTdMN(R zP~wL)-#6JQk-h$u6$>|}%lD*boKMeu^eFZHqvhm<h$Ba zud7L`&dey1d8E4QH%9*NskLO4EOFCozIDhci#vRYQ4nDtJ znz`k==Guqnzr9u&okq+bR`-0sK^rnvH6yn|CZ5FP-u;?6xPIck?+cwR@W=+Jyf86? z(!J=rll#XGR?QB=uDj|NA71=Uep!!svU}mOHyf8ttbhCN+RH{~^vAEuCT*5a^(J0b-@%!~pFqp1YaMZ^6~Nm)ujWGnR63?9J^S+)2L#^lbVt@ZI2_(uH2d zO#8trPwhjL+w;=StsC#gI@45Cp?rbm$ua@*BBN4o^xD0B&I)6BB~g81@H`dQ6!8qd zKnO4_ea&6RTA;8qllzXJ(^mb%^Ph%ZbYUFz`#CbT!!X&B;a8H2JOmevNt>4&%9ja& zCqK}hU66#gbD7Zl>b%~!apCp{cTzhXO-;u>DyRxI?!wI2t>wm(ti-)F7j^l3$Y)rC zhDm#2Oh&&jVU9YvusqcklITje*@8U@Al6Xsejg1Op0U1{0v6B#n13P#-Si0GYmCxc`l@|+D$z)cl(#Aiu<+xhbm@LrYBz?m0I^( z_^|Z-B`w^;w{~Tvetr#3y`JHvtz%;u4LWPb$o*E@nz?^lR_w%hDuq&#=RnGW*f%ha@Ckn|98a_r3MD#{&_ENRyrTo>Q&VNXllWsypQSWW5N}NUH2Uk)h1eT4fY-5FV-Lv*0Ru zqf!?>-IcAj%@`VtCF6a9Y+B2c+WWB?%+cJaH*No@ycdkZX?hxK4Bng=l1W0-(wDSH z{?GC&7C|Xd-bByXX7U{ntKB9}3mI$XE$~Ir_>>mRi(lgz1=|-5`h(TKmLp?nMvd?v zncMwf9!^mi_I)Tdfq<9GG-wy0Y+w!!H<=iD88>+PYRO_XNFcHy$#s`ZNJ8M2@Y8LB zo2-Z}siNALb9)UVWx?RdJqYTv(bNTGyUzS_B)+89==`NCH6F3jH6s1obn)|@*XOs< zKBmD#NAl9VCxD1d(M`sOhFA*8h}3;t9ZO*1D;-$MGlSV2^LMfp7BtTFXV#vw#*=$fqBU3*4=AW|tXc zKkXlWaq4~Rq~Kpv59cqgY)aSpKgC@>gghLTJq_ITs`$d7!~GUj3OzT#e5plWv8 zpk!J4RL$HG5#G17$0JLa>;~TnhgrmwzZXmBl|aqWAy?nT*%uXO^ClEV> z5%j>cZ07e|Y|!LxVsX!_0(T%bNCw~w(2M-0K53B275Rkvn`3WO?R(r*s5w%E z)kL9sSFMHU31Fi9cJG1>|OLFSsd5#h6vWyWB z+qP!mnNGfz`XxKrP65}MLrCAA?4<(1qvM?$Rco?>I2tbuN|%mw9~$Eo)*Z4{%BnJa z#Q4R(LO8VoWtHHn_(!3WbcB(S?-SPZ`pSb?0623fF`kRe$1RNjLHOBV1)%~BY^n<= zy{~ajGMMJbDj`%OoZ=h4gM^=)5v*3b#y$s%4^2Bfjs!vD&0xT&?}-FJssU}6vJlz4 zlnvT%AHuQ}gv$;0T_y%$F-uL2r$GnOe?Ff2=R75*o~fS&}Kip zwFHAPI+Yo}UsjqtqlD=A{SQK1Qg|mCHO}3+<=Kyw6=954<3fJ7EhV16Ayl6-3R(bebarf(Q2eo@L+jonEX*^Qw;5#U5S`g! ztWQI!d5Q`tp%Uk?#gtW`jU&@Piy-Qs{Vkco8xU4LR+cfh#<_7PgyQ;7pjDrudTM+| zlFMjJVMPJzxZRomnNoNGEy+D>m;OPBkOtX@ zx@vz$%)05r;A__3(8VFj{FlXVp+s8K}9=Bqc9gT%yKbCdky z2kQjAa7=ojs_=l}gmQHz4Y2o6D$yQF5KS3|+4le~EZLpr3eQ<(o_!!;wR%qvB2XV8 zmak!m`D6lZmmmX)aD4F!!C>16jXU&YFY3(}6H*|xyvrNC+WGPEs7Ye{t4-dSwGDO= zStuf_)$yUO)IG2EGj)0Z*Q_ktP+hCefaEUzk4cB5YciQvAmh^N-=^&lxT>}6TQwb*h|#0*K(vL z|Du4Jl9NaTQx{?WVftm|P`q7VobZ^R5E{aW0578mL9zPtnqrj|j`sd44NxurVFqmA zVeDN6fDl?pw>zTIlPXP6!b%6a<2>7MgTGuFoCZ15rPi5Q73d!GF^M?Q5#5D||n&k=Rf2s!vFP3BPEe--HSy6#23G zR!)FExf)Wnni33p0o`^uNfhi8NM|x;S0nIELdxWUy)a3s)l;ewRwb&yqVDZp(Fu!7 zy)S75JV}^PW6u+F+>pUW1Y546ZUQ+#H)9Rb%_y1$TY$r2&PmbiaXL>1M({L7oNWjV z^dM`!1G=rNRbQ3%5d&&gaMm8JlW4G)lWSUAjSSm9G`#15Ff-AyOB`8jvgs19Q>dB2 zi?QhP;2)UXHv3Ryb>kNEEUno_3KNEK7lL_Km&ryTSvRRhCsYN?U#yOBc4iLlSa~Bd zI6C24i_e6qH3ng$5ZM_Kp2098YboHtg&jutm4AcH#Q*(7s(_ma| zJs6T1YYfqC&b;--L7Y9NdAGyvKNt=CM=40IQaH4pA7; zh9Kb{&7S8Jb$4J1p3QNi)q!0q6BY&J*+y8tf6?s(jFA2X+7KW+J7*U?FvtLr-=30l@&m zhQV|rRfZQSsQqzvkU5AY;jkO$46AJ{^>ce9ZVYv(LAB#f%xqFzl+WGFPDx;d$R;5< z71R)G!BBRNxOP-XlaY(XktGs>LhP$hd;c&8qRM~Y-r!lR3g`eSCCCq7#k)pLvq);s zA+e*>RKyqO3M4$f=~b4R!P@5--0nCs_!CK;k=ae79Sy>%0*1uSV9fWmb{peyuwKF2y_Nb@8=p?8KlWAAJw0*_D8|WhhNN_kM(XrT!F511c z#pCu;i7AKtXjDipF`md#O?>DLWEwMaKtu^}^g`A0J@*cTsjLM;GESAg5D2@Zc{v3dA696X%d`eQ{N0+6`*Dr*SZbcxwbJ(%rW){Qy-~ za&L>?W*V`MW_IsH*bcTChbDN%L;3yG5TR9YvBvrZqWb0DM?(nFBZ==|i=7dg#Taxd zu9`b+TOB9qC5s)eu8oq)JQ{B}DMjvm>b+#OEkhDjqM?tg`g9sc3n(U=i!wpS4%Ly% z>fjQjGfNyb^Tlj4WS%uR#pbDkGUKA%Y7Ra4J*`Nh975VAj2}J*4sunjYBT>VG6<)i zUxVTpL|0y#?fO)Ft=4ao=~{E!1HUJ&?H0R#gw+1CJgR}I4-D2@Sn`B=6!DHYcYIGi#$3^~%qMNB2Yhq>5XBgz1VpOhH0ZXK*f z_>COaoz1o~fFTnq=bY2)w~raWcV}py&3k|j6%5mBg;9p?J9iO5<7%G<#FYp0tN~TB z|M~~nAXW+BUoHv6A-C7+XGg0kGS$Nrlf!WRofLC(Ub$D~n(s_r(p}Bf!P_$n_Co<( zX6%`6Nxmt1w43|B>a?ZOR)O$nJC9SEp5zR1zo^&lhpZ=!oe43o&NscB$#G=OKFc%N z7=?~3wYAoGLEAu=f~PZ8^`9!yipRwN8X}`VZtj@WGrAYG8)-gGFTK4pUWn#DGRH8G z2)0qNc^SDxVw6=pd0~5Ito_|m$W{(7L_tq7f&7amxS0*-bFl9<@>UqK!*Uy|Gg|D0 z=_b#_gCG?UB8H$@nZn_L?)ZSDP|}`zawE4>g=Rw57MPyQ3srOnH+Ihl=pThRcQ~pout37zscXVh=_Y7 z37b?AN6cIL)Odr`twD%i2T@^~Xb||XB+V;Y>eizPG(dAk#8yI;b8fHCIwPj>CO#TL zGq;A>fw&#uz9j*S>h3BpZF+6Xt8tC9OzrZ^y&WBz(37CsRgoP-?YhqFB2dqszMEDe zvY)4RzK3@C{gQXqS+?~#5_2lSA&Ki>;JRYATYRAVl5=wv1-`j~p4$R>Re@g5r@W3% zd0(8Gb#uz+$&~LOQ+|I>`D1_ewf;3=21^R;4i;VQ4h;Pqv{@9qpfF^4;q2X(X4Z+& zCxwDtg|)|3VXyu?y@!oI4u&s)!n+G!3=~HGUKsV)=O5ESLSnFJZcG-tQ+x<12``F` z{Sy5|7qg->wy<-ars#pPTl!0|OH+~55FCG{bBtA)KJW$OeJ_#vOVZ~rn3*CO_51^e z5EmO!ivPycP*du>jn)Yp)0b~t7_TEKL!Om<{j)OUN8QGc2RCM%*|_AljhTP}=^?WM|FfLx1Jt#zHZ?%wQ|!{25a+)DrFbaz9j^r!zeDXE+DT{agKzD^DP zyYP?GMazMW_hNi9H*flB^X8v77ZZDm|4O^ww0Y~9&D(zN-gfivl6e=m|GM<`QfSBL zi|FZ4=%yO7?ozoOq7v?HIT*gR`L8X9{@bFbZf&6wTJ3JNzLFeX@cUtG z0i9I9aVdydy49Z_C@j7-hAum?EcRn#_aFC~f7?7W)3)YVh#@hm#P0K!tlbq>2f{PG zZxwW}s@GOZDH#_gYG>ogUh{vapuE`ftB~Qn&u} zdsKVkp4grLe9XT1lh0Yk+g6Rv!8^LP&))qNF?>~EK`=+`j^~8T)sOtcohPs3#tjwi zt81HI=bu>6mM$5;{R@8X{EF_2RJbwf&6HQwa}?`5J`j41wDWff3JHpRk&+*HsKZ{4 zJ9c|>jl(gIoWdr-SykWukgN{imUS7DzjkhLf~U!g`R` zT9KnY>+idsdtX)QcUh{g47n~)A?}d38mxKZ?bc_RH|EE8eEu~FbR9HU)`f#TTD_n-1$w-}tbtA@f zcxU+OOE;=E{gq2{S*@3kJ1)?|WMgdcv77e(+DflDW|`5oL3X;hm$*WFU%bCO^IMJ5 zd|&l>QOU_VFn}*%1PH}ek1aObp)$gpMwNW_APj4J;FnuqHs`DZ1&6fFgPp}y9hfUk z7XN?hkUoP`TDuYs7VwS<9T}%Ykrart_ZQe?>(wqlV#=-mFZ2eXc;g~!mQukS2kh)h zT4r!zaO%z0Q06wFz+Y;?2q2+0IgNw3#4g1QXVsCm;9M@jUBE+1^^$QUGo~0}Q#pu2 z3tOD3-quESx^|MnJe=pkMf47zV*ncu`mgXd52KJ%(({Uy)tzXw(zV6SO@-U!rQY^s zVX1%h7?CpN=8g|)BsU33-O7jM?~AC7cl=WK7Cf}i9#`#FSnL{c>Evh#xuUoglbPEc zLa9SI+k@ENACTvc`{b(e?u=%5G$I}h+M0QoEErT+qxS`JMz-X4>^h8O}i zunm!Jc2;6SM9}{YaKtG`39y&l&fy!;DU|@CaTaKcgFu!AShz19?*f>*@*rrdyATe0 z!J|_EWVx}WxDF%C2*#fg3yEBv`ASoA6-x0Chnv`U;Br=lL*ohZ1oI{*`dNUdK=1su z3kM!iQ6oOIkf&uaK$D^Z&5J&Sk)AxV&}+~3zE_K8rhDzr)t>UnRRLU_2wkQH9GD85 zeb*+|X8kYYm;4Ft#n4vVzC@?`V&6Wjx6KDDr_o-$$~4ko$D)yb?VwWlZR z#8*K(OCL5I_=E|QA+O!MRgSe;eXP#(ib>@nf^z=YHDmLkdBM~26;lB?f0CKp0yjVT zW!K0{j0|G_yz)s?)wi>4%)K%*tr5b;lE!Rq461o>9yDg)o%pMvw_*5v%~qCp%ke?; zoX7d4qLNpRy~Q!rp{-fzK4T6y0vtX!e9|ltf;g5?ypUU0eWvIfab2AW)0grBCg(AA zx!99ZjwXk}u`kG-L12|4@)4_6-1etAHWPtyP6`hF?j>EIEr+K{U+#+4&f#v6bWjul>^0$T8YYl5Ha@t1k-!zfFQR+}FDKwBT}b%LU9@!7m|Y zbQW7oKP}Cp`zSHijiqDG=Gq9t2j`kgy{IopQrP$@f*&)sU^14lm9{J2?p7H|YgJ)e z-^v>4!0=H+doCw~6;h#?KARs$rN1GrJTk7SXCuk%8{!$u`*4pRzYY_UTn4&thUUoz z7CDI%*H1%9aE!@=q-xCLuHJL5NHzOX9OnTfjM>Uj=hqiD2JTOZDh}{~?fDx&n@uxL zc_w$)u2$O*$3^6ZT157{iIdF}v7sYba~^^=Ntst}`unItIjLGc-R)&} zA01bCQ5T~(1`w4opHO#cRg|m72>=3jTrS53V@AXK_aLM6gcWWHs7v!9kS=sw_2rXECHjCQK4hC_N+nK=aWiS6v^5IQRS9BB z%Z<*}pNNkNcf&2VjlRBmG^>IQxczIC&b6c?P;3QP2%wz5K@O7;b{oH!GX@}V)dcYL zqGi%8Lh9BZV~7Vg%l+WhllUAH9W{OB%iB??=dx|8qgVyb$YdIy|66z$blYc-YEfTW z$yXG8#!rWS9`5g6_3YPuul`+t;|c>NIH+?f1`j5w*mNn|enSh|4WgeEQTG#_4J!JN z>|ujKqZCoNDuO|e=ZWlp{KbvP$z`;%a$9P4U=~87#4kp1=S@d8r@&w&JcbB>$#xD1 zyH+m2v8A7HoJVZ4%jrw@=x`C|MP}7j4!5^#BXsiSWm(iG0xIU5m%{mX3ES z@`!%(h=pdrx-@r$JGVYnxZ7n4XMXBXpv(&V^^^Dut;8q;LCVIC1I$hl_OXR5RaDma zI`@l^Too;rW3Lkm1&0}JY!~Gy>YrA;`9`qWLY^&T9@k$gFabRr=M6^)wL)@%o^DA% z)|_HZjS_3wr1=4Kk2T2SLQJK_b_2%F!@?~vuCEsrB?&3@fZa+x-k`v25GBLDptNJ{ z2*>5Peqd0FWC(>9a&2qYbDXm!Us^boH=GJo6$%jk5Q4FwZLksTH%44#ME{fM^%eup1K9TW%{gIG~02n2UWZhPw-VUm8WhDbzlQDjiJx;-7l` z6=%l`M>^*nt$2L@X_3RSb-1fg6TFF{u5Y>uqptbQN%BtFe6d%XrjnZoA&AMZa z^=`7$GW|!R%?(s@E`V(^S_AP8?>Lh=^|x-^=qu6^jE7n z2Tlv;sV$_=Nx@zaD}GI*j3O?J?4oak`@NPR=>HMkhwpdus!?G5TFHAC;G^$ax0x8l z!bv57XadTvgJ3JwCBlSrILzd}MmDgse2n-64w^1pIXMcFfF%PU;w9CEWI1hX#QWt? zujj#dCCU%_cQVVKrYFBUero2Um?g2>`wsch5*)dJn0dxFlVdvpw#+EdF2#yT7Tfm7 z|IxK@92Wb{=sj0~7V1Cx3ETS!Cu#o|l|AuK1;B<*NMT#7pH3^H(%FHI0l2r(<~Ev( z(sI;q+%84o#24A^clQkIl*~hIM18dK%*$^OJKuo6I$LUBN@(_5v>vioW?>i*sn)bA zSBRV9IFG4pTC&KiAVQK5b6i38c#GPv=ftZVpS9F1TjeEfi+;;tCAD0eGC8!tZxhgE z<^wmDgJt_TDnPnLX#EBtGfZ}OO{=v^*dvXrgJbY5I4P%Y3Y(ihzZk}W{B|M zEa5oY(E-UU(2E%3tV{V!rh;KmRIL&U`>W^?hKl+uhLndbSb@)0Fr*^#xlwGJaaEsC zcs1COE9Aa#b7ql=EH~_a9iyv-<-w*;wm4M^$v#|aj;mvA7GjyzBdI=91);7(_C^r} z9tM(5FW;Du&*O^m+Rvjjki%a4aoqNa(mYSDPcmLVDuF9{#xHK@LD@Xu0O# zdN?9&?Qh)-wou=e;#J|Ls9hc3sW<>v>vY~FmI0W&7J>5$hfO}{Xb5`*T$ss;P3alS z(c%%M<4Vh$DE(O3Tf2|F0V5znu&eQzkoZi9JE!+f70&wY_G!e?Ecn8$0a`sVDj77Tyf-;}?|#2`EWD4?;TKM8D{{PowQAC z1Z(FLi%0)T;4FFh+5uKiC=U~FWc_t#1u z$OHX|wwAED0K#^Z(iv)-#|8?#&;|ahkF+?R(_=mYU<4t(DK91ON!%5rm)klQ#FV5X z3tg|yazF!HRqrlbDEms?L^)8LYzU2!7tTP#LDO2mnnlZW^Jw}%!hq;MgW(+bD^fNk@4Vy523Wd)Ph zg3{;u14u%Dl|93vG`GkKcTOyH(E6%#QO5z> zcSm5G)P7F@6{b4BSn4YQoKRVha>Hlf2sx^x^~KeJ+W)wM7{3h(nW|ral?f49{(FF? z;afyM3$3^%K-0slZo$+(W-elSq?|-YV*-|MEvF8Y{Y+4P?_BU^^}u7!jr{D#->H;7(Hy8e_#(ecLvW9<+U*i z*G`Oriri_LWfBMgS-`}In~Suc4)6cuxS@AMfAiDZ>DnXiLcrxL7E3|R=GY4ES)UVH zea=c8=(TP;lY8BDlg)sOM;6^Lhjmx62yQ6H^_S)UXjT3%(N_JddBdJ}Zc0C~ZJNba zdE23k^K!4oVM?*Q#}ZaXfhd+0r$k8HY;0#1V@KybRx}0bwAmGAC#aHSIvkEpbABem ze;;B|+o{$w7oa0vBU-z4 zLT(RR{THyK+Pw0*$N@7-I1Ldg&v$cgwT8yFMC!9;n`1~*eY2r*mR ziU`Zp-6Iytaa0{vHCCY`IyeRUAik=LRzylf$;_ zU(3{4$VCADIOKE}WO;)EjG_n@Z|YU0IeJF_ESC)&jJFExF*)^Qp{5SwzI|A6ZI5#S z2a)Dli8o=V62p%C`@q1N_afSUn!R@Ao~H?o`PXMo!9TgS6Io2I9+vJZZky0LfT%Yz zFM-UVe^Dh6A@jqmdSg@$u+lRw_jf6>xjWE14w~^SDC15Xp--V?^qe9DZKZ_lpF7qq-9l?0Mdu8)nwF`>f7)y1zUUD4e2Jw}d zz_Ks69&?tPNm%l=$lX%6a$k7K$0LcarZ}qz!~m=6?mzsG-aQzx?cK<{d$;=6tcI`8 z!BNenrhiK2Y$t>qA3Bz{<>T{3kJj|ex5}=TwTL8c_FKP5lfjsKyAT&odRag5TYehX z)@WlNqobX6TlzTSQ=J>WE;*fR!zmTmMgIIZCUGY3x=(Eokvx@BkIfx>BL{~j#0 zeqZ9rPWKZ?ujgaizBj&@8Qe>iTZI_M;);Ixdd%Fk$bIb9N=dwLK-I?){KlAypr)|j z;v9=!6YQ2f3EW~z^*S8M7Rp~aX>`GxZ; z>N)E$`_J;I$7v>!RSXT0G`p@zuVxl7^5bXEL6xED(vmuf zP2Tt*%EmFr^)9L-=atwhTFSdgS}KFnibL=gy;nMoE3pYP(r@8@%_&rqqKm9zNrB__ zyP~^uk09yk9fcIZo*#M>F!%0cOrTr8Y<`3F3%bOeqzLe0iQjZ}0V1;S z*zN^Uw`hn)(hRFq+gsw!ZwV_W@Q&4SsYW;QXhJ6eXqwp&tbh|vnL zbo~hM>J>gp2BPR`aMIPftXUYN=-BiLW#ceeM-8zaFo3PzKLC{A`lzImRB#$j(uOtB z)>0h%^q7$AUgN_X1|lykX^VJqxDuDaYl)$qo?fV-XX3J=3G6jiPSyftz6tHpHhJf4 zW*Zd8n)PL{`)Vf8S85xZ8=$qzXrom{|IZS%6SqD$3qkqP=$ah;Lasnr16Awv9|8d%S@#SF zUP%;@@w}GXfk}!%a@1bdc`Ra^C5QqNJG2XYDFWF~h~=+#0|XnmxgN(YsfA`;W?Qs4 zn$A+;>0+rB+fGk#1yR4rVNz~&`sk}a8v56*pRFn z{oDVaWM!(ZCC_sy4Ni&kZ0}5o_wOz8Pjngn67*mOaA)+yIPDoqnPKOae0kvb^PVqD zHhxW)uh_G3VaD3?Ul(Q;KH9iw*|x7=e>tVKFJpRD2K;{{YuUq2k z?(6i8(9~`goP&+6+H~DE0iZZ~R|DBD(R|@wn zr;8|wY$PL?57H+r=}QMiOaU7yEKo28Yr8SCA)S`c(>DST`64&Xl$w}s5uXJ?datDx%0CWtMxb4Tyv=dAG8ipngt{G z$xF4AtaSi0;51xAgA)+|x{14?l|bwSh5RnHX$N=#%gSDEE5CUsdUEG7fzhU130d8k z`P6tg%hmJ$v32KvG4B5#_^)gBeQ8>znrd2ATBdzcGBZt?7MW61!n9~Zrldl+W~rG{ zObMeCri3^+Ax_paEs}H?2_3?;Aj@&aa-29$@9*`weQ&q#Pv8Hb+jMQO=W>70N+rup z=dg&DC4e`qwA|qD2}tb?Ifv8p;_1*@b7x>%YK1`-n@kv z_(;Z97}r~hAfU@Yj?2lkIl_Q&rYpat8~Q=K=8VtySJ_aLxq~|oT5ks-ae4t&As^r`xk^3r9R#^r2JAT+TGq$9L|9(;5A(J=yFrAT4$aWiM_iUL$90$h zj8UG%;^XoReW+%Docc0&KG1VH?!`r zc5!;WPb6B$6pYOy^k}^TrE*VmN9_}46-nH`yK=_SepC#YKauUScHuLBo#j(HHPj@b z8l9v0+e?00v9iM%`cP2Ao-&RzcGOdVFVdi_ z!$UWHqurwJFev9l>pid~gLl0uI{}Ym5VvS%ne{oSiq$?A0uxy@7#A}$mmtL2C^$^V zTa+rpxoCM{1`o54gmhpAq!)!NK2>Ql5o@$JsY4Ca3Yq|0D5<`=%Y@EcM8s$13z)ey znM0`z+0Kj(?`{Q4U+hH+33U{0<^enm&1cQs7~Q#*kjES^@i?_ zs7uO`QO_Hr7rK0RKNQH>8fTv|o?Hfc8?)^!4RV@$CclG{iPLh@BHm8a*(ga^3#lHP zbi68T^s?0(xhFJm6Rk1oHu$Yt>?hQtY?-Z?Xd0jVJt5$~(|Sgy?SFP!Bbqtat|MR1 zS8SC^F8ub8jjlNMxHomtcbn;KJ4$}vaDu$BQsX>tMvL7N7QSy=yaK3Q3XW_32Vt-`OhaXe{GtXBlWw9nE(MECNLe=T6L%q6G$-uKUE=}I#**fez9!e_#=#^ z6o;Y#c?R+a2_B>o_XFSngmj0fu{?m?O`C!M3a}CI4^uw zLV)jCK$^ighXafOjfm}O9aW-D)K}tSC5;(6$0J`K5PsBv^Y2r(W+9sVD9?1HJ`q`yiJK>&upTo0jJ(qeV*!Ie{J-0BivC{o!o%nv?tf}x^@VZR#x?dlmE?-)A{p-4( z;Pp4l*5AIg{`Xvw!EM9nSM;N3%$OVf$-su^WeB5N(R48KRdvzZfucfVk;!f2ByZ!_ z>W$xX*Z=1x0_I6kdD8IxQsO-N9Qhw9J*3#8yx98JV!MBe9Yac7RaMCiB^o(({^Jr~ zt4#qbHiaD66w|qB;Xj-BA*E5}r7;JnagR%5Or?n-n^RPdsV6pPyxuICS7yd9%T<*X z-YP4?mWTV54=gLcA}vqXly7@nzSF8=K}rQfR#9u^U;j^qr}LH(-j?Ys4)&-|^Q|pr z6I*oiwzlVO?NA|4-P+2S*xEU7TUXvTkGe*d6nf*rP;a4IYZ^W zU#k)v;mrZ=;}r{{b=${P)aTe8dF&l{-i}wQ9dB2ZG`!hidc4w-v-9r|@;?W5{`+|6 z|E%C4Qs|Ww!i!|2e2{{Z&9UcX=J_&ahm18NW9O5cX53x!BR zdU$_9NlhcUhc2vU0|j4tFb+eQ3L4=T*bs!UtBsgn*yMM-R-2<})pC560W%`;cbT^= zT~}L1!@+qOBaa3*^!# zY%FcAg!qk(`4!d#r3hGJTw+4F;n7VraArB)M^C!1!$xV4g$C5>1Jqv)o;EscjtO~; zw`dZ6>l?CD^`KElLhH$Lly{WG)(DU;B1B3KW}Y5w0yceP!{Y;_*PM9j2_(;0LeOEy zc}1Bz#0B`GgHS>q${(QoJ>V`ypw{V-s{nHGeM&pe*58P{CBe7=#8Do>M+eY3B`3e~ zo|hy=1&|g=5#1WPK)J1=1 ze;ts*roYk<%THnH^jJnF`C=)e5F#?f1bQaf8A6TI=yUW2_pP1trwpME`!iXg3x9H^ zw{6~H(LuoM1uG?_blz5l3OT}|Tr^-koDm*IFe!Q4o7c84I`^l;O$Lzdlajx|h;q=N z9j6JAdi44#WFiCg!nnmllM*B)XN{6Qkw^|L&*QVKh_iJ>L)Gg29B8PEM!fIe;4=xO ztN>(g!UVzCp^;=M1y6Ni^LUgyd4ZqU)QQ`SavtCzLD_2%$1cb$*$DpsQN;jG6J%D5 ziJ91r=)`_867U+}%)_wb((RT2cvehGR3q=wP{(06QB1JbfJ9Bul#u`{j6^9I4j;8T zv3Jk$QJ=AaH7_Z6 z35v#}1FbL)0o0M(TtOpNGleVf<*wObBhmCj7y} zH?c9}Y|1#~XB}!mb*5~Q9PgAO&*-8SfSwz9=yRtqy}Yxj%c+-m=q*yB8p2)r*!lY` zV`LNc3yt`}*!NBkYny}+B~~C_p@6V;oHp2dzAGh9(Jo!rW6H$%Ha3P|;dN?`XRi*% zt=AD?YtqxX@PQP3X0V+F>=m83Z|B<&Js=0^(Ow@j!_I{!H2CR0AsKAaQ4XR|jCMkx z5}c4GHi5qaHIGebPDd>5Opth@w)X-#lA}4lW((v*oRw7zo)5if}zc>y+i8a)H zY;=tP7bAC;Nfdah%7_)MIq{9BPtml zd*^^iDPnv<42zAu(Qv{%ga}R}T{YwziIk@h;|pX_v$-T(Ms4E6H$e0D51lIQce#}@ ze*vUg^OnTWWPPK7O?uWWjrz}5F!_eysw@!+aN{;I-k7%|XSVym5u&TXq|rVFZh>UBoh6-C7AFI)Yzu@G}kLFG=gitBhMe0U1Dh z&aNF+8UzLI?E>Hl75+vmQ91=ULRV%rXxOa1qHBGnN8;Fze~Y7TV*>*zNFs!w(h!a& zAW%X$k_}SDDYyP5=IQ5#eNdW1-7?EOFoWe%F){p}s>I`r7?h%Cif$kB9=r2HpLPcA|ZkPDv zRjN%ajyqJkkd;aAa`sWJlsq7{Qy9@%di3$Ut-($BS9IKC4o)j^TbY*+)8-2Zd2i?b zCC>X(X|;hm9b{i&2n=aml)j0v0$jMvvC|I$yThnV<0jfT8iqc8H3DZwQIDBLxkAKI zJ&7(Me*s8n&FPg`l#qrmD@LU95c`boH~e$Aj{K6`iE`$V|28C1aY9F0@R4b~qvUg3$u_@*%DGJhl%7qsuoYNL#R}m3b)m6d_<^hz!Ae`lmGo zC^rt7xy(1clk%Vw>o~RMx`CX>em*qRW87j}xele0fTwhX0e)A~vtM!Uh&*v*)%ERW z4QQemWCE|wnE=;r4oZ)--b7Ak16DlbqXRq7NMic4E4vKyAMRhei(gQeec- zj5B9Ga{1=$UI5+FalMl|sp4#HQ1H{$Bkm{@q4<(e{6foJv)H?XR;gd@FPQ z6ur2?cg-VOT3d8qTcw^`7yD>h$bh%#-3<(?Lz6=^|7&5Ra_E3VN~23dgKR0&EN900 zSZUVRW|py|IKOd9X%iZk#hbAFWi_4MR55ucC`-w#{dT&cb;LEsO2CV*|6_SVb&gZi z^su%e`_XA%pHKVNg~Scu*Zz6hPhv@p#jMR3bUl)mzy%3iURfeHtvPGhO)=N2GN)uP zmQdiV2RSXbqsOTxDEgZKd{go*(-L#KXI=|V*pnAhS$%R+X&qfN@33#K!EuknfYxYv zcxECS#XcpT1KZPrjSw=8cV38;_QU6BG!&{5O5Hu+tr?vWI;b#(t_A$3Z>x`EAH3h? zt7*SHVC`II5|9|u&I|SFg_n_oCH3#3CnpXRhhNqs za4e}&Zlig4(=N`F;|kL2O4?TX6n12S%UX1fDdnX#zhZ2|P5LCdWoP?OSi{_vyd&F9 zHLeh9f6r^uvUpJ6xW?drOBO7L^ay(0gvWlQes@CmcwIlQW1^-hjpvVd-IrQ|cf(}1 z*|xTnP2QfTQ#uW~w>M=Cd33b54SAmKnjD(n+3$46tE(ja=QF>~O*a30_Ufl6@7On7 zNM679QsUO18?fKC{``>7o%I*)Mi4i2jU>dK;Z&w>A_xCr7zpmZPu^IGY%`KhaBs!j zEouJTG82Dd!Qp;y*L7qq^nMDcb;&Li7PaVIBb5* zBjrtO)8NSdD_@Rr>QBb!5uT3E_8vcR%_CvcsRxHXb)AU#&qJKx)YM8l<{lkNNNQ|r zI>tHXQ7Ii-rW<{wySnXM_Ob5nj^`Lb}u_3tU2)vonfb9VF7?i4<{@WaV_ zr}$3#Z`+<;GTpB)+CD#H%JcE%k&9=`uFqdh(XP1uVV`gLdm{MX_Z51~@dmk_S0?da zUZ1_CU$uBRiwWb1;TZphhT$CdW!9q9SN_`D!;V2$)9#i%x^M(tuNDT_j5G}dp4bi) zCLL{l*m*qY>=ttRXZNY`!TrF6)+HO(PvJfO`?eH1e!HlmPxXBERfrzHTUs62GRb`1 zJtZtEne7;V>Hq8HyW4$Ak1|%i(V-hg&wOxtx^>n2+!bM!sUYnehaB;$fhsQLvmVe{ zJaU%iS?N(*u3^aW?70O@iz&*83E}$z!fU3F+8>0Y%s-W)LpXE23KJsaDs4oo^bR50a%pNh%O(h1u+_N}n9uHO2=m;71UO;m>%LHWTW z#IX?;r)btrrH&-tEF$diUWN4=3HfW>4DXVJU~*XpfuPc>|i0=U~;8DW-(p(q_m&N%ah>8RaI4L~#vF5b9H41s=;$VC+~6Of-w zWbA9Y`f=Wx_nDf98Emxbnw&OSd!X{#LvX==z{BCzhG(L_g!u+U#P=N3;?~flV$W*J zBt66W zePEpoSncHu&Vf>BrK41au0uLFGMS>UM#v^Zk8#okpGl<2i*!cEstZhj#i@VxUWSG1 zcpauhMVQtL9#gg!m7asJUV7H^qbeVSWOu3;fOMGUA$)X%N^TE6`Xn==f(FFRX0NPv z11N>MT{}MO0k8scjrfyVo{?jN>4t#P`v?AQ{AB+?ulG+f`mCKd1ccC00LA#fK4OQbcrY6orZqRaV!%nD8H8&cquK!KaUFsz<*ZWrpGw4z!YDhmDvMl4y%88U|B-D@+9RnrVP4&tZrl zoE2DIk;-#`sXpBCeiZbvEwfwSB~%L|K5-Dh>ulDQ!No2KK$bvjNzBA?=((D@#AF#Q zV0NJomyOMovauyvsx?zgm^+7>8~kmy5aBRby`F}o=n&Q#Ur&)daZu*VrlDyVSaHPZ zl;5QA;pQL=NHQww9yVZO4YK80XgwQ+cE{#_B>ps_oKSgWudhbqL?I5CifK+vV=ysMBS049!;WAO+U zuX*ciwLoSb_6^TM#HbJ>4&M+3;)7QQ7dI5+WlH07&9X8~o5H5#%MZ(J-+rIP5B4u?F5tG=lYSs)1DC z7Z2`M0|LjX74^%ucLBqlD0``G{R{?a5FHlDP_vjl@gSWB%uB7tR^XaD_Sd$m;3ap2 z_P~B(C_kBjo*?e5fP$q}o8H%inL;#NMnPTdNpstajc80oSQ@YTN*u1*40BitPHTaM z1`3A9(a;qCg@LeaT09F{eXO*h-J|==_QMf=u!3Y7))DL7jqsLo=ZzubX3+7e%FR-=ZwI!GfOf-GRi>hbxu_MXSf6f0c&aL0 zf`mn0ADFF`DA$~ZNqiF>!}RDu9iWj?}g zMlRK>MD8~@GxGl-I$2N^hbL!M_}opq;RDE@ApE}VU64dmWwLj>XcSIrlw?-MG01!e ztHX9--@HSZiCSE73Z_OTQlmUINEpEt=&KmBhz$Kwwn*-zuUe^w9E_MPsrZW{3R;WI zB_Amr= z+s4=Gv9WNVJX^->KJ7H?>oVwLr$@MG&V}nxam?!V8UpD&%E~0Gpkdv0^gRXzcs(F|7Z3`e%+&uE{)OgHa2GHXU1U$Is@WOs z&PM(z1~CR;9WMT`{+ELLSkV$(`4uG2=;5Z8Qvny)S4FW^RwvOc2-tO0wN{O0;p9}v z+^t)_FgAddkIC!7t`>o`4%s?UQ;HpeH4CuBzptjtZBkL*-GFNcc5A27TrUgIY1eAb zM@lhSU*z|v=Hygyl#fAfgR5OkN4m`d$y=_cz$ZGb<@M&F%LTY=n|g{;tJi8U@dkOZ zR3(Ck7udmNb)vNo)HXC|p*E#bAGF!a&0Bwh3c;6sFkJ+!y^1Zs0h^P~Tcz0`@wOPRayf>f%n+CU)~$sjA4dKYgVY zRxevttM&J1?35zBaq>!jOknGYf15{d82dI|1(tRK_JeYm$N~Uvd(?_E&z>lC*kTD} z6I9!yS2?g1RvuW&AVw;NRsvYE4pT3a$rh&(zobwg) zaaG12!$&?L`tP8g{HQ+Djr7nFv;Mrw*DE@PRC2?vD3fxX5fP%P-ZopEE|IS=q2jqp z8|nNr?;@G$@Vw)|T5UBIWjP7-sMj^qY+M_GQ3t6GWgsB2GP|} zcn3D$c=m%W8hIOZH|)mEA}G3LvF@OVt-u+Op$5=La3_3hoFiHOgURI=vgSkRUJWTpnsIUz~V1AoXH_RGwOZtm7hg zI{KvH_lJ!|El!(DS-f{&dJmZFSG!G*A+oC#W2*e=^lrTEe*)sm@%pPhs;n`^LJneo z6aeRr2h5_eIH11g!t!%a*7+6AgZ|}4Si6EozJzS$sQ~rGEl7Me4cZgm6d;}8y8)g|D_gielQvfYpRYK2}w>*2YR`K+A)%de# z&&f-S7ON+NR!^t=AL^-9uMUh+zq#2B)1L2tSN-|tYM0sPCc77(mdIh7^+rAF>*h7H z`__EFxaNm9;y-kR=gf=$k&UqKiG1aQ&Xr)RCHUhK;)fHY=SJTdBbAbA$DA;Wm@r>G zVYy?1d3eI+#sus6g#FwE+dk`$?DWf_lP;?#-7Y1#A4hmR(sU6wi^x$b(!rZjj{$*0c%jDHBm+yF)&=Qz-eC^7CwX1fRul~Ar5ixhGYi{;gFlRq@ z?O8B)U?008*VPc^ta-Irm+R4)8-C~2h7YecmKCn2=QXom3*wsEM6Wj&y)NJVddu0o zqusA7qoM7uR_(;hY^K3o-Whq^OqIQ=IwDy83Lh0SNbSfEzdBRrQ@ZSwC+Yi!W?1_ulJGr zK*|Iya)Ayh)>j>TvcF?Gqa}7<>=#r@H>SW8?<+xu%$_P)Q5DZy-H1a6>ubli=PtgA zIGH8CJfhyrLDYL-;25(!Napo3Hm)0UJ@rqGB3T3Xy~L-Sbc-Zvtp6Ak0wBDAdp;V_ z-VrHagQ@us7$%AxPLT*h+o-DP8HAVAH&rY1#nn3jFPO%^K9qu!k_ahO^epoED|RVy{~WS+)#hc&7aH6~3g!)bUh)$K{Ee$y_uHbU?Eu#egh6m8X3BQnj1 z{QfY)MPGG8Mz*icAhR|2)OFS!az6udgVpApo_1k#%B6nl%!@;^{MYyXSLliDLwu~O zbGA6=d`QNiDMUEMJua9(i21S)ev=DgrQl|qLUtSL&z9k(vdlrOR5#^hfJ(S3GtSfY zLd2^unS%to-xH0|gi*u|z3wU;@4pal1nQ`&_l+-F45rbrOt5fr4Q_kI^=Dd)y?gXt z85EYPiZsaANvk6Dx4gKiD~v}re_ie?Mu;X5tQjGlqvC$SMxBF9C(L04KYI{+AXpv- zJ>lVHun#VZ0aL6l?eN3ojRlk)4~9C9#rE5IZ}{{wEGJTJ?wnpXv5Wi5AK^Ry`SIuH z6UENAcH1wKlRT29uJ5vZ@%z;ibN3G4uAlun@maNJb^or}0q=j;zK!2w@yyGN$Ohz9 z)F?;ME@pA_UR1i23mJ~4URV2ne0bGTw_@Qc2Sj(e(kK>g4g47T&6El5DTw`e=;Q?D zNZ7#-oN#^fJqC!{KX5R;jBz9YC-lwGClB|w5-A@lyR!?HnwwKCaWtAM`L;iOqZ zqdui}FD{}A&QIPf#tGOWwoyR9a=Um&vw&BF&u{ERQhh4BZ(W)F@P}=U?_*@K(Mgzm zbc*PhR`fC|$CBR?R&HH#^QW8q>N+!}HZ7pMcumQ~mr3ib{-;*osL)5(`*&5>?wdz{ zck(EXK6)+LtQcFC+^}ly%jhPN_qS07fpKd3GnuiPRDyO>RmfE46`g)+wIZiv(C!6u zQN!Kc&n23wUa|wRCx})|iwmz17KWauOtigymeRUL}Ihf$*Lu-w+ zNTHp>(BtO}aS7)zu)e1yJ5nhl3`bb_%^Hv_pKG|t8J*G6V-@SzG z*XtgokuN=N>*ClK`m)I^G3=nFBhq4hmF^@Nb%>Ohc%>YvQeENC7l{%%yhy zQM;hgd?~`?rJ?Gc)wxFceQyHXdgWeT?l*)Q{*k^L7F}M^7Dd~(uDIUML+V&fTYD>s5wkaBKcL}gyL_&6pJkwMyv|$jQn z!-2m=JjQw^t&Kss%74x)GM+9nnrXERfXToc}YU{)%v?UKp{m+Va z5kW0THH-7QYt$pYNvnWEY~bhFNc+$E_oC%W`q$Ib>*hr1UMLAf(6%u_cz^xvEqHNR zXuoJk{W3Pcm+`eacg~=SNS@kr*~BMw<_khaj!3)pM$6wuSPQEYp>^IW%(zB?>hL33 z#q%)7X7}x(DECy<$!Wc!Xn%7Mvq;ilamj=ZXyezf$03gp(+y%FTNp8G-2baM5)jbfrd&aX_(MsyBhtwr=b zD+i%f>(mdaTnHt3C23xjs@R8Edm=4)^7wI7bV}0*#hNyO8dqbvJAkUpS{ZT)`(|i~ zPNvpoTgI^YzIO#w|3Qhln5p+FqJ!&(U7RH3$oU;?Bt;4kF4M3ZZ7QPobh$X~=kaXo zXxD6v0Ct18w)kw~PYc@<@Pcjxqg$su!2|{PLHT*F^CWCVuSNRIPl0tbl(%*X-a#q| z$uA+xD`faclhP~S_&BnXM_fVUJKv)3vH>2Qixq(s%Ez=@Cws<76`NN`_e)E+)K8|Ao>0CC5r^V(K@|w(L}bl z;Xt{;QxFwyy<2raVw~|gipd5r0DO68nIlZUBQO&J^!UFJA+^mmR`ZLcP$C<=(hI)& zTeu|2|A3kYc|E`ZtIlf<7MgO~?tCAFy8yk@!`U7Psor zWQ1HT(r!kKiz-E!t@@G0yoC#PJo3@5;PeNZr?UgxyA7PO{;7~JgNqj-M#>dl(~fhD z%hAyb{2eq+F0M}{x5KhW(tdhBJufnJDCw~OzMt2>oSz+fC;hqqfvfLd`YJ+)v+M&7 z-WlcxeEt|;A>7pb@LF#0uYdf$v3gU>%kUFHp}K^!D*+Cs_ww*JG3U3v`W*Y?%Zbg% z1qQi&U@LLMOypAk`?bx9Zr0E87ca6IX>e<8pSR>q?8@&WTF=_!!8cDPY#C~I`w`gj zr4dYgQ8L=@bMfR-@5RX{(jWdj>HPD`KMT|Jp3BcSTb#*DTetFs&Ew0D_PLZl3_SAB zlgGbd$~x&D?=u-!#|9!Su?=T#<;>r<=T2_fg^Zc^d68jHMkc4a%0+(`uKf4O*xgH) ze*OK7S=rpvr!NSO-F@C4idE}FUw*iJS-X0 z?DMf^*|3-YBGb)*eSY;DD)+Mf>b|w;gJ{>G58v(`xGdAW5H%iXdBEaY4vg#EW6TKi!0*%h6ZwY1KBwTTlxWROyKmws zvZ;*hTQNZysfcpB28r@21f*6NGR91xgF7cIE>=`A8_!3ZlMxsg$#pvAA3FT7&e^*d z8={lW$rI^_c7V^U?CBBnt#Eyz>YjMlSh_kgVmvO`y^lJIcMN=328(mkfQ2U3jECgZ z5zSz^4@#lq6s#`7LN?OcfDDKFQ06^0l|7gi?5RNhzCZE%#QbA4(4sDx0SsZpJvPID zql+zPn&(m~qnwUmB=cRT`#9me2z|1dl!sVNJhD$=Z_aT25$l(VAcq6!v!mWpJ)VS& zkYG284AN5j)!&c{$9r)zAS1CC-~N;Ru$%%2@al#oum&XTrRE^v+t#dwa7-)@0u)SO z$oCDvjmpw-hW_W;Bcg+r!w3!s8KNKQ7zWHw(?f7hw9aJ~bKTH(nB{kmH_=H;QWeBO zJ-+3k4Ii|gMlOVqE#^JITj+WNfb9mXM^kNIy;wZ1ke`mOyD7)Ps2dmQmH|-QWud}; zIIik89J809rFVgh!2On_o(+au)?RvUsj6erefEa^^mctve=jzCZ~;v3 zaQLi`WYTEwlm0|<=@Q}lp1k_{rWA29o(4jSom#6j~i6o9m6ZnaeA#}XifXv`1BMwnO^QDWaeaM<*aIO5efUb z)4kqGzL^rVSPyvdBIzA6LQ@}S0vV!|h2TgYqY8VG1s8rt>0uleBs~`lj~{+jiT6OU zy@b8%%>*ZB5rO);VX1Jy@$u{Y=1miQ3)HgN(Y^)DNOG!kgh@`9$OBouv}=M05z@AT z?{1VaN9FT#sdn{PJ_WcM|(;8=vZ2s7bD30dB^u9$}MGy`Qm@$$7 zSm&Gr&0yqG$~IHWyzcU>XfyqQ0wEL#zvNL|Zg=U;%-2iWB*QS|%fKN8@TR&8-^IMg zVN!wjx*uu|T8Ke3aWk$Kf+=q#$X*__X$$yf%Pz>c0} z4;A=f0mG|i?Hmx|eltG@vZu*O6`ASZ2m$8HEQAooysxNoZ1Cgpjn^`ZQzI!-h;pW( zoz~;tg^Y0NAvfu*%-67L71|*gD;}VUd%Trq7umu=oFc?LvpJdX(n+jYF1u9P10wjO zIxKdk<7x-bXBx>hhi|vKm;&HpHxDz4wH^j+j_>mh;>&NCMa&su7&-Ze;$xa!hjt9> ztpEjAtMIRjbo(1KeQaOSjJ)c;-v6{?v_a`d0vY+TNZilimcIvOD3HS4aXcz_wT#}; z5*dEeu{$zk6hN5j&GfuNzejdPJ&mojyp~Ov5u}at$+H$gJ0g9%>ggPrxkNx#>-{@b zuV#*CIt?y<{$li8wDli-v15_jGK6&($982-*?d}?mSYz@`PSM1EN$*X>VSw+7^2WS zRgPg>Wb@$iDje&T+H3Q$7fplyHuPt}CN7tMH}s|x7xyRpO1OKVNNDpc^5frpAh7SobL9q>VE^R1 z$MOw~lMPuT3NIL35F)V4W8#<8aQ}mdLO9T~plyJsheoV^0AvH;py`E&OY!kM`_AJV zQTY3pkRN{+hPNPBIU1st*ku+b{LaM18~Q#M$VSd8=(N6Yuf}=0BUZTH1=Gl{mt}S+ zfvXy{r;X6Q2<{exwxhj4B)M%jm|xK2*x>LSLd6Caty*}$S1fOTD`{g*UQ+UFyqQnw26~eJ3{>hF^|4nH@8iWX z%Cz3A#m%}i&TM=x<|-Qu>rmLN2ST6Sxt@_l&3%CJ!aL3YKMxBmG(hMZh%+qkeAP$e zgXZeKP~Hrl1N*A%fJ%@qh0IBj!>l9t3FHa+UXmL0zggR&##+?D(Qn8#BSJ&ahh9=v>vlkK8fXI2FNIyWftOL*#I(# z1#nuBSo5LUNre~S=$eBJ&6_H?w^090Qc_l$i?vn1H2Eax5zWK}GNS49E-@9Tl%Y>y`?C2xR-_ zM{xD_LKK;)&sdLIs07G^%5Wy+W9aw&A>ZeXLvVO@Z(hA25`r#MdpK0j= zNiuT$mVJ2~t@P@Ks_i9KG`OwFM+JhG{qRK>8D^4s>EX9BV0Rel7!TQq`}}7F9)k#1 zFN6oL2Q||(lVK)(Uv0D5W3lMW#>%@m+ZEOa`{y#aeG%uujp0vR#`}UqJ%4DAu%{!d zIf(bQGB1RSty|l-cCS!bU``?^dSd;*)dozE( zV5=x0%BU#l66#|&#N-N>+VE^m^+9Jd=LPU51}(X5KZklnR$BL9d8d=c`JI#=r}j_T z8y@+@DHqX@R;QtP%SN8^&@0wk5?sg&yLz}U_`bAy+{_ZgmnDxzqoRH?i2FisJ$uLB ztMnPJV$}63P#Dzk>oJs&zntje_9fX_;T+RngW~0{z$l`l!M3s{}z4(p9QQ@iH6MW_KQ` zzHa7Is1cS7->i43{ve`6FcoH_k$xPMuc_DK8p2mOxb?|0*U?C}GS8i@^vk(u=O=jo zC=y1xKjQ~hEuKNOE?^TD3r|9HfWnt(6*k)PE%-8NuO!wA1mF zetoM8-vZcsZ5jwConsj+0*tNyrN8p3aPnF;%LwnO`Fz`|6s-BzeD2&vf`uNznfQs= zB*@)rE*NiZIMuV`Z23Yl(jiG!a7%9{l$);rk4Smf;(r-=aEBy%g@Q&p+VQLEuWIgB zc?|-VLd4;W$xEdVnkyJ)bti+S<%E8o3rRXSqs==x=YnFfy? zZnnWi4lHwbH9WkaRUqnmJf`JA%U7J%`=NC%md!gc_Xv%03055;8==pVUTo7Af|6ziSP~S>Q%HX?M)zVW<}E=ht`F;7A{$n+eb_ z_7R(`P;8p?)o|dZ5xDZ1$Z>&L@&BI9-|{<%D8cicu9cT8g|O89e_Wikl1h3M`1vdk zN^P@9D5BLgoLO}v*0boc+H`cNgQ4$8oYD_R-N>Lj-C7q?*W_-s)!mP_kDAH9R8l=4n8Z7+ z&gdjMU2$)#VddTiEd?DAx}Uwu{TS3Mzeum&(RDzAKBV*AEbFY$y}>looe7v z=~{QWf~5f_ce(u5k%jRL*0NOrd)aNZ=2o#kU#g02jKX+1eUsm`#SNE9UQOn4ar7VQwLDlq)thH8?ijyYVky;dDylcx2NkdvdtK)OyPFdSyE~;a!Kf^K|VPX<7Gm{CSAM3 zLJx3Vtu|4bHwVL`s948w^CwuxO);zs^cty6)^UU5>*v4#wJj9c^i-k5oZD@Qy#T5A`0o;=pP z)$`QJxl>m>e?D{NyXWb1LksR4RX#fZ?o9Wq^Xt5?eVM%TOWS{Qwo>)~|D@-Ji;q_C zI&(%}u=jE6?2n9F3_9!VTKcKFJ9%m`=JKS~*0&#XXd%a^oE*yc(<^s8& z8u*z1CBHPrdv?w^;k`!vk|>{E!h$Y)t+dDH+u#~Xv|la0gHQF8kg+&E&Q2&woCla$ zpqh}6h20Ll;26yz8Iyc4`XEEG`ubr=u0S>xXXrv^y|Lfs6gBq7_%<={;eMBn3{IBB_U z{o?SM`;=lSl6k>>`7gUul=iL@S-7`;^P9L5|bH2{}y1g(HIpX#J3a=(P;*&>i{l6a9)} zRVEH=t6H@6WT?WvYbmp4Y4mgywZRZ+kNX3AhSqquXr|XJP16ZEUiS4t0}V<#e*<^`Q1i}IgK_Otd3u)d1Fv z2Ba{B_Mec}zyU0dx`AJHTE(cg7Udx!&B4ekW?Z+kh&`+(Z{Q5?l7uGj1 zgY2K_as{=Li3!k|6ctTVSd#nA)7n|#FVV_Pcemjpc=N7o)!Z$`@DIIBeZ64pb`h=X zg58JGTVZoAz@-)a0nax!{u+Ktzt|gB^Zd)H^6T$6{Icx@@x|;=`He4Ue%ao63h|?s zz3BTN)Scg_j{FaB*9$F75I#eKbQtTgNa&PX4eJ`5did0~M5RlhBOzr_VAU(GF4VP> z8=y$LPX-mwOHQlF7rG4bYT`@bh9&o=r`crf!v{`Q*KyH)B^`BnqsMIin2F{NHS8|y zKWhJNW-*V@sHrBcaJqMHFgn7&ac`6Epx2wz@kQtN9znGNi#-(oUp4ZLW%?7d16PK} z7ZSe5HQ@GY2ZYD{559@dkKNn+-_ZYCjf`H_63adjN^HEl`O@b@A6xPk{&g^X``o7o zM}mM39{%l}z8%)XrJ**fE~VdBMK|fpqfU%+P9^T%YVN=ef<#eCBYTgR9`oK_5Kr`f z&^$SHJoH(?(w#$rt!589>_4_79ekVI5xeiy@|&lYGi-C?wppCc+9yuC*Zk<>rN7UV zG|gZ2Cjou!?Y>`jpifKiVXxvs+MPFVfz!#xgq87;HmX_PaZ|A>y~V{PHB)JI)uoXAw5T- zxC?ge3{WeBAp^?8>m#;x!L2r^KPr@#iT`o+!B07wy0@<)%|)G2R$N*Pd3a8~T{(yi z3WNuIg;_{jEuUGaMx`{graYXQK#j?E`Q}Ha@J}HeZ$h~9RFs31BtCZ#_ib*4M_i++|JhRXA+q?iZ+YV4>LM+^(P6n{P+jN$vGmAC- z_)Md%Y=w;AZiV(}I4!Pgu z@h|?xANRwdOsISH!##R5tEYc~5yXSVJgFzkSzz^Lo-*j)S(=^y-ujvlz&y}jEn!O1 zqpw3>;Jq$)5(hWdHT*4CSF_VFXt^6V@KGX4XqiVYG8TV1lUp)cqg1wDu5ka{zv1&L z`?@msk^z6Cz~Z|WgW`Ae3;@m038MfNB1RnUhu4Dcr2V~)gU^I$ zfgQw%Q+Qf9rAuNC!St50mMg&20r<>Tn|#S1r^Uz;J@zz!OXCxU#HHOF+d1vDL14N% zOT<7&7;qM*ko9z{sYkjw%+~d(a07fynZ*8UzYiox(r6d$c*HlQ5Y=L%%-e26t~z>bxA_@6A#a`%hiT7L%C6&UO!4p`iY zHT(7G{rvg}0IzSg$!rzX0XU(S@J_(Oh|6a<)&zs%vL^zPS!Y3Dw{~X}HXC(|k@LviCzm|({pZs*4c_(+ zhww^fsX5_j7lqNoV4;@qOyHvh2n}_l&ul@r0P{d#Zo}3@b788`%S~oJdxEogfRd|V z>11}MqPBc0HGPoWXrSP>+s}g7rfmDB)(IGjHRsTdO%a9$$!A|#h4g1!R*)+=ri_pF zIsf;rLv4hJ4Jz&T&bxKd?pCB&HK_krjHhe-)#km1W>Cy43s%e!X65-`kIL zi^AUN!5ex)>soQ2A&e`(V`9qO2OtjU)u~z*A#Jr$;&>|lMR6E*B+PW2W19(vRY0cC z`q2e!e4K#=V}D^4t0+>N5B-1&V_PL@U;+QKx|;`v$3gm7V3>rWG5*d~Bk&>xm5 z#@l3J9(3U9Kd2TIgzI9_<*awO#Wg`a_C5e%f@3~@!u{O2F-BU)OeM_S?Uy0{scsrq<3gB zHy@e00$uu5_yl0f(l@02GN-UNh`Cl~vzDDWzT&3_KV5$75c!Xhdxec%_r}v~egkc@ z0APoNih`Vs{dlR?ngPHDFTO_)CtOW4hZj|F(7Ae~RLq)`tiC4zGy?lh5Uh(_{;}1X zCT4t?;vL4??w>+RJDFhsIH70Vlvq9hKpNkyOKv~gkN;|pzmmKY8=7>8V{4FEG1*>X z4r4;V%m99GCV*$oPNZqmZvFEtiB-zQ6@N)!mD8q3VsTm$ z=6!4X&l37MF->0O+6Q7y<308otmXv7B2(MzQv{=yo}?lIcZebV(^daIND9IxDtUEHKoA!(-VHkI3H60yW3NEnG6Z>4IhSHVJdAF zs7&6|l*uxO9QsKQ_hwr-HU+38v&R+d?d#qB@o4~2ze9~1+S{W(dvzo-O&DU{ON^+iSjdD-OWGG@7>I5M2n7($ zXV4`IzE`a^HB1p5*|nO2^;*at$VK(M4nJ++=Ys^UVN>;R@2Wi*y(GC$!W=SSp^SK+ z4)P}n0(19=^M`j*r?bxX3%Cj}6SQ&!e%|>2JLgYxLvRefnY69xmq7&O&5=@9 zboW8z!RH9wY5<`}gzN@g_09>`##b-jhSwt!01%^Jd%KS8S)=0~02!0f##>mC3j){~oC&+n-QsRFC3 zT1j*4{^weYs(xbALVaL|!7PYV^2-D+sJ6UVf@8|?{1%Higx~r{wv(kBA9!034q4?5 zO;<4_E?wc19Yi4%HYW+^f{b2!i&_e?f&Ho3p?-Y^B28QT&fa2>A6cM9;gW4{sP?0V zta@dpr`aSMH326ev-}y)WL8-pSC08x+n`v&{uS4i$c9;RA)7P~TG*h3rh4PhVvIlB z0KmbDJh6yV?j?5CJ$(cX8{45>$K_ja-;IKAO~`GgrhHOHxVgU=N%>{zXMWWHyn2bU z;*G_fl2JSP8Vuj&BByfFnwSQuLWTqldbR#mcw#qthHmR82Y!CC^sEFp%UWcqM=jg| zSv$n)5X;}6ut|NFK17O<4Pv|olEZ7amuC+gWLxeCuNSuN%3Q*D7l!N>mlF_6l?nNN zX{@gR2>-j}e8PjZxLz$eu`qd7X2E^L?9n$rFmzUFGtT{v{B4(|4S$0W!G3ZjTK1}@ z)+)|MtKR$|i5$dhBuNTK22?rolT(9#i;vtmzz(foMRj-FKIr`4pTDZ+e!IGt^H)Eq ze3i|;qt=CE?LTeLh||oal+`;WWZr2PMn3qY+A1qWxqIOF07r%dX~BG*+MrOQECy=M zJjH;)#g7tFd%yk|K}M|WDdLXCG(l;W_ox2A$nM_Uj`PU-*TDeRWG}39s~Y_2fak;N zEu!0lZ?|QR-EH*F{q3IRr)$mHUl5BW>SJBp=iO6xJl`o<(ZwVGis)0SdfS5i|FXT$ zBzoiy&bxj6o09pVwbCh1nzjbfPh&r4O3P@rPDFB^~DQg7{dt!j^CFpFm5az1D(=En#Oz1UL&jSnOpAI*2Sv_$_M7gqI}nU; zv9I;9IWkih8*KTyK565T*A0m~zHM$yZ&=uq*_3E?`wByc_m?{E#Bh6p>sPg{juR=)0%5_((@&Mp4s$2 zLJA#|%=>}$ei43fdcf+dP91wT&EoE}n}J_1XsXX%b032Uw* z%r9u*6S;We`bmVvmC<33qV1}U^V1e@XUGe-aBL&ZbdY%q%9mDEba?E(a(9?h;Bz7% zHYfQ})6=0$ze`tQ^LITu`VzIp|9GX6qlj3;dlHPuDl^AK!e1S63(`xfTtgt{R4-_-gX+^m3<$WJb zUJZ9hZ3Va1MtjP*y);}5bJ#*l!`ocrgeCUU%}*OUJ-Rs7-x`NeJs^?Wo5&nsme#_9 z0_wh2yw^O!d(Mayiw4lOxKIm7gs%2FvvNgO7Cnxq;KCcfUVMbPREY|yQsXp2jJI(o zmz{_>87oqd0{bwMX2^2ko>V|r!*gw)R>CHu$X>afl9M=vy)qKHJPuHLNVSant&zc# zJLExnq)n_r?=}ykpN*jowo#3?Tj11c78FpMENfZl z>W2=|Q2*u+u`cxjCiPMkQD|p-qYDC8#*dc3(PQ`qK|K`ox+&Lv5^J7GSfS1rBwv1 zp=EF$CHp)$nO&e-H~z})LA;!ASzFE-=h}XAj-cg0<-a#x!Q?R)P}a@yBIFf;*?|`$ zzQ#|4psb_8t-oU^=5)f|GOq1Q%@7UaX>&|;vy~md473Wz@P8CU`#1Hc;HMI3QQJ^D zb{M^W7<|!XAl?>*GOyFh;;TZUIqx3gakbU9&FwZKc4+Xlpv-j!zy;{TgSiitCK|c* zpW+DmI8gmH0ofvN%<(v0#ZQ@b7^5$J!9(n-S|r2a!;O$v=gnQM;0G+BsQ=tt ze~rn=AE*;qbogxPOto?7T{tab+x>sGQ7`O{0D3NBNB#Xy>SW~w*9xP*T%Mi zCRm#EwfY8JG#=gcznFh}(+?TeXVsbIXfM*|c$NW@U4POj)^t*al=7U9vmHYxixUhQ z#~d2IT}r&CA-Bu(Ak!R#e;!+sG4zqX7k>3OrnQK{tv89jdb1!c@sSv~tE1ng0ba=p z2iy-0I;{Dq?H_Dl?I;Vepd)^QD7G>(E*WX2L3e5Z8iZWO2X63T><>tqr7}vXk95Es zt%S=gODkeLPGHOf=mLo7q(uaLLEDFu?*QnUhs;SHxXFltF|Lam>I6Voaf|etpIXu5 zBN^etq8q&E^+-(l#wIIxxO_-`o=r2?VSSl_pV{P})=6=p8vF~rNzN_yz+0DT{_aa4J??cT<{XX z5h%p}B2XJ>NTCQVNXQk9q1&ZPgu239y{jPHgHvah1flJ`kayb(;nYH`9{4$)f*B#N zfKVUgXm}_=93>i!=oK21=OQ4)XmadU_AyVBc@ZT;TpSCa4~g(XK0?V}?G5c&0pxD+ zB$33(mo(}{9ayWO{__*{cM%F!FWUjC6K%D5fI}h=w3fQwpXS8Uz{+V#(02duH|%*D z#Q`8&b13yv#DfqrDQtHEfO3)&wP4L}T1=P@lPlh1pSF=RU}x*)aP1OG0-$0YDg7#C zvgz6ef&7I5WkIt@kYX9I-zmuK(~CZch+G5kNVh<87~Gdi^NL`TFKN;6rkbw~dx1@h z)}sVc?Bqw#MWlcUFJC=OkD+ZxF|YI{pG8E97JaCdny&UwcJ!?}NPSBq4*wud?gap!hDGxB)((_yv$(F)4%KJdk#|#B797EZow$al1C1cP>*wn zB7iz7g&jE1WPyeWr|s5m=LrwCv<>oAQi(5IpUuOaH=v93xGDpwN{WsU=iR-;uzpBf zX}~l}v8ER(FL~t8qr}~iS1TmShpEyML{g>bhlP`+j+{n@ z17(FCjACQ|lB07qOU9*?w<7dAUx#2U`5l`du8o&yuy$f@0G#3;D8!v|n>|EQYQeoD z#Q_F{9zg3E_&6_zSU&#Nt_HrgYN-=fU%=S}kY*j+?ATa0Gh{ApNw2ZNBOIMF>b3#U z{Kl6`*rW#usA4gBUQC%XP|-rX34{uS(0n6O#HM@{lL$Iz>v+NnP4hwZpt>+7XN zB_EL@O4$MmbGFn)#k1z6#14phL%5Np#o9ShcFTzca7IoS`9w>)$VPgx!*WCRtd3sx!(-?e7^yTMifNRmr>XY1cwQ?Nwo@9!pf4LOkV+UI)6_F0Y=k&ki^9^q z9_|KPj3sONC!^Vj-@*Om4G6qpeLjSKBxu!wI~?1vw)3ADR>E%OU0#cfGx>tYLFO+(+Z8ZkT=BUEe1S7 zl=|jx$!h0)eFhZ82tJkKUcw$9-*SI0;rd+@qO`pK@=w!uW4x!1+FfXSZ9u@><`-?w zoe@yUrhF3-n$aeIY3Uw({P_V={s3sDA-2zX6YLm5*TBzG%uO8y2B=#!tBN!g`82{2 zJ?0>8D`L)a_#tsti9aXBB4qeA0P?3I>{UH(bT%gesakPk0@T!CLZW`2K-4wZPVD-((qnVgui@m z(AeQ5;IQdo=gb6DEgNeBkOz3kv?Njvi!r4IW7*i>0ug&?o9EdmN5D!XCa=BR7xIdM zY{C-sRo?uB5Qn6tzE!0N(j=d%b6MtdlNKUqGOh=k@vxZPoFV75vFr} z-3G!nDLJp74?pKrY6%Yvm`Xi5)PTOKqtLJ6zSLG6F`$PvKCUwAA5wJQ=&wbF{g3H#2niTD%$^?cu^Zh zeX8Bj%OjjmK$n!Gx1rtax=|+!5J_S?Pa0lnL>sl3U>brcTKVR(p37k=x_rVOalor9pglhM>7>Rvi z@TGn7t@F*sWir-8K5WPo%CVR|^qV33s77w7@WVXBbFbrLtM;9p>W#=Q1LdYl-! zK2~4=DB;wOJ^W&nlS4Qk^Ilt| z?{BMjwZ&L)b0U1pWvCcNOF)M4--MZ=v%>I&f}XqBJiS}V{A_s>yGk^$EB5!{yKh6{ zYPp7PGfrrP!mIf2=y#9a{^Ax>=pXDnHI2EcG4&183b&6i9UWJm%ZhKCSszT?ZG64@ zwYID_^jdJ%RNINNizP1;ANvmttLZoVCyY6YSJumm=bu~-J7)Fz_wi5vUP<2b*T&T) zpNxOzT2WcvVjXbp_p}qlE{}?;#RWatk65DHjV_CCt~~l<$lNCDN7O&zflF>p|@G?Qh|+dWxYc-*tf~KJ?W1(doD!f`_mzM9kh?^uyN+k;iv8 z_1#2(4XuA(vick8CFH2=yM=b~1Gk!lnGd0=lC$(s(xN(%T5Y+bE2Lp(gln}ar6Via zX5uVI0irWT9BfZU)WzCf6a{&$D0xD6J6`e*?qU}V(N55pFmEfXS9(ox)mAyZ(*(y! zDU!MjaiN{=XDoW%G&r|Cyh>mcXFL)qr8h6_$!x!6=4Z2chTzaCabNMw*eWwkQO~EH zv>(9Pl@)i(5RI%RINvD#S;JBJ)^*8S)6e*~;(h($2@5<-F~PUQX)(v)vbM0A(%*yw z(J-tN(P(l#YZ@ih!<;K+!EwaSb{CGWj`n&cDMO|VGz!Rz_}LC+T;+*rqGjflZ~}Wk zBf$8cW^>mR8P?7!xfxy4SPKHX{a8`cowrzf^?y^>5W-Vf0@WK>(5^@$|BF$k8?U}93U-yZycmW z{@XcZvO4v`utj?Fg`3tNZ*RY4^Y+{JqAyRk+}QU+U26Ajr}pOVJBu$)&h0L_iZZeF zJjy+IWVFL^tn0N+e(~{tG+`&hdj~9E>XFuy>FMf1#C+zCTzgh4{vZ9rE%={|6{<4x>5^ClkG zrZ^VHWdr~rHW9VRcGD^1Cas)uom~~*)lP)#&qtf!23N-^l#>n<9LA}j?~oC^MjG6> z+OqX2^vXm4y+EgV$$2wuY^{)hZPG8!NlHT?9|XT|Z7rhdX2#yDFgdlteJCn|`~JPBygT`Q}s z5R*)e(vmN**@f&}@?Si~d5Db{q__E;7pk-3Wylrch~OckLNTl$b*LfV*;*>ubV{>n zUgn?ks6Lehu*RJMp7!BcN4{*`>WkR@hEsK&@23#9V!6dRvC<08vF$p2i?a|WE#*iB zcnjWu?}S)3W_V?-;t4kOz&+mvxHxB&9=Bq&EEFXpb9o_4p47H)oA+qx%084AH&-+E zFLg((d?*9Q70(}!9+JL~PR zEKTYE!rs-d4+#TF&ZS|uw%gXGt+kNx7ycgyF6mJuBD0pSBq6y5-sMu_`+?-TEc- zR=|^oH;cyGN%L@k6%ndY-cxbtr-TuKjJmpJ(82u*W@S#@!4}jB=cw%H#M553XLmTb zZH|grKi!S%n>n$hk_j_H|3APQ`Fv#ye|6J%hun7$*NvNX@MxgX(SJB9uCQ(OvG+UP z3eSIM6i=8OUm6o)@%8yHKVWuf(aW2%6$rq~rl&5nRKaUaZqBIPj%?$Ws?dbOp zi`sv*E{Z?1?#XY1mvo2z{3mDcuah4xyYv~|rKNkjrfrs9xx3XPs>S*Rapg~a&c(Oa zb^rXLbH|#F9T9u(eDVHmu4U=9Keqn0_tmmZ6VEJeeE;!N$i=Bm0I^YTb>sA^LsHc; zrU3s#opw=iKQ3;nm3(zWmS+WhaB-207`7$Qu7izQ;ABlvHjady%y{PHX_|ieo3zY) z$k>%uB%%8Td1^*m3mK>;Lay_OwOUk9w$EK0Kx?2VJuBzkrceX4hzn3W)i?DN{%Hhk zLc%B#y!!Rp-(oPsSc=aIWtspOmvIQS`Wk)o!Rgj|jTXILia3P)Yp5 z2O|V%d!-ENy&4|-OU$CBa4;4?tZC9xQijg3RJTj9(9}5-J_n)i9Y&dF^D4>dR??iP z3bXm{)I4_WFhb6{X@<}0+Jucwv2dwhG3yfFKb*+h*NY25@w)^ZIG-frX7YHXN>}m+*im6=)_0zgHj5f@MV- zuv$;DSnF9lA6x?ag$58v!C1=t4z=GZPQ{lvqn(TDya`<;U2;|<+S7QXEb9EVX^e$G z7yx@$M(jR5w!XJ@m$>YoImoB4S^G1_9acXL=q3Ir7j~edu~i^NF6mXQV`59Bm{mek zzh303S(pn|ow2*UQB&q8u4fJ)Z37Pl`J+6IeSXHkWkvNXX(1;yKL2GAq8lN;b&p4p z+};40Xh2wjIbEe(k~Or1tuzrSgpD#TTbaQlNEeKUEd6D9B9qPPAa;t}Qp#L5Wl2#} z_eoT)SqSk6W|vyFgF&!lBRzpKS8>^vD`@E`zA~Gc>qQV7f;a22=SK0z@yMxmvVEP* z5)MJl%T4A%DpO`Vf-Ya@9L-h=0Xee~oufsWsX>4BqdKwjI4tTE&`CS)Ubw!VDS(fT(w{C!DY^;{jwB9 z9fW>H^5X?2(a94$tc?L=X{yM93RD+}Yb^7A5mxAY_JeqFc+pV6Y*;enwy6l|-KenFAS=VLsXpcG4Ytqp(8~h4%`-)@UJ1~^ z-n$5-UgahPtk*%C^r~zrK!1ir^a5BNDyFyEY!FIes?aIW_W7HEd!gUQ(4cey3e{F; zKSLq`s6Nr7M2f(8V)yzyN#9U?aMU~#Qk7_Aj?!zk%!+FXvI^MjZiMFlT^;~GHL0Q9 z0|$P%8vqxs1wnG#qF}!(v0|<*V*_@T9?9uKYfhmx_2@Msm!)DweH|x)SN7!&cGWCT zaKtr&j$Sr`s>?tw8c;4vL3z;R%buAA^~ytqx5rY}JTAhQ7%&)(44*1bZAB=xsGI=o z|6WC>%{6i7!R5@-rPk>G<;vHJ8xFf4*~M0T8pme}of76{Tt1=-z@oJni2<;5E-h&+ zojHRD7{Me!2=)kQ%S751Ap*Lt9lOxR1AbxotBQI{Nee@&UH)K;26?OzitfEvz{F7C zgI&Jdr13~W*>bH8>KxsSePfCR>R=LXU=W$A$-7q@N65#nu#vcuEki61P5gM*8 zV)n}YH1hj;<)M`_#D&Ubywc5CA&yy!`(5Cm*4^`h(v&Cng8-Kf?1ro)W3KI@@s~?W zY{ycT?9{>;uTofe=Q2yzWKjQfRxT{LWRft8h)tpR>q`epkR#ufA)18OhSlpK%q9cn zy+|p1C%=`3-YLR<)Ei=r$Q2^g?RUy8{$=*P%9wwV0|R1a@_`VZBCc_@5W1gfCa>=~ zI-6ws<2wu>dfYjmSfaro_>fgEXSEc{=R?c02&R0^re_Lxy$LXsF5^SGKJvtX${R;_ z8bLhzaWoqT{XT$Qjf2=s)h0av0uWX=y*UM#z=5J`*!5vg_;FVrjW%$_7>QQClvZl1 zNoIv{sYM6kg_ykiU`tX=Fk6v!>F60f_JVV1X$4@Gr!Pvl9h!pOnBtO@MJUu_VO2c6 zOO>W+6^Iv*oqtqHmZ4(QrQ2qOLCzRQQR&VRR8Y##+ftNk&S8_fHlOz{%f*$}eMVVE zv41EM{`V{;dIWUi%76XY(ya?&(Rh9r4PAvNyi8QU;&PEzscS7`@#Q;CUp=peQvFr0 zViD}#{vDpzEY%<^Hzs5`uc%WLN-Z9gBwtEYJv@Opv%yJ5!!6~)7b+O9Ru$=;J9QX} z&M{RTWG~jY+(A40gDELU_&dCCM3pK6&x*^q28i4!bE28&Uqd^KaqBoJBT7|(%P1K| z^199ZQxJ~bKkuypC@Ck8XvtBey^H+%P zz9B-i`l^HYJQT09xbm>HL~)bjuM7qMtm=HYMGTU%PB zyU*TSZ9SpDO0k9fWpuHElY&|`ilFxbcdjco_LA(3DBrax78Bu4i*~=-YUYi$Cd*A5 zpC)+(BwW9D_i9C<^SUeo(qHGu=lksR$B>dy$@25s)c+u;Br~BjQto30Pl8|5!L5- zHmY+u1pg0ZDZ;ecizwK)v>3@wYLhicr%X%w5T&S46PF*);CKf}kLd1}K`v&mV(_F{%R} z8EBYY!6E-Zl@&_CwK|hj+T9G1Le(OpH$sNy&I~oG|88k~@)i34nWfMvml1auGvSbh z$eqXJN-Y+5cj_1W$Yl>gUX^=vUCTf6BA1}RY{zR6|1jbzO%J}CbM)P)jz6X4$;0^e!KH!Cp6IZGw?qqeusMQ3q4?>XzNxX zW<7v5G?x1=6b)?=qNnv}UiH$;az&)BG_pe;0Dr3$DLuqxoseqsGG%W&vOoHtFx}q4 zVn^wSY8Qmvnt}|0&@VM-z2*mFfbkDJ^r{QC|fQ4z0*+Eg+|DQ79TsDF&g)YceDg81_S-@@8j5PZNcJO1=#@3ZXU5f>A%V6V_QnTZQLVy<@)lcl506#18@I=)22)Q zyY^|zC&##>|9pL3by5(~$a2c}43(dVsdePK+;*Nj5l#1v%FJUPTJo#XQFMAo)L6&J zfioh=v#TylMR6tUH@(e?d{9T%&t(ILv1*oOKm~u%m(71Uha?t^%nKr_o9)B;L{WA2 zV_o<=#wojtg1F$#-YxgoZS6R$^rNwMTFZ_!@s%{q0J|QPy4Chp(4sptw;#5&a}+;( z=)2Z_(LlkK`XitG=VtC4emS(|&!H;E*sdK>#6Db|L+sgo7yT*~tKU`cq(v=^HCEI- zs5!U;k5p=!A8a_NT-)6d^UXdfPE!zYFaQGI?4SluXNk$dZ>2B*9n~yCdHz0ze* z6)hrtQ{oyW$$I8#<3_I$%@89+Nsri-yV5vp5qFG_clb7{pe~)9k2Hb2ZioG1GsMeS zNlqQ7DH$Q-qPv0h_tgrr&18Hf-M2`hWJG6i)(yW{X%$aTe6|0uL zN*#ozy!WgL$gPmdfE)jIcQ))U(Hvmh&5L^OuVTrO!8bDEL;Fs54AFxBQ1brr0*u<3 zpoh^xp2KGA^Db;(`XW8fyjvQI8JVy0j>DbkweO~$gd!}LiU1I`C$?E^xA_WBirM_3 z_Y=`&oX7uk(PD|}fTz_|YpKsV$M?7S3eo`1I?o`Bw0`Q-FJu1@q&~LB+PP#9Fe8RoJ0= zE3XoPkdo9BipM7J6QIm;q`a8m4o$);`+(*Xp(cYvg)uV$%|6 zP-zuzx_w|{l3EZOd~e8*M1N1efHB)Nqxi+$;hr%(=whB`2-9mA8xOdW0Svo)iR?(& zO;cki-U?FTUA(7KAhe0CDjKkmRMC*;uTPbQQxZ__KEv}PUh?t+e(9VKXkidz;A1Vq z;hq?37YDV!!wyS12JNn)uVOHJP?L=(ca6I|w0fd%l^8-JQPanv30O;4* z$mKmq+Yj0*p(`iw6ze>kVPq?UgiZ_J-N0}dv#0nwsT{LH$sX|SDWV-4Y-o49=UKCT zMs{G2Hq>f2JSh7B4_>7L)KjfRaN2fRxWRx}heJ3fegqd!vB5YVcKME}2s=1Hc%!k* zW%Q%1={s_DyeZZ@Q$QfE?S~b~P)>%gTX=T6Nv00HOj(N(?g&Yc8cY4&0Qhi!?&?J0 z&ABd5!eVDGz0Rt^(cWQkto<~#G)2LCR(qfTc*Ps&!UjD63Ert(v;B?Zi;0p`F-7T# zQ#5!q8IOxynGk=yAY-RF62JDxDf4z04(Au2_Dygc0Vjk2gfz~SDFa+ao}d$?Ac}85 zv^3uI?`$P*Sa3^+J$%0Pgt)>xV~P~VhtN_3gbvaJFam>ilgg;6diaD60PWW)Oxf&X z00e}%Ll0?rF3pb1U83=OsJ`K~Uh6t6mTEqZt*ti@e`=&J@AZT`EP%qKQOIow_ES^R zef;_(U7~BL=3}{OyA@G!O~r{@40@BTUBh#IQx#C$pJvy@gA)`9DXGI?mAu+&b1L08 z;xmF8SBM;cFIMq&t=wV5Fz4J9fo0^TZ<+fe{>Jv2r9q%yM}HipAX06)N<@P%?-o-BZow;;wisgbT?*c}Qh$D-wE0uoPlb4jWaT-Rk7}%2 z2JhmusdGt7ww&mwI8cxhYAF&9Se^E^`B(I|=u+WI3k?m!W!4~HYq9&0N@~nXfOYo} z=WW9pO3q}O=^+h*@!4*2sp*NKs{1$2ukl|-w^Dm>J^Umot0)pD> z5g&xlb4qh31%&wNQu2R~$k_2|E5A`WIe}qMWDYJ^QuG2i8uWmjB_MD&U=AT?o*w!> zXtV6OiX2||f0nPQ78u&Yt|f2FN~4^b&2UYbIu#`tGoN_&$oe>Ym9Q*CP9E5kIr zl?#h5dUv<$b6`QyDxKAHmM&35<;@`Kl)eU%PXlb42O@Pqi(KcA17(}>y(Y^$8jdg(wMA=|8OE@E3tGj zXyyaD+>_hz1u($)X>?WDM;o)1aCgZs45{9IMn(!7uz+bRH#MaZYuIM9G4XBD(Yz`~%%4#^uPW6hcUT%nBi3}W=k867Wtc_@-vPs7P* zMV6NC$Y4$AWl*@Xq~)D*hi^cODPr{>G30o_${p27@v7CB{ynduD8vG=x;jj4equB&k%hSccG$ zvP6xgqSG?eDW{yyjHQr@(yq=}(>`fA>U4a*^Zotz`#pYt@~3gX=f1A@bv<7uHV~$O z$aI1_#}BDmdmJ)K?E<81d2m4HiU0uW{+aIEC5s4ngjx*q4gmg4;TUOUo*)P%y*6Gl!Z@7Jn%4(5Besj@DlJTEE#BT0zwOve?6P=2Xz}5h#mB~hkKbN>LL`2`Cw?|h zoWHA{_x}6K4Daje#BT>Q-%>46nTh`#NL(mS{Lz?5ZT_xUQAhaGbQ3) z%Id3x$hS7}i%z!#99B1999%Wf8+5*UP*2?^XqYKd<1sNcPwJ`Fu<+cmv7Y(}nSo6N z_()ufZZ-0gx#wxdv>XREl>1cT@Kx$w(8C<5G@`>&(_bW-qXJ`k;AIk$-+G^Fv5%HJ z-HNpGf*kZix~O^`Y+wgnkknyh`du)YxrQj_No|Yd0B>1!C}jaKER(W_K`K+TbE1DP zic5HNMpePteg=}SU?%Lm#q2V2*9ej*^w=)-am<&fYH)HLM4~j2NL<`7m;loe1q68 z;u&E^%2()dxn7Jy5$I)=O6KCdATHz{e1qjquD%ZGNw?C4kftPd zv~O6xtXAsJ=s~F<#xaA4vc|^mJ%};DfURMDtu(?*DB&`%HtF#!jiE|H(*npVcUJqE z4;_26dYW)CSnlD#GX$k3Bhd~&hisohofn!-awMz@s7p78nbdqHhub27dZ~Lo)e@74 zXzvi}Z|`?F9B;maE>)$Jwx*P_*tZyE8akb8;%OFO9WB&&6R5v*-BM$&qvX6M9xvZ%+?x-&ofS^M7xh8V^M#06@OlDjvjsg>DGM z1x3Js1etr=6oM`>h=8Tq=pkcRkV~&gUW`#~uP+mL_@Ty;3Bqt<*Gv)AMs0Oo_Gd_h zID5RV`As$$8#&iIl-jUb`7|rOGHVRJ6fm8OyU>?D>KDv=p^x7JIsWoq${fd02eI`c zqC{%_?hkuf4NnJX4zi`7hDwy-bQ+)9Oze+dzpp*s`Mth0YUu<_`Q~oR^Y#l;Lo*$B zB@JdVE-~xUI6Gic{q!e)1)g)E@%Wh9HvwkGmd0k=TEKgl1yD0K#Clv}-zKfijB1D+ z4(yU)<*$$h5<2sg>A=WZW+FvU!I%cGgdz^+OLjK&I|TPo7YK%P%xkyQ)L~5YfCi(z zNDAN_77!2gO_t>K*H8DZBWnzlxAC>%l<9`!)12r`F&o_rS960Jcyr^(Z|NW$jimIc zm*kLQltn}ZkUR)svpee2F_yt<-;&P`G)YNt++vo@TVPfXUDEHNhW>FuuWDc5N8&+E zy!)+hA#*Bp?rB<& z8Njt!f7BaOdfrcZUMyY0kohoREbVhMQ0BT-#v(st2;6KMdgn)aeO_?W_M4uiah(Ht zh4&?PdGpN)Bpj- z6)-=sbAlL>LI~0UaD99k00K&oQ(EGcq6>W5yUb4n4#^N}#;w9-2s+>sUpaT?DgL3T zVjNDid>b&<7wC|D&!y{s4!!BRbNyp|_1(Q?eV%?}y`+E>;dG?8LaLt*HYno;-T)!G zNLM_}o6m#mAlX=X(EIQuT@>R!4$Xz@p1`YeVgK3H^Qc|=;!641Y>B-C95@-_;?i@x z3`RjkOD&uXg(b%6x~%j@L{$NMSuUY)lV4i9e}u&9jA}+a_dT#$zd=)_eBcw(=br_ z%fmBRT!zj&)#zdptfo52um#A}aW1}3?8gsvn+DgoX9fKN;e1|J_tsQh{|sXd)duDo zp|3@AeWv@{cJqZUr0jWi{XNUn-Ti1i?zI4zD7fw_m}hJM7B2{On&a_5FeNH<85{8I zgPEkOjhPzbV8C;l_dx<<2dhbQ5{vP|i3kuoB?|)cDhB$Ny$|=zq!9%@=Jb@1--83k zz~@4#<9kS)C&bJ_vgoC^fWJ~6uUF?RYg{u~a62{P)=ODHceVZI%j~v#>r5^yt@)D8 zN+-V_+n1mGy{_8qeXdgNJo#=1tD1E#_MwB3o|)qM#7x>UbM4n_%s?nJy>yAonjo+5 zw()w!wI@BHpS@|)Oe}TFhd8=S_}ldQ{P*p_lPWt#ucu0C{YzunEn!FebQqIZj!9Sy zo-+Vt1xPL@PG5$1jR0?)05K#UywN%e6OXwmp9akJ9{yJrq~#&}fK++{HonKCKs=y0 z3;=2iwbgAM4w54q8szz+)jr+T{_$d?JgNTw_ZB)jVd{D$cyRhJ$GdAUBrG#eRq=ef zF|P7OKNq$vJvizsQ@%3lS70~KrHkjE4mkG7aOg;XHek4QklmVT)4*GHymwFLXUxE` z%dq@#Z&%sFuJS2ArWy6f-;yKt7;xIGujueu=Wd;T3!apCKIE%z!tA#79l!j0SNw1@ z2+~PTnMcQ9L2;$APu_FC7F6ZQWrr4L|E%^unzp*`pYg$3PH-gM#y*XSU-&|-}3O4^F5f|aqX7(cIPZ0oXmyO3<=dM<*@H1}-FfAe4l6YaF7DtP`|+S{>| z;kKwd6l=T@OBgx`se;7^<^M=)MC07dQ2yWA4*XY@a?2s3x{AF1s153Yo&Qbp3f3a3 zrrsdw?Vtx`^whE}yo33@vk~r3PPNpA420cJ+xhojk{A0;DkBPVDaYEifa~N1x_e*9 z`(rXV#bIXtKRLL4;?J5_pDW!>H|(lP>9SKa*SMWvn6$Ll>GInd;jfa`>wZJAsFmGT8ctkMWA8++jb4wn(dxSvds`k3AU~6 z#keIIT~lP7iw4zLbMx!%Wp&@5y*_i|R(F_1p>9PHR;YF9qlEd4PLo0wu~G2*{;n(f zDV~{8_NR7rci658q{L1i2^-qiTNdmZ)p|6X@@L-zE*k+qo|*4BT@^VGe^lzrgalWv z%5--*#dYgwJ{&da?_$Ou4iBmH1wYT=qAPk|H>5B>f34#EFMOJ`x?*pUVc6or6hTNg zJ55~vmOot^2XLk_AMYi|BRqHFpDZ(52T=pK;Sz`AC?=>iel<}4J&x~`Sd zT>P!!CBZ5X0KUf~Eq8Uw(;3j~e{8Ybdz~UM^SRpr;@0RfA*c9T~>L+*0?M|67H9O(Y@JX&v+%e*z;|Bh&=Q?-R48YMS2R;cRbJ5GC3oi zacY0}x7w73>^Uyde++U~uFg)^PrJ&gMWy#@Cqhk9!&d~V|K1|j1F)qatH`Zh&D{%W ze~!m6Pb!<`teag2r0-Jwgi-@q*GZUuzISTD;5a(j(V>$pts3EW+mdX2_$`+QbHuhL z0#;PUIoCF36OJnQ3bi_pb4cT z>OMF?-VrRO-e|f_@?t|Bv@(nMTF!w!O)y!Xnlsn$9i&81a%2`r-ZNBU=fJ1@+o7}}h1+AG#J9VN z+{lNU=eJ`5SHF!(U#wkg#kBg%yVfeI`g(yK_!+tOfD@%LywJ_r+a=B+i8#V+_0_?h zf`3dh-YSn-JqB=D<4|&1t!&9XVQt>{ByJnOztudeOS92+V0Z^)=^94TPG zW*2iEyeRc-p7ATyFqb)Lu$vuhG9;ESB}@GST1s3lEv$5ZX>IpWUI@80LE1N>2KM{$ zfasr|b=@#Czz>GIFDgQ*Mj*rm0L~!e4ugHvlj_^cbQE!-U#8_O8DyWl1w+dL$Z;_y zBB{AWvEz5UR8y06Tas4Q2i#>`ZomYqDRfYoO4!!agV#^nP3(mkWvJGKCnvRZY?q-X z<%P_Hz?}dLXo>pi?Gu} zxDj+I?W3|V|2z+uzz%h|C_=PcOh$y38}oEch=Qk8xb1#$Yp4))Bu|60{2acdR$Mah z(u!sF@LdErWSLJB!uAdn(o3uG&A*~@m6%?P1LZflexh{csK#LAolGbwrt06f8Dpvf zTLCAiZdCI=2ZTrE?}6^qcf5-_mZjol)O>Nzw`m>1nCuqhFP7pWl#J8EVwis$wm@-v zIhqr9=-_&p=@mZVG5ZVWdM%3|$|#lm!lm$5Xj`p?_5wMk$a5Dw0 zP^{+~rh85C4rMMZKy9Mm?s~JK#G7e`=^eJd&V1Jt^gfHUuW!&ALe6iJ-G^0eN1XzA*nvh5LlH!GKk-Ai-1UJd(J2J=3RVS>z8MmOqu?dI6UaSP3c zCG$R~A`KnG7ADr_vD#WkL?2eGdW>%B3b~8Lj_q68dd(V@z4l#$tM)wSn!VzqyevA9 ztA1!G=XFT0?xu2XErh&D_1fG0SQ|GuhG=LXY#ia;&TZ{6%D)ajHU1Ii(_FKkOciTAS^86Iz?%5tdlnM2?G>`4m_cr;J&f z?R*R~$p#Dj&s$MDur*H-n`7%nk{R6EVLXddN{)wRa+2lVEIwSH%)z+U)z9u^RwRrt z&-^lZxKF2sZwkQEhWfw+$Hm$ORe%E4gJ!4%hIas9zr&!CifIG^1AQeqfNkrO;#GV ziQzV7VzZXs?FPXu)xN_@%$lQxcm>(=n}HN-ulviCWmTfbMbk9&ugpCxZcZkqSPwjX zj3muBVdf8KOg1rwCXB+F7$&6o3~NbMGfob;=rP3{F?`G|s7;IxYC)$kQDPlD4vEyYlD#ILc?rj98lxga40Q1Kz)Qi$H^6&#|zouY9p0%uI_ zQ)mSmGc||tT<;ue_y^m`@m7Y^2@1=0J?%94y4WPXH%IDX7rxRi{6VqlfMt$`CSu|a zk^w$5Vqdz20|2n3dX@J7x^_XJ;bV;fRbOuQM4Z!L6s|0|p#5Yhye!-F%tz?Yw1^Di zhhHkEf07}_D)XEzbg9s+XJSN8{@oNXx{q+%hOt-(VU}q^l%2#{TPB6vzM?T2))Kl^ z)B9k$@G6_ix8-9XDj!5mGg*@N?0pg-a2l7b-s+Ij+B0iA-b61FV;VH66@*MH(eOT}o62Q6D~oW6+nGs%N(@^%Cpga`pKZp} zLIRgg8Kot|RRY`(HEX)bH$J&+*vhyXLiYnvpvzKXGVRwELi$;(x~Jzlh++xLQaFgQ z38T$?uUQ%1#T_|D(vP+69|-eGV`7q&K!W;zexUon5k&G?^ge}IbcQZPdWSpot~34c zt5Wg^4ElE)rqBW9r7W1&AUc_G)e=bl2sL)tG@CRiUua)I2;~hB?$&ldNS^c7K*)93eIks z?YEqV7+n`D9S|{NrxAa3R=$>M{9okU~R{uW-yP zgi%_6T7@{JdPCK9kgFu7xnXAD#PeV3wIh_ZeI?Ja5ORUUR0*NcR@T2#8Wx36t}6{U zSWR9RPh+>mZV(b)3A7AhysO0Us^gmGSYmSv>9?5WreDklBy<(TTm>=v=uP;!D5iHZ zAuehtm5Hsl+LXfqpaR3W_ZD_Ss>K^yJkuz1D=ANGVFUr1#W}jF-==@xD3HF}%(XBY z3^reDV?Jo{Ug*|wPV#(hShq}Z55iDdnRF4TJ}uaAA^nyl#hRs`s-uOwe#l1{&8o3& zf){OKQ!I|2q7FELTTuZaWHuRwYS_W^Ep1<&K2I2BYvDT}7V!g?{MDPokC6B>nh%iq zvTe5Wv7M`-rGCpGMuXd@@m;=){2uiBB4nJI$Sl>+gCAyQOzfmX3<8>dFB4FX3)^V3 z#F(Av0+4omCz&fmmvRU%YL8 zjbk>GlyI35DMrsh6@KE-66*?h$rj+!Q|80vK3695Qt2z3(47jjzAKyp7`fitZ4Au_ z*0ai5_;dx@M~n|YViL;qyh7{z73Spw7>OmcGzh)QiW(^MQ$ zWw4akH1+>>G?@oHU1pKCc?-*;RLxNoqm#7o1Q0eLM$aF{<|`h=FfGF+cyjN9c@E7^ ziG6;=0^ANow(D_V=Xrr|3d=Z~vj`Dr%+7(Zc*oRNK8F8_GHqD63;ER6c~NRgzDN|E^-5oP=0h;TRw@;*oEa zJ%elIZ>Yl*KH7w+1!!8(>}iv^sHp~g6thvorl!XQ5!b!aGM6KmUl!_z0pss0*4_Ze z=B=peSo&Dg6f%PVR#^>6OkRN~rZASaGX8tP`n8&d_e0Ctq6SqWko0+N3Pg z#%>;Fe$tLLyeK*5U~_ASg#1c9F{H(eD9NCeiPkFax#uP|gq-;-=p>TbH|$^DbMre}=iY=Gxv< zzNqFs`v$M?E1uYQdC&eE|LpHw=e2Sja>y5R&-cKSYX|=JJ@~o?`?d!5aZgTeYx0Vs zL!UK=Ao1cwM~V22M!XA<7}lE7yUZDMsqI3?ulv%|TXuW-QT?9EZX*jqY716BEsc(E zT>rFi!mVgaSJ6(t;tRs!{R_o7p1h>Cu)?pTrVCSF+o_B%ZGT$2R~F3~D3)J4{Fh(Z z?XI%>e&ySf>VEW=Pt=~6^<#dZA91ra{N8osfAMBe6IaYL#h`m-VS5dIJ;U;u5o>Ri z^N%XeXEm&lNCxLcKwThcRozlj4T;tiBaX$^na4jnCiGu(9X!7EnfcBi898+|2TaV3 z6PjH0kvE#!N9!@ip4rv!O+JXMKV4UU!Q{m6btmjKCp7E*ZvWA6-@h?2Kjp>4fxrE2 zPgK~=)h*V=Vk72%2o~zTKE@~!^-6+ili_nq`tzn0eYExA&5qBT-8Z!OKX0*ywz{Xb zuG$b0xo?|G}BAl>hnY!&IX#@SM&72IXk-rHffjWE4ik47;41MvQ?tD zPyeqw8+XY#?w#pJF)sQYc^}6*X3e*Z3DeELS;y>*dI9308bYnuyW``z(p?2;j=O+E z4|lf=g#>We80}KCU%pFJY;YIY9bAl0QDQGj$q#K=wH(L-XwtXJ@IcGSni12l-~$^s zsQw<>q9918gC_|HIUsUa7}y88d%$okE961YR4`f2(jGad+#L?NhG@m+lP%sZLg=+Z z-~by{U`0*S66AtqA(G2mxqi~&2p1gdfdV}u?f7pEvR=HG1;I9n$)L+EF$b0c64I1Q zU0pCfGBWxzwhO0|serk=7bP!ChPaSip(B}|ht>!Zx@8n%1m zsQHE@^W&07*CFL0w{63n4u6x~V{sYX5<{1HlO>(xU*MYWuWI6()<3?1|3Q1kT3bUAFq*CGWQLRByKjZJ|jKx{wsab%gWa}>$O?im5 zzzkj2XI#-V%+jFlTUl&q!ZRS$@M*>{(DL1{fcWM==umnA#2DQ~9afq5S(yNnQB~ZuUkUYJ&KxrVf9NK5g^^Az&;Q1%TMu(N z$;%%Ljp}$1LhmYiew@9_k79Y*_}cu;o$qHxY{8bND;o0dpSsr=u>a>TeM0cHrrk>6l^1y3lpI+X-5b&nICu?Bwp>kb>(deB${kRi5&sC>XeZNaM zv5fNO!`3N8*pixvyqTj#ud#T_W*r=Bb1(ixNFI{lbY_NpVngOr(T~}Ce|I1FcQ)%k z{Piu%*1u*ol0)UZz}@~;HcgWo=&npKsp~N(J*LWS^|aP`-97W0c`c>1C{JGGOL>Z& zoacZ4OVGuWyIl;w3=f$TL2ZAG zaY0ugZn6hcX)`6owGK2vR@SG^32PH3Jclufv@9BC)0MVR>ZbFY;JomWqDlPf{HQ4h zhT3DOl34QPl`*4Da=1MF7kEE-lwDgutZe8d1pOFnA<2_|Rv#@o+4PmX)@*g_!)0}o zzUPWhK-((Z+H*XLS&HtCB9pY?(G~Wkv`M*TX+reC1*ICchVn}L@Se*G-~qc`w-P+d3rN{LiztC&Dc+&jzICJq)Znow6yiF79l0y4ycF^KInDh$CCL zpB}dJ0&q2VTq0k1jT;9Ke|8QS9_EG{m*z~O%`e=`D(i`#6Lz**&B6{7>ucRhd9Sq( zLdKOT4@UwQQZB>UD_<9oyll}e_pEot3z4pbA7Ac;{>y*9Yt2kIIN-9J?|BE)EN|jC zo~&vwW-m{fhz`oX!aNcguz$`lKB+R*XhTNFj8Q`N=inX4Oj{)O;O$hvKNjS+M=&^{_>G5)Q= z{U@o$_j6w!Fh03$x+D4jE2RP$J!Q;QNa^}D0ZurV)=AcL3QaTH5y320WeLBPW%LI+ z)FT>Jo>^dR{&^q_q*5!(3T$lM2UqZ`qJ!E}Y+bgNtlC_UsC>Y zkFG%F_N=9R?XzD#0pll@&xrf|dhEsAN564nR>${w7M34U9BR9py(_~15 zUUghgOR#&74Cit^-;EEia(Q9ma&7){-6${pj{Eb-afz4PWb#%{)^iu75ve_j5Wnuu z^T*e}|E{u4&P=^Cxc*hDW|QFBIEZPUKFF&>D##vMN)ce zhnz-lvB*Rt+^z`Vu3gRaZghynJhQ0gxsbe0cgLIgvphl$G0?{|ukn-d_DyqPAzf=F zRoRQpuHBH3?DQwplPe32LXM$BV)b#rty0T5z-JWzHL6$0+{+-?MWy*md4pKb~2X6z;{XgfbzVX2>PUg0P4PN*ur<#QGr!Ve1yh<|1f5N7{fWuL*5kpdf( zz90N)m)>ycDl*dCC6?&PjHdQnZk`&JnyQyb@f)&ni-ZOk14}RBg=a|( z&aa?X@^3lge%^7PZCy&{G_1K@+s~e`HXo$-o8d!?R}XWDIS)gfv7@134e#RqZ##S# zz@^u6%wFZiI$U2~!tmCx1%rFx|@DH#uzp8?EKh@yF7bas1 zb%pwQ(83gTuTddeZkOjhEn`v%1p~dgf9-cvE~adGRCl}ReTPBBzcHRS`;MfQ*^$^y zDVB{zUhKV6Vk5i%ENSqzf2XEwBcEmLYh}bPC1bdYa{}5xA;QLD0=M%il)R~y$8ZxC z3Sg#mASsmI170g1m!fZm_c1~tq;#NXbpcTG%nnN2Z4~48LwCyz=qPgiRcE?wF*?{| z>g7yG3*6qXntqTevmsBw4dj5ySN6Mr2*CJ*OuEXe+3T2ptHnLVu(PT3h^I(0v5pS6 z=n@ocW;7f1i$a0|gayshErg?$Z4@HqaMoC_Z5dfgo@W+@KD9DfCko~1s8}DZ*tl*m z=FG^?Cj4*1j6WPQ$^}-X^ft+#H$G?LlgLG`-N?vp$DSp%obvEK02?AQHdOITEb}KY zwhkKj)2U8=qNG=QOR}xGIlAo(AP^>1xE#rrt3_Wm)Wr>-HxmVFactiUmr;RqKzQ*nFkg z@PhFBrl(9MYqZZ!E$s{$;P}rA%h7*C6!s6H9fAMTi*6 zw(*4paS;uv9;c97J7dg$FYsCrMl9b&`lQ@i$WyR^mn&MyWFui*eRgYnF0I&lGU`O2-RG!r~E~^(#K9 z0Khd)5T$A$oIrB zo&bMKg+4|`qXv=vs_cteY=RPT60kcQFSn{n_-i**2jHy%w0QP_pdT_kf^$__Z|j7w zP#(N2B94LR>JiG%tJ{7k5VviKli)V$XK}LER&osg-4y8qh_oidW~=d~uc@wjd=4Ov z>|y$>IIhPRTiGxM*-_u_wuj*xZSi{*{y#*EM-xHBH*c7`{zK!#MbF3|na99qtQAaH zHFKZ)R#M+QEb;+SPlm;a_vd5G_U(ZlJGRe81ieVH5JAn#x%E4siMo*>1HG54w^NnA z&y>jMYe+r$>LrCk=)Rr+Vq0j5d%M9y3XK86cj}EmHNX{<#??Sh@m^F!{p0YjS&1QngR93_<5BR-XJJAGEM;Vu>AXo*?t%Dc9%qvy%G-q3_^1bA!0+yG2*7e|Ko;=-Vy8tJ|-fIxK}^Kt|Uy45(fe7c_ljcRsk`} zsbm*%DO+Agp?oG|c1Uq8Z0t9+Jt2$O1E4)Y%#4{yAt^o9l6s3C$Cswlk4s3QV3B;WUUWpFln!Q}&Q?3xdjteT0i@ zIQ0!;v(}jCPTazT7ORLZdk|$}lwNn;u0&kd5q^-3z9|epBR%6xgd0~NE6G-4g$N~p z*?0^-_UJG=ZoiupvDq7HPlgzXaC)|NsS?T1noaQ`e+r1RV$!^Tv;}+g&D1UfN!*jq zW(+an{2p4zE#@@^Vd{~-l(#Sdu@}$Sc#s`u$dF1ZCiuaA4+ZJ7n(3j2FhF#yp1;%~ z>;c5rul5OH2IP|WC2PZ2SL2{T`2xfzkTihQH-3ugo36oQM&JelLDF-p_l`NO#mA22 zo=IIP*TxdFmFR=Yq%CT1o89?VUvEB2TaS<07)zxF1YX?+K5uBgA$8!X9eLr$xYDPjDFuLM0ng&m;A+ zaj)1At;nOPs=L0~ps9#dtHm4^q4zM6g;vNNx}jrPl}YL$z0Le587t#o+@VD@i3snc zQO@gdp?ugaE%nb4+#-E9LhoyaiU{}g)GZm&&-Zm1Hz>J$z@P7MJY?YgOe6X*>6(^D zn@41WX2%qSYK4CIHFlE-N@>CwD*aj-dao&M#w7@MvRDv{_!)=LZ}r3~@4gb4-paxO z&8SX3=|K&=62RT@g?aa&9)mklL=~?GY3In0TcdU{hK{~b=B4L7PIF0oChWl8Yw)D? zu^>ELgtLw!9V0`QRFd{GVPk5%J5%3d!Zf^2{II9v7H8A35KF-$cq|#Iv+uaJ5uUAt zc4|Aw&SUaj8 z4slETa+`Jmg+BmHp{n2SI9e%A*!czdqH_tDhK#^tcPY@_(at+nr-%@un7zb0l%P{% z(-qjv9K1!c}p=ZTIkNH%S9Iq!|sB$^jg;WZbI6cM`PEnr;A|1{=y*7_8RKSmh zAd9EA`aXOT(9z=`d<=i%wEKDe`wXe7%JDF-xAno++~gs*cjV7t(2xi>$izqB52tDE zddTq>SCPAz&Vr-oh5Q|#_UzdB9#;ckX3}r35FqdKNrUR-7p%hv64PQx(-)9f?ix|@_>({ z|G-MfbfdF(b|^5@I-+wiDngAu$AH+mIlHFa7E?GcDE&nGC@ut!i`SX_$vVuprp5NX}^aCv~5AcfSJV&fXZS)*BNC zmUzHa->&7ckjFqIuW9G2u*4u~-d~?nKeKTjOozq10Q~xF+v86eh!i62xjdUS|z z1JD+$larR`#*RpuhHM#28VWNd~Lr;?W7OUe6kiT73BHKJ2!iD*)XcrLzq z=(y&Bn)porT_Oo^wajt+^28)1{K+c`flQh<*i-J<_rSk|WRI)NOWMN<-2qwzt8K-|yUlJPSIs zIFdU3)O~6(uwr5E$G?y6ng>*rK zG|DN&R=Tc^EWq?~HU){y5x zxOL?8p4Kgdm9r1d?iz4tE^;HgI0eWh%~G0oMs+>8hYE`iID>pd``qyC${V}H`8`%u z)3{@*>e9eFBnzy)?_Bq84C$Mv1ROvt)bWO zNMG5ixrW!RM|F@b^Zr;F@h5Rw1a~hVCtfi@BXY zxUPGC)x8eSxbYli&HD7m@!$3`hr=xoEWK`@aOi90ZO-2BSszdKe-xIs=k`q$o!lj^ zv#pBiY(g>o+t|s(ko=}(gXOeQ0Zko=yT+FI@tRep#t&batXj$OpDj;mKCxxPA!f`!44c}) z*G4ShDl5964$@Cqj{O{BCYW+ZVpBX!>o@Ej_b(*xgtG>i1+=6AE4fYc04wv_&!LSc zR%IAk9*fV$*wv+XV(c69<}nUUau2NI>Dp|pQ+rz{*7?G@V*xE4Lra|(FZ}-hC!kKR z$j-L0Z5j3$_L>^@9QkOvWZ76u@?Gzz|Bry0Gj-QjThLqVH>Frx;s08Z(73ze+znUE z__cQ*Z|H70f9n4Fc-yBx7uxDB-TYVg@DpzF7mN==3Bi00(wtWF4RbiIvjOMXn$%0& ziHr)a9%%`-UpZR3;cGMff-uy(UQ^ztXfgjb7sfHAes#%fwOP`>V$I5s>N7E?om022 zs-JsM!;dDqR}Sh!#*I#3C+z$NOCoc7j-FhYwg)k#{6aRZnbzNC-%+w!-yJ>eQs}rk zYiO;KYS&J~=p&^PX1O)j=QyNX?^~N#ny~KK*h~9owk7`eQ(wZysbr9qLi{dzpG|1Ts(5^| z=~V6QIJ!q_<#39_+Gp|&-#x1PGSj^G6Yu5Ry3Ad`r*p0AM|Bdf)9!b-@?q6uZE4=; zn}W9`d@(gWOuO1~Y`Y#<`+vnxO&cBGFD{_Z<%Q{!i%5IMtqg+nX<`AAs@-jq#0O}E z#W-*@A~*!&$L_J>y2~Tv`p8Oct;s+7IZqV_+dmMtM5L<5KX)sy*xRyvt^-YIJ-sYO zdB?aw16eu3TQo6C~Bq=9~U>Fgccb)NARaL_vjFl8yz z37ZtXm>hA9n~e~us)S+Gy^Z>~9p3gz3FEpFWBtb(X1>1&dYuYE6YqvD(`Hp{ z6hJWXBb8~;)&|x9h;(C0O;`4wa-}t4S{BT$(9;k?b&`9+=eW@4e&+d^sT&rUy_kBi zAl!>Xf94?eFy)b=$^=FX7+yGQim`ElwB})W_)@jRxNHLB91Sz70t&oGzTp-_+PFz4 zbVa^usp)-_^xeHx96>-6K25tSaI6XG9r&L9BR%A76#}gvn=mQ>|F-suLdTf57<5hw zo%O}?#y=&icgD-=CsX=;b0DT8s)uH#-%zU;dW>oW2Ih>)(#@YUiANTm9A$p1iOPYH zV-z2aUyWcxhBZc4MSVvtAlSSyPmkB(MN5D)cHR&v`Po46(kh`~!$do|@@aYaO$C1U z6=<9i=r;{2J8jb~F&%9`v%B&Av3myzHs2L-qs@bqT*s}!4v^|Z4TR{jb;=+ODDYjH zj`U=}OrMiOskyuDmbWJ9e;dMT`i$J3AT78F6b=CHZ7E|dX>cu#uSQOoBJhp;TM0U+{^f3=A?vsW(!PBy(K0gWL}UH zMfPC4ko;QN2N%H*f%zPi4Y|TJhhG4#9&255YwKA$ z*B*X7o7sd}p~Yp6DUn2UAZnvM6eAbZ*i18_rgR7?ah^0yt;g{Cezq}kez}!=|yl%&5d4bg|6Tf?!i_dWiZg>rp z#?k4N6Hg0RJ9eM<2xyOJRInFMFf`gP|8mW*&h=PRHO|YQ!o$=CMJo!E#RWDCm+f_k zoj^e(fY=~88l!~8=?V|6DDQJE66zA1mjcP;f{?E+Mkn)9fV=AcM#&iPqjU0Q)^*5KWpVz3WWBhszDj17F3p!0ztXGy>3T~- zhR9lSsO`*t&~Y25c;ARLRoxPB9eL_0#$5~D8js4aMaC-hoGaX|t7zSbG{g@c1f^wN zm-5>XO9WEq0l2RY8WrEg?<#7SBTVJQC1b_+ntM>6i;t2~^^VZlqcEleRG^SClt@Rl zv~(ztky2#f2N5ZeChEX}{euriZc#Y5aa2r@;_4?SC;@QJ(gMb!B}1#AHy3ZT-v_0v zyhF4D4#R(XVEX00eDcbBQ(X zx<~#%p@Cdd+H>Uc35jv7zJgbV3~EEUdDY4H@eajCb$TSs~*Ub!A#{nyGR z@rtD;@rVES^m-di$_Ah&+AfO!?VVON8Ck!da6|D8p#713>|9c-lb>2;Qa)S!)7J{G>NqbhFU zaJ~}GS0MsgFZq+fFePj$8w6VE>1sdk<^* z|NjTR^LcBltyZntI9bsz~vh<9&R zLXPjr;azy|^V|3LZ&zK{>$1*>WN_tJ%Q;uiAdO|*!rwe1s*wUv+Idstn09_{%^)2#xS zpyyDMtk^G8>^aVLERg67M*ADZ_Qf!s(qOHEzib0+eZs@vju75rZ`9&-Pa#Ptl6o=@ z*L4xy`Hd?mM4_lS!WClB&-Hw-gM2%R$Q6|EV*7~_!6U%C_e2aqh$~HO zAcq{ei^w(Y++Bt-8Ub5Vfo1@?01;ZxmuTfTmomlg>%mMV$U%#EU`b`@a9u0_7MWgh z_XYlO?oA7Xobti*vRupqj5$nUf8XWJtKchmgHcKl)d%PafQ63Odp3!-Ws476S1rj8 zcE(cgD=PsLq6s|axBTXTQ_@5M?B}U5im)V|3No9o83O4&Ts)HqFs#lAx|@h8%!G%^ z4_aq}3Y5iv1TK~ZK>dWu?+Wu9e4r~e+-dxYJ{2q=hgIJN81cv?A*kOMo>2zaK0e;P zy!6^{5pMVLvK<#tDJ7l&sTG8nNtd|wLAGh22I(u|mE+$7B!KYZuqnu|Jeuz~D`GJ+ z>3Vb8RNd0GTlh4Cnh8j2`GnizxXoNG{#&s&UhbKsS?M)w5Rt$MECBleidPLnIaGf> zi)2tWZgz&qm~Q~i(GoYI9|M|V`G&CHhxXe;f*D}PF0l)O5m+`DnMwAL-wK;o+X10W zdROiw&uaLlj!>!R9dfROU-2`KW|U?P!#k|P)1<>2=ZPx|YJD@IK>W{vu#sNycvQ+D@?NZb+samO)PEXrq}4U}4P@h78O> zu$lH!PulFoq0w9&|hRgjaddtw;uyO?T<`A(MEp-u?qF(Uv%Y8$o78-!HT92v2bpcnT3h6zF>~@>D+X{>;lg?RVLN&r= zO3=*~AZG;b-vm%qNs)5h7APo%3iW3oqT~-Kos}+AfTHKVo5|%9%`H{E@Vp$6CBHOV ztE&(M!2U{Z-WCqankP62N6+bsaN1h|3Xs_*vBTn8<#$ZSBN4XmG`1)4!*k5a8~qNQ z9};;7+J9jp(52R!5+=AQ?-7l!E_Av~-I&(x-twvc_0@P&#cdQFMhY@3lOlxTtvnAH z9lk*ze4VpKKFKstgX?01^!_`W#-UfVe~W*X>OR1I&Ns(TbwKaeGIMG%vCmIJSDqu+^+AxUz zfpNR@pzfp46d~(zb)D}2|C3)A;#m-n97ud8DTSq%G`?)D2AaSJ7ab;R1hYg8S|)&V_@%r8@OmL6fMV?S z@zH81#4!_kVgzm^x64z)5l#=i<*tt>FXZ*GJSR#(e}8m+!;i>0|8JyC;`;_$W=Wb- zKRz=itFJhbUhGCGuDc3ZnIrY(OP&G_ID29PE{pe{2L&q6-Tve2@%mh7qQp)kGAaDL5?qokED07YNN59_*0TKcJ1x6x8);xH9-PQ8iIzdP zGOTI}t~-t)_Kb59PvouZ1Fe>qCLw@U@{{ZOB&-|>SE&WZC6sO|PwY?REt8)t>I1td zfvfu}HYWf#kqN8&#D1BO44}{NDMzt-Q)lEj<2F51{+3x+lUSu4mSX zY?R``3ze2RKrEo7Z0bP8J;aAo92;X;)Cf?U3EHJ2Ha<#JjVb`QVSy_ zm&q(p>lP3_M`SBMfL#Q!QUL5$p#^KXo6PU=NYzx65XmaJt^9shWr(POZ&m&%q)HIH zn-&Su-1&L3vN#bBcA|n1Za?2!gD(B?aR3|~27^N7C5ANz-u&v-Va!c00jkc*{zsTo zXT@&E^f;N&$BSodt8tg#A`)-8Y?X-&w3*@8`?_3m{9Bz5ocj%;%WHb}c-8k68x??{ z-GPe zgiP{~o)_oft-EV6V=TY^ zb>0}pya`lTu(J!_QM9DH@-$lZ>O8ZU*l?btx1PD_@Jsc zA9vWvj&KWN&wTXVmU+(ca6jO|u2M8^HS*jUSRCZIN8>lK2l3NoS|e8PWm=|uC&Eq4baw)~J0fSyZ#dU(wB0s`3OVwng^ z2$R;B<^>YjLkP;8%oLvhKtgOL5#OMM^+i!b^nm~l59gcR10?9`+`wC7`&L8kFLp*j zXlHl{kbMSm&}VU7+Y3nk(<3q1E9!r)`-i>rKQik`$Z9}}B=D2<Xpr)2smJ?HN zbBo7P>TLJ_nFyin%Wo??S5c6E_YCg%DJ1n_QOAAvYrjzC%k~2{Kejk1oDFmAT9<5;S&OVqZW_%XbLFh|G^ADII0BD4Daz2oEvwbA$p!c2plpv$c z{lHPvZQ8M~WBjjw)Zv`5euATQa=O8{#6`c?S+vanPT=hyNp7WQcm9=JMmky`EwS8| zfBpv@r0dq>pmzV^2N=ZVM+KSg#nkew4@+x9ovuRa!abf#>mvP@AhG@&vn*nCsOuY| zKR=}S?~|K%LmLy)4;RPBeN(=Cx_0}elB$*KlieYvyE11&qIOf4!EBLF>J-U8h=W7a zb>#0Agk43Fc>hNUJr7pD>Q&vQ78J}>IF?>$+1I?-!Z|+VUm_cPg~eN*i$bZNwd2f670j37PJac7h|*}u0bX@rW5 z^AS;SZfILWpwOK1R~L|FEb|WS-N(* zifg=-S^T$4N^yLzu0qOT=+avaGI;(2?T|)dmF*@I*tenOJ;U15W5UY9j&@xk>o7|j zub0w2v$}Yy*&7dX2^?4H^Y5xUQ4XMlWm31NuEgCf?b*Ex zI-->U_sE|$K0`iih5uUa0UPC^@3I_ z-SKqy5X7wIk(k-DfHxB2s=!Z|M1>@?iz48tZy?Up$wZ-^6h_*mz*f?ah;d#?(Z{pX|FrA5NV4qBitasbe@zn75=p80& z=JfWPAM|9xVjtcWTHE3vWeG1~^eQAgasYOlPmT9ejWmziP&Re{LG0s;6zIQ8%gsY0?+%0|;y%$7Z`e*Og*Vuv&yKepY zd~W}Bpe`(Z~#pW|mObH)Q+tb-7`^CFzh>5a^UuQ@IY(PQIHNp!w6nL}Crb)g~f<`supafh}2rjY+@jLOed*>RbpMfD5yUG?7__S8dG4@5UE z%8xs5?+RO2;`4}lIh0YFIF@Fccldr$hKDFHV)GY+gy+*4-nWb&Y;XLAeHZ@D?fLr$ zr9*kGKl)GpU9{u=K5YyEXqL&=YvyOVO)Buij)Be{cX*JDv2yAz}Cz=0fui znl8P)_U{jReWO39J8n2~zK?2G-vT|QNt{2W7#uk`d{%Kjq#!%}tE=wL>eq#rBcJ@e zuZ2Gp$M<%4I%mb*Tf^%!y!`9%mMzP0~ynGIO{#n;{bCTtuuV2;`q~N&)f&L>=mCHRisD_+jGfj$7 zzU%{OwUTS=wjFLu;gFtvE+%|n>lIG35fU=Q>g;&sy1vLqHz}d^mOX>ZS18aFD%5Wu z75(2B2gZ{R=yxu*Ci1yZ%m^s%MXkbfd4c0%&uz#~iPWLsJw(|Vygis8SvDdhc8t7Y z#O80omVHQiq>lW1SbZ>EjOWEfp^+jtCsRQKtE;8D2HfastQ;c@ftLcQMQQyX-? z$-$n0GG00oeFZs)Ia~r+Ud@5=c_VrwGFgE~N?k%bapa_hM0OGh~KKqpVOcILLxJb#Nwf+4a= z%7H!eKyM7xg)T(h1{-G!^~%6BEWsbc)6Z5qslkjE_hsdBY_ z%Ic|Mk2#Sqg?p+==k4{>&lPVYcsavBebR43T58 zQ#5izRa-S+B4<0a#5(?ow{{SB`vsiK7kOoZNh84Jb6|RciY{LrHv*Πa`SX3gv? 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

b%I`}@pDa0 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 Lt~hW?KmY(cedEks literal 0 HcmV?d00001 diff --git a/py-kms/pykms_Misc.py b/py-kms/pykms_Misc.py new file mode 100644 index 0000000..a79efa2 --- /dev/null +++ b/py-kms/pykms_Misc.py @@ -0,0 +1,473 @@ +#!/usr/bin/env python3 + +import sys +import logging +from logging.handlers import RotatingFileHandler + +#----------------------------------------------------------------------------------------------------------------------------------------------------------- + +# https://stackoverflow.com/questions/2183233/how-to-add-a-custom-loglevel-to-pythons-logging-facility +# https://stackoverflow.com/questions/17558552/how-do-i-add-custom-field-to-python-log-format-string +# https://stackoverflow.com/questions/1343227/can-pythons-logging-format-be-modified-depending-on-the-message-log-level +# https://stackoverflow.com/questions/14844970/modifying-logging-message-format-based-on-message-logging-level-in-python3 + +def add_logging_level(levelName, levelNum, methodName = None): + """ Adds a new logging level to the `logging` module and the currently configured logging class. + `levelName` becomes an attribute of the `logging` module with the value `levelNum`. + `methodName` becomes a convenience method for both `logging` itself and the class returned by `logging.getLoggerClass()` + (usually just `logging.Logger`). If `methodName` is not specified, `levelName.lower()` is used. + + To avoid accidental clobberings of existing attributes, this method will raise an `AttributeError` if the level name + is already an attribute of the `logging` module or if the method name is already present . + + Example + ------- + >>> add_logging_level('TRACE', logging.DEBUG - 5) + >>> logging.getLogger(__name__).setLevel("TRACE") + >>> logging.getLogger(__name__).trace('that worked') + >>> logging.trace('so did this') + >>> logging.TRACE + 5 + """ + + if not methodName: + methodName = levelName.lower() + + if hasattr(logging, levelName) or hasattr(logging, methodName) or hasattr(logging.getLoggerClass(), methodName): + return + + def logForLevel(self, message, *args, **kwargs): + if self.isEnabledFor(levelNum): + self._log(levelNum, message, args, **kwargs) + def logToRoot(message, *args, **kwargs): + logging.log(levelNum, message, *args, **kwargs) + + logging.addLevelName(levelNum, levelName) + setattr(logging, levelName, levelNum) + setattr(logging.getLoggerClass(), methodName, logForLevel) + setattr(logging, methodName, logToRoot) + + +class LevelFormatter(logging.Formatter): + dfmt = '%a, %d %b %Y %H:%M:%S' + default_fmt = logging.Formatter('[%(asctime)s] [%(levelname)8s] %(message)s', datefmt = dfmt) + + def __init__(self, formats): + """ `formats` is a dict { loglevel : logformat } """ + self.formatters = {} + for loglevel in formats: + self.formatters[loglevel] = logging.Formatter(formats[loglevel], datefmt = self.dfmt) + + def format(self, record): + formatter = self.formatters.get(record.levelno, self.default_fmt) + return formatter.format(record) + + +def logger_create(log_obj, config, mode = 'a'): + # Create new level. + add_logging_level('MINI', logging.CRITICAL + 10) + + # Configure visualization. + if config['logfile'] == 'STDOUT': + # Only STDOUT. + log_handler = logging.StreamHandler(sys.stdout) + elif config['logfile'] == 'FILE&STDOUT': + # logfile and STDOUT. + # Not implemented yet. (maybe useless ?) + pass + else: + # Only logfile. + log_handler = RotatingFileHandler(filename = config['logfile'], mode = mode, maxBytes = int(config['logsize'] * 1024 * 512), + backupCount = 1, encoding = None, delay = 0) + + log_handler.setLevel(config['loglevel']) + # Configure formattation. + formatter = LevelFormatter({logging.MINI : '[%(asctime)s] [%(levelname)8s] %(host)s %(status)s %(product)s %(message)s'}) + log_handler.setFormatter(formatter) + # Attach. + log_obj.setLevel(config['loglevel']) + log_obj.addHandler(log_handler) + + +# Valid language identifiers to be used in the EPID (see "kms.c" in vlmcsd) +ValidLcid = [1025, 1026, 1027, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, + 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1048, 1049, + 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058, 1059, + 1060, 1061, 1062, 1063, 1065, 1066, 1067, 1068, 1069, + 1071, 1074, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1086, 1087, 1088, 1089, + 1091, 1092, 1093, 1094, 1095, 1097, 1098, 1099, + 1100, 1102, 1103, 1104, 1106, 1110, 1111, 1114, 1125, 1131, 1153, + 2049, 2052, 2055, 2057, 2058, 2060, 2064, 2067, 2068, 2070, 2074, 2077, 2092, 2107, 2110, 2115, 2155, + 3073, 3076, 3079, 3081, 3082, 3084, 3098, 3131, 3179, + 4097, 4100, 4103, 4105, 4106, 4108, 4122, 4155, + 5121, 5124, 5127, 5129, 5130, 5132, 5146, 5179, + 6145, 6153, 6154, 6156, 6170, 6203, + 7169, 7177, 7178, 7194, 7227, + 8193, 8201, 8202, 8251, + 9217, 9225, 9226, 9275, + 10241, 10249, 10250, 11265, 11273, 11274, 12289, 12297, 12298, + 13313, 13321, 13322, 14337, 14346, 15361, 15370, 16385, 16394, 17418, 18442, 19466, 20490] + +# http://joshpoley.blogspot.com/2011/09/hresults-user-0x004.html (slerror.h) +ErrorCodes = { + 'SL_E_SRV_INVALID_PUBLISH_LICENSE' : (0xC004B001, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_INVALID_PRODUCT_KEY_LICENSE' : (0xC004B002, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_INVALID_RIGHTS_ACCOUNT_LICENSE' : (0xC004B003, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_INVALID_LICENSE_STRUCTURE' : (0xC004B004, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_AUTHORIZATION_FAILED' : (0xC004B005, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_INVALID_BINDING' : (0xC004B006, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_SERVER_PONG' : (0xC004B007, 'The activation server reported that the computer could not connect to the activation server.'), + 'SL_E_SRV_INVALID_PAYLOAD' : (0xC004B008, 'The activation server determined that the product could not be activated.'), + 'SL_E_SRV_INVALID_SECURITY_PROCESSOR_LICENSE' : (0xC004B009, 'The activation server determined that the license is invalid.'), + 'SL_E_SRV_BUSINESS_TOKEN_ENTRY_NOT_FOUND' : (0xC004B010, 'The activation server determined that required business token entry cannot be found.'), + 'SL_E_SRV_CLIENT_CLOCK_OUT_OF_SYNC' : (0xC004B011, 'The activation server determined that your computer clock time is not correct. You must correct your clock before you can activate.'), + 'SL_E_SRV_GENERAL_ERROR' : (0xC004B100, 'The activation server determined that the product could not be activated.'), + 'SL_E_CHPA_PRODUCT_KEY_OUT_OF_RANGE' : (0xC004C001, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_INVALID_BINDING' : (0xC004C002, 'The activation server determined there is a problem with the specified product key.'), + 'SL_E_CHPA_PRODUCT_KEY_BLOCKED' : (0xC004C003, 'The activation server determined the specified product key has been blocked.'), + 'SL_E_CHPA_INVALID_PRODUCT_KEY' : (0xC004C004, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_BINDING_NOT_FOUND' : (0xC004C005, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_BINDING_MAPPING_NOT_FOUND' : (0xC004C006, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_UNSUPPORTED_PRODUCT_KEY' : (0xC004C007, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_MAXIMUM_UNLOCK_EXCEEDED' : (0xC004C008, 'The activation server reported that the product key has exceeded its unlock limit.'), + 'SL_E_CHPA_ACTCONFIG_ID_NOT_FOUND' : (0xC004C009, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_INVALID_PRODUCT_DATA_ID' : (0xC004C00A, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_INVALID_PRODUCT_DATA' : (0xC004C00B, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_SYSTEM_ERROR' : (0xC004C00C, 'The activation server experienced an error.'), + 'SL_E_CHPA_INVALID_ACTCONFIG_ID' : (0xC004C00D, 'The activation server determined the product key is not valid.'), + 'SL_E_CHPA_INVALID_PRODUCT_KEY_LENGTH' : (0xC004C00E, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_INVALID_PRODUCT_KEY_FORMAT' : (0xC004C00F, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_INVALID_PRODUCT_KEY_CHAR' : (0xC004C010, 'The activation server determined the specified product key is invalid.'), + 'SL_E_CHPA_INVALID_BINDING_URI' : (0xC004C011, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_NETWORK_ERROR' : (0xC004C012, 'The activation server experienced a network error.'), + 'SL_E_CHPA_DATABASE_ERROR' : (0xC004C013, 'The activation server experienced an error.'), + 'SL_E_CHPA_INVALID_ARGUMENT' : (0xC004C014, 'The activation server experienced an error.'), + 'SL_E_CHPA_RESPONSE_NOT_AVAILABLE' : (0xC004C015, 'The activation server experienced an error.'), + 'SL_E_CHPA_OEM_SLP_COA0' : (0xC004C016, 'The activation server reported that the specified product key cannot be used for online activation.'), + 'SL_E_CHPA_PRODUCT_KEY_BLOCKED_IPLOCATION' : (0xC004C017, 'The activation server determined the specified product key has been blocked for this geographic location.'), + 'SL_E_CHPA_DMAK_LIMIT_EXCEEDED' : (0xC004C020, 'The activation server reported that the Multiple Activation Key has exceeded its limit.'), + 'SL_E_CHPA_DMAK_EXTENSION_LIMIT_EXCEEDED' : (0xC004C021, 'The activation server reported that the Multiple Activation Key extension limit has been exceeded.'), + 'SL_E_CHPA_REISSUANCE_LIMIT_NOT_FOUND' : (0xC004C022, 'The activation server reported that the re-issuance limit was not found.'), + 'SL_E_CHPA_OVERRIDE_REQUEST_NOT_FOUND' : (0xC004C023, 'The activation server reported that the override request was not found.'), + 'SL_E_CHPA_TIMEBASED_ACTIVATION_BEFORE_START_DATE' : (0xC004C030, 'The activation server reported that time based activation attempted before start date.'), + 'SL_E_CHPA_TIMEBASED_ACTIVATION_AFTER_END_DATE' : (0xC004C031, 'The activation server reported that time based activation attempted after end date.'), + 'SL_E_CHPA_TIMEBASED_ACTIVATION_NOT_AVAILABLE' : (0xC004C032, 'The activation server reported that new time based activation is not available.'), + 'SL_E_CHPA_TIMEBASED_PRODUCT_KEY_NOT_CONFIGURED' : (0xC004C033, 'The activation server reported that the time based product key is not configured for activation.'), + 'SL_E_CHPA_NO_RULES_TO_ACTIVATE' : (0xC004C04F, 'The activation server reported that no business rules available to activate specified product key.'), + 'SL_E_CHPA_GENERAL_ERROR' : (0xC004C050, 'The activation server experienced a general error.'), + 'SL_E_CHPA_DIGITALMARKER_INVALID_BINDING' : (0xC004C051, 'The activation server determined the license is invalid.'), + 'SL_E_CHPA_DIGITALMARKER_BINDING_NOT_CONFIGURED' : (0xC004C052, 'The activation server determined there is a problem with the specified product key.'), + 'SL_E_CHPA_DYNAMICALLY_BLOCKED_PRODUCT_KEY' : (0xC004C060, 'The activation server determined the specified product key has been blocked.'), + 'SL_E_INVALID_LICENSE_STATE_BREACH_GRACE' : (0xC004C291, 'Genuine Validation determined the license state is invalid.'), + 'SL_E_INVALID_LICENSE_STATE_BREACH_GRACE_EXPIRED' : (0xC004C292, 'Genuine Validation determined the license state is invalid.'), + 'SL_E_INVALID_TEMPLATE_ID' : (0xC004C2F6, 'Genuine Validation determined the validation input template identifier is invalid.'), + 'SL_E_INVALID_XML_BLOB' : (0xC004C2FA, 'Genuine Validation determined the validation input data blob is invalid.'), + 'SL_E_VALIDATION_BLOB_PARAM_NOT_FOUND' : (0xC004C327, 'Genuine Validation determined the validation input data blob parameter is invalid.'), + 'SL_E_INVALID_CLIENT_TOKEN' : (0xC004C328, 'Genuine Validation determined the client token data is invalid.'), + 'SL_E_INVALID_OFFLINE_BLOB' : (0xC004C329, 'Genuine Validation determined the offline data blob is invalid.'), + 'SL_E_OFFLINE_VALIDATION_BLOB_PARAM_NOT_FOUND' : (0xC004C32A, 'Genuine Validation determined the offline data blob parameter is invalid.'), + 'SL_E_INVALID_OSVERSION_TEMPLATEID' : (0xC004C32B, 'Genuine Validation determined the validation template identifier is invalid for this version of the Windows operating system.'), + 'SL_E_OFFLINE_GENUINE_BLOB_REVOKED' : (0xC004C32C, 'Genuine Validation determined the offline genuine blob is revoked.'), + 'SL_E_OFFLINE_GENUINE_BLOB_NOT_FOUND' : (0xC004C32D, 'Genuine Validation determined the offline genuine blob is not found.'), + 'SL_E_CHPA_MSCH_RESPONSE_NOT_AVAILABLE_VGA' : (0xC004C3FF, 'The activation server determined the VGA service response is not available in the expected format.'), + 'SL_E_INVALID_OS_FOR_PRODUCT_KEY' : (0xC004C401, 'Genuine Validation determined the product key is invalid for this version of the Windows operating system.'), + 'SL_E_INVALID_FILE_HASH' : (0xC004C4A1, 'Genuine Validation determined the file hash is invalid.'), + 'SL_E_VALIDATION_BLOCKED_PRODUCT_KEY' : (0xC004C4A2, 'Genuine Validation determined the product key has been blocked.'), + 'SL_E_MISMATCHED_KEY_TYPES' : (0xC004C4A4, 'Genuine Validation determined the product key type is invalid.'), + 'SL_E_VALIDATION_INVALID_PRODUCT_KEY' : (0xC004C4A5, 'Genuine Validation determined the product key is invalid.'), + 'SL_E_INVALID_OEM_OR_VOLUME_BINDING_DATA' : (0xC004C4A7, 'Genuine Validation determined the OEM or Volume binding data is invalid.'), + 'SL_E_INVALID_LICENSE_STATE' : (0xC004C4A8, 'Genuine Validation determined the license state is invalid.'), + 'SL_E_IP_LOCATION_FALIED' : (0xC004C4A9, 'Genuine Validation determined the specified product key has been blocked for this geographic location.'), + 'SL_E_SOFTMOD_EXPLOIT_DETECTED' : (0xC004C4AB, 'Genuine Validation detected Windows licensing exploits.'), + 'SL_E_INVALID_TOKEN_DATA' : (0xC004C4AC, 'Genuine Validation determined the token activation data is invalid.'), + 'SL_E_HEALTH_CHECK_FAILED_NEUTRAL_FILES' : (0xC004C4AD, 'Genuine Validation detected tampered Windows binaries.'), + 'SL_E_HEALTH_CHECK_FAILED_MUI_FILES' : (0xC004C4AE, 'Genuine Validation detected tampered Windows binaries.'), + 'SL_E_INVALID_AD_DATA' : (0xC004C4AF, 'Genuine Validation determined the active directory activation data is invalid.'), + 'SL_E_INVALID_RSDP_COUNT' : (0xC004C4B0, 'Genuine Validation detected Windows licensing exploits.'), + 'SL_E_ENGINE_DETECTED_EXPLOIT' : (0xC004C4B1, 'Genuine Validation detected Windows licensing exploits.'), + 'SL_E_NOTIFICATION_BREACH_DETECTED' : (0xC004C531, 'Genuine Validation detected Windows licensing exploits.'), + 'SL_E_NOTIFICATION_GRACE_EXPIRED' : (0xC004C532, 'Genuine Validation determined the license state is in notification due to expired grace.'), + 'SL_E_NOTIFICATION_OTHER_REASONS' : (0xC004C533, 'Genuine Validation determined the license state is in notification.'), + 'SL_E_NON_GENUINE_STATUS_LAST' : (0xC004C600, 'Genuine Validation determined your copy of Windows is not genuine.'), + 'SL_E_CHPA_BUSINESS_RULE_INPUT_NOT_FOUND' : (0xC004C700, 'The activation server reported that business rule cound not find required input.'), + 'SL_E_CHPA_NULL_VALUE_FOR_PROPERTY_NAME_OR_ID' : (0xC004C750, 'The activation server reported that NULL value specified for business property name and Id.'), + 'SL_E_CHPA_UNKNOWN_PROPERTY_NAME' : (0xC004C751, 'The activation server reported that property name specifies unknown property.'), + 'SL_E_CHPA_UNKNOWN_PROPERTY_ID' : (0xC004C752, 'The activation server reported that property Id specifies unknown property.'), + 'SL_E_CHPA_FAILED_TO_UPDATE_PRODUCTKEY_BINDING' : (0xC004C755, 'The activation server reported that it failed to update product key binding.'), + 'SL_E_CHPA_FAILED_TO_INSERT_PRODUCTKEY_BINDING' : (0xC004C756, 'The activation server reported that it failed to insert product key binding.'), + 'SL_E_CHPA_FAILED_TO_DELETE_PRODUCTKEY_BINDING' : (0xC004C757, 'The activation server reported that it failed to delete product key binding.'), + 'SL_E_CHPA_FAILED_TO_PROCESS_PRODUCT_KEY_BINDINGS_XML' : (0xC004C758, 'The activation server reported that it failed to process input XML for product key bindings.'), + 'SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_PROPERTY' : (0xC004C75A, 'The activation server reported that it failed to insert product key property.'), + 'SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_PROPERTY' : (0xC004C75B, 'The activation server reported that it failed to update product key property.'), + 'SL_E_CHPA_FAILED_TO_DELETE_PRODUCT_KEY_PROPERTY' : (0xC004C75C, 'The activation server reported that it failed to delete product key property.'), + 'SL_E_CHPA_UNKNOWN_PRODUCT_KEY_TYPE' : (0xC004C764, 'The activation server reported that the product key type is unknown.'), + 'SL_E_CHPA_PRODUCT_KEY_BEING_USED' : (0xC004C770, 'The activation server reported that the product key type is being used by another user.'), + 'SL_E_CHPA_FAILED_TO_INSERT_PRODUCT_KEY_RECORD' : (0xC004C780, 'The activation server reported that it failed to insert product key record.'), + 'SL_E_CHPA_FAILED_TO_UPDATE_PRODUCT_KEY_RECORD' : (0xC004C781, 'The activation server reported that it failed to update product key record.'), + 'SL_REMAPPING_SP_PUB_API_INVALID_LICENSE' : (0xC004D000, ''), + 'SL_REMAPPING_SP_PUB_API_INVALID_ALGORITHM_TYPE' : (0xC004D009, ''), + 'SL_REMAPPING_SP_PUB_API_TOO_MANY_LOADED_ENVIRONMENTS' : (0xC004D00C, ''), + 'SL_REMAPPING_SP_PUB_API_BAD_GET_INFO_QUERY' : (0xC004D012, ''), + 'SL_REMAPPING_SP_PUB_API_INVALID_KEY_LENGTH' : (0xC004D055, ''), + 'SL_REMAPPING_SP_PUB_API_NO_AES_PROVIDER' : (0xC004D073, ''), + 'SL_REMAPPING_SP_PUB_API_HANDLE_NOT_COMMITED' : (0xC004D081, 'The handle was used before calling SPCommit with it.'), + 'SL_REMAPPING_SP_PUB_GENERAL_NOT_INITIALIZED' : (0xC004D101, 'The security processor reported an initialization error.'), + 'SL_REMAPPING_SP_STATUS_SYSTEM_TIME_SKEWED' : (0x8004D102, 'The security processor reported that the machine time is inconsistent with the trusted time.'), + 'SL_REMAPPING_SP_STATUS_GENERIC_FAILURE' : (0xC004D103, 'The security processor reported that an error has occurred.'), + 'SL_REMAPPING_SP_STATUS_INVALIDARG' : (0xC004D104, 'The security processor reported that invalid data was used.'), + 'SL_REMAPPING_SP_STATUS_ALREADY_EXISTS' : (0xC004D105, 'The security processor reported that the value already exists.'), + 'SL_REMAPPING_SP_STATUS_INSUFFICIENT_BUFFER' : (0xC004D107, 'The security processor reported that an insufficient buffer was used.'), + 'SL_REMAPPING_SP_STATUS_INVALIDDATA' : (0xC004D108, 'The security processor reported that invalid data was used.'), + 'SL_REMAPPING_SP_STATUS_INVALID_SPAPI_CALL' : (0xC004D109, 'The security processor reported that an invalid call was made.'), + 'SL_REMAPPING_SP_STATUS_INVALID_SPAPI_VERSION' : (0xC004D10A, 'The security processor reported a version mismatch error.'), + 'SL_REMAPPING_SP_STATUS_DEBUGGER_DETECTED' : (0x8004D10B, 'The security processor cannot operate while a debugger is attached.'), + 'SL_REMAPPING_SP_STATUS_NO_MORE_DATA' : (0xC004D10C, 'No more data is available.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_KEYLENGTH' : (0xC004D201, 'The length of the cryptopgraphic key material/blob is invalid.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_BLOCKLENGTH' : (0xC004D202, 'The block length is not correct for this algorithm.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_CIPHER' : (0xC004D203, 'The Cryptopgrahic cipher/algorithm type is invalid.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_CIPHERMODE' : (0xC004D204, 'The specified cipher mode is invalid. For example both encrypt and decrypt cannot be specified for symmetric keys.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_PROVIDERID' : (0xC004D205, 'The SPAPIID for the specified Cryptographic Provider is unknown.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_KEYID' : (0xC004D206, 'The SPAPIID for the specified Cryptographic Key (type) is unknown.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_HASHID' : (0xC004D207, 'The SPAPIID for the specified Cryptographic Hash is unknown.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_UNKNOWN_ATTRIBUTEID' : (0xC004D208, 'The SPAPIID for the specified Cryptographic Attribute is unknown.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_HASH_FINALIZED' : (0xC004D209, 'The hash object has been finalized and can no longer be updated.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_AVAILABLE' : (0xC004D20A, 'The key is not available within the current state.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_FOUND' : (0xC004D20B, 'The key does not exist. It may not have have been created yet.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_NOT_BLOCK_ALIGNED' : (0xC004D20C, "The data length is not a multiple of the algorithm's block length."), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_SIGNATURELENGTH' : (0xC004D20D, 'The length of the signature is not valid.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_SIGNATURE' : (0xC004D20E, 'The signature does not correlate with the comparison hash.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_BLOCK' : (0xC004D20F, 'The RSA block is not valid.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_FORMAT' : (0xC004D210, 'The format of the RSA block is not valid.'), + 'SL_REMAPPING_SP_PUB_CRYPTO_INVALID_PADDING' : (0xC004D211, 'The CBC padding is not valid.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED' : (0xC004D301, 'The security processor reported that the trusted data store was tampered.'), + 'SL_REMAPPING_SP_PUB_TS_REARMED' : (0xC004D302, 'The security processor reported that the trusted data store was rearmed.'), + 'SL_REMAPPING_SP_PUB_TS_RECREATED' : (0xC004D303, 'The security processor reported that the trusted store has been recreated.'), + 'SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_NOT_FOUND' : (0xC004D304, 'The security processor reported that entry key was not found in the trusted data store.'), + 'SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_ALREADY_EXISTS' : (0xC004D305, 'The security processor reported that the entry key already exists in the trusted data store.'), + 'SL_REMAPPING_SP_PUB_TS_ENTRY_KEY_SIZE_TOO_BIG' : (0xC004D306, 'The security processor reported that the entry key is too big to fit in the trusted data store.'), + 'SL_REMAPPING_SP_PUB_TS_MAX_REARM_REACHED' : (0xC004D307, 'The security processor reported that the maximum allowed number of re-arms has been exceeded. You must re-install the OS before trying to re-arm again.'), + 'SL_REMAPPING_SP_PUB_TS_DATA_SIZE_TOO_BIG' : (0xC004D308, 'The security processor has reported that entry data size is too big to fit in the trusted data store.'), + 'SL_REMAPPING_SP_PUB_TS_INVALID_HW_BINDING' : (0xC004D309, 'The security processor has reported that the machine has gone out of hardware tolerance.'), + 'SL_REMAPPING_SP_PUB_TIMER_ALREADY_EXISTS' : (0xC004D30A, 'The security processor has reported that the secure timer already exists.'), + 'SL_REMAPPING_SP_PUB_TIMER_NOT_FOUND' : (0xC004D30B, 'The security processor has reported that the secure timer was not found.'), + 'SL_REMAPPING_SP_PUB_TIMER_EXPIRED' : (0xC004D30C, 'The security processor has reported that the secure timer has expired.'), + 'SL_REMAPPING_SP_PUB_TIMER_NAME_SIZE_TOO_BIG' : (0xC004D30D, 'The security processor has reported that the secure timer name is too long.'), + 'SL_REMAPPING_SP_PUB_TS_FULL' : (0xC004D30E, 'The security processor reported that the trusted data store is full.'), + 'SL_REMAPPING_SP_PUB_TRUSTED_TIME_OK' : (0x4004D30F, 'Trusted time is already up-to-date.'), + 'SL_REMAPPING_SP_PUB_TS_ENTRY_READ_ONLY' : (0xC004D310, 'Read-only entry cannot be modified.'), + 'SL_REMAPPING_SP_PUB_TIMER_READ_ONLY' : (0xC004D311, 'Read-only timer cannot be modified.'), + 'SL_REMAPPING_SP_PUB_TS_ATTRIBUTE_READ_ONLY' : (0xC004D312, 'Read-only attribute cannot be modified.'), + 'SL_REMAPPING_SP_PUB_TS_ATTRIBUTE_NOT_FOUND' : (0xC004D313, 'Attribute not found.'), + 'SL_REMAPPING_SP_PUB_TS_ACCESS_DENIED' : (0xC004D314, 'Trusted Store access denied.'), + 'SL_REMAPPING_SP_PUB_TS_NAMESPACE_NOT_FOUND' : (0xC004D315, 'Namespace not found.'), + 'SL_REMAPPING_SP_PUB_TS_NAMESPACE_IN_USE' : (0xC004D316, 'Namespace in use.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_BREADCRUMB_LOAD_INVALID' : (0xC004D317, 'Trusted store tampered.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_BREADCRUMB_GENERATION' : (0xC004D318, 'Trusted store tampered.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_INVALID_DATA' : (0xC004D319, 'Trusted store tampered.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_NO_DATA' : (0xC004D31A, 'Trusted store tampered.'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_DATA_BREADCRUMB_MISMATCH' : (0xC004D31B, 'Trusted store tampered'), + 'SL_REMAPPING_SP_PUB_TS_TAMPERED_DATA_VERSION_MISMATCH' : (0xC004D31C, 'Trusted store tampered.'), + 'SL_REMAPPING_SP_PUB_TAMPER_MODULE_AUTHENTICATION' : (0xC004D401, 'The security processor reported a system file mismatch error.'), + 'SL_REMAPPING_SP_PUB_TAMPER_SECURITY_PROCESSOR_PATCHED' : (0xC004D402, 'The security processor reported a system file mismatch error.'), + 'SL_REMAPPING_SP_PUB_KM_CACHE_TAMPER' : (0xC004D501, 'The security processor reported an error with the kernel data.'), + 'SL_REMAPPING_SP_PUB_KM_CACHE_TAMPER_RESTORE_FAILED' : (0xC004D502, 'Kernel Mode Cache is tampered and the restore attempt failed.'), + 'SL_REMAPPING_SP_PUB_KM_CACHE_IDENTICAL' : (0x4004D601, 'Kernel Mode Cache was not changed.'), + 'SL_REMAPPING_SP_PUB_KM_CACHE_POLICY_CHANGED' : (0x4004D602, 'Reboot-requiring policies have changed.'), + 'SL_REMAPPING_SP_STATUS_PUSHKEY_CONFLICT' : (0xC004D701, 'External decryption key was already set for specified feature.'), + 'SL_REMAPPING_SP_PUB_PROXY_SOFT_TAMPER' : (0xC004D702, 'Error occured during proxy execution'), + 'SL_E_INVALID_CONTEXT' : (0xC004E001, 'The Software Licensing Service determined that the specified context is invalid.'), + 'SL_E_TOKEN_STORE_INVALID_STATE' : (0xC004E002, 'The Software Licensing Service reported that the license store contains inconsistent data.'), + 'SL_E_EVALUATION_FAILED' : (0xC004E003, 'The Software Licensing Service reported that license evaluation failed.'), + 'SL_E_NOT_EVALUATED' : (0xC004E004, 'The Software Licensing Service reported that the license has not been evaluated.'), + 'SL_E_NOT_ACTIVATED' : (0xC004E005, 'The Software Licensing Service reported that the license is not activated.'), + 'SL_E_INVALID_GUID' : (0xC004E006, 'The Software Licensing Service reported that the license contains invalid data.'), + 'SL_E_TOKSTO_TOKEN_NOT_FOUND' : (0xC004E007, 'The Software Licensing Service reported that the license store does not contain the requested license.'), + 'SL_E_TOKSTO_NO_PROPERTIES' : (0xC004E008, 'The Software Licensing Service reported that the license property is invalid.'), + 'SL_E_TOKSTO_NOT_INITIALIZED' : (0xC004E009, 'The Software Licensing Service reported that the license store is not initialized.'), + 'SL_E_TOKSTO_ALREADY_INITIALIZED' : (0xC004E00A, 'The Software Licensing Service reported that the license store is already initialized.'), + 'SL_E_TOKSTO_NO_ID_SET' : (0xC004E00B, 'The Software Licensing Service reported that the license property is invalid.'), + 'SL_E_TOKSTO_CANT_CREATE_FILE' : (0xC004E00C, 'The Software Licensing Service reported that the license could not be opened or created.'), + 'SL_E_TOKSTO_CANT_WRITE_TO_FILE' : (0xC004E00D, 'The Software Licensing Service reported that the license could not be written.'), + 'SL_E_TOKSTO_CANT_READ_FILE' : (0xC004E00E, 'The Software Licensing Service reported that the license store could not read the license file.'), + 'SL_E_TOKSTO_CANT_PARSE_PROPERTIES' : (0xC004E00F, 'The Software Licensing Service reported that the license property is corrupted.'), + 'SL_E_TOKSTO_PROPERTY_NOT_FOUND' : (0xC004E010, 'The Software Licensing Service reported that the license property is missing.'), + 'SL_E_TOKSTO_INVALID_FILE' : (0xC004E011, 'The Software Licensing Service reported that the license store contains an invalid license file.'), + 'SL_E_TOKSTO_CANT_CREATE_MUTEX' : (0xC004E012, 'The Software Licensing Service reported that the license store failed to start synchronization properly.'), + 'SL_E_TOKSTO_CANT_ACQUIRE_MUTEX' : (0xC004E013, 'The Software Licensing Service reported that the license store failed to synchronize properly.'), + 'SL_E_TOKSTO_NO_TOKEN_DATA' : (0xC004E014, 'The Software Licensing Service reported that the license property is invalid.'), + 'SL_E_EUL_CONSUMPTION_FAILED' : (0xC004E015, 'The Software Licensing Service reported that license consumption failed.'), + 'SL_E_PKEY_INVALID_CONFIG' : (0xC004E016, 'The Software Licensing Service reported that the product key is invalid.'), + 'SL_E_PKEY_INVALID_UNIQUEID' : (0xC004E017, 'The Software Licensing Service reported that the product key is invalid.'), + 'SL_E_PKEY_INVALID_ALGORITHM' : (0xC004E018, 'The Software Licensing Service reported that the product key is invalid.'), + 'SL_E_PKEY_INTERNAL_ERROR' : (0xC004E019, 'The Software Licensing Service determined that validation of the specified product key failed.'), + 'SL_E_LICENSE_INVALID_ADDON_INFO' : (0xC004E01A, 'The Software Licensing Service reported that invalid add-on information was found.'), + 'SL_E_HWID_ERROR' : (0xC004E01B, 'The Software Licensing Service reported that not all hardware information could be collected.'), + 'SL_E_PKEY_INVALID_KEYCHANGE1' : (0xC004E01C, 'This evaluation product key is no longer valid.'), + 'SL_E_PKEY_INVALID_KEYCHANGE2' : (0xC004E01D, 'The new product key cannot be used on this installation of Windows. Type a different product key. (CD-AB)'), + 'SL_E_PKEY_INVALID_KEYCHANGE3' : (0xC004E01E, 'The new product key cannot be used on this installation of Windows. Type a different product key. (AB-AB)'), + 'SL_E_POLICY_OTHERINFO_MISMATCH' : (0xC004E020, 'The Software Licensing Service reported that there is a mismatched between a policy value and information stored in the OtherInfo section.'), + 'SL_E_PRODUCT_UNIQUENESS_GROUP_ID_INVALID' : (0xC004E021, 'The Software Licensing Service reported that the Genuine information contained in the license is not consistent.'), + 'SL_E_SECURE_STORE_ID_MISMATCH' : (0xC004E022, 'The Software Licensing Service reported that the secure store id value in license does not match with the current value.'), + 'SL_E_INVALID_RULESET_RULE' : (0xC004E023, 'The Software Licensing Service reported that the notification rules appear to be invalid.'), + 'SL_E_INVALID_CONTEXT_DATA' : (0xC004E024, 'The Software Licensing Service reported that the reported machine data appears to be invalid.'), + 'SL_E_INVALID_HASH' : (0xC004E025, 'The Software Licensing Service reported that the data hash does not correspond to the data.'), + 'SL_E_INVALID_USE_OF_ADD_ON_PKEY' : (0x8004E026, 'The Software Licensing Service reported that a valid product key for an add-on sku was entered where a Windows product key was expected.'), + 'SL_E_WINDOWS_VERSION_MISMATCH' : (0xC004E027, 'The Software Licensing Service reported that the version of SPPSvc does not match the policy.'), + 'SL_E_ACTIVATION_IN_PROGRESS' : (0xC004E028, 'The Software Licensing Service reported that there is another activation attempt in progress for this sku. Please wait for that attempt to complete before trying again.'), + 'SL_E_STORE_UPGRADE_TOKEN_REQUIRED' : (0xC004E029, 'The Software Licensing Service reported that the activated license requires a corresponding Store upgrade license in order to work. Please visit the Store to purchase a new license or re-download an existing one.'), + 'SL_E_STORE_UPGRADE_TOKEN_WRONG_EDITION' : (0xC004E02A, 'The Software Licensing Service reported that the Store upgrade license is not enabled for the current OS edition. Please visit the Store to purchase the appropriate license.'), + 'SL_E_STORE_UPGRADE_TOKEN_WRONG_PID' : (0xC004E02B, 'The Software Licensing Service reported that the Store upgrade license does not match the current active product key. Please visit the Store to purchase a new license or re-download an existing one.'), + 'SL_E_STORE_UPGRADE_TOKEN_NOT_PRS_SIGNED' : (0xC004E02C, 'The Software Licensing Service reported that the Store upgrade license does not match the current signing level for the installed Operating System. Please visit the Store to purchase a new license or re-download an existing one.'), + 'SL_E_STORE_UPGRADE_TOKEN_WRONG_VERSION' : (0xC004E02D, 'The Software Licensing Service reported that the Store upgrade license does not enable the current version of the installed Operating System. Please visit the Store to purchase a new license or re-download an existing one.'), + 'SL_E_STORE_UPGRADE_TOKEN_NOT_AUTHORIZED' : (0xC004E02E, 'The Software Licensing Service reported that the Store upgrade license could not be authorized. Please visit the Store to purchase a new license or re-download an existing one.'), + 'SL_E_SFS_INVALID_FS_VERSION' : (0x8004E101, 'The Software Licensing Service reported that the Token Store file version is invalid.'), + 'SL_E_SFS_INVALID_FD_TABLE' : (0x8004E102, 'The Software Licensing Service reported that the Token Store contains an invalid descriptor table.'), + 'SL_E_SFS_INVALID_SYNC' : (0x8004E103, 'The Software Licensing Service reported that the Token Store contains a token with an invalid header/footer.'), + 'SL_E_SFS_BAD_TOKEN_NAME' : (0x8004E104, 'The Software Licensing Service reported that a Token Store token has an invalid name.'), + 'SL_E_SFS_BAD_TOKEN_EXT' : (0x8004E105, 'The Software Licensing Service reported that a Token Store token has an invalid extension.'), + 'SL_E_SFS_DUPLICATE_TOKEN_NAME' : (0x8004E106, 'The Software Licensing Service reported that the Token Store contains a duplicate token.'), + 'SL_E_SFS_TOKEN_SIZE_MISMATCH' : (0x8004E107, 'The Software Licensing Service reported that a token in the Token Store has a size mismatch.'), + 'SL_E_SFS_INVALID_TOKEN_DATA_HASH' : (0x8004E108, 'The Software Licensing Service reported that a token in the Token Store contains an invalid hash.'), + 'SL_E_SFS_FILE_READ_ERROR' : (0x8004E109, 'The Software Licensing Service reported that the Token Store was unable to read a token.'), + 'SL_E_SFS_FILE_WRITE_ERROR' : (0x8004E10A, 'The Software Licensing Service reported that the Token Store was unable to write a token.'), + 'SL_E_SFS_INVALID_FILE_POSITION' : (0x8004E10B, 'The Software Licensing Service reported that the Token Store attempted an invalid file operation.'), + 'SL_E_SFS_NO_ACTIVE_TRANSACTION' : (0x8004E10C, 'The Software Licensing Service reported that there is no active transaction.'), + 'SL_E_SFS_INVALID_FS_HEADER' : (0x8004E10D, 'The Software Licensing Service reported that the Token Store file header is invalid.'), + 'SL_E_SFS_INVALID_TOKEN_DESCRIPTOR' : (0x8004E10E, 'The Software Licensing Service reported that a Token Store token descriptor is invalid.'), + 'SL_E_INTERNAL_ERROR' : (0xC004F001, 'The Software Licensing Service reported an internal error.'), + 'SL_E_RIGHT_NOT_CONSUMED' : (0xC004F002, 'The Software Licensing Service reported that rights consumption failed.'), + 'SL_E_USE_LICENSE_NOT_INSTALLED' : (0xC004F003, 'The Software Licensing Service reported that the required license could not be found.'), + 'SL_E_MISMATCHED_PKEY_RANGE' : (0xC004F004, 'The Software Licensing Service reported that the product key does not match the range defined in the license.'), + 'SL_E_MISMATCHED_PID' : (0xC004F005, 'The Software Licensing Service reported that the product key does not match the product key for the license.'), + 'SL_E_EXTERNAL_SIGNATURE_NOT_FOUND' : (0xC004F006, 'The Software Licensing Service reported that the signature file for the license is not available.'), + 'SL_E_RAC_NOT_AVAILABLE' : (0xC004F007, 'The Software Licensing Service reported that the license could not be found.'), + 'SL_E_SPC_NOT_AVAILABLE' : (0xC004F008, 'The Software Licensing Service reported that the license could not be found.'), + 'SL_E_GRACE_TIME_EXPIRED' : (0xC004F009, 'The Software Licensing Service reported that the grace period expired.'), + 'SL_E_MISMATCHED_APPID' : (0xC004F00A, 'The Software Licensing Service reported that the application ID does not match the application ID for the license.'), + 'SL_E_NO_PID_CONFIG_DATA' : (0xC004F00B, 'The Software Licensing Service reported that the product identification data is not available.'), + 'SL_I_OOB_GRACE_PERIOD' : (0x4004F00C, 'The Software Licensing Service reported that the application is running within the valid grace period.'), + 'SL_I_OOT_GRACE_PERIOD' : (0x4004F00D, 'The Software Licensing Service reported that the application is running within the valid out of tolerance grace period.'), + 'SL_E_MISMATCHED_SECURITY_PROCESSOR' : (0xC004F00E, 'The Software Licensing Service determined that the license could not be used by the current version of the security processor component.'), + 'SL_E_OUT_OF_TOLERANCE' : (0xC004F00F, 'The Software Licensing Service reported that the hardware ID binding is beyond the level of tolerance.'), + 'SL_E_INVALID_PKEY' : (0xC004F010, 'The Software Licensing Service reported that the product key is invalid.'), + 'SL_E_LICENSE_FILE_NOT_INSTALLED' : (0xC004F011, 'The Software Licensing Service reported that the license file is not installed.'), + 'SL_E_VALUE_NOT_FOUND' : (0xC004F012, 'The Software Licensing Service reported that the call has failed because the value for the input key was not found.'), + 'SL_E_RIGHT_NOT_GRANTED' : (0xC004F013, 'The Software Licensing Service determined that there is no permission to run the software.'), + 'SL_E_PKEY_NOT_INSTALLED' : (0xC004F014, 'The Software Licensing Service reported that the product key is not available.'), + 'SL_E_PRODUCT_SKU_NOT_INSTALLED' : (0xC004F015, 'The Software Licensing Service reported that the license is not installed.'), + 'SL_E_NOT_SUPPORTED' : (0xC004F016, 'The Software Licensing Service determined that the request is not supported.'), + 'SL_E_PUBLISHING_LICENSE_NOT_INSTALLED' : (0xC004F017, 'The Software Licensing Service reported that the license is not installed.'), + 'SL_E_LICENSE_SERVER_URL_NOT_FOUND' : (0xC004F018, 'The Software Licensing Service reported that the license does not contain valid location data for the activation server.'), + 'SL_E_INVALID_EVENT_ID' : (0xC004F019, 'The Software Licensing Service determined that the requested event ID is invalid.'), + 'SL_E_EVENT_NOT_REGISTERED' : (0xC004F01A, 'The Software Licensing Service determined that the requested event is not registered with the service.'), + 'SL_E_EVENT_ALREADY_REGISTERED' : (0xC004F01B, 'The Software Licensing Service reported that the event ID is already registered.'), + 'SL_E_DECRYPTION_LICENSES_NOT_AVAILABLE' : (0xC004F01C, 'The Software Licensing Service reported that the license is not installed.'), + 'SL_E_LICENSE_SIGNATURE_VERIFICATION_FAILED' : (0xC004F01D, 'The Software Licensing Service reported that the verification of the license failed.'), + 'SL_E_DATATYPE_MISMATCHED' : (0xC004F01E, 'The Software Licensing Service determined that the input data type does not match the data type in the license.'), + 'SL_E_INVALID_LICENSE' : (0xC004F01F, 'The Software Licensing Service determined that the license is invalid.'), + 'SL_E_INVALID_PACKAGE' : (0xC004F020, 'The Software Licensing Service determined that the license package is invalid.'), + 'SL_E_VALIDITY_TIME_EXPIRED' : (0xC004F021, 'The Software Licensing Service reported that the validity period of the license has expired.'), + 'SL_E_LICENSE_AUTHORIZATION_FAILED' : (0xC004F022, 'The Software Licensing Service reported that the license authorization failed.'), + 'SL_E_LICENSE_DECRYPTION_FAILED' : (0xC004F023, 'The Software Licensing Service reported that the license is invalid.'), + 'SL_E_WINDOWS_INVALID_LICENSE_STATE' : (0xC004F024, 'The Software Licensing Service reported that the license is invalid.'), + 'SL_E_LUA_ACCESSDENIED' : (0xC004F025, 'The Software Licensing Service reported that the action requires administrator privilege.'), + 'SL_E_PROXY_KEY_NOT_FOUND' : (0xC004F026, 'The Software Licensing Service reported that the required data is not found.'), + 'SL_E_TAMPER_DETECTED' : (0xC004F027, 'The Software Licensing Service reported that the license is tampered.'), + 'SL_E_POLICY_CACHE_INVALID' : (0xC004F028, 'The Software Licensing Service reported that the policy cache is invalid.'), + 'SL_E_INVALID_RUNNING_MODE' : (0xC004F029, 'The Software Licensing Service cannot be started in the current OS mode.'), + 'SL_E_SLP_NOT_SIGNED' : (0xC004F02A, 'The Software Licensing Service reported that the license is invalid.'), + 'SL_E_CIDIID_INVALID_DATA' : (0xC004F02C, 'The Software Licensing Service reported that the format for the offline activation data is incorrect.'), + 'SL_E_CIDIID_INVALID_VERSION' : (0xC004F02D, 'The Software Licensing Service determined that the version of the offline Confirmation ID (CID) is incorrect.'), + 'SL_E_CIDIID_VERSION_NOT_SUPPORTED' : (0xC004F02E, 'The Software Licensing Service determined that the version of the offline Confirmation ID (CID) is not supported.'), + 'SL_E_CIDIID_INVALID_DATA_LENGTH' : (0xC004F02F, 'The Software Licensing Service reported that the length of the offline Confirmation ID (CID) is incorrect.'), + 'SL_E_CIDIID_NOT_DEPOSITED' : (0xC004F030, 'The Software Licensing Service determined that the Installation ID (IID) or the Confirmation ID (CID) could not been saved.'), + 'SL_E_CIDIID_MISMATCHED' : (0xC004F031, 'The Installation ID (IID) and the Confirmation ID (CID) do not match. Please confirm the IID and reacquire a new CID if necessary.'), + 'SL_E_INVALID_BINDING_BLOB' : (0xC004F032, 'The Software Licensing Service determined that the binding data is invalid.'), + 'SL_E_PRODUCT_KEY_INSTALLATION_NOT_ALLOWED' : (0xC004F033, 'The Software Licensing Service reported that the product key is not allowed to be installed. Please see the eventlog for details.'), + 'SL_E_EUL_NOT_AVAILABLE' : (0xC004F034, 'The Software Licensing Service reported that the license could not be found or was invalid.'), + 'SL_E_VL_NOT_WINDOWS_SLP' : (0xC004F035, 'The Software Licensing Service reported that the computer could not be activated with a Volume license product key. Volume-licensed systems require upgrading from a qualifying operating system. Please contact your system administrator or use a different type of key.'), + 'SL_E_VL_NOT_ENOUGH_COUNT' : (0xC004F038, 'The Software Licensing Service reported that the product could not be activated. The count reported by your Key Management Service (KMS) is insufficient. Please contact your system administrator.'), + 'SL_E_VL_BINDING_SERVICE_NOT_ENABLED' : (0xC004F039, 'The Software Licensing Service reported that the product could not be activated. The Key Management Service (KMS) is not enabled.'), + 'SL_E_VL_INFO_PRODUCT_USER_RIGHT' : (0x4004F040, 'The Software Licensing Service reported that the product was activated but the owner should verify the Product Use Rights.'), + 'SL_E_VL_KEY_MANAGEMENT_SERVICE_NOT_ACTIVATED' : (0xC004F041, 'The Software Licensing Service determined that the Key Management Service (KMS) is not activated. KMS needs to be activated. Please contact system administrator.'), + 'SL_E_VL_KEY_MANAGEMENT_SERVICE_ID_MISMATCH' : (0xC004F042, 'The Software Licensing Service determined that the specified Key Management Service (KMS) cannot be used.'), + 'SL_E_PROXY_POLICY_NOT_UPDATED' : (0xC004F047, 'The Software Licensing Service reported that the proxy policy has not been updated.'), + 'SL_E_CIDIID_INVALID_CHECK_DIGITS' : (0xC004F04D, 'The Software Licensing Service determined that the Installation ID (IID) or the Confirmation ID (CID) is invalid.'), + 'SL_E_LICENSE_MANAGEMENT_DATA_NOT_FOUND' : (0xC004F04F, 'The Software Licensing Service reported that license management information was not found in the licenses.'), + 'SL_E_INVALID_PRODUCT_KEY' : (0xC004F050, 'The Software Licensing Service reported that the product key is invalid.'), + 'SL_E_BLOCKED_PRODUCT_KEY' : (0xC004F051, 'The Software Licensing Service reported that the product key is blocked.'), + 'SL_E_DUPLICATE_POLICY' : (0xC004F052, 'The Software Licensing Service reported that the licenses contain duplicated properties.'), + 'SL_E_MISSING_OVERRIDE_ONLY_ATTRIBUTE' : (0xC004F053, 'The Software Licensing Service determined that the license is invalid. The license contains an override policy that is not configured properly.'), + 'SL_E_LICENSE_MANAGEMENT_DATA_DUPLICATED' : (0xC004F054, 'The Software Licensing Service reported that license management information has duplicated data.'), + 'SL_E_BASE_SKU_NOT_AVAILABLE' : (0xC004F055, 'The Software Licensing Service reported that the base SKU is not available.'), + 'SL_E_VL_MACHINE_NOT_BOUND' : (0xC004F056, 'The Software Licensing Service reported that the product could not be activated using the Key Management Service (KMS).'), + 'SL_E_SLP_MISSING_ACPI_SLIC' : (0xC004F057, 'The Software Licensing Service reported that the computer BIOS is missing a required license.'), + 'SL_E_SLP_MISSING_SLP_MARKER' : (0xC004F058, 'The Software Licensing Service reported that the computer BIOS is missing a required license.'), + 'SL_E_SLP_BAD_FORMAT' : (0xC004F059, 'The Software Licensing Service reported that a license in the computer BIOS is invalid.'), + 'SL_E_INVALID_PACKAGE_VERSION' : (0xC004F060, 'The Software Licensing Service determined that the version of the license package is invalid.'), + 'SL_E_PKEY_INVALID_UPGRADE' : (0xC004F061, 'The Software Licensing Service determined that this specified product key can only be used for upgrading, not for clean installations.'), + 'SL_E_ISSUANCE_LICENSE_NOT_INSTALLED' : (0xC004F062, 'The Software Licensing Service reported that a required license could not be found.'), + 'SL_E_SLP_OEM_CERT_MISSING' : (0xC004F063, 'The Software Licensing Service reported that the computer is missing a required OEM license.'), + 'SL_E_NONGENUINE_GRACE_TIME_EXPIRED' : (0xC004F064, 'The Software Licensing Service reported that the non-genuine grace period expired.'), + 'SL_I_NONGENUINE_GRACE_PERIOD' : (0x4004F065, 'The Software Licensing Service reported that the application is running within the valid non-genuine grace period.'), + 'SL_E_DEPENDENT_PROPERTY_NOT_SET' : (0xC004F066, 'The Software Licensing Service reported that the genuine information property can not be set before dependent property been set.'), + 'SL_E_NONGENUINE_GRACE_TIME_EXPIRED_2' : (0xC004F067, 'The Software Licensing Service reported that the non-genuine grace period expired (type 2).'), + 'SL_I_NONGENUINE_GRACE_PERIOD_2' : (0x4004F068, 'The Software Licensing Service reported that the application is running within the valid non-genuine grace period (type 2).'), + 'SL_E_MISMATCHED_PRODUCT_SKU' : (0xC004F069, 'The Software Licensing Service reported that the product SKU is not found.'), + 'SL_E_OPERATION_NOT_ALLOWED' : (0xC004F06A, 'The Software Licensing Service reported that the requested operation is not allowed.'), + 'SL_E_VL_KEY_MANAGEMENT_SERVICE_VM_NOT_SUPPORTED' : (0xC004F06B, 'The Software Licensing Service determined that it is running in a virtual machine. The Key Management Service (KMS) is not supported in this mode.'), + 'SL_E_VL_INVALID_TIMESTAMP' : (0xC004F06C, 'The Software Licensing Service reported that the product could not be activated. The Key Management Service (KMS) determined that the request timestamp is invalid.'), + 'SL_E_PLUGIN_INVALID_MANIFEST' : (0xC004F071, 'The Software Licensing Service reported that the plug-in manifest file is incorrect.'), + 'SL_E_APPLICATION_POLICIES_MISSING' : (0xC004F072, 'The Software Licensing Service reported that the license policies for fast query could not be found.'), + 'SL_E_APPLICATION_POLICIES_NOT_LOADED' : (0xC004F073, 'The Software Licensing Service reported that the license policies for fast query have not been loaded.'), + 'SL_E_VL_BINDING_SERVICE_UNAVAILABLE' : (0xC004F074, 'The Software Licensing Service reported that the product could not be activated. No Key Management Service (KMS) could be contacted. Please see the Application Event Log for additional information.'), + 'SL_E_SERVICE_STOPPING' : (0xC004F075, 'The Software Licensing Service reported that the operation cannot be completed because the service is stopping.'), + 'SL_E_PLUGIN_NOT_REGISTERED' : (0xC004F076, 'The Software Licensing Service reported that the requested plug-in cannot be found.'), + 'SL_E_AUTHN_WRONG_VERSION' : (0xC004F077, 'The Software Licensing Service determined incompatible version of authentication data.'), + 'SL_E_AUTHN_MISMATCHED_KEY' : (0xC004F078, 'The Software Licensing Service reported that the key is mismatched.'), + 'SL_E_AUTHN_CHALLENGE_NOT_SET' : (0xC004F079, 'The Software Licensing Service reported that the authentication data is not set.'), + 'SL_E_AUTHN_CANT_VERIFY' : (0xC004F07A, 'The Software Licensing Service reported that the verification could not be done.'), + 'SL_E_SERVICE_RUNNING' : (0xC004F07B, 'The requested operation is unavailable while the Software Licensing Service is running.'), + 'SL_E_SLP_INVALID_MARKER_VERSION' : (0xC004F07C, 'The Software Licensing Service determined that the version of the computer BIOS is invalid.'), + 'SL_E_INVALID_PRODUCT_KEY_TYPE' : (0xC004F07D, 'The Software Licensing Service reported that the product key cannot be used for this type of activation.'), + 'SL_E_CIDIID_MISMATCHED_PKEY' : (0xC004F07E, 'The Installation ID (IID) and the Confirmation ID (CID) do not match the product key.'), + 'SL_E_CIDIID_NOT_BOUND' : (0xC004F07F, 'The Installation ID (IID) and the Confirmation ID (CID) are not bound to the current environment.'), + 'SL_E_LICENSE_NOT_BOUND' : (0xC004F080, 'The Software Licensing Service reported that the license is not bound to the current environment.'), + 'SL_E_VL_AD_AO_NOT_FOUND' : (0xC004F081, 'The Software Licensing Service reported that the Active Directory Activation Object could not be found or was invalid.'), + 'SL_E_VL_AD_AO_NAME_TOO_LONG' : (0xC004F082, 'The Software Licensing Service reported that the name specified for the Active Directory Activation Object is too long.'), + 'SL_E_VL_AD_SCHEMA_VERSION_NOT_SUPPORTED' : (0xC004F083, 'The Software Licensing Service reported that Active Directory-Based Activation is not supported in the current Active Directory schema.'), + 'SL_E_NOT_GENUINE' : (0xC004F200, 'The Software Licensing Service reported that current state is not genuine.'), + 'SL_E_EDITION_MISMATCHED' : (0xC004F210, 'The Software Licensing Service reported that the license edition does match the computer edition.'), + 'SL_E_TKA_CHALLENGE_EXPIRED' : (0xC004F301, 'The Software Licensing Service reported that the product could not be activated. The token-based activation challenge has expired.'), + 'SL_E_TKA_SILENT_ACTIVATION_FAILURE' : (0xC004F302, 'The Software Licensing Service reported that Silent Activation failed. The Software Licensing Service reported that there are no certificates found in the system that could activate the product without user interaction.'), + 'SL_E_TKA_INVALID_CERT_CHAIN' : (0xC004F303, 'The Software Licensing Service reported that the certificate chain could not be built or failed validation.'), + 'SL_E_TKA_GRANT_NOT_FOUND' : (0xC004F304, 'The Software Licensing Service reported that required license could not be found.'), + 'SL_E_TKA_CERT_NOT_FOUND' : (0xC004F305, 'The Software Licensing Service reported that there are no certificates found in the system that could activate the product.'), + 'SL_E_TKA_INVALID_SKU_ID' : (0xC004F306, 'The Software Licensing Service reported that this software edition does not support token-based activation.'), + 'SL_E_TKA_INVALID_BLOB' : (0xC004F307, 'The Software Licensing Service reported that the product could not be activated. Activation data is invalid.'), + 'SL_E_TKA_TAMPERED_CERT_CHAIN' : (0xC004F308, 'The Software Licensing Service reported that the product could not be activated. Activation data is tampered.'), + 'SL_E_TKA_CHALLENGE_MISMATCH' : (0xC004F309, 'The Software Licensing Service reported that the product could not be activated. Activation challenge and response do not match.'), + 'SL_E_TKA_INVALID_CERTIFICATE' : (0xC004F30A, 'The Software Licensing Service reported that the product could not be activated. The certificate does not match the conditions in the license.'), + 'SL_E_TKA_INVALID_SMARTCARD' : (0xC004F30B, 'The Software Licensing Service reported that the inserted smartcard could not be used to activate the product.'), + 'SL_E_TKA_FAILED_GRANT_PARSING' : (0xC004F30C, 'The Software Licensing Service reported that the token-based activation license content is invalid.'), + 'SL_E_TKA_INVALID_THUMBPRINT' : (0xC004F30D, 'The Software Licensing Service reported that the product could not be activated. The thumbprint is invalid.'), + 'SL_E_TKA_THUMBPRINT_CERT_NOT_FOUND' : (0xC004F30E, 'The Software Licensing Service reported that the product could not be activated. The thumbprint does not match any certificate.'), + 'SL_E_TKA_CRITERIA_MISMATCH' : (0xC004F30F, 'The Software Licensing Service reported that the product could not be activated. The certificate does not match the criteria specified in the issuance license.'), + 'SL_E_TKA_TPID_MISMATCH' : (0xC004F310, 'The Software Licensing Service reported that the product could not be activated. The certificate does not match the trust point identifier (TPID) specified in the issuance license.'), + 'SL_E_TKA_SOFT_CERT_DISALLOWED' : (0xC004F311, 'The Software Licensing Service reported that the product could not be activated. A soft token cannot be used for activation.'), + 'SL_E_TKA_SOFT_CERT_INVALID' : (0xC004F312, 'The Software Licensing Service reported that the product could not be activated. The certificate cannot be used because its private key is exportable.'), + 'SL_E_TKA_CERT_CNG_NOT_AVAILABLE' : (0xC004F313, 'The Software Licensing Service reported that the CNG encryption library could not be loaded. The current certificate may not be available on this version of Windows.'), + 'E_RM_UNKNOWN_ERROR' : (0xC004FC03, 'A networking problem has occurred while activating your copy of Windows.'), + 'SL_I_TIMEBASED_VALIDITY_PERIOD' : (0x4004FC04, 'The Software Licensing Service reported that the application is running within the timebased validity period.'), + 'SL_I_PERPETUAL_OOB_GRACE_PERIOD' : (0x4004FC05, 'The Software Licensing Service reported that the application has a perpetual grace period.'), + 'SL_I_TIMEBASED_EXTENDED_GRACE_PERIOD' : (0x4004FC06, 'The Software Licensing Service reported that the application is running within the valid extended grace period.'), + 'SL_E_VALIDITY_PERIOD_EXPIRED' : (0xC004FC07, 'The Software Licensing Service reported that the validity period expired.'), + 'SL_E_IA_THROTTLE_LIMIT_EXCEEDED' : (0xC004FD00, "You've reached the request limit for automatic virtual machine activation. Try again later."), + 'SL_E_IA_INVALID_VIRTUALIZATION_PLATFORM' : (0xC004FD01, "Windows isn't running on a supported Microsoft Hyper-V virtualization platform."), + 'SL_E_IA_PARENT_PARTITION_NOT_ACTIVATED' : (0xC004FD02, "Windows isn't activated on the host machine. Please contact your system administrator."), + 'SL_E_IA_ID_MISMATCH' : (0xC004FD03, "The host machine can't activate the edition of Windows on the virtual machine."), + 'SL_E_IA_MACHINE_NOT_BOUND' : (0xC004FD04, "Windows isn't activated."), + 'SL_E_TAMPER_RECOVERY_REQUIRES_ACTIVATION' : (0xC004FE00, 'The Software Licensing Service reported that activation is required to recover from tampering of SL Service trusted store.'), + } diff --git a/py-kms/pykms_PidGenerator.py b/py-kms/pykms_PidGenerator.py new file mode 100644 index 0000000..bf84187 --- /dev/null +++ b/py-kms/pykms_PidGenerator.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +import datetime +import random +import time +import uuid +from ast import literal_eval + +from pykms_DB2Dict import kmsDB2Dict + +#--------------------------------------------------------------------------------------------------------------------------------------------------------- + +def epidGenerator(kmsId, version, lcid): + kmsdb = kmsDB2Dict() + winbuilds, csvlkitems, appitems = kmsdb[0], kmsdb[1], kmsdb[2] + hosts, pkeys = [ [] for _ in range(2) ] + + # Product Specific Detection (Get all CSVLK GroupID and PIDRange good for EPID generation), then + # Generate Part 2: Group ID and Product Key ID Range + for csvlkitem in csvlkitems: + try: + if kmsId in [ uuid.UUID(kmsitem) for kmsitem in csvlkitem['Activate'] ]: + pkeys.append( (csvlkitem['GroupId'], csvlkitem['MinKeyId'], csvlkitem['MaxKeyId'], csvlkitem['InvalidWinBuild']) ) + else: + # fallback to Windows Server 2019 parameters. + pkeys.append( ('206', '551000000', '570999999', '[0,1,2]') ) + except IndexError: + # fallback to Windows Server 2019 parameters. + pkeys.append( ('206', '551000000', '570999999', '[0,1,2]') ) + + pkey = random.choice(pkeys) + GroupId, MinKeyId, MaxKeyId, Invalid = int(pkey[0]), int(pkey[1]), int(pkey[2]), literal_eval(pkey[3]) + + # Get all KMS Server Host Builds good for EPID generation, then + # Generate Part 1 & 7: Host Type and KMS Server OS Build + for winbuild in winbuilds: + try: + # Check versus "InvalidWinBuild". + if int(winbuild['WinBuildIndex']) not in Invalid: + hosts.append(winbuild) + except KeyError: + # fallback to Windows Server 2019 parameters. + hosts.append( {'BuildNumber':'17763', 'PlatformId':'3612', 'MinDate':'02/10/2018'} ) + + host = random.choice(hosts) + BuildNumber, PlatformId, MinDate = host['BuildNumber'], host['PlatformId'], host['MinDate'] + + # Generate Part 3 and Part 4: Product Key ID + productKeyID = random.randint(MinKeyId, MaxKeyId) + + # Generate Part 5: License Channel (00=Retail, 01=Retail, 02=OEM, 03=Volume(GVLK,MAK)) - always 03 + licenseChannel = 3 + + # Generate Part 6: Language - use system default language, 1033 is en-us + languageCode = lcid # (C# CultureInfo.InstalledUICulture.LCID) + + # Generate Part 8: KMS Host Activation Date + d = datetime.datetime.strptime(MinDate, "%d/%m/%Y") + minTime = datetime.date(d.year, d.month, d.day) + + # Generate Year and Day Number + randomDate = datetime.date.fromtimestamp(random.randint(time.mktime(minTime.timetuple()), time.mktime(datetime.datetime.now().timetuple()))) + firstOfYear = datetime.date(randomDate.year, 1, 1) + randomDayNumber = int((time.mktime(randomDate.timetuple()) - time.mktime(firstOfYear.timetuple())) / 86400 + 0.5) + + # Generate the EPID string + result = [] + result.append(str(PlatformId).rjust(5, "0")) + result.append("-") + result.append(str(GroupId).rjust(5, "0")) + result.append("-") + result.append(str(productKeyID // 1000000).rjust(3, "0")) + result.append("-") + result.append(str(productKeyID % 1000000).rjust(6, "0")) + result.append("-") + result.append(str(licenseChannel).rjust(2, "0")) + result.append("-") + result.append(str(languageCode)) + result.append("-") + result.append(str(BuildNumber).rjust(4, "0")) + result.append(".0000-") + result.append(str(randomDayNumber).rjust(3, "0")) + result.append(str(randomDate.year).rjust(4, "0")) + + return "".join(result) diff --git a/py-kms/pykms_RequestUnknown.py b/py-kms/pykms_RequestUnknown.py new file mode 100644 index 0000000..f73f487 --- /dev/null +++ b/py-kms/pykms_RequestUnknown.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python3 + +import struct + +from pykms_Base import kmsBase +from pykms_Misc import ErrorCodes + +#--------------------------------------------------------------------------------------------------------------------------------------------------------- + +class kmsRequestUnknown(kmsBase): + def executeRequestLogic(self): + finalResponse = bytearray() + finalResponse.extend(bytearray(struct.pack('> 4 + + # Remainding bytes. + k = messageSize & 0xf + + # Hash. + for i in range(0, j): + xorBuffer(message, i << 4, hashBuffer, 16) + hashBuffer = bytearray(aes.encrypt(hashBuffer, key, len(key))) + + # Bit Padding. + ii = 0 + for i in range(j << 4, k + (j << 4)): + lastBlock[ii] = message[i] + ii += 1 + lastBlock[k] = 0x80 + + xorBuffer(lastBlock, 0, hashBuffer, 16) + hashBuffer = bytearray(aes.encrypt(hashBuffer, key, len(key))) + + return bytes(hashBuffer) + + def generateResponse(self, responseBuffer, thehash): + response = self.ResponseV4() + bodyLength = len(responseBuffer) + len(thehash) + response['bodyLength1'] = bodyLength + response['bodyLength2'] = bodyLength + response['response'] = responseBuffer + response['hash'] = thehash + response['padding'] = bytes(bytearray(self.getPadding(bodyLength))) + + ## Debug stuff. + ShellMessage.Process(16).run() + response = byterize(response) + loggersrv.debug("KMS V4 Response: \n%s\n" % justify(response.dump(print_to_stdout = False))) + loggersrv.debug("KMS V4 Response Bytes: \n%s\n" % justify(deco(binascii.b2a_hex(enco(str(response), 'latin-1')), 'utf-8'))) + + return str(response) + + def generateRequest(self, requestBase): + thehash = self.generateHash(bytearray(enco(str(requestBase), 'latin-1'))) + + request = kmsRequestV4.RequestV4() + bodyLength = len(requestBase) + len(thehash) + request['bodyLength1'] = bodyLength + request['bodyLength2'] = bodyLength + request['request'] = requestBase + request['hash'] = thehash + request['padding'] = bytes(bytearray(self.getPadding(bodyLength))) + + ## Debug stuff. + ShellMessage.Process(10).run() + request = byterize(request) + loggersrv.debug("Request V4 Data: \n%s\n" % justify(request.dump(print_to_stdout = False))) + loggersrv.debug("Request V4: \n%s\n" % justify(deco(binascii.b2a_hex(enco(str(request), 'latin-1')), 'utf-8'))) + + return request diff --git a/py-kms/pykms_RequestV5.py b/py-kms/pykms_RequestV5.py new file mode 100644 index 0000000..4fe1fd6 --- /dev/null +++ b/py-kms/pykms_RequestV5.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python3 + +import logging +import binascii +import hashlib +import random + +import pykms_Aes as aes +from pykms_Base import kmsBase +from pykms_Structure import Structure +from pykms_Format import justify, byterize, enco, deco, ShellMessage + +#-------------------------------------------------------------------------------------------------------------------------------------------------------- + +loggersrv = logging.getLogger('logsrv') + +class kmsRequestV5(kmsBase): + class RequestV5(Structure): + class Message(Structure): + commonHdr = () + structure = ( + ('salt', '16s'), + ('encrypted', '240s'), + ('padding', ':'), + ) + + commonHdr = () + structure = ( + ('bodyLength1', '=25 is required to enable activation of client OSes; \ +for server OSes and Office >=5', 'def' : None, 'des' : "CurrentClientCount"}, + 'activation' : {'help' : 'Use this option to specify the activation interval (in minutes). Default is \"120\" minutes (2 hours).', + 'def' : 120, 'des': "VLActivationInterval"}, + 'renewal' : {'help' : 'Use this option to specify the renewal interval (in minutes). Default is \"10080\" minutes (7 days).', + 'def' : 1440 * 7, 'des' : "VLRenewalInterval"}, + 'sql' : {'help' : 'Use this option to store request information from unique clients in an SQLite database. Desactivated by default.', + 'def' : False, 'des' : "sqlite"}, + 'hwid' : {'help' : 'Use this option to specify a HWID. The HWID must be an 16-character string of hex characters. \ +The default is \"364F463A8863D35F\" or type \"RANDOM\" to auto generate the HWID.', 'def' : "364F463A8863D35F", 'des' : "hwid"}, + 'time' : {'help' : 'Disconnect clients after time of inactivity (in seconds). The default is \"30\" seconds', 'def' : 30, 'des' : "timeout"}, + 'llevel' : {'help' : 'Use this option to set a log level. The default is \"ERROR\".', 'def' : "ERROR", 'des' : "loglevel", + 'choi' : ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "MINI"]}, + 'lfile' : {'help' : 'Use this option to set or not an output log file. The default is \"pykms_logserver.log\" or type \"STDOUT\" to view log info on stdout.', + 'def' : os.path.dirname(os.path.abspath( __file__ )) + "/pykms_logserver.log", 'des' : "logfile"}, + 'lsize' : {'help' : 'Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default.', 'def' : 0, 'des': "logsize"}, + } + +def server_options(): + parser = argparse.ArgumentParser(description = srv_description, epilog = 'version: ' + srv_version) + parser.add_argument("ip", nargs = "?", action = "store", default = srv_options['ip']['def'], help = srv_options['ip']['help'], type = str) + parser.add_argument("port", nargs = "?", action = "store", default = srv_options['port']['def'], help = srv_options['port']['help'], type = int) + parser.add_argument("-e", "--epid", dest = srv_options['epid']['des'], default = srv_options['epid']['def'], help = srv_options['epid']['help'], type = str) + parser.add_argument("-l", "--lcid", dest = srv_options['lcid']['des'], default = srv_options['lcid']['def'], help = srv_options['lcid']['help'], type = int) + parser.add_argument("-c", "--client-count", dest = srv_options['count']['des'] , default = srv_options['count']['def'], + help = srv_options['count']['help'], type = int) + parser.add_argument("-a", "--activation-interval", dest = srv_options['activation']['des'], default = srv_options['activation']['def'], + help = srv_options['activation']['help'], type = int) + parser.add_argument("-r", "--renewal-interval", dest = srv_options['renewal']['des'], default = srv_options['renewal']['def'], + help = srv_options['renewal']['help'], type = int) + parser.add_argument("-s", "--sqlite", dest = srv_options['sql']['des'], action = "store_const", const = True, default = srv_options['sql']['def'], + help = srv_options['sql']['help']) + parser.add_argument("-w", "--hwid", dest = srv_options['hwid']['des'], action = "store", default = srv_options['hwid']['def'], + help = srv_options['hwid']['help'], type = str) + parser.add_argument("-t", "--timeout", dest = srv_options['time']['des'], action = "store", default = srv_options['time']['def'], + help = srv_options['time']['help'], type = int) + parser.add_argument("-V", "--loglevel", dest = srv_options['llevel']['des'], action = "store", choices = srv_options['llevel']['choi'], + default = srv_options['llevel']['def'], help = srv_options['llevel']['help'], type = str) + parser.add_argument("-F", "--logfile", dest = srv_options['lfile']['des'], action = "store", default = srv_options['lfile']['def'], + help = srv_options['lfile']['help'], type = str) + parser.add_argument("-S", "--logsize", dest = srv_options['lsize']['des'], action = "store", default = srv_options['lsize']['def'], + help = srv_options['lsize']['help'], type = float) + + srv_config.update(vars(parser.parse_args())) + + +def server_check(): + # Setup hidden or not messages. + ShellMessage.view = ( False if srv_config['logfile'] == 'STDOUT' else True ) + # Create log. + logger_create(loggersrv, srv_config, mode = 'a') + + # Random HWID. + if srv_config['hwid'] == "RANDOM": + randomhwid = uuid.uuid4().hex + srv_config['hwid'] = randomhwid[:16] + + # Sanitize HWID. + try: + srv_config['hwid'] = binascii.a2b_hex(re.sub(r'[^0-9a-fA-F]', '', srv_config['hwid'].strip('0x'))) + if len(binascii.b2a_hex(srv_config['hwid'])) < 16: + loggersrv.error("HWID \"%s\" is invalid. Hex string is too short." % deco(binascii.b2a_hex(srv_config['hwid']), 'utf-8').upper()) + return + elif len(binascii.b2a_hex(srv_config['hwid'])) > 16: + loggersrv.error("HWID \"%s\" is invalid. Hex string is too long." % deco(binascii.b2a_hex(srv_config['hwid']), 'utf-8').upper()) + return + except TypeError: + loggersrv.error("HWID \"%s\" is invalid. Odd-length hex string." % deco(binascii.b2a_hex(srv_config['hwid']), 'utf-8').upper()) + return + + # Check LCID. + # http://stackoverflow.com/questions/3425294/how-to-detect-the-os-default-language-in-python + if not srv_config['lcid'] or (srv_config['lcid'] not in ValidLcid): + if hasattr(sys, 'implementation') and sys.implementation.name == 'cpython': + srv_config['lcid'] = 1033 + elif os.name == 'nt': + import ctypes + + srv_config['lcid'] = ctypes.windll.kernel32.GetUserDefaultUILanguage() + else: + import locale + + try: + srv_config['lcid'] = next(k for k, v in locale.windows_locale.items() if v == locale.getdefaultlocale()[0]) + except StopIteration: + srv_config['lcid'] = 1033 + + # Check sqlite. + try: + import sqlite3 + except: + loggersrv.warning("Module \"sqlite3\" is not installed, database support disabled.") + srv_config['dbSupport'] = False + else: + srv_config['dbSupport'] = True + + # Check port. + try: + p = srv_config['port'] + if p > 65535: + loggersrv.error('Please enter a valid port number between 1 - 65535') + return + except Exception as e: + loggersrv.error('%s' %e) + return + +def server_create(): + socketserver.TCPServer.allow_reuse_address = True + server = socketserver.TCPServer((srv_config['ip'], srv_config['port']), kmsServer) + server.timeout = srv_config['timeout'] + loggersrv.info("\n\nTCP server listening at %s on port %d." % (srv_config['ip'], srv_config['port'])) + loggersrv.info("HWID: %s" % deco(binascii.b2a_hex(srv_config['hwid']), 'utf-8').upper()) + return server + +def srv_main_without_gui(): + # Parse options. + server_options() + # Run threaded server. + serverqueue.put('start') + serverthread.join() + +def srv_main_with_gui(width = 950, height = 660): + import pykms_GuiBase + + root = pykms_GuiBase.KmsGui() + root.title(pykms_GuiBase.gui_description + ' ' + pykms_GuiBase.gui_version) + # Main window initial position. + ## https://stackoverflow.com/questions/14910858/how-to-specify-where-a-tkinter-window-opens + ws = root.winfo_screenwidth() + hs = root.winfo_screenheight() + x = (ws / 2) - (width / 2) + y = (hs / 2) - (height / 2) + root.geometry('+%d+%d' %(x, y)) + + root.mainloop() + + +class kmsServer(socketserver.BaseRequestHandler): + def setup(self): + loggersrv.info("Connection accepted: %s:%d" % (self.client_address[0], self.client_address[1])) + + def handle(self): + while True: + # self.request is the TCP socket connected to the client + try: + self.data = self.request.recv(1024) + except socket.error as e: + if e.errno == errno.ECONNRESET: + loggersrv.error("Connection reset by peer.") + break + else: + raise + if self.data == '' or not self.data: + loggersrv.warning("No data received !") + break + + packetType = MSRPCHeader(self.data)['type'] + if packetType == rpcBase.packetType['bindReq']: + loggersrv.info("RPC bind request received.") + ShellMessage.Process([-2, 2]).run() + handler = pykms_RpcBind.handler(self.data, srv_config) + elif packetType == rpcBase.packetType['request']: + loggersrv.info("Received activation request.") + ShellMessage.Process([-2, 13]).run() + handler = pykms_RpcRequest.handler(self.data, srv_config) + else: + loggersrv.error("Invalid RPC request type ", packetType) + break + + res = enco(str(handler.populate()), 'latin-1') + self.request.send(res) + + if packetType == rpcBase.packetType['bindReq']: + loggersrv.info("RPC bind acknowledged.") + ShellMessage.Process([-3, 5, 6]).run() + elif packetType == rpcBase.packetType['request']: + loggersrv.info("Responded to activation request.") + ShellMessage.Process([-3, 18, 19]).run() + break + + def finish(self): + self.request.close() + loggersrv.info("Connection closed: %s:%d" % (self.client_address[0], self.client_address[1])) + + +serverqueue = Queue.Queue(maxsize = 0) +serverthread = server_thread() +serverthread.start() + +if __name__ == "__main__": + if sys.stdout.isatty(): + srv_main_without_gui() + else: + srv_main_with_gui() diff --git a/py-kms/pykms_Sql.py b/py-kms/pykms_Sql.py new file mode 100644 index 0000000..c8bc53c --- /dev/null +++ b/py-kms/pykms_Sql.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 + +import logging + +# sqlite3 is optional. +try: + import sqlite3 +except ImportError: + pass + +#-------------------------------------------------------------------------------------------------------------------------------------------------------- + +logger = logging.getLogger('root') + +def sql_initialize(): + dbName = 'clients.db' + if not os.path.isfile(dbName): + # Initialize the database. + con = None + try: + con = sqlite3.connect(dbName) + cur = con.cursor() + cur.execute("CREATE TABLE clients(clientMachineId TEXT, machineName TEXT, applicationId TEXT, skuId TEXT, \ +licenseStatus TEXT, lastRequestTime INTEGER, kmsEpid TEXT, requestCount INTEGER)") + + except sqlite3.Error as e: + logger.error("Error %s:" % e.args[0]) + sys.exit(1) + finally: + if con: + con.commit() + con.close() + return dbName + + +def sql_update(dbName, infoDict): + con = None + try: + con = sqlite3.connect(dbName) + cur = con.cursor() + cur.execute("SELECT * FROM clients WHERE clientMachineId=:clientMachineId;", infoDict) + try: + data = cur.fetchone() + if not data: + # Insert row. + cur.execute("INSERT INTO clients (clientMachineId, machineName, applicationId, \ +skuId, licenseStatus, lastRequestTime, requestCount) VALUES (:clientMachineId, :machineName, :appId, :skuId, :licenseStatus, :requestTime, 1);", infoDict) + else: + # Update data. + if data[1] != infoDict["machineName"]: + cur.execute("UPDATE clients SET machineName=:machineName WHERE clientMachineId=:clientMachineId;", infoDict) + if data[2] != infoDict["appId"]: + cur.execute("UPDATE clients SET applicationId=:appId WHERE clientMachineId=:clientMachineId;", infoDict) + if data[3] != infoDict["skuId"]: + cur.execute("UPDATE clients SET skuId=:skuId WHERE clientMachineId=:clientMachineId;", infoDict) + if data[4] != infoDict["licenseStatus"]: + cur.execute("UPDATE clients SET licenseStatus=:licenseStatus WHERE clientMachineId=:clientMachineId;", infoDict) + if data[5] != infoDict["requestTime"]: + cur.execute("UPDATE clients SET lastRequestTime=:requestTime WHERE clientMachineId=:clientMachineId;", infoDict) + # Increment requestCount + cur.execute("UPDATE clients SET requestCount=requestCount+1 WHERE clientMachineId=:clientMachineId;", infoDict) + + except sqlite3.Error as e: + logger.error("Error %s:" % e.args[0]) + except sqlite3.Error as e: + logger.error("Error %s:" % e.args[0]) + sys.exit(1) + finally: + if con: + con.commit() + con.close() + +def sql_update_epid(dbName, kmsRequest, response): + cmid = str(kmsRequest['clientMachineId'].get()) + con = None + try: + con = sqlite3.connect(self.dbName) + cur = con.cursor() + cur.execute("SELECT * FROM clients WHERE clientMachineId=?;", [cmid]) + try: + data = cur.fetchone() + if data[6]: + response["kmsEpid"] = data[6].encode('utf-16le') + else: + cur.execute("UPDATE clients SET kmsEpid=? WHERE clientMachineId=?;", (str(response["kmsEpid"].decode('utf-16le')), + cmid)) + except sqlite3.Error as e: + logger.error("Error %s:" % e.args[0]) + except sqlite3.Error as e: + logger.error("Error %s:" % e.args[0]) + sys.exit(1) + finally: + if con: + con.commit() + con.close() + return response diff --git a/py-kms/pykms_Structure.py b/py-kms/pykms_Structure.py new file mode 100644 index 0000000..64491d6 --- /dev/null +++ b/py-kms/pykms_Structure.py @@ -0,0 +1,763 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2003-2012 CORE Security Technologies +# +# This software is provided under under a slightly modified version +# of the Apache Software License. See the accompanying LICENSE file +# for more information. +# +""" +Stripped down version of: https://github.com/CoreSecurity/impacket/blob/python3/impacket/structure.py +with modifications in the function dump(...). +""" + +from __future__ import print_function +from struct import pack, unpack, calcsize + +# Trying to support both Python 2 and 3 +import sys + +if sys.version_info[0] == 2: + # Python 2.x + def b(x): + return x + def buildStr(x): + return x +else: + import codecs + def b(x): + if isinstance(x, bytes) is False: + return codecs.latin_1_encode(x)[0] + return x + def buildStr(x): + if isinstance(x, bytes): + return "".join(map(chr,x)) + else: + return x + +class Structure: + """ sublcasses can define commonHdr and/or structure. + each of them is an tuple of either two: (fieldName, format) or three: (fieldName, ':', class) fields. + [it can't be a dictionary, because order is important] + + where format specifies how the data in the field will be converted to/from bytes (string) + class is the class to use when unpacking ':' fields. + + each field can only contain one value (or an array of values for *) + i.e. struct.pack('Hl',1,2) is valid, but format specifier 'Hl' is not (you must use 2 dfferent fields) + + format specifiers: + specifiers from module pack can be used with the same format + see struct.__doc__ (pack/unpack is finally called) + x [padding byte] + c [character] + b [signed byte] + B [unsigned byte] + h [signed short] + H [unsigned short] + l [signed long] + L [unsigned long] + i [signed integer] + I [unsigned integer] + q [signed long long (quad)] + Q [unsigned long long (quad)] + s [string (array of chars), must be preceded with length in format specifier, padded with zeros] + p [pascal string (includes byte count), must be preceded with length in format specifier, padded with zeros] + f [float] + d [double] + = [native byte ordering, size and alignment] + @ [native byte ordering, standard size and alignment] + ! [network byte ordering] + < [little endian] + > [big endian] + + usual printf like specifiers can be used (if started with %) + [not recommeneded, there is no why to unpack this] + + %08x will output an 8 bytes hex + %s will output a string + %s\\x00 will output a NUL terminated string + %d%d will output 2 decimal digits (against the very same specification of Structure) + ... + + some additional format specifiers: + : just copy the bytes from the field into the output string (input may be string, other structure, or anything responding to __str__()) (for unpacking, all what's left is returned) + z same as :, but adds a NUL byte at the end (asciiz) (for unpacking the first NUL byte is used as terminator) [asciiz string] + u same as z, but adds two NUL bytes at the end (after padding to an even size with NULs). (same for unpacking) [unicode string] + w DCE-RPC/NDR string (it's a macro for [ ' 2: + dataClassOrCode = field[2] + try: + self[field[0]] = self.unpack(field[1], data[:size], dataClassOrCode = dataClassOrCode, field = field[0]) + except Exception as e: + e.args += ("When unpacking field '%s | %s | %r[:%d]'" % (field[0], field[1], data, size),) + raise + + size = self.calcPackSize(field[1], self[field[0]], field[0]) + if self.alignment and size % self.alignment: + size += self.alignment - (size % self.alignment) + data = data[size:] + + return self + + def __setitem__(self, key, value): + self.fields[key] = value + self.data = None # force recompute + + def __getitem__(self, key): + return self.fields[key] + + def __delitem__(self, key): + del self.fields[key] + + def __str__(self): + return self.getData() + + def __len__(self): + # XXX: improve + return len(self.getData()) + + def pack(self, format, data, field = None): + if self.debug: + print(" pack( %s | %r | %s)" % (format, data, field)) + + if field: + addressField = self.findAddressFieldFor(field) + if (addressField is not None) and (data is None): + return b'' + + # void specifier + if format[:1] == '_': + return b'' + + # quote specifier + if format[:1] == "'" or format[:1] == '"': + return b(format[1:]) + + # code specifier + two = format.split('=') + if len(two) >= 2: + try: + return self.pack(two[0], data) + except: + fields = {'self':self} + fields.update(self.fields) + return self.pack(two[0], eval(two[1], {}, fields)) + + # address specifier + two = format.split('&') + if len(two) == 2: + try: + return self.pack(two[0], data) + except: + if (two[1] in self.fields) and (self[two[1]] is not None): + return self.pack(two[0], id(self[two[1]]) & ((1<<(calcsize(two[0])*8))-1) ) + else: + return self.pack(two[0], 0) + + # length specifier + two = format.split('-') + if len(two) == 2: + try: + return self.pack(two[0],data) + except: + return self.pack(two[0], self.calcPackFieldSize(two[1])) + + # array specifier + two = format.split('*') + if len(two) == 2: + answer = b'' + for each in data: + answer += self.pack(two[1], each) + if two[0]: + if two[0].isdigit(): + if int(two[0]) != len(data): + raise Exception("Array field has a constant size, and it doesn't match the actual value") + else: + return self.pack(two[0], len(data))+answer + return answer + + # "printf" string specifier + if format[:1] == '%': + # format string like specifier + return format % data + + # asciiz specifier + if format[:1] == 'z': + return b(data)+b'\0' + + # unicode specifier + if format[:1] == 'u': + return b(data)+b'\0\0' + (len(data) & 1 and b'\0' or b'') + + # DCE-RPC/NDR string specifier + if format[:1] == 'w': + if len(data) == 0: + data = '\0\0' + elif len(data) % 2: + data += '\0' + l = pack('= 2: + return self.unpack(two[0],data) + + # length specifier + two = format.split('-') + if len(two) == 2: + return self.unpack(two[0],data) + + # array specifier + two = format.split('*') + if len(two) == 2: + answer = [] + sofar = 0 + if two[0].isdigit(): + number = int(two[0]) + elif two[0]: + sofar += self.calcUnpackSize(two[0], data) + number = self.unpack(two[0], data[:sofar]) + else: + number = -1 + while number and sofar < len(data): + nsofar = sofar + self.calcUnpackSize(two[1],data[sofar:]) + answer.append(self.unpack(two[1], data[sofar:nsofar], dataClassOrCode)) + number -= 1 + sofar = nsofar + return answer + + # "printf" string specifier + if format[:1] == '%': + # format string like specifier + return format % data + + # asciiz specifier + if format == 'z': + if data[-1] != '\x00': + raise Exception("%s 'z' field is not NUL terminated: %r" % (field, data)) + return data[:-1] # remove trailing NUL + + # unicode specifier + if format == 'u': + if data[-2:] != '\x00\x00': + raise Exception("%s 'u' field is not NUL-NUL terminated: %r" % (field, data)) + return data[:-2] # remove trailing NUL + + # DCE-RPC/NDR string specifier + if format == 'w': + l = unpack('=0: + return buildStr(unpack(format, b(data))[0]) + else: + return unpack(format, b(data))[0] + + def calcPackSize(self, format, data, field = None): + #print( " calcPackSize %s:%r" % (format, data)) + if field: + addressField = self.findAddressFieldFor(field) + if addressField is not None: + if not self[addressField]: + return 0 + + # void specifier + if format[:1] == '_': + return 0 + + # quote specifier + if format[:1] == "'" or format[:1] == '"': + return len(format)-1 + + # address specifier + two = format.split('&') + if len(two) == 2: + return self.calcPackSize(two[0], data) + + # code specifier + two = format.split('=') + if len(two) >= 2: + return self.calcPackSize(two[0], data) + + # length specifier + two = format.split('-') + if len(two) == 2: + return self.calcPackSize(two[0], data) + + # array specifier + two = format.split('*') + if len(two) == 2: + answer = 0 + if two[0].isdigit(): + if int(two[0]) != len(data): + raise Exception("Array field has a constant size, and it doesn't match the actual value") + elif two[0]: + answer += self.calcPackSize(two[0], len(data)) + + for each in data: + answer += self.calcPackSize(two[1], each) + return answer + + # "printf" string specifier + if format[:1] == '%': + # format string like specifier + return len(format % data) + + # asciiz specifier + if format[:1] == 'z': + return len(data)+1 + + # asciiz specifier + if format[:1] == 'u': + l = len(data) + return l + (l & 1 and 3 or 2) + + # DCE-RPC/NDR string specifier + if format[:1] == 'w': + l = len(data) + return int((12+l+(l % 2))) + + # literal specifier + if format[:1] == ':': + return len(data) + + # struct like specifier + return calcsize(format) + + def calcUnpackSize(self, format, data, field = None): + if self.debug: + print(" calcUnpackSize( %s | %s | %r)" % (field, format, data)) + + # void specifier + if format[:1] == '_': + return 0 + + addressField = self.findAddressFieldFor(field) + if addressField is not None: + if not self[addressField]: + return 0 + + try: + lengthField = self.findLengthFieldFor(field) + return int(self[lengthField]) + except: + pass + + # XXX: Try to match to actual values, raise if no match + + # quote specifier + if format[:1] == "'" or format[:1] == '"': + return len(format)-1 + + # address specifier + two = format.split('&') + if len(two) == 2: + return self.calcUnpackSize(two[0], data) + + # code specifier + two = format.split('=') + if len(two) >= 2: + return self.calcUnpackSize(two[0], data) + + # length specifier + two = format.split('-') + if len(two) == 2: + return self.calcUnpackSize(two[0], data) + + # array specifier + two = format.split('*') + if len(two) == 2: + answer = 0 + if two[0]: + if two[0].isdigit(): + number = int(two[0]) + else: + answer += self.calcUnpackSize(two[0], data) + number = self.unpack(two[0], data[:answer]) + + while number: + number -= 1 + answer += self.calcUnpackSize(two[1], data[answer:]) + else: + while answer < len(data): + answer += self.calcUnpackSize(two[1], data[answer:]) + return answer + + # "printf" string specifier + if format[:1] == '%': + raise Exception("Can't guess the size of a printf like specifier for unpacking") + + # asciiz specifier + if format[:1] == 'z': + return data.index('\x00')+1 + + # asciiz specifier + if format[:1] == 'u': + l = data.index('\x00\x00') + return l + (l & 1 and 3 or 2) + + # DCE-RPC/NDR string specifier + if format[:1] == 'w': + l = unpack('L'), + ('code1','>L=len(arr1)*2+0x1000'), + ) + + def populate(self, a): + a['default'] = 'hola' + a['int1'] = 0x3131 + a['int3'] = 0x45444342 + a['z1'] = 'hola' + a['u1'] = 'hola'.encode('utf_16_le') + a[':1'] = ':1234:' + a['arr1'] = (0x12341234,0x88990077,0x41414141) + # a['len1'] = 0x42424242 + +class _Test_fixedLength(_Test_simple): + def populate(self, a): + _Test_simple.populate(self, a) + a['len1'] = 0x42424242 + +class _Test_simple_aligned4(_Test_simple): + alignment = 4 + +class _Test_nested(_StructureTest): + class theClass(Structure): + class _Inner(Structure): + structure = (('data', 'z'),) + + structure = ( + ('nest1', ':', _Inner), + ('nest2', ':', _Inner), + ('int', '> 8)'), + ('pad', '_','((iv >>2) & 0x3F)'), + ('keyid', '_','( iv & 0x03 )'), + ('dataLen', '_-data', 'len(inputDataLeft)-4'), + ('data',':'), + ('icv','>L'), + ) + + def populate(self, a): + a['init_vector']=0x01020304 + #a['pad']=int('01010101',2) + a['pad']=int('010101',2) + a['keyid']=0x07 + a['data']="\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9" + a['icv'] = 0x05060708 + #a['iv'] = 0x01020304 + +if __name__ == '__main__': + _Test_simple().run() + + try: + _Test_fixedLength().run() + except: + print("cannot repack because length is bogus") + + _Test_simple_aligned4().run() + _Test_nested().run() + _Test_Optional().run() + _Test_Optional_sparse().run() + _Test_AsciiZArray().run() + _Test_UnpackCode().run() + _Test_AAA().run()