private/Get-ADDomainFQDN.ps1
|
function Get-ADDomainFQDN { <# .SYNOPSIS Resolves NetBIOS domain name to FQDN with caching. .DESCRIPTION Converts an Active Directory NetBIOS domain name to its fully qualified domain name using .NET DirectoryServices classes with script-level caching for performance. Does not require RSAT or AD module. .PARAMETER NetBIOSName The NetBIOS name of the domain (e.g., CONTOSO). .PARAMETER NoCache Bypass cache and force fresh lookup. .EXAMPLE Get-ADDomainFQDN -NetBIOSName "CONTOSO" Returns: contoso.com (and caches result) .EXAMPLE Get-ADDomainFQDN -NetBIOSName "CONTOSO" -NoCache Forces fresh lookup, updates cache. .NOTES Function : Get-ADDomainFQDN Author : John Billekens Copyright : Copyright (c) John Billekens Consultancy Version : 2025.0102.1500 #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$NetBIOSName, [Parameter(Mandatory = $false)] [switch]$NoCache ) Write-Verbose "Resolving NetBIOS name '$($NetBIOSName)' to FQDN" # Initialize cache if it doesn't exist if ($(try {$Script:AppVentiX.GetType()} catch {$null})) { Write-Verbose "AppVentiX script variable exists" } else { Write-Verbose "AppVentiX script variable does not exist" $Script:AppVentiX = @{} Write-Verbose "Initialized AppVentiX script variable" } if (-not $Script:AppVentiX.ADCache) { $Script:AppVentiX.ADCache = @{} Write-Verbose "Initialized ADCache" } # Check cache first unless NoCache specified if (-not $NoCache -and $Script:AppVentiX.ADCache.Count -gt 0 -and $Script:AppVentiX.ADCache.ContainsKey($NetBIOSName)) { Write-Verbose "Returning cached FQDN for '$($NetBIOSName)': $($Script:AppVentiX.ADCache[$NetBIOSName])" return $Script:AppVentiX.ADCache[$NetBIOSName] } try { # Try local forest Configuration partition first (no credentials, uses current user) Write-Verbose "Attempting resolution using current user context" $rootDSE = [ADSI]"LDAP://RootDSE" $configNC = $rootDSE.configurationNamingContext $searcher = [ADSISearcher]"(&(objectClass=crossRef)(nETBIOSName=$($NetBIOSName)))" $searcher.SearchRoot = [ADSI]"LDAP://CN=Partitions,$($configNC)" $searcher.PropertiesToLoad.AddRange(@('dnsRoot')) $result = $searcher.FindOne() if ($result) { $fqdn = $result.Properties['dnsroot'][0] $Script:AppVentiX.ADCache[$NetBIOSName] = $fqdn $Script:AppVentiX.ADCache[$fqdn] = $NetBIOSName Write-Verbose "Cached bidirectional mapping: '$($NetBIOSName)' <-> '$($fqdn)'" return $fqdn } # Fallback: DC locator, also resolves domains in trusted forests. Win32_NTDomain only # exposes the forest name, which is wrong for child domains. Write-Verbose "Not found in local forest, trying the DC locator" $context = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext('Domain', $NetBIOSName) $locatedDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($context) try { $fqdn = $locatedDomain.Name } finally { $locatedDomain.Dispose() } if ($fqdn) { $Script:AppVentiX.ADCache[$NetBIOSName] = $fqdn $Script:AppVentiX.ADCache[$fqdn] = $NetBIOSName Write-Verbose "Cached bidirectional mapping: '$($NetBIOSName)' <-> '$($fqdn)'" return $fqdn } throw "NetBIOS name '$($NetBIOSName)' not found in local forest or trusts" } catch { # If initial attempts fail and AD credentials are configured, try with Get-AdsiADDomain if ($PSDefaultParameterValues.ContainsKey("*-AdsiAD*:Credential")) { Write-Verbose "Initial resolution failed. Attempting with stored AD credentials via Get-AdsiADDomain" try { $domain = Get-AdsiADDomain -ErrorAction Stop if ($domain.NetBIOSName -eq $NetBIOSName) { $fqdn = $domain.DNSRoot $Script:AppVentiX.ADCache[$NetBIOSName] = $fqdn $Script:AppVentiX.ADCache[$fqdn] = $NetBIOSName Write-Verbose "Resolved using stored credentials. Cached bidirectional mapping: '$($NetBIOSName)' <-> '$($fqdn)'" return $fqdn } else { Write-Verbose "Stored credentials connected to different domain (NetBIOS: $($domain.NetBIOSName))" } } catch { Write-Verbose "Get-AdsiADDomain also failed: $($_.Exception.Message)" } } Write-Error "Failed to resolve NetBIOS name '$($NetBIOSName)'. If connecting to a remote domain, use Set-AppVentiXADCredential first. Error: $($_.Exception.Message)" throw } } # SIG # Begin signature block # MII5zAYJKoZIhvcNAQcCoII5vTCCObkCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAjrlWRovfrv/OM # sjv4l0SPtf1bT57nEi5IxhtXrhHSEaCCIfAwggXMMIIDtKADAgECAhBUmNLR1FsZ # lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu # dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy # MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv # c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo # b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD # Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH # or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD # PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV # qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70 # ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1 # vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3 # W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK # xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg # trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj # O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7 # swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE # AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ # T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn # LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c # Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF # xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx # AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8 # FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY # lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2 # 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY # uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al # GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk # ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T # 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggalMIIEjaADAgECAhMzAAbxHabe # pFDFgGHZAAAABvEdMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD # VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ # RCBWZXJpZmllZCBDUyBBT0MgQ0EgMDMwHhcNMjYwOTIyMTYzNDE3WhcNMjYwOTI1 # MTYzNDE3WjBoMQswCQYDVQQGEwJOTDEWMBQGA1UECBMNTm9vcmQtSG9sbGFuZDEP # MA0GA1UEBxMGSGVpbG9vMRcwFQYDVQQKEw5BcHBWZW50aVggQi5WLjEXMBUGA1UE # AxMOQXBwVmVudGlYIEIuVi4wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB # gQCKHxMyJ3ev7MjDoA0e7avtmEtdvA5DmkkP0U8++26F6Gxi7ckEdKw+UVK5AN1G # 19oMlmi4edOdPIzeI1bwXQ609WDn6rxM1oGHkSo5+jvjr93hWxm+e1ZxRBRfG/VB # pLZca32lTzI2c+ruEbBhLG4pjLTGwR3weiibHY+tkG+UGzWZt/6pCiAymQK+4F3/ # oDTxmdlOLSIXbuy6gul+jK4zMlqsl0bAYjJUJfRF599R655OY7uyYTg/AoEyDA6o # MarYhaJqItrDUW/t0/2cJIOdFIWzDG3uCI5W2H1CgeoAO8R8w3DzXOhduwpycF0n # lRhZuvZKrbL6NlVAFCmd6ga72TYxvFO/laAg6HbvG3KDl4DnsY1dU2UkUb8K3p5w # 1A8N/n2pOSqL+qXzMmKQ2qYg5m+78QhBPU3SB3wVf71idbJpesrraAAUTz4Y1GoX # 97ZsvQlVApceXkMfNbphVEJVcjothZOzhSyVM7muvnbir1j4BOhDlPcqcS2sXKvV # DfkCAwEAAaOCAdQwggHQMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMDsG # A1UdJQQ0MDIGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhorBgEEAYI3YaL8yC6uh9F6 # gZ2lyVCBwcKCJzAdBgNVHQ4EFgQUGRQ8WX/GdDskB0leROkR25M/JqQwHwYDVR0j # BBgwFoAUpEMMf3ZapYXnPo0oDwwXokVpcMYwZwYDVR0fBGAwXjBcoFqgWIZWaHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSUQl # MjBWZXJpZmllZCUyMENTJTIwQU9DJTIwQ0ElMjAwMy5jcmwwdAYIKwYBBQUHAQEE # aDBmMGQGCCsGAQUFBzAChlhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz # L2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDUyUyMEFPQyUyMENB # JTIwMDMuY3J0MFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRw # Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0w # DQYJKoZIhvcNAQEMBQADggIBAJp+n/ro+nj0idI78wJh1JjI4O/0kdkubxUT1H2c # aahqzNSBnUrFboYgaexusANXzb0iop2vQgDMWcvfoJqJ8K5TtOHMZda+81Cpa+Gl # JNJ5m6elK3FGqTBOrnYp1h1A4in5S6Po5KE/pwciiBg00Zx6W2FjzXKsvbOsmy+Q # oR2C4oShB2Ydu96+SmK5niz7/RRl/WoNVbRihHUduyHwjPVyiu2LSaDAKn5plzj7 # hzngzhqAzOnyxEhOtx3oWmYylXCaUWVroG0JFFGZ9IvlPBwHAzlqCsbn96drBEUD # wjJ45E/C9sDLAhIcIMXMWeXYosI4u1qNCMAEcjTwZs5js2QGOYqRlXaVoGtU/QAv # /O2HnZK+a62vNDXD/4gU3vULrqHzO+qRcCGmEYZPIlsyVRXZMb+6GYkug8OxABs4 # yqE0oBVG7C7VCd3Uhcan4O5D8xW7cbwGoeXJG7fvXOHEN9lEuWt5jtWg9YgrU88I # fWrPMQRVLNCGOmPD+nm608IueiorIxHfpic3fFzFXZDEwWBesn8ISIjG7bLmxm82 # +5ZKfUlanQcekjqmRvHeQ3P1A8TjaULHRnJruIj6tFTK18ej1dWWIb6X9QTAZj/w # dj0/nQKr8iqtAhULbx30T4ZbDyqSHLmnvagGFmDb8xUV7AJ+siksCBc5m6ptgxkj # 00ZTMIIGpTCCBI2gAwIBAgITMwAG8R2m3qRQxYBh2QAAAAbxHTANBgkqhkiG9w0B # AQwFADBaMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMSswKQYDVQQDEyJNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ1MgQU9DIENBIDAz # MB4XDTI2MDkyMjE2MzQxN1oXDTI2MDkyNTE2MzQxN1owaDELMAkGA1UEBhMCTkwx # FjAUBgNVBAgTDU5vb3JkLUhvbGxhbmQxDzANBgNVBAcTBkhlaWxvbzEXMBUGA1UE # ChMOQXBwVmVudGlYIEIuVi4xFzAVBgNVBAMTDkFwcFZlbnRpWCBCLlYuMIIBojAN # BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAih8TMid3r+zIw6ANHu2r7ZhLXbwO # Q5pJD9FPPvtuhehsYu3JBHSsPlFSuQDdRtfaDJZouHnTnTyM3iNW8F0OtPVg5+q8 # TNaBh5EqOfo746/d4VsZvntWcUQUXxv1QaS2XGt9pU8yNnPq7hGwYSxuKYy0xsEd # 8Hoomx2PrZBvlBs1mbf+qQogMpkCvuBd/6A08ZnZTi0iF27suoLpfoyuMzJarJdG # wGIyVCX0ReffUeueTmO7smE4PwKBMgwOqDGq2IWiaiLaw1Fv7dP9nCSDnRSFswxt # 7giOVth9QoHqADvEfMNw81zoXbsKcnBdJ5UYWbr2Sq2y+jZVQBQpneoGu9k2MbxT # v5WgIOh27xtyg5eA57GNXVNlJFG/Ct6ecNQPDf59qTkqi/ql8zJikNqmIOZvu/EI # QT1N0gd8FX+9YnWyaXrK62gAFE8+GNRqF/e2bL0JVQKXHl5DHzW6YVRCVXI6LYWT # s4UslTO5rr524q9Y+AToQ5T3KnEtrFyr1Q35AgMBAAGjggHUMIIB0DAMBgNVHRMB # Af8EAjAAMA4GA1UdDwEB/wQEAwIHgDA7BgNVHSUENDAyBgorBgEEAYI3YQEABggr # BgEFBQcDAwYaKwYBBAGCN2Gi/MgurofReoGdpclQgcHCgicwHQYDVR0OBBYEFBkU # PFl/xnQ7JAdJXkTpEduTPyakMB8GA1UdIwQYMBaAFKRDDH92WqWF5z6NKA8MF6JF # aXDGMGcGA1UdHwRgMF4wXKBaoFiGVmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w # a2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDUyUyMEFPQyUy # MENBJTIwMDMuY3JsMHQGCCsGAQUFBwEBBGgwZjBkBggrBgEFBQcwAoZYaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJRCUy # MFZlcmlmaWVkJTIwQ1MlMjBBT0MlMjBDQSUyMDAzLmNydDBUBgNVHSAETTBLMEkG # BFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br # aW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMA0GCSqGSIb3DQEBDAUAA4ICAQCafp/6 # 6Pp49InSO/MCYdSYyODv9JHZLm8VE9R9nGmoaszUgZ1KxW6GIGnsbrADV829IqKd # r0IAzFnL36CaifCuU7ThzGXWvvNQqWvhpSTSeZunpStxRqkwTq52KdYdQOIp+Uuj # 6OShP6cHIogYNNGcelthY81yrL2zrJsvkKEdguKEoQdmHbvevkpiuZ4s+/0UZf1q # DVW0YoR1Hbsh8Iz1corti0mgwCp+aZc4+4c54M4agMzp8sRITrcd6FpmMpVwmlFl # a6BtCRRRmfSL5TwcBwM5agrG5/enawRFA8IyeORPwvbAywISHCDFzFnl2KLCOLta # jQjABHI08GbOY7NkBjmKkZV2laBrVP0AL/zth52SvmutrzQ1w/+IFN71C66h8zvq # kXAhphGGTyJbMlUV2TG/uhmJLoPDsQAbOMqhNKAVRuwu1Qnd1IXGp+DuQ/MVu3G8 # BqHlyRu371zhxDfZRLlreY7VoPWIK1PPCH1qzzEEVSzQhjpjw/p5utPCLnoqKyMR # 36YnN3xcxV2QxMFgXrJ/CEiIxu2y5sZvNvuWSn1JWp0HHpI6pkbx3kNz9QPE42lC # x0Zya7iI+rRUytfHo9XVliG+l/UEwGY/8HY9P50Cq/IqrQIVC28d9E+GWw8qkhy5 # p72oBhZg2/MVFewCfrIpLAgXOZuqbYMZI9NGUzCCBygwggUQoAMCAQICEzMAAAAY # DeuRVamKAJgAAAAAABgwDQYJKoZIhvcNAQEMBQAwYzELMAkGA1UEBhMCVVMxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrTWljcm9zb2Z0 # IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQQ0EgMjAyMTAeFw0yNjAzMjYxODEx # MzJaFw0zMTAzMjYxODExMzJaMFoxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJRCBWZXJpZmll # ZCBDUyBBT0MgQ0EgMDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDI # gNpgNFaiif2VWeWP5I6PnFXxJ/lB37fJR55GCvR7GLZBMkBijbiKVwgpBI3xM5nf # 484znH/qncJ+OCq6y3jgnQW+R8Zd7U+7LjlrmcskalzSQ0ghMxEpnBW8/HHs2V8Z # JzQk6HP+SDsbvsL7LdlH/eO2l4mknhDBwr0Z/Q966TvEth5b8kCxj1vqiV4YNthL # GRqZR9u2fK/yBMWu83p6O4uo2Edg++gEew5IL7vnnnKFqmSh/R9vPJy3WF1YcZew # AUx8sXZNUnx3ZhVg59l2LpitPiwzE6FMqIsqaEvVe3MzuFd2a/uWDZH6VbDyUiRK # 78mIg1DQYA9zDEyyBFcNI+nxVSzglvL6u7PRuNqgcV3sf6ELxw89ysQM/Z4R1hRF # WXRpyOWKKAKtfBHTk0UnNiPcxmLMMYs8jeUjOidfVPjTIry/UVwnwxdlkK85cZfB # EMYZ/DBNOwdomP459Y1n8izKkbhsa+p4lw+cQVxATBFx9ggR79HhryT7HDmpPLvk # JvBZ4wW4CW32UT2SMyDe28nIOU3m+hfHlVeKcLBQcym5VoRDjIcCVI7uqgGW2PNM # E0cfei8zCwCy6HCsssJWFS7eg/YbFhnATJcyWfMrkNuAbMfMN8Npg8crS6jVVowy # D0GG5zdgi+uQVcSK/638mA1xEYK3pnIoQgO09uuDBwIDAQABo4IB3DCCAdgwDgYD # VR0PAQH/BAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBSkQwx/dlql # hec+jSgPDBeiRWlwxjBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYz # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku # aHRtMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMBIGA1UdEwEB/wQIMAYBAf8C # AQAwHwYDVR0jBBgwFoAU2UEpsA8PY2zvadf1zSmepEhqMOYwcAYDVR0fBGkwZzBl # oGOgYYZfaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9z # b2Z0JTIwSUQlMjBWZXJpZmllZCUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAy # MS5jcmwwfQYIKwYBBQUHAQEEcTBvMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVyaWZp # ZWQlMjBDb2RlJTIwU2lnbmluZyUyMFBDQSUyMDIwMjEuY3J0MA0GCSqGSIb3DQEB # DAUAA4ICAQBxxyBW+X6mhdRiSwD9PMMWcGUAnx5/QUwnNvZdFGEX+4DRDIr9WCh4 # C87wHtw+lg1D3uzK10DstPX0LFLBFAC3vWMYX4ImXwoLhoR0xlN8mUdorJ3bgnpC # JWuI1531Z1rCwPuUrSkBxfOIGDk3p2ECb3Ho/xHi5PRSR/OUrWuQHwXiaXMTuXu3 # IRLezwVkZpFmNwYRD57R9Nx2F/yM7tzOY0Hh0hGCaYEK38/6FrS0SXadXWyDUCfn # 5XOGACRjUCnHx+JQUG0f4SHD+iblpAI0gl+ZHnVmdXXxHTZeTa0CYCIhFxKP2922 # s0g6zLmeiV13LWUmtt/UF7TrWXpMi2/0UNniaDoH7rnPGRV5xVX8uXy4sZii4asw # zqPM7Y7+mzcranqZ8EjZk5gjLhQ3A2sZaprlOu8CaRmyfcIiVH7zVfgAvm81MWXF # ziAf7my7QOvnyEFPGddq8MSfPtfRyw/Uq3uH6KpoaJNIfPYH6fceZSi53Rat1A9g # rExq3ROjhhSpTcchuBItAMNVPxoKNbUm+iR/X3XkL+9WQginjyHe+hXLclY8vAGX # FD1p40PqMIpAYsmEJBFKW9df4//1N5oQDr/FY9IBJl/oSS979i5rtT7NZz9KvYra # CPRBGs0QCy+sWvgQa0coM70QJVLeVwmSxUO/0od0w9Qry7bSLrxGoDCCB54wggWG # oAMCAQICEzMAAAAHh6M0o3uljhwAAAAAAAcwDQYJKoZIhvcNAQEMBQAwdzELMAkG # A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjFIMEYGA1UE # AxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlmaWNhdGlvbiBSb290IENlcnRpZmlj # YXRlIEF1dGhvcml0eSAyMDIwMB4XDTIxMDQwMTIwMDUyMFoXDTM2MDQwMTIwMTUy # MFowYzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjE0MDIGA1UEAxMrTWljcm9zb2Z0IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQ # Q0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALLwwK8ZiCji # 3VR6TElsaQhVCbRS/3pK+MHrJSj3Zxd3KU3rlfL3qrZilYKJNqztA9OQacr1AwoN # cHbKBLbsQAhBnIB34zxf52bDpIO3NJlfIaTE/xrweLoQ71lzCHkD7A4As1Bs076I # u+mA6cQzsYYH/Cbl1icwQ6C65rU4V9NQhNUwgrx9rGQ//h890Q8JdjLLw0nV+ayQ # 2Fbkd242o9kH82RZsH3HEyqjAB5a8+Ae2nPIPc8sZU6ZE7iRrRZywRmrKDp5+Tcm # JX9MRff241UaOBs4NmHOyke8oU1TYrkxh+YeHgfWo5tTgkoSMoayqoDpHOLJs+qG # 8Tvh8SnifW2Jj3+ii11TS8/FGngEaNAWrbyfNrC69oKpRQXY9bGH6jn9NEJv9weF # xhTwyvx9OJLXmRGbAUXN1U9nf4lXezky6Uh/cgjkVd6CGUAf0K+Jw+GE/5VpIVbc # Nr9rNE50Sbmy/4RTCEGvOq3GhjITbCa4crCzTTHgYYjHs1NbOc6brH+eKpWLtr+b # Gecy9CrwQyx7S/BfYJ+ozst7+yZtG2wR461uckFu0t+gCwLdN0A6cFtSRtR8bvxV # FyWwTtgMMFRuBa3vmUOTnfKLsLefRaQcVTgRnzeLzdpt32cdYKp+dhr2ogc+qM6K # 4CBI5/j4VFyC4QFeUP2YAidLtvpXRRo3AgMBAAGjggI1MIICMTAOBgNVHQ8BAf8E # BAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNlBKbAPD2Ns72nX9c0p # nqRIajDmMFQGA1UdIARNMEswSQYEVR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wGQYJ # KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME # GDAWgBTIftJqhSobyhmYBAcnz1AQT2ioojCBhAYDVR0fBH0wezB5oHegdYZzaHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSWRl # bnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRo # b3JpdHklMjAyMDIwLmNybDCBwwYIKwYBBQUHAQEEgbYwgbMwgYEGCCsGAQUFBzAC # hnVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29m # dCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9uJTIwUm9vdCUyMENlcnRpZmljYXRl # JTIwQXV0aG9yaXR5JTIwMjAyMC5jcnQwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vbmVv # Y3NwLm1pY3Jvc29mdC5jb20vb2NzcDANBgkqhkiG9w0BAQwFAAOCAgEAfyUqnv7U # q+rdZgrbVyNMul5skONbhls5fccPlmIbzi+OwVdPQ4H55v7VOInnmezQEeW4LqK0 # wja+fBznANbXLB0KrdMCbHQpbLvG6UA/Xv2pfpVIE1CRFfNF4XKO8XYEa3oW8oVH # +KZHgIQRIwAbyFKQ9iyj4aOWeAzwk+f9E5StNp5T8FG7/VEURIVWArbAzPt9ThVN # 3w1fAZkF7+YU9kbq1bCR2YD+MtunSQ1Rft6XG7b4e0ejRA7mB2IoX5hNh3UEauY0 # byxNRG+fT2MCEhQl9g2i2fs6VOG19CNep7SquKaBjhWmirYyANb0RJSLWjinMLXN # OAga10n8i9jqeprzSMU5ODmrMCJE12xS/NWShg/tuLjAsKP6SzYZ+1Ry358ZTFcx # 0FS/mx2vSoU8s8HRvy+rnXqyUJ9HBqS0DErVLjQwK8VtsBdekBmdTbQVoCgPCqr+ # PDPB3xajYnzevs7eidBsM71PINK2BoE2UfMwxCCX3mccFgx6UsQeRSdVVVNSyALQ # e6PT12418xon2iDGE81OGCreLzDcMAZnrUAx4XQLUz6ZTl65yPUiOh3k7Yww94lD # f+8oG2oZmDh5O1Qe38E+M3vhKwmzIeoB1dVLlz4i3IpaDcR+iuGjH2TdaC1ZOmBX # iCRKJLj4DT2uhJ04ji+tHD6n58vhavFIrmcxghcyMIIXLgIBATBxMFoxCzAJBgNV # BAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMT # Ik1pY3Jvc29mdCBJRCBWZXJpZmllZCBDUyBBT0MgQ0EgMDMCEzMABvEdpt6kUMWA # YdkAAAAG8R0wDQYJYIZIAWUDBAIBBQCgXjAQBgorBgEEAYI3AgEMMQIwADAZBgkq # hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAvBgkqhkiG9w0BCQQxIgQgkDerc5DuyUoO # xEz9XP3MHfBXxzPSVHHQ0KqSIxPhdCcwDQYJKoZIhvcNAQEBBQAEggGARmTPu7vt # XymvyOewqCsjf+vTukFcRjaMccP5kGRs+PRRdnxaVFm/RsTXWxT3PtCi3TVJO/jK # L0+WbDbfn6enIESp0QteDhBrBb9XjuVqu+EltnrE1XQr0s4+OQBq+12AF8mxAhCM # whOQEuBxdhgrFm1lB8oYAtlRXaZrMsZI5pkmtaiYGZ5PWTtkb2Fljis9/RrzX+Mo # 54mIWcIe9UYSczak9SaAOVZmFV3BAwkR7fDv8jTA37AeZb2j+int8pChOSFck4Yt # a5AzPiZrzh+IS8q5HzxLTLi9Z4g7OJySIev6Z8PCZGg4N9PXRcLvk57H3OBywpoe # 7OaQ1DfmwpyD6ySb+2upI/Et1i+EUja7psdNoW1bskhDok9BtY9YECyH0/gXPyLX # l2CSPDWxYk7NkT49HcGynnFERIlzxIQlRXrDsFHcSMzdfaLs9tJ9PdpV3fBz/FT6 # 45tE0M7TQAq+6EMK2Y8boU6YoMbNDwq05sSfBSEEk2HXRcvBQWlmzpROoYIUsjCC # FK4GCisGAQQBgjcDAwExghSeMIIUmgYJKoZIhvcNAQcCoIIUizCCFIcCAQMxDzAN # BglghkgBZQMEAgEFADCCAWoGCyqGSIb3DQEJEAEEoIIBWQSCAVUwggFRAgEBBgor # BgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIBBQAEIFmY81q3YGvZdrYp3F8amBMYF6rL # eJC65kQYxlN6gSp1AgZqNTDnrVkYEzIwMjYwOTIzMTk1MzMzLjg3M1owBIACAfSg # gemkgeYwgeMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTAr # BgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUG # A1UECxMeblNoaWVsZCBUU1MgRVNOOjQ5MUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxN # aWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eaCCDykw # ggeCMIIFaqADAgECAhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3DQEBDAUA # MHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x # SDBGBgNVBAMTP01pY3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBD # ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFaFw0zNTEx # MTkyMDQyMzFaMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y # cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFt # cGluZyBDQSAyMDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnnzn # UmP94MWfBX1jtQYioxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIcaqDb+omF # io5DHC4RBcbyQHjXCwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49REAf5huXhI # kQRKe3Qxs8Sgp02KHAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1Wa1wISvlk # pOQooTULFm809Z0ZYlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMopNq/B8U/ # pdoZkZZQbxNlqJOiBGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0kN0nh7SqI # NGbmw5OIRC0EsZ31WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheangOEMGJ4pQ # ZH55ngI0Tdy1bi69INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9NV/uC3yFj # rhc087qLJQawSC3xzY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTkmG1hSuWY # BunFGNv21Kt4N20AKmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/jR7wo3liw # kGdzPJYHgnJ54UxbckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE67SFZ2PMo # 27xjlLAHWW3l1CEAFjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIXMA4GA1Ud # DwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2koOjUvSGNA # z3vYr0npPtk92yEwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0 # dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0 # bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMA # QTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgEByfPUBBP # aKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v # cGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUy # MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3JsMIGUBggr # BgEFBQcBAQSBhzCBhDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmlj # YXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNy # dDANBgkqhkiG9w0BAQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJklFaW4sTQ5 # r+k77iB79cSLNe+GzRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi+LCmcrdo # vkl53DNt4EXs87KDogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71QjD4h+8z2X # MOZzY7YQ0Psw+etyNZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9xw6JCWON # NboZ497mwYW5EfN0W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9cLWMq7eb # 0oYioXhqV2tgFqbKHeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3SLv10o4K # Gag42pswjybTi4toQcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsukxD+7jFf # EV9Hh/+CSxKRsmnuiovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxTk4MhF/Kg # aXn0GxdH8elEa2Imq45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81coE6aQWm88 # TwIf4R4YZbOpMKN0CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tjuOOCztfp # +o9Nc+ZoIAkpUcA/X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+JYbYbBh7 # pmgAXVswggefMIIFh6ADAgECAhMzAAAAWvYNZ4yF7d0IAAAAAABaMA0GCSqGSIb3 # DQEBDAUAMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGlu # ZyBDQSAyMDIwMB4XDTI2MDEwODE4NTkwM1oXDTI3MDEwNzE4NTkwM1owgeMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs # ZCBUU1MgRVNOOjQ5MUEtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVi # bGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEB # BQADggIPADCCAgoCggIBAO/0O0eWjgUb9rnHcQLRdfWPN4H+91a3YnlaP46E1m4u # D+JKx6csWMStX79fxLJUAqHJqQWE19UlNMhS9jEB32dAJ4yuWsHyUuM+dphjDz4E # 5jl4gYGZEmaOrKvNt+KqlFayyg/oTg3BlLRu4aBq8668A5qlHcfsuh6DdSqFID1i # xJFZzHrZFG1iGBG7U1Bn2ONLDo7jbwX5rMcPduTAUw/c7M3WhSxQBuZpQiz8RQGK # IqCKfIxgQkKdzpCpU0SWQOE/DgTXbz3c15KMRCdkGlL2zb+lnuSV4sseQm3qflZi # ZckLyn2xJI8ZXDkq+Ig+b/rsPPIfI8di228WvK1j67JXpyeVCaSUO9ErzlLnTrnj # QkeXVQIp73xuVBVrmvoTf/v4a7MnrmuKSyIXc5vJUHEGB345+O8omFt1w8b+Xg9D # 9PKIRqDPEv7HRk0C+Yvxu8FvHJvSocSIZK+v/FmKFOipYnpP76yAmJNnyheucShO # gk8QiU53USn/+AyMb7xW905gZnyNqb29HeVdQ175pDHJGEz8Cx5wiHeVliGz5hAB # ucFDylR9z3LSTmB6+3ZuIxeG9BZS46P6ANPkuVuD5m8wgc7GLLzg73CsDF09ukt8 # Uf8dTcMBX3ro+7/k9M6Xt8WPG7IL9v/4DvyMY03tkb9Y9Ri6HWavXRPYRCUePspP # AgMBAAGjggHLMIIBxzAdBgNVHQ4EFgQUjmOyQ6twMcP1ZbRytJxI4fnXmcIwHwYD # VR0jBBgwFoAUa2koOjUvSGNAz3vYr0npPtk92yEwbAYDVR0fBGUwYzBhoF+gXYZb # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw # UHVibGljJTIwUlNBJTIwVGltZXN0YW1waW5nJTIwQ0ElMjAyMDIwLmNybDB5Bggr # BgEFBQcBAQRtMGswaQYIKwYBBQUHMAKGXWh0dHA6Ly93d3cubWljcm9zb2Z0LmNv # bS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwUHVibGljJTIwUlNBJTIwVGltZXN0 # YW1waW5nJTIwQ0ElMjAyMDIwLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQM # MAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDBmBgNVHSAEXzBdMFEGDCsGAQQB # gjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v # cGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEB # DAUAA4ICAQCAlM8r+t3hIb2h1lDTAx+iYkQlxFuU7QONeyIFIBZ29xvGl8pehKxE # rDzIniOpIX/eluUAwQKoaI0zwuKAdR0mrSHXCniMoLNko5W+5r7sXNamKX7QMV3B # fGOX3gi9qVfxyUe7AHXbqQ8KBQHNYCnNFtQQHgARrlYhtyAKol5ctM0CAc/y3oY7 # bTMsVJvnA5u7DVWPeXoST2KEMDeLBvJYq0IJZ6yMpDOWLZ4UP82bksyShIB/Xdaw # irIGLdseudryRxVMk313mAcjGRb59+Ittt6otVvYQWqH+PGrTUzEcez8aQuO3umo # NZjKuFoX5VsPP/gSZse+orhG3zfZk9IDyE3DfUFrhvkv6H0tijK1D0uIGhwMBWSm # 9ktQ6oeU+aurZFx3MI+LODnHsbRFZAy11uMvwKq+ZNC1Se4tIM1u9piWAhnTPoh6 # mULKikHOVhHaO953tkzDCtjsse5GUKOx9yg9nqHKWMgnODp62/uPPzC/yDEISrXC # cU7UB7tATr3zWNEdtM4d009iXWI6dV/SdcIIX44rpoLyCLw+nXjxp+fY/dygLO7U # dSQaVaUFVj3K2nVyuujPspt5Lunc5FvuYPqmi/z8kASmmwbiF+W0P0UTWFaC84MW # fU2h6MDg5s0oxmdNFK76jXr3wZfdSoV7FCKfq5GdeGoy5UwDQwMC0DGCA9QwggPQ # AgEBMHgwYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh # dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5n # IENBIDIwMjACEzMAAABa9g1njIXt3QgAAAAAAFowDQYJYIZIAWUDBAIBBQCgggEt # MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg+jDo # wjPv1UFqqnaVKtKSIPpV1aq0ztthSd+mK/dzDBcwgd0GCyqGSIb3DQEJEAIvMYHN # MIHKMIHHMIGgBCBiuWRAi+p96PRsBt3TwW3jNozgPQS+Qco1CVm/NaU0QzB8MGWk # YzBhMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u # MTIwMAYDVQQDEylNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0Eg # MjAyMAITMwAAAFr2DWeMhe3dCAAAAAAAWjAiBCC0kjJM6/H6xyD1V9c1h5Gtr/aj # 0SSkAVmIl0tkNDH5QTANBgkqhkiG9w0BAQsFAASCAgCcyEF0L9VoiPMrJAUaUhKs # sO+gnFTk7vKeYygOZzZQUs6cB4nuUwcbD51L4nY21lFa3T/WJ4ldk/4mgOYnbrsk # SxDoBNEnPy3syHBqxWfM5LRbuT4SnnWz9VY14gFnoTgyptg0yMGgOt6zRhiIhTdg # 0gIJrioeAOJwvYDQ0IpV4MchjaCZiC6Og3o2LFyQgDFuclFxNqGfkOfjiy+gjn6r # 6dcEqhBJB0n3iAz2GIMtRj2ZETeEaubbQhb7C/DyfYxmAPW1+oJNmaokk86HXfuN # kNoXfnUKL2ln/uRDmNSBqYhhdb1e1uVZ580IB1Exatn+JRYcNmAfUroBS5vOGdqQ # zgNHGh8MuHNcqMiigguWzibuJ1eol3uHrgid664OXrV7n4vzqLIvoEuBSQ0Q9kV1 # pB+GU8sHRut5+IiMrMzSZjSWT1bxt5bAfwWc7fiN4CEmonfJazeojRVbr3xUWjGl # KxFTpMhDSSJ//qWepFHTlj0l9yPJ+2ZrzUWAWRjSaCf6G7/wzlU5PTKLI0vyJxfg # tuqjaa/ISxpEsEgh3gRvzWJaUmWZh+0yfvWnmvc/1Sr2kqDcri+qgpEB6cEzNnBp # 0iENKn0pIozD/0VHcB/L360mAZvAVMUbSaojpoQNz1an29MUgtf29YvO1CXFu2aK # dfFScWY+5SFRWcTt9V6rMQ== # SIG # End signature block |