'SaveSettings.vbs - 1/11/2012 - MDR 'Utility script which will save customized registry settings, drive definitions, catalog database 'and pre- and post-.bat scripts so that they can be easily restored after a software update. ' 10/29/2013 - save settings now appends date stamp to foldername used to hold catalog. Restore will require date in foldername. CONST RBSProvider = "Dr.Backup" CONST Version = "(v1.1/1)" '** standard pre-amble for all interactive scripts ** 'get OS volume Set OSobj = CreateObject("Scripting.FileSystemObject") OSfolder = OSobj.getspecialfolder(0) objStartFolder = Left(OSfolder, 3) 'root of search file tree OSVolume = Left(OSfolder, 1) '** added to elevate privs - initial call will have zero arguments ** If WScript.Arguments.count = 0 AND NewOS() Then Set objShell = CreateObject("Shell.Application") 'Pass a bogus argument with leading blank space, say [ uac] objShell.ShellExecute "wscript.exe", Chr(34) & _ WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 Wscript.Quit End If 'find location of 32-bit script processing program - in syswow64 on 64-bit machines ScriptEXE = OSFolder & "\SYSTEM32\Cscript.exe" Set objFSOexe = CreateObject("Scripting.FileSystemObject") If objFSOexe.FileExists(OSFolder & "\SYSWOW64\Cscript.exe") Then '640bit system found. switch to 32-bit cscript ScriptEXE = OSFolder & "\SYSWOW64\Cscript.exe" End If '** if we have UAC escalated count will be 1, otherwise 0 on legacy machines ** '** force use of cscript so we get console display ** If Wscript.Arguments.Count < 2 Then strPath = Wscript.ScriptFullName strCommand = "%comspec% /k " & ScriptEXE & " //nologo """ & strPath & """" & " 1 2" Set objShell = CreateObject("Wscript.Shell") objShell.Run(strCommand), 1, True Wscript.Quit End If 'On Error Resume Next 'Err.Clear Wscript.StdOut.Write(RBSProvider & " - Save (Customized) Settings Utility " & Version & VbCrLF) Wscript.StdOut.WriteLine("Start: " & Now() & VbCrLf) 'Prompt if ready to save customizations status = MsgBox("Stop all Dr.Backup components. Ready?", vbOkCancel + vbInformation + vbDefaultButton2, "Save Settings") If status = vbCancel Then Wscript.Quit End If 'Get catalog location from Registry Const HKEY_LOCAL_MACHINE = &H80000002 strComputer = "." strKeyPath = "SOFTWARE\Quantum Tech, Inc.\Remote Backup\Settings" strEntryName = "ClientDB" Set objReg = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") status = objReg.GetStringValue( HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue) 'Sometimes security products block access to the registry. If so, lookup will fail. 'Give the user an opportunity to specify location of backup catalog manually rather than hard fail. If (status <> 0) or (Err.Number <> 0) Then strValue = InputBox("Unable to lookup database location in registry." & VbCrLf & "Please enter path below: ","Locate Backup Catalog", "C:\Program Files (x86)\Remote Backup") If Len(strValue) = 0 Then Wscript.StdOut.WriteLine("Cancelled. Script aborted." & VbCr) Wscript.Quit End If Err.Clear End If CONST BackupCatalog = "backup.mdb" CONST NetUseFile = "rbnetuse.ini" 'We now have the fully qualified path to the main catalog database Database = strValue & "\" & BackupCatalog Wscript.StdOut.WriteLine("Catalog Location : " & Database) 'We now have the fully qualified path to the mapped drive definitions file MappedDrives = strValue & "\" & NetUseFile Wscript.StdOut.WriteLine("Mapped Drive Config : " & MappedDrives) 'Create a folder inside of the system temporary folder to hold data 'Get the environmental %temp% value as root for working folder Set wshShell = CreateObject("WScript.Shell" ) TempPath = wshShell.ExpandEnvironmentStrings( "%TEMP%" ) 'wshShell = Nothing Wscript.StdOut.WriteLine("Temp space located : " & TempPath) CONST WorkFolder = "DrBackupSettings" dt = Now() strFolder = TempPath & "\" & WorkFolder & "-" & month(dt) & day(dt) & year(dt) 'Create a working folder in temp area Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strFolder) = FALSE then objFSO.CreateFolder strFolder Wscript.StdOut.WriteLine("Folder created : " & strFolder) Else Wscript.StdOut.WriteLine("Re-using folder : " & strFolder & VbCrLf) End If CONST OverwriteExisting = TRUE Wscript.StdOut.WriteLine("") 'Copy the catalog file to settings Workfolder Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile Database, strFolder & "\", OverwriteExisting Wscript.StdOut.WriteLine("Copied Database.") 'Copy the rbnetuse.ini file to settings Workfolder if it exists Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(MappedDrives) = TRUE then objFSO.CopyFile MappedDrives, strFolder & "\", OverwriteExisting Wscript.StdOut.WriteLine("Copied Mapped drive settings.") Else Wscript.StdOut.WriteLine("Warn: No mapped drive settings.") End If 'Copy any file of the format "pre-*" to the settings Workfolder Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile strValue & "\" & "pre-*.*", strFolder & "\", OverwriteExisting Wscript.StdOut.WriteLine("Copied Pre-files.") 'Copy any file of the format "post-*" to the settings Workfolder Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile strValue & "\" & "post-*.*", strFolder & "\", OverwriteExisting Wscript.StdOut.WriteLine("Copied Post-files.") Wscript.StdOut.WriteLine(VbCrLf & "") 'Build a list of registry key strings we want to iterate through CONST RegistryKeys = "BufferSize|FreespaceThreshold|LocalTransfer|LocalTransferPath|MaxFileSizeLimit|MaxSyncTransactions|QueueLimit|StoreNameChars|CS|CSPath" Dim RegKeys 'list of registry customizations Dim RegKeysSave 'will hold string of registry keys with data Dim RegKeysSaveValues 'corresponding values of RegKeysSave RegKeys = Split(RegistryKeys, "|") RegKeysSave = "" RegKeysSaveValues = "" For i=0 to Ubound(RegKeys) 'Get catalog location from Registry strComputer = "." strKeyPath = "SOFTWARE\Quantum Tech, Inc.\Remote Backup\Settings" strEntryName = RegKeys(i) Set objReg = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") status = objReg.GetStringValue( HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue) 'Sometimes security products block access to the registry. If so, this script will exit. If (status <> 0) or (Err.Number <> 0) Then 'Cannot get key Wscript.StdOut.WriteLine("""" & RegKeys(i) & """" & " = " & "") Else 'fetched key. write it to output file for safekeeping RegKeysSave = RegKeysSave & "|" & RegKeys(i) RegKeysSaveValues = RegKeysSaveValues & "|" & strValue Wscript.StdOut.WriteLine("""" & RegKeys(i) & """" & "=" & """" & strValue & """"& " - saved.") End If Next 'Wscript.StdOut.WriteLine("Keys = " & Right(RegKeysSave, Len(RegKeysSave)-1)) 'Wscript.StdOut.WriteLine("Values = " & Right(RegKeysSaveValues, Len(RegKeysSaveValues)-1)) CONST RegistryFile = "RegistryFile.txt" 'save the registry data to a file. Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile(strFolder & "\" & RegistryFile, OverwriteExisting) objFile.WriteLine Right(RegKeysSave, Len(RegKeysSave)-1) objFile.WriteLine Right(RegKeysSaveValues, Len(RegKeysSaveValues)-1) objFile.Close 'show complete message Wscript.StdOut.Writeline(" ") 'Wscript.StdOut.Write(RBSProvider & " - Save (Customized) Settings Utility " & Version & VbCrLF) Wscript.StdOut.WriteLine("Configuration data stored: " & strFolder) Wscript.StdOut.WriteLine("Complete: " & Now()) Wscript.Quit Function NewOS() 'Utility function to determine if this is new machine, i.e., will have UAC if > 2003 On Error Resume Next strComputer = "." OScaption = "" NewOS = False Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery _ ("Select * from Win32_OperatingSystem") For Each objOperatingSystem in colOperatingSystems OScaption = objOperatingSystem.Caption Next If Instr(OScaption,"XP") > 0 OR _ Instr(OScaption, "2003") > 0 OR _ instr(OScaption, "2000") > 0 OR _ len(OScaption) = 0 Then NewOS = False Else NewOS = True End If Exit Function End Function '' SIG '' Begin signature block '' SIG '' MIIYxQYJKoZIhvcNAQcCoIIYtjCCGLICAQExCzAJBgUr '' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB '' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB '' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFCQT2KKk4KBE '' SIG '' j7Hzu23PMqf89PXsoIITVTCCBIQwggNsoAMCAQICEEIa '' SIG '' 8pQJhBkfUgpLxiQmp0swDQYJKoZIhvcNAQEFBQAwbzEL '' SIG '' MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFC '' SIG '' MSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAg '' SIG '' TmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJu '' SIG '' YWwgQ0EgUm9vdDAeFw0wNTA2MDcwODA5MTBaFw0yMDA1 '' SIG '' MzAxMDQ4MzhaMIGVMQswCQYDVQQGEwJVUzELMAkGA1UE '' SIG '' CBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w '' SIG '' HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAf '' SIG '' BgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEd '' SIG '' MBsGA1UEAxMUVVROLVVTRVJGaXJzdC1PYmplY3QwggEi '' SIG '' MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOqoE/ '' SIG '' o6NheKoxAFWVEZ4nDx8c3zqbgmgwwEphHfEvDvq+efel '' SIG '' I+9VUZaEzdvjuW4+MdgKIGfH9Nm/lOtHBD4CziqiXYcE '' SIG '' CfYwnRiKl7KqHPxB0qE2y/s9kbrn2XA1+uTnkMObo5vT '' SIG '' PPUSmXextwngaOYcuPOUY4hqav4Ldsm+9CLkZ7mrGl53 '' SIG '' wYUH3Q1sv+4Gx3dqQZ6nD9f77pQXt/yFvqSrxBwx3de2 '' SIG '' 0eTw798Wj7JSk9eh1ImhBy6/4QESQh4a4diVNNtkeSj/ '' SIG '' ui4RwuXoW5JI+0cLwmzarTKDQfOl5UFw/WWQbfr6UcT5 '' SIG '' vZYrGQQs022n3PB/b4Nl4mqrh4Z1AgMBAAGjgfQwgfEw '' SIG '' HwYDVR0jBBgwFoAUrb2YejS0Jvf6xCZU7wO94CTLVBow '' SIG '' HQYDVR0OBBYEFNrtZHQUnBQ8q92Zqb1bKE2LPMnYMA4G '' SIG '' A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MBEG '' SIG '' A1UdIAQKMAgwBgYEVR0gADBEBgNVHR8EPTA7MDmgN6A1 '' SIG '' hjNodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vQWRkVHJ1 '' SIG '' c3RFeHRlcm5hbENBUm9vdC5jcmwwNQYIKwYBBQUHAQEE '' SIG '' KTAnMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2Vy '' SIG '' dHJ1c3QuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQBNQi+m '' SIG '' wYrrB4CQWEaM+Bk5Zio8Wixtz9TZh1WNeQsSiHtAj9XH '' SIG '' +EuNVRZjrbdX3DsrvdPBTx4Dh0tEm+PiQEUm8yZJK2qE '' SIG '' 8VR61ELa/NNqu2Z+yp7q6bvcB8fDkk6DPIFJn5LVMgnq '' SIG '' SS6hEXGaNtLFTmi2yw4bJRavbN5ddtgfcrGTJoYX2xje '' SIG '' r0Xp3/uYrxQY7aRe9omURfBVBErd/yfdBkpA9rS88eQP '' SIG '' mQK7/V0OLijBvjtfGj+XEIS8Fj7Yo5xjHWbLXF/aPvMP '' SIG '' Cgk1ItvbwD8A+eYNXWfR/aAeAyvZQPe+zIdmVICmo7j1 '' SIG '' GWLV0iaxmCbumstEp0VagZUVGvVRMIIEkzCCA3ugAwIB '' SIG '' AgIQR4qO+1nh2D8M4ULSoocHvjANBgkqhkiG9w0BAQUF '' SIG '' ADCBlTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcw '' SIG '' FQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMV '' SIG '' VGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho '' SIG '' dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMT '' SIG '' FFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTEwMDUxMDAw '' SIG '' MDAwMFoXDTE1MDUxMDIzNTk1OVowfjELMAkGA1UEBhMC '' SIG '' R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQ '' SIG '' MA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RP '' SIG '' IENBIExpbWl0ZWQxJDAiBgNVBAMTG0NPTU9ETyBUaW1l '' SIG '' IFN0YW1waW5nIFNpZ25lcjCCASIwDQYJKoZIhvcNAQEB '' SIG '' BQADggEPADCCAQoCggEBALw1oDZwIoERw7KDudMoxjbN '' SIG '' JWupe7Ic9ptRnO819O0Ijl44CPh3PApC4PNw3KPXyvVM '' SIG '' C8//IpwKfmjWCaIqhHumnbSpwTPi7x8XSMo6zUbmxap3 '' SIG '' veN3mvpHU0AoWUOT8aSB6u+AtU+nCM66brzKdgyXZFmG '' SIG '' JLs9gpCoVbGS06CnBayfUyUIEEeZzZjeaOW0UHijrwHM '' SIG '' WUNY5HZufqzH4p4fT7BHLcgMo0kngHWMuwaRZQ+Qm/S6 '' SIG '' 0YHIXGrsFOklCb8jFvSVRkBAIbuDlv2GH3rIDRCOovgZ '' SIG '' B1h/n703AmDypOmdRD8wBeSncJlRmugX8VXKsmGJZUan '' SIG '' avJYRn6qoAcCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBTa '' SIG '' 7WR0FJwUPKvdmam9WyhNizzJ2DAdBgNVHQ4EFgQULi2w '' SIG '' CkRK04fAAgfOl31QYiD9D4MwDgYDVR0PAQH/BAQDAgbA '' SIG '' MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYB '' SIG '' BQUHAwgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2Ny '' SIG '' bC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2Jq '' SIG '' ZWN0LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUH '' SIG '' MAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJ '' SIG '' KoZIhvcNAQEFBQADggEBAMj7Y/gLdXUsOvHyE6cttqMa '' SIG '' nK0BB9M0jnfgwm6uAl1IT6TSIbY2/So1Q3xr34CHCxXw '' SIG '' djIAtM61Z6QvLyAbnFSegz8fXxSVYoIPIkEiH3Cz8/dC '' SIG '' 3mxRzUv4IaybO4yx5eYoj84qivmqUk2MW3e6TVpY27tq '' SIG '' BMxSHp3iKDcOu+cOkcf42/GBmOvNN7MOq2XTYuw6pXbr '' SIG '' E6g1k8kuCgHswOjMPX626+LB7NMUkoJmh1Dc/VCXrLNK '' SIG '' dnMGxIYROrNfQwRSb+qz0HQ2TMrxG3mEN3BjrXS5qg7z '' SIG '' mLCGCOvb4B+MEPI5ZJuuTwoskopPGLWR5Y0ak18frvGm '' SIG '' 8C6X0NL2KzwwggTnMIIDz6ADAgECAhAQcJ1P9VQI1zBg '' SIG '' AdjqkXW7MA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQG '' SIG '' EwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQg '' SIG '' TGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNU '' SIG '' IE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNl '' SIG '' cnRydXN0LmNvbTEdMBsGA1UEAxMUVVROLVVTRVJGaXJz '' SIG '' dC1PYmplY3QwHhcNMTEwODI0MDAwMDAwWhcNMjAwNTMw '' SIG '' MTA0ODM4WjB7MQswCQYDVQQGEwJHQjEbMBkGA1UECBMS '' SIG '' R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxm '' SIG '' b3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEh '' SIG '' MB8GA1UEAxMYQ09NT0RPIENvZGUgU2lnbmluZyBDQSAy '' SIG '' MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA '' SIG '' y/jnp+jxlyhAaIA30sg/jpKKkjeHR4DqTJnPbvkVR73u '' SIG '' dfRErNDD1E33GcDTPE3BR7lZZRaTjNkKhJuf6PZqY1j+ '' SIG '' X9zRf0tRnwAcAIdUIAdXoILJL5ivM4q7e4AiJWpsr8Is '' SIG '' bHkTvaMqSNa1jmFV6WvoPYC/FAOFGI5+TOnCGYhzknLN '' SIG '' +v9QTcsspnsac7EAkCzZMuL7/ayVQjbsNMUTU2iywZ9A '' SIG '' n9p7yJ1ibJOiQtd5n5dPMVtQIaGrr9kcss51vlssVgAk '' SIG '' jRHBdR/w/tKV/vDhMSMYZ8BbE/1amJSU//9ZAh8ArObx '' SIG '' 8vo6c7MdQvxUdc9RMS/j24HZdyMqT1nOIwIDAQABo4IB '' SIG '' SjCCAUYwHwYDVR0jBBgwFoAU2u1kdBScFDyr3ZmpvVso '' SIG '' TYs8ydgwHQYDVR0OBBYEFB7FsSx9h9oCaHwlvAwHhD+2 '' SIG '' z97xMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG '' SIG '' AQH/AgEAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGA1Ud '' SIG '' IAQKMAgwBgYEVR0gADBCBgNVHR8EOzA5MDegNaAzhjFo '' SIG '' dHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJG '' SIG '' aXJzdC1PYmplY3QuY3JsMHQGCCsGAQUFBwEBBGgwZjA9 '' SIG '' BggrBgEFBQcwAoYxaHR0cDovL2NydC51c2VydHJ1c3Qu '' SIG '' Y29tL1VUTkFkZFRydXN0T2JqZWN0X0NBLmNydDAlBggr '' SIG '' BgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNv '' SIG '' bTANBgkqhkiG9w0BAQUFAAOCAQEAlYl3k2gBXnzZLTcH '' SIG '' kF1aQl4MZLQ2tQ/2q9U5J94iRqRJHGZLRhlZLnlJA/ac '' SIG '' kt9tUDVcDJEuYANZ0PFk92kJ9n7+6zSzbbG/ZpyjujF4 '' SIG '' uYc1YT2SMRvv9Oie1qxF+gw2PIBnu73vLsKQ4T1xLzvB '' SIG '' sFh+RcNScQMH9vM5TYs2IRsB39naXivrDpeAHkQcUIj1 '' SIG '' xhIzSqhNpY0vlAx7xr+aLMMyzb2MJybw4TADUAaCvPQ7 '' SIG '' s4N1Bsbvuu7TgPhSxqzLefI4nnuwklhCkQXIliGtuUsW '' SIG '' gRRp8Tew/jT33LDfl/VDEJt2j7Rl9eifE7cerG/EaYpf '' SIG '' ujxhfl5JhiMTLq8VSDCCBUcwggQvoAMCAQICEBmLWs2p '' SIG '' p0+2waAewzvLePwwDQYJKoZIhvcNAQEFBQAwezELMAkG '' SIG '' A1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hl '' SIG '' c3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR '' SIG '' Q09NT0RPIENBIExpbWl0ZWQxITAfBgNVBAMTGENPTU9E '' SIG '' TyBDb2RlIFNpZ25pbmcgQ0EgMjAeFw0xMjA1MjQwMDAw '' SIG '' MDBaFw0xNDA1MjQyMzU5NTlaMIGVMQswCQYDVQQGEwJV '' SIG '' UzEOMAwGA1UEEQwFMjA3MjMxCzAJBgNVBAgMAk1EMQ8w '' SIG '' DQYDVQQHDAZMYXVyZWwxHjAcBgNVBAkMFTg0MDUgQ2hl '' SIG '' cnJ5IExhdXJlbCBDdDEbMBkGA1UECgwSRG9jdG9yIEJh '' SIG '' Y2t1cCwgTExDMRswGQYDVQQDDBJEb2N0b3IgQmFja3Vw '' SIG '' LCBMTEMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK '' SIG '' AoIBAQC7J3zXlZApvLom5lGqSD+X5hjJFPtV/u7567uI '' SIG '' gbsybSHas6alSeQEZ1nSwb+6tSY+c6E4QrjCAOkwBovw '' SIG '' 3P5ACiihkwDS1UfDf1E7SgDtIN63mRCaQKTU6+HQT+Xq '' SIG '' mrA/GR0gMIRCmwYGzaM8sk1K6ZGUBvney5DW9zOWNVRM '' SIG '' /NKhugmqpQJ5fGcKUe5/YlSF1Y1DWQ1T6EW1PNSnR34I '' SIG '' mX88S+NiGQWfs3EZXhEl3FozQ04ATVXjrMVnlkdMAPzp '' SIG '' CYL73wJPG2EJs/nRY+h8U0vf2bmK4BgAr+TsnQFVSv8k '' SIG '' tHPwMSsqBfYjy8I3drE7dLW/W+M09P5A6x7XcLyHAgMB '' SIG '' AAGjggGqMIIBpjAfBgNVHSMEGDAWgBQexbEsfYfaAmh8 '' SIG '' JbwMB4Q/ts/e8TAdBgNVHQ4EFgQUf1PPfVV4Vx/+02AE '' SIG '' 0U13SRLeMXAwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB '' SIG '' /wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZI '' SIG '' AYb4QgEBBAQDAgQQMEYGA1UdIAQ/MD0wOwYMKwYBBAGy '' SIG '' MQECAQMCMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2Vj '' SIG '' dXJlLmNvbW9kby5uZXQvQ1BTMEEGA1UdHwQ6MDgwNqA0 '' SIG '' oDKGMGh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL0NPTU9E '' SIG '' T0NvZGVTaWduaW5nQ0EyLmNybDByBggrBgEFBQcBAQRm '' SIG '' MGQwPAYIKwYBBQUHMAKGMGh0dHA6Ly9jcnQuY29tb2Rv '' SIG '' Y2EuY29tL0NPTU9ET0NvZGVTaWduaW5nQ0EyLmNydDAk '' SIG '' BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu '' SIG '' Y29tMB8GA1UdEQQYMBaBFHN1cHBvcnRAZHJiYWNrdXAu '' SIG '' bmV0MA0GCSqGSIb3DQEBBQUAA4IBAQBmxIgS3RHockr5 '' SIG '' OPAcqmniK9N05oeSvsJS+GyUzUQs0FKPcwv5884Yl6c+ '' SIG '' O2cuk8TjOiMqMVRtzWAKsbKNpchnTjSyaDVcl5OHpa4s '' SIG '' zWZMDc17qTUtHqQQXXWOuNEbD86fiA3ocbfndM5Jhxa/ '' SIG '' tr7kZfYDKsZNcLsQs0oYnkvyKPZ/nuyrFvEzeTskhqaS '' SIG '' C+zU4Znxavof+qyl80zSF/OT7FPqsVsAMSaUSL6/qxeo '' SIG '' 5ka+mhoBLNR6YBA3WnFhVGy1v6YglFX9B5RPqndpS4AO '' SIG '' 1HJODZlf5e3lRmNvwzPDYr1nQW0E336PD9QNqSw3Aiv0 '' SIG '' AJEeyDVnSVMwsG3GGJxfMYIE3DCCBNgCAQEwgY8wezEL '' SIG '' MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFu '' SIG '' Y2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE '' SIG '' ChMRQ09NT0RPIENBIExpbWl0ZWQxITAfBgNVBAMTGENP '' SIG '' TU9ETyBDb2RlIFNpZ25pbmcgQ0EgMgIQGYtazamnT7bB '' SIG '' oB7DO8t4/DAJBgUrDgMCGgUAoIHaMBkGCSqGSIb3DQEJ '' SIG '' AzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAM '' SIG '' BgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBQKyo/N '' SIG '' WQ1+FDPq0X6reWPdxakExTB6BgorBgEEAYI3AgEMMWww '' SIG '' aqBMgEoARAByAC4AQgBhAGMAawB1AHAAIABTAGEAdgBl '' SIG '' ACAAQwBvAG4AZgBpAGcAdQByAGEAdABpAG8AbgAgAFMA '' SIG '' ZQB0AHQAaQBuAGcAc6EagBhodHRwOi8vd3d3LmRyYmFj '' SIG '' a3VwLm5ldCAwDQYJKoZIhvcNAQEBBQAEggEAsYKQrNgm '' SIG '' 4kaHv4GKG3X9qTcd9hRYyuYO6CGe5OkJG23gVrUm+0+F '' SIG '' gGWkHXcSk5J4MUY5i/g4xW+6T6eohqLrhHopQLJK/ubu '' SIG '' 3OxTIQnh0gboneyd9yl5x5eF/FWyrQg85hlMQOQPVeFO '' SIG '' sF9ZHnCjOsX3CpsWrZ6XGhTxv8xm31Oha9eDtH//Efvn '' SIG '' j2+lhgw9p/C2t3uCjn5BYA7kg/tX/bnD7WT6U7Lpilds '' SIG '' 0ZJMPh0sDQaMmzouKdWI6vK4OYxM40T0E0jFgtKFNKP1 '' SIG '' mL8F00AvDr9ouz8jZeXfrnlq7FYNlkJTbHYubbp66o3q '' SIG '' NoI5isGTA8H2fsBiqA1TBQy9DKGCAkQwggJABgkqhkiG '' SIG '' 9w0BCQYxggIxMIICLQIBADCBqjCBlTELMAkGA1UEBhMC '' SIG '' VVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExh '' SIG '' a2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO '' SIG '' ZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0 '' SIG '' cnVzdC5jb20xHTAbBgNVBAMTFFVUTi1VU0VSRmlyc3Qt '' SIG '' T2JqZWN0AhBHio77WeHYPwzhQtKihwe+MAkGBSsOAwIa '' SIG '' BQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwG '' SIG '' CSqGSIb3DQEJBTEPFw0xNDA0MjMwMzU5NDVaMCMGCSqG '' SIG '' SIb3DQEJBDEWBBSwO65a7akqEP9IXm7HXxpEzvOg0DAN '' SIG '' BgkqhkiG9w0BAQEFAASCAQBENBi+ObebPxUK9xULOSQo '' SIG '' /FeZoVJPKnowTah4WEXx3f6os9kby8x8dG0dqnTF5Lp9 '' SIG '' cySOnDRfc77V9PGxOOAal2L7FfJjzpuJIRQsyfHSEv6D '' SIG '' BFOP8GU3DUOVWSQTddXZIQuaU3erEIo6UGbm25ENHLET '' SIG '' BVWX/r2AfaYBwMPG8yhbfVOv7dB4Tr4tUilc4E5M23gS '' SIG '' zTC0uzVjQRYKEKKww/u8QO0HFICIqe7plVTz/IwbzsD0 '' SIG '' ZFZiZw5GP8Ccpy4PRAu+TQ22p4WBY4zulhHwlYoTikwQ '' SIG '' zfnmBJ7zgfXKeYodjpQbY0n6tYYwbWBvRN+QQA4/F7uk '' SIG '' n3bMl0i1nLWU '' SIG '' End signature block