' Windows Installer database table export for use with Windows Scripting Host
' Copyright (c) Microsoft Corporation. All rights reserved.
' Demonstrates the use of the Database.Export method and MsiDatabaseExport API
'
Option Explicit

Const msiOpenDatabaseModeReadOnly     = 0

Dim shortNames:shortNames = False
Dim argCount:argCount = Wscript.Arguments.Count
Dim iArg:iArg = 0
If (argCount < 3) Then
	Wscript.Echo "Windows Installer database table export utility" &_
		vbNewLine & " 1st argument is path to MSI database (installer package)" &_
		vbNewLine & " 2nd argument is path to folder to contain the exported table(s)" &_
		vbNewLine & " Subseqent arguments are table names to export (case-sensitive)" &_
		vbNewLine & " Specify '*' to export all tables, including _SummaryInformation" &_
		vbNewLine & " Specify /s or -s anywhere before table list to force short names" &_
		vbNewLine &_
		vbNewLine & " Copyright (C) Microsoft Corporation.  All rights reserved."
	Wscript.Quit 1
End If

On Error Resume Next
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError

Dim database : Set database = installer.OpenDatabase(NextArgument, msiOpenDatabaseModeReadOnly) : CheckError
Dim folder : folder = NextArgument
Dim table, view, record
While iArg < argCount
	table = NextArgument
	If table = "*" Then
		Set view = database.OpenView("SELECT `Name` FROM _Tables")
		view.Execute : CheckError
		Do
			Set record = view.Fetch : CheckError
			If record Is Nothing Then Exit Do
			table = record.StringData(1)
			Export table, folder : CheckError
		Loop
		Set view = Nothing
		table = "_SummaryInformation" 'not an actual table
		Export table, folder : Err.Clear  ' ignore if no summary information
	Else
		Export table, folder : CheckError
	End If
Wend
Wscript.Quit(0)            

Sub Export(table, folder)
	Dim file : If shortNames Then file = Left(table, 8) & ".idt" Else file = table & ".idt"
	database.Export table, folder, file
End Sub

Function NextArgument
	Dim arg, chFlag
	Do
		arg = Wscript.Arguments(iArg)
		iArg = iArg + 1
		chFlag = AscW(arg)
		If (chFlag = AscW("/")) Or (chFlag = AscW("-")) Then
			chFlag = UCase(Right(arg, Len(arg)-1))
			If chFlag = "S" Then 
				shortNames = True
			Else
				Wscript.Echo "Invalid option flag:", arg : Wscript.Quit 1
			End If
		Else
			Exit Do
		End If
	Loop
	NextArgument = arg
End Function

Sub CheckError
	Dim message, errRec
	If Err = 0 Then Exit Sub
	message = Err.Source & " " & Hex(Err) & ": " & Err.Description
	If Not installer Is Nothing Then
		Set errRec = installer.LastErrorRecord
		If Not errRec Is Nothing Then message = message & vbNewLine & errRec.FormatText
	End If
	Wscript.Echo message
	Wscript.Quit 2
End Sub

'' SIG '' Begin signature block
'' SIG '' MIImWAYJKoZIhvcNAQcCoIImSTCCJkUCAQExDzANBglg
'' SIG '' hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
'' SIG '' BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC
'' SIG '' AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
'' SIG '' VI4Hnca1EkyTrUPvd2CuA7Hjy/dDS98JnuMo4x3O0eig
'' SIG '' ggtyMIIE+jCCA+KgAwIBAgITMwAABdRHV87dZyuA6wAA
'' SIG '' AAAF1DANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
'' SIG '' cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
'' SIG '' aWduaW5nIFBDQSAyMDEwMB4XDTI1MDIyMDE5NTA1N1oX
'' SIG '' DTI1MDcwNTE5NTA1N1owfzELMAkGA1UEBhMCVVMxEzAR
'' SIG '' BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
'' SIG '' bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
'' SIG '' bjEpMCcGA1UEAxMgTWljcm9zb2Z0IFdpbmRvd3MgS2l0
'' SIG '' cyBQdWJsaXNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
'' SIG '' DwAwggEKAoIBAQDIiYt4rE484MZdX29P73RFVJzFeTtU
'' SIG '' buZ2sSf5txMzXFJdYNsnB4IljjNRD3cEfUwoOosP10iu
'' SIG '' 1lC86ium7WioFdtQS1FSpxrreuXDfvyC6fu1sH+hJJHy
'' SIG '' k5/gSBuK7kg4tGUfh1lISH3tvpk2xhlZN6Fmb/Se5n5Z
'' SIG '' GTICo0yG+QUMJZjeQuuYksRpgXlyEAYnFkNuZcNP6e4E
'' SIG '' 3YbROaWgoBX7yJ8caZ72Bw+czUv2NG7azU0rjCqCg/Rr
'' SIG '' u9J4ZZJuLQ/D+/F1mieki0y70vxUo6pDAXIADHUSsYQl
'' SIG '' CsGl4kWQW8Nt2gSTQRyxtqMub5VBDlU2VpRSSNPD4IRL
'' SIG '' sANLAgMBAAGjggFuMIIBajAfBgNVHSUEGDAWBgorBgEE
'' SIG '' AYI3CgMUBggrBgEFBQcDAzAdBgNVHQ4EFgQULW4m1KgI
'' SIG '' yexDypqzWHwyNglwzpwwRQYDVR0RBD4wPKQ6MDgxHjAc
'' SIG '' BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEWMBQG
'' SIG '' A1UEBRMNMjI5OTAzKzUwMzczMTAfBgNVHSMEGDAWgBTm
'' SIG '' /F97uyIAWORyTrX0IXQjMubvrDBWBgNVHR8ETzBNMEug
'' SIG '' SaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp
'' SIG '' L2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMjAxMC0w
'' SIG '' Ny0wNi5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
'' SIG '' BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp
'' SIG '' L2NlcnRzL01pY0NvZFNpZ1BDQV8yMDEwLTA3LTA2LmNy
'' SIG '' dDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IB
'' SIG '' AQCphLz18suslKVNJUx7wkHrX+loV2DScLZ1Ig8Rv9sj
'' SIG '' TTger8Lndn9gkKoAcAZ1sXh6yTmtD3ZQooGKagKYDejY
'' SIG '' hvcSpTbpdJprs/ijOiqTfCGVqAZhz9DLb+bi5TRAyGHN
'' SIG '' bim9PyzIXQgYP/8a6Yay+HD9W1IAQOT78ISp5UAhoD20
'' SIG '' v0Kk6Tq7cXpkyfJe83QzG/7dvzt1bzB9E+7jq9P+dDuZ
'' SIG '' SpvU311ufkVa0GoiI26kLlOMkMyS5GSI/X3kM0Oju07l
'' SIG '' yNHsozC8Ug/fT8OKSmzyRzc2DOHq1fVsDXMFjPmLNMXy
'' SIG '' thSuB4rn11IqaJCJtCujYARCfMK/6riHWk3WMIIGcDCC
'' SIG '' BFigAwIBAgIKYQxSTAAAAAAAAzANBgkqhkiG9w0BAQsF
'' SIG '' ADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
'' SIG '' bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
'' SIG '' FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
'' SIG '' TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
'' SIG '' aXR5IDIwMTAwHhcNMTAwNzA2MjA0MDE3WhcNMjUwNzA2
'' SIG '' MjA1MDE3WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
'' SIG '' VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAy
'' SIG '' MDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
'' SIG '' AQEA6Q5kUHlntcTj/QkATJ6UrPdWaOpE2M/FWE+ppXZ8
'' SIG '' bUW60zmStKQe+fllguQX0o/9RJwI6GWTzixVhL99COMu
'' SIG '' K6hBKxi3oktuSUxrFQfe0dLCiR5xlM21f0u0rwjYzIjW
'' SIG '' axeUOpPOJj/s5v40mFfVHV1J9rIqLtWFu1k/+JC0K4N0
'' SIG '' yiuzO0bj8EZJwRdmVMkcvR3EVWJXcvhnuSUgNN5dpqWV
'' SIG '' XqsogM3Vsp7lA7Vj07IUyMHIiiYKWX8H7P8O7YASNUwS
'' SIG '' pr5SW/Wm2uCLC0h31oVH1RC5xuiq7otqLQVcYMa0Kluc
'' SIG '' IxxfReMaFB5vN8sZM4BqiU2jamZjeJPVMM+VHwIDAQAB
'' SIG '' o4IB4zCCAd8wEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0O
'' SIG '' BBYEFOb8X3u7IgBY5HJOtfQhdCMy5u+sMBkGCSsGAQQB
'' SIG '' gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP
'' SIG '' BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP
'' SIG '' 6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeG
'' SIG '' RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js
'' SIG '' L3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIz
'' SIG '' LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG
'' SIG '' Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy
'' SIG '' dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGd
'' SIG '' BgNVHSAEgZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9Bggr
'' SIG '' BgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
'' SIG '' L1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEF
'' SIG '' BQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMA
'' SIG '' eQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG
'' SIG '' 9w0BAQsFAAOCAgEAGnTvV08pe8QWhXi4UNMi/AmdrIKX
'' SIG '' +DT/KiyXlRLl5L/Pv5PI4zSp24G43B4AvtI1b6/lf3mV
'' SIG '' d+UC1PHr2M1OHhthosJaIxrwjKhiUUVnCOM/PB6T+DCF
'' SIG '' F8g5QKbXDrMhKeWloWmMIpPMdJjnoUdD8lOswA8waX/+
'' SIG '' 0iUgbW9h098H1dlyACxphnY9UdumOUjJN2FtB91TGcun
'' SIG '' 1mHCv+KDqw/ga5uV1n0oUbCJSlGkmmzItx9KGg5pqdfc
'' SIG '' wX7RSXCqtq27ckdjF/qm1qKmhuyoEESbY7ayaYkGx0aG
'' SIG '' ehg/6MUdIdV7+QIjLcVBy78dTMgW77Gcf/wiS0mKbhXj
'' SIG '' pn92W9FTeZGFndXS2z1zNfM8rlSyUkdqwKoTldKOEdqZ
'' SIG '' Z14yjPs3hdHcdYWch8ZaV4XCv90Nj4ybLeu07s8n07Ve
'' SIG '' afqkFgQBpyRnc89NT7beBVaXevfpUk30dwVPhcbYC/GO
'' SIG '' 7UIJ0Q124yNWeCImNr7KsYxuqh3khdpHM2KPpMmRM19x
'' SIG '' HkCvmGXJIuhCISWKHC1g2TeJQYkqFg/XYTyUaGBS79ZH
'' SIG '' maCAQO4VgXc+nOBTGBpQHTiVmx5mMxMnORd4hzbOTsNf
'' SIG '' svU9R1O24OXbC2E9KteSLM43Wj5AQjGkHxAIwlacvyRd
'' SIG '' UQKdannSF9PawZSOB3slcUSrBmrm1MbfI5qWdcUxgho+
'' SIG '' MIIaOgIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEGA1UE
'' SIG '' CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
'' SIG '' MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgw
'' SIG '' JgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
'' SIG '' QSAyMDEwAhMzAAAF1EdXzt1nK4DrAAAAAAXUMA0GCWCG
'' SIG '' SAFlAwQCAQUAoIHGMBkGCSqGSIb3DQEJAzEMBgorBgEE
'' SIG '' AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
'' SIG '' AgEVMC8GCSqGSIb3DQEJBDEiBCB2HP/BYQ/aISbvtLgq
'' SIG '' g6C6/l8LXj7DELdpEVbURjVPIjBaBgorBgEEAYI3AgEM
'' SIG '' MUwwSqAkgCIATQBpAGMAcgBvAHMAbwBmAHQAIABXAGkA
'' SIG '' bgBkAG8AdwBzoSKAIGh0dHA6Ly93d3cubWljcm9zb2Z0
'' SIG '' LmNvbS93aW5kb3dzMA0GCSqGSIb3DQEBAQUABIIBAFHU
'' SIG '' Tp33AgGdRcOuIx4cZuE2uYvqFCK/6WYBc3117l7tv9M4
'' SIG '' KVuDYPq3ylLevFmpfro0tFhYEI759oDNHcMFq2Ib+2qb
'' SIG '' xF0AlXn2fwg+wwWEfjssWUl4nEQz4146lkL3wlVg5C31
'' SIG '' G0zwORhRcQWOzt/Srq4+krLnJZNUnsn0efhCMYVr6fnR
'' SIG '' lHODP31XcVEKRkgLvOOAwfOyl8Rg2MwKeHSLKes59wOk
'' SIG '' AJ09tE8YBb8lCm9cVFjo4Pl4rPUfbm9K+V6WKLP3lZUr
'' SIG '' 8ThgwfgAOf4OIkwwO/F8fJMvOnOOYeIHS3LKyQdbWsa8
'' SIG '' R9b+aG9TdI3bIgT+JeegkjQdfhzE5/2hghewMIIXrAYK
'' SIG '' KwYBBAGCNwMDATGCF5wwgheYBgkqhkiG9w0BBwKggheJ
'' SIG '' MIIXhQIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBWgYLKoZI
'' SIG '' hvcNAQkQAQSgggFJBIIBRTCCAUECAQEGCisGAQQBhFkK
'' SIG '' AwEwMTANBglghkgBZQMEAgEFAAQgK49iYfE+X1Nm6c0Z
'' SIG '' ZQSwkCq2YFHJ//uNoXBxpE1ritICBmftJA3YQhgTMjAy
'' SIG '' NTA0MjMxNjAwMjEuMTA3WjAEgAIB9KCB2aSB1jCB0zEL
'' SIG '' MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
'' SIG '' EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
'' SIG '' c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9z
'' SIG '' b2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMScw
'' SIG '' JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NkYxQS0wNUUw
'' SIG '' LUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
'' SIG '' YW1wIFNlcnZpY2WgghH+MIIHKDCCBRCgAwIBAgITMwAA
'' SIG '' AfwYoK/MaVqHOgABAAAB/DANBgkqhkiG9w0BAQsFADB8
'' SIG '' MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
'' SIG '' bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
'' SIG '' cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
'' SIG '' b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yNDA3
'' SIG '' MjUxODMxMTRaFw0yNTEwMjIxODMxMTRaMIHTMQswCQYD
'' SIG '' VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
'' SIG '' A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
'' SIG '' IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg
'' SIG '' SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNV
'' SIG '' BAsTHm5TaGllbGQgVFNTIEVTTjo2RjFBLTA1RTAtRDk0
'' SIG '' NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
'' SIG '' U2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
'' SIG '' AgoCggIBAKdQwCi8aW0HD1WDx5SR8lu1uZQWYyVlg4zH
'' SIG '' 5eVsobgMpT/yw5toW+MplJkspldBBUUHJjPAcqcI4Vj/
'' SIG '' Be8eIjvPHfvRmfTEJjYd40g6IYV14H/KzjRAMnwj1Zic
'' SIG '' zO8rbLq2fcaHG7hC+/j+xJCMKDrjBZUxdhv87qsdRPsA
'' SIG '' DbJaT6j6W/DwuegUMYCQiNSzheZZNwHjye/Di92sPzXZ
'' SIG '' ZL3VZd1YAUj1+DWsLd1IFKH7j5/3Kfb8CigcLiFkBBWf
'' SIG '' N+xl1yE7IXdjH7OqGH8VxLZo9kgRhIcVbO8REblhm9HC
'' SIG '' umn8u52ipG2SNr9VKrMbmbfeK5/3stsp77p5cdEev2+p
'' SIG '' zZAtazkwH1pabAI/0Jc8jOrmE0sWGQtmFsy220ZdJUbU
'' SIG '' s/uE3aVFP6AGUgfmPrNdkapoM4u0VcTXCNpZv/7AhJug
'' SIG '' Ot5wiQoGLTPiy3vaU7IZf1n/Djrj0EYgPrLU7IPPQThv
'' SIG '' bW5Ws9pH3jpGH+YXR/KYQG7jrg0H6+rOWGulvr2c+hNG
'' SIG '' bHp84tDrTH+UQmtoQA2FYFMQ/oKwvBKbX1nlQFoGAmkB
'' SIG '' YXjTf2RjUDJJO/Fet8qDwX3yRALvgecZUz2KIo1HaPTV
'' SIG '' 6LyZqBl4+kfE4LKPkD2gBhysQmx2tUC/QEjBdzrNY66I
'' SIG '' AhxospH6dXShp5gOcCU+jcewXnZUg7AJAgMBAAGjggFJ
'' SIG '' MIIBRTAdBgNVHQ4EFgQUmPGlK7FGs4cQch+/XYYkAi/+
'' SIG '' 0HYwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ
'' SIG '' 6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5t
'' SIG '' aWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0
'' SIG '' JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3Js
'' SIG '' MGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0
'' SIG '' cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0
'' SIG '' cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw
'' SIG '' MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUB
'' SIG '' Af8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4Aw
'' SIG '' DQYJKoZIhvcNAQELBQADggIBAE+7LP2QGdG02hbK7IiW
'' SIG '' Hf/y0OiJim/SWUiokcPcbPIcJOWP+84oJ/YBrcHkQoQt
'' SIG '' pSfBlUR4KxZAcQAo7rj6a0s/1GF+5+dtiSnLnZ1riHhN
'' SIG '' ad9AWa6j0zp7HA/fA2YuljUwMpp2ku4reagIDSJ63gCW
'' SIG '' 01NnAKLCaHlwB6+dGIEhpZiTPnDepmCwC+k0xTLRWCa6
'' SIG '' SvUzOUcoeXmZpulEyZxoNI7daRf9rvD0nc93Q8uwxeyg
'' SIG '' yWndqh8WTkbzN5PVfGJ9ySOWCz7i7KNiebN36V8glYEf
'' SIG '' 4avOoOc43fW0UcsogvIiyJvzfeauh1lbAnsknra6n7A8
'' SIG '' mFkrcC/eocuwyMiy+YofGBTHdAHZr00aMpZgA7isBNk0
'' SIG '' Ak7z545y5O8qSVtvbde2MmuFfiZc+eLAZz1O5CHmGbL1
'' SIG '' E/mCoMpD9UAfqfrlHUR+nu/VWos/onsFqyCWeLV5AzJi
'' SIG '' 9tZ4dI/ufBNXnAGA70+geMhSHqJ8QP+hpfV7OyS3Ijwi
'' SIG '' AuoRnZYohAacmHlBdKIWRZ+zSkLvNCGdI3eddVgNm6us
'' SIG '' fWlKv8xcn/BIMPnbp1I9SrTaFqau1biamqXJGLJr5pmB
'' SIG '' 2VwoytRLrO1dSPml46wWLqsjPUKXhWVOFNNWBteblsFA
'' SIG '' mo9LmZWof0RkmDHfOMvQwqjqX3ihOjyzJO4S54b3DkK5
'' SIG '' 8T+pMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAA
'' SIG '' AAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
'' SIG '' VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
'' SIG '' B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
'' SIG '' b3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3Qg
'' SIG '' Q2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw
'' SIG '' OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYD
'' SIG '' VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
'' SIG '' A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
'' SIG '' IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
'' SIG '' VGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcN
'' SIG '' AQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ck
'' SIG '' eb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az
'' SIG '' /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg
'' SIG '' fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t
'' SIG '' 1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOt
'' SIG '' gFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k
'' SIG '' 45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVU
'' SIG '' j9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBc
'' SIG '' TyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDP
'' SIG '' c31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrb
'' SIG '' qn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH
'' SIG '' GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRR
'' SIG '' RuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12Nv
'' SIG '' DMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vc
'' SIG '' G9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUX
'' SIG '' k8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q
'' SIG '' 4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQID
'' SIG '' AQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1
'' SIG '' Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb
'' SIG '' UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEw
'' SIG '' QTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3Nv
'' SIG '' ZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRt
'' SIG '' MBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcU
'' SIG '' AgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNV
'' SIG '' HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJc
'' SIG '' YmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0
'' SIG '' dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By
'' SIG '' b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNy
'' SIG '' bDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0
'' SIG '' dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMv
'' SIG '' TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqG
'' SIG '' SIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8
'' SIG '' qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTlt
'' SIG '' uw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW
'' SIG '' AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt
'' SIG '' I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1A
'' SIG '' oL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ
'' SIG '' 5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKp
'' SIG '' W99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7G
'' SIG '' dP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5H
'' SIG '' LcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZ
'' SIG '' kWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5P
'' SIG '' ndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+
'' SIG '' fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue1
'' SIG '' 0CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAn
'' SIG '' Qj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqK
'' SIG '' Oghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGC
'' SIG '' A1kwggJBAgEBMIIBAaGB2aSB1jCB0zELMAkGA1UEBhMC
'' SIG '' VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
'' SIG '' B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
'' SIG '' b3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxh
'' SIG '' bmQgT3BlcmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5u
'' SIG '' U2hpZWxkIFRTUyBFU046NkYxQS0wNUUwLUQ5NDcxJTAj
'' SIG '' BgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZp
'' SIG '' Y2WiIwoBATAHBgUrDgMCGgMVAE5BKSVzmqiNsH6gbMOD
'' SIG '' S1cKmKqqoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzAR
'' SIG '' BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
'' SIG '' bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
'' SIG '' bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
'' SIG '' UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDrs1CkMCIY
'' SIG '' DzIwMjUwNDIzMTE0MjI4WhgPMjAyNTA0MjQxMTQyMjha
'' SIG '' MHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAOuzUKQCAQAw
'' SIG '' CgIBAAICIVoCAf8wBwIBAAICEzUwCgIFAOu0oiQCAQAw
'' SIG '' NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAK
'' SIG '' MAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0B
'' SIG '' AQsFAAOCAQEAZ4CFR/vra0UTIxgBntq9K3eF2rQtpZp1
'' SIG '' yzyRGkMpNXCDQAJ1UIt5oZjSBbHShwCw3Tdy50Sp1d0A
'' SIG '' QICrNeW5bZPAiYsrE5URW+CJMyEBKTQN1VS1t/71ZhTB
'' SIG '' 1g4iPiQLDDPj9JMFGcWAFXuks6GYAlhj+zfUilo9EATk
'' SIG '' LfQaS8Bcj5FDF9Z/96sUZG3vHBNwlZZcQp+ZFdSd4nAv
'' SIG '' l8Pzwn7hwR6SGzfdgh9em39BMVdH6KnGbqDVsfdd+7t2
'' SIG '' P2c+Co/xEovANLbDhFnkgqumHPiWKZqbP4dKYiNlSMWo
'' SIG '' AV+buQvJdq/NQ9ZKq8hYpAZMNrXDhF3qkdExJ6EuONqn
'' SIG '' PDGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMw
'' SIG '' EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
'' SIG '' b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
'' SIG '' b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
'' SIG '' IFBDQSAyMDEwAhMzAAAB/Bigr8xpWoc6AAEAAAH8MA0G
'' SIG '' CWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYL
'' SIG '' KoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIMWPm+1u
'' SIG '' 3skCQTrrT/S5Z3kZdff7I5BLRsi46U43CkJqMIH6Bgsq
'' SIG '' hkiG9w0BCRACLzGB6jCB5zCB5DCBvQQglUKvkLvv4fwT
'' SIG '' lT+MMHlMGx7glIYfk+4at3eTAmjRLWIwgZgwgYCkfjB8
'' SIG '' MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
'' SIG '' bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
'' SIG '' cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
'' SIG '' b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfwY
'' SIG '' oK/MaVqHOgABAAAB/DAiBCCgwcywf4I+kBEnR/F+JxUI
'' SIG '' YZJSqlg7LYjrXu0w1omFZzANBgkqhkiG9w0BAQsFAASC
'' SIG '' AgAfdQmSGwa5L0to1IBPK2f6RmEB2R9atsWnjNm8cayx
'' SIG '' 4AhVDiUZddA69gSYHXHWjEvlBoLBC8smnMxcOYoPhY19
'' SIG '' TXjr04sNeQ2okI1MVPseTGj7B0Mv79ziXA3/C1DJ2fGO
'' SIG '' CssayJbRDsvthVGIhotRBD3mgWacp2mNyf5Li52RWTte
'' SIG '' aXMENJdprCHlXZD2u8oLJIc/BQ9FZIGfKKmkHIULn65K
'' SIG '' jKHD6gj3BoE5fcZR8mAanD3ZncJrcVBk4qWgo8uw/W3W
'' SIG '' 4A/f3TdC1YqteLljLoCwbwfGBfmOIIf9gyB8WbCWo0bL
'' SIG '' ttoVBqPvYce26LhrYq8jasrrAYhlzC+VW4bL4n3jYshu
'' SIG '' R6TieUanuAwSNw4RbDrYLSfpJiSKDl1GN4HZ8xP5T12W
'' SIG '' nTnRUS2pVfsvSSiNVpbpb4K+cBhVL75KN6w1TYbbzorq
'' SIG '' tlJVivOtnwi0US/oT+NAAE7urB8McU802BND6xmXqe0C
'' SIG '' UxbYUKxeMN9VSO05TZ8pneYFvYeBWOY0pdJKehYAaAB1
'' SIG '' UoIGTnVFtc+Jfqkf/6sRHo6z4/2u34g3eJHWA3v4/pK3
'' SIG '' jPZRR1cE1R8fRFmbbyqIfnaGxxmhoGU1UfU+zuNF646M
'' SIG '' 1BR4lBPWyesOddxTz5Uy61uyQlPAaEWspzimriugclfi
'' SIG '' M26+oZ/WWvg/6O91u7QSSJns7w==
'' SIG '' End signature block
