[ { "choices": [ ], "data_type": "string", "default_value": "NA", "description": "", "display_name": "Windows 11 Readiness Unaltered", "field_name": "windows_11_readiness_unaltered", "is_global": true, "metadata": { "macos": { "extension": "sh", "must_exit_zero": true, "replace_line_feed": true, "source": "#!/bin/bash\n#\n# FileWave client will execute this script. The output will be used as the value of the custom field.\n# \n# Below is an example of how to read the value of one ENVIRONMENT VARIABLE in your script:\n\n# my_var=${ENV_VAR_NAME}\n#\n\necho NA\n\nexit 0" }, "windows": { "extension": "ps1", "must_exit_zero": true, "replace_line_feed": true, "source": "#=============================================================================================================================\n#\n# Script Name: HardwareReadiness.ps1\n# Description: Verifies the hardware compliance. Return code 0 for success. \n# In case of failure, returns non zero error code along with error message.\n\n# This script is not supported under any Microsoft standard support program or service and is distributed under the MIT license\n\n# Copyright (C) 2021 Microsoft Corporation\n\n# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation\n# files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy,\n# modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software\n# is furnished to do so, subject to the following conditions:\n\n# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\n# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n#=============================================================================================================================\n\n$exitCode = 0\n\n[int]$MinOSDiskSizeGB = 64\n[int]$MinMemoryGB = 4\n[Uint32]$MinClockSpeedMHz = 1000\n[Uint32]$MinLogicalCores = 2\n[Uint16]$RequiredAddressWidth = 64\n\n$PASS_STRING = \"PASS\"\n$FAIL_STRING = \"FAIL\"\n$FAILED_TO_RUN_STRING = \"FAILED TO RUN\"\n$UNDETERMINED_CAPS_STRING = \"UNDETERMINED\"\n$UNDETERMINED_STRING = \"Undetermined\"\n$CAPABLE_STRING = \"Capable\"\n$NOT_CAPABLE_STRING = \"Not capable\"\n$CAPABLE_CAPS_STRING = \"CAPABLE\"\n$NOT_CAPABLE_CAPS_STRING = \"NOT CAPABLE\"\n$STORAGE_STRING = \"Storage\"\n$OS_DISK_SIZE_STRING = \"OSDiskSize\"\n$MEMORY_STRING = \"Memory\"\n$SYSTEM_MEMORY_STRING = \"System_Memory\"\n$GB_UNIT_STRING = \"GB\"\n$TPM_STRING = \"TPM\"\n$TPM_VERSION_STRING = \"TPMVersion\"\n$PROCESSOR_STRING = \"Processor\"\n$SECUREBOOT_STRING = \"SecureBoot\"\n$I7_7820HQ_CPU_STRING = \"i7-7820hq CPU\"\n\n# 0=name of check, 1=attribute checked, 2=value, 3=PASS/FAIL/UNDETERMINED\n$logFormat = '{0}: {1}={2}. {3}; '\n\n# 0=name of check, 1=attribute checked, 2=value, 3=unit of the value, 4=PASS/FAIL/UNDETERMINED\n$logFormatWithUnit = '{0}: {1}={2}{3}. {4}; '\n\n# 0=name of check.\n$logFormatReturnReason = '{0}, '\n\n# 0=exception.\n$logFormatException = '{0}; '\n\n# 0=name of check, 1= attribute checked and its value, 2=PASS/FAIL/UNDETERMINED\n$logFormatWithBlob = '{0}: {1}. {2}; '\n\n# return returnCode is -1 when an exception is thrown. 1 if the value does not meet requirements. 0 if successful. -2 default, script didn't run.\n$outObject = @{ returnCode = -2; returnResult = $FAILED_TO_RUN_STRING; returnReason = \"\"; logging = \"\" }\n\n# NOT CAPABLE(1) state takes precedence over UNDETERMINED(-1) state\nfunction Private:UpdateReturnCode {\n param(\n [Parameter(Mandatory = $true)]\n [ValidateRange(-2, 1)]\n [int] $ReturnCode\n )\n\n Switch ($ReturnCode) {\n\n 0 {\n if ($outObject.returnCode -eq -2) {\n $outObject.returnCode = $ReturnCode\n }\n }\n 1 {\n $outObject.returnCode = $ReturnCode\n }\n -1 {\n if ($outObject.returnCode -ne 1) {\n $outObject.returnCode = $ReturnCode\n }\n }\n }\n}\n\n$Source = @\"\nusing Microsoft.Win32;\nusing System;\nusing System.Runtime.InteropServices;\n\n public class CpuFamilyResult\n {\n public bool IsValid { get; set; }\n public string Message { get; set; }\n }\n\n public class CpuFamily\n {\n [StructLayout(LayoutKind.Sequential)]\n public struct SYSTEM_INFO\n {\n public ushort ProcessorArchitecture;\n ushort Reserved;\n public uint PageSize;\n public IntPtr MinimumApplicationAddress;\n public IntPtr MaximumApplicationAddress;\n public IntPtr ActiveProcessorMask;\n public uint NumberOfProcessors;\n public uint ProcessorType;\n public uint AllocationGranularity;\n public ushort ProcessorLevel;\n public ushort ProcessorRevision;\n }\n\n [DllImport(\"kernel32.dll\")]\n internal static extern void GetNativeSystemInfo(ref SYSTEM_INFO lpSystemInfo);\n\n public enum ProcessorFeature : uint\n {\n ARM_SUPPORTED_INSTRUCTIONS = 34\n }\n\n [DllImport(\"kernel32.dll\")]\n [return: MarshalAs(UnmanagedType.Bool)]\n static extern bool IsProcessorFeaturePresent(ProcessorFeature processorFeature);\n\n private const ushort PROCESSOR_ARCHITECTURE_X86 = 0;\n private const ushort PROCESSOR_ARCHITECTURE_ARM64 = 12;\n private const ushort PROCESSOR_ARCHITECTURE_X64 = 9;\n\n private const string INTEL_MANUFACTURER = \"GenuineIntel\";\n private const string AMD_MANUFACTURER = \"AuthenticAMD\";\n private const string QUALCOMM_MANUFACTURER = \"Qualcomm Technologies Inc\";\n\n public static CpuFamilyResult Validate(string manufacturer, ushort processorArchitecture)\n {\n CpuFamilyResult cpuFamilyResult = new CpuFamilyResult();\n\n if (string.IsNullOrWhiteSpace(manufacturer))\n {\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"Manufacturer is null or empty\";\n return cpuFamilyResult;\n }\n\n string registryPath = \"HKEY_LOCAL_MACHINE\\\\Hardware\\\\Description\\\\System\\\\CentralProcessor\\\\0\";\n SYSTEM_INFO sysInfo = new SYSTEM_INFO();\n GetNativeSystemInfo(ref sysInfo);\n\n switch (processorArchitecture)\n {\n case PROCESSOR_ARCHITECTURE_ARM64:\n\n if (manufacturer.Equals(QUALCOMM_MANUFACTURER, StringComparison.OrdinalIgnoreCase))\n {\n bool isArmv81Supported = IsProcessorFeaturePresent(ProcessorFeature.ARM_SUPPORTED_INSTRUCTIONS);\n\n if (!isArmv81Supported)\n {\n string registryName = \"CP 4030\";\n long registryValue = (long)Registry.GetValue(registryPath, registryName, -1);\n long atomicResult = (registryValue >> 20) & 0xF;\n\n if (atomicResult >= 2)\n {\n isArmv81Supported = true;\n }\n }\n\n cpuFamilyResult.IsValid = isArmv81Supported;\n cpuFamilyResult.Message = isArmv81Supported ? \"\" : \"Processor does not implement ARM v8.1 atomic instruction\";\n }\n else\n {\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"The processor isn't currently supported for Windows 11\";\n }\n\n break;\n\n case PROCESSOR_ARCHITECTURE_X64:\n case PROCESSOR_ARCHITECTURE_X86:\n\n int cpuFamily = sysInfo.ProcessorLevel;\n int cpuModel = (sysInfo.ProcessorRevision >> 8) & 0xFF;\n int cpuStepping = sysInfo.ProcessorRevision & 0xFF;\n\n if (manufacturer.Equals(INTEL_MANUFACTURER, StringComparison.OrdinalIgnoreCase))\n {\n try\n {\n cpuFamilyResult.IsValid = true;\n cpuFamilyResult.Message = \"\";\n\n if (cpuFamily == 6)\n {\n if (cpuModel <= 95 && cpuModel != 85)\n {\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"\";\n }\n else if ((cpuModel == 142 || cpuModel == 158) && cpuStepping == 9)\n {\n string registryName = \"Platform Specific Field 1\";\n int registryValue = (int)Registry.GetValue(registryPath, registryName, -1);\n\n if ((cpuModel == 142 && registryValue != 16) || (cpuModel == 158 && registryValue != 8))\n {\n cpuFamilyResult.IsValid = false;\n }\n cpuFamilyResult.Message = \"PlatformId \" + registryValue;\n }\n }\n }\n catch (Exception ex)\n {\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"Exception:\" + ex.GetType().Name;\n }\n }\n else if (manufacturer.Equals(AMD_MANUFACTURER, StringComparison.OrdinalIgnoreCase))\n {\n cpuFamilyResult.IsValid = true;\n cpuFamilyResult.Message = \"\";\n\n if (cpuFamily < 23 || (cpuFamily == 23 && (cpuModel == 1 || cpuModel == 17)))\n {\n cpuFamilyResult.IsValid = false;\n }\n }\n else\n {\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"Unsupported Manufacturer: \" + manufacturer + \", Architecture: \" + processorArchitecture + \", CPUFamily: \" + sysInfo.ProcessorLevel + \", ProcessorRevision: \" + sysInfo.ProcessorRevision;\n }\n\n break;\n\n default:\n cpuFamilyResult.IsValid = false;\n cpuFamilyResult.Message = \"Unsupported CPU category. Manufacturer: \" + manufacturer + \", Architecture: \" + processorArchitecture + \", CPUFamily: \" + sysInfo.ProcessorLevel + \", ProcessorRevision: \" + sysInfo.ProcessorRevision;\n break;\n }\n return cpuFamilyResult;\n }\n }\n\"@\n\n# Storage\ntry {\n $osDrive = Get-WmiObject -Class Win32_OperatingSystem | Select-Object -Property SystemDrive\n $osDriveSize = Get-WmiObject -Class Win32_LogicalDisk -filter \"DeviceID='$($osDrive.SystemDrive)'\" | Select-Object @{Name = \"SizeGB\"; Expression = { $_.Size / 1GB -as [int] } } \n\n if ($null -eq $osDriveSize) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $STORAGE_STRING\n $outObject.logging += $logFormatWithBlob -f $STORAGE_STRING, \"Storage is null\", $FAIL_STRING\n $exitCode = 1\n }\n elseif ($osDriveSize.SizeGB -lt $MinOSDiskSizeGB) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $STORAGE_STRING\n $outObject.logging += $logFormatWithUnit -f $STORAGE_STRING, $OS_DISK_SIZE_STRING, ($osDriveSize.SizeGB), $GB_UNIT_STRING, $FAIL_STRING\n $exitCode = 1\n }\n else {\n $outObject.logging += $logFormatWithUnit -f $STORAGE_STRING, $OS_DISK_SIZE_STRING, ($osDriveSize.SizeGB), $GB_UNIT_STRING, $PASS_STRING\n UpdateReturnCode -ReturnCode 0\n }\n}\ncatch {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormat -f $STORAGE_STRING, $OS_DISK_SIZE_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\n\n# Memory (bytes)\ntry {\n $memory = Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum | Select-Object @{Name = \"SizeGB\"; Expression = { $_.Sum / 1GB -as [int] } }\n\n if ($null -eq $memory) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $MEMORY_STRING\n $outObject.logging += $logFormatWithBlob -f $MEMORY_STRING, \"Memory is null\", $FAIL_STRING\n $exitCode = 1\n }\n elseif ($memory.SizeGB -lt $MinMemoryGB) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $MEMORY_STRING\n $outObject.logging += $logFormatWithUnit -f $MEMORY_STRING, $SYSTEM_MEMORY_STRING, ($memory.SizeGB), $GB_UNIT_STRING, $FAIL_STRING\n $exitCode = 1\n }\n else {\n $outObject.logging += $logFormatWithUnit -f $MEMORY_STRING, $SYSTEM_MEMORY_STRING, ($memory.SizeGB), $GB_UNIT_STRING, $PASS_STRING\n UpdateReturnCode -ReturnCode 0\n }\n}\ncatch {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormat -f $MEMORY_STRING, $SYSTEM_MEMORY_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\n\n# TPM\ntry {\n $tpm = Get-Tpm\n\n if ($null -eq $tpm) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $TPM_STRING\n $outObject.logging += $logFormatWithBlob -f $TPM_STRING, \"TPM is null\", $FAIL_STRING\n $exitCode = 1\n }\n elseif ($tpm.TpmPresent) {\n $tpmVersion = Get-WmiObject -Class Win32_Tpm -Namespace root\\CIMV2\\Security\\MicrosoftTpm | Select-Object -Property SpecVersion\n\n if ($null -eq $tpmVersion.SpecVersion) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $TPM_STRING\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, \"null\", $FAIL_STRING\n $exitCode = 1\n }\n\n $majorVersion = $tpmVersion.SpecVersion.Split(\",\")[0] -as [int]\n if ($majorVersion -lt 2) {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $TPM_STRING\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, ($tpmVersion.SpecVersion), $FAIL_STRING\n $exitCode = 1\n }\n else {\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, ($tpmVersion.SpecVersion), $PASS_STRING\n UpdateReturnCode -ReturnCode 0\n }\n }\n else {\n if ($tpm.GetType().Name -eq \"String\") {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f $tpm\n }\n else {\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $TPM_STRING\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, ($tpm.TpmPresent), $FAIL_STRING\n }\n $exitCode = 1\n }\n}\ncatch {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormat -f $TPM_STRING, $TPM_VERSION_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\n\n# CPU Details\n$cpuDetails;\ntry {\n $cpuDetails = @(Get-WmiObject -Class Win32_Processor)[0]\n\n if ($null -eq $cpuDetails) {\n UpdateReturnCode -ReturnCode 1\n $exitCode = 1\n $outObject.returnReason += $logFormatReturnReason -f $PROCESSOR_STRING\n $outObject.logging += $logFormatWithBlob -f $PROCESSOR_STRING, \"CpuDetails is null\", $FAIL_STRING\n }\n else {\n $processorCheckFailed = $false\n\n # AddressWidth\n if ($null -eq $cpuDetails.AddressWidth -or $cpuDetails.AddressWidth -ne $RequiredAddressWidth) {\n UpdateReturnCode -ReturnCode 1\n $processorCheckFailed = $true\n $exitCode = 1\n }\n\n # ClockSpeed is in MHz\n if ($null -eq $cpuDetails.MaxClockSpeed -or $cpuDetails.MaxClockSpeed -le $MinClockSpeedMHz) {\n UpdateReturnCode -ReturnCode 1;\n $processorCheckFailed = $true\n $exitCode = 1\n }\n\n # Number of Logical Cores\n if ($null -eq $cpuDetails.NumberOfLogicalProcessors -or $cpuDetails.NumberOfLogicalProcessors -lt $MinLogicalCores) {\n UpdateReturnCode -ReturnCode 1\n $processorCheckFailed = $true\n $exitCode = 1\n }\n\n # CPU Family\n Add-Type -TypeDefinition $Source\n $cpuFamilyResult = [CpuFamily]::Validate([String]$cpuDetails.Manufacturer, [uint16]$cpuDetails.Architecture)\n\n $cpuDetailsLog = \"{AddressWidth=$($cpuDetails.AddressWidth); MaxClockSpeed=$($cpuDetails.MaxClockSpeed); NumberOfLogicalCores=$($cpuDetails.NumberOfLogicalProcessors); Manufacturer=$($cpuDetails.Manufacturer); Caption=$($cpuDetails.Caption); $($cpuFamilyResult.Message)}\"\n\n if (!$cpuFamilyResult.IsValid) {\n UpdateReturnCode -ReturnCode 1\n $processorCheckFailed = $true\n $exitCode = 1\n }\n\n if ($processorCheckFailed) {\n $outObject.returnReason += $logFormatReturnReason -f $PROCESSOR_STRING\n $outObject.logging += $logFormatWithBlob -f $PROCESSOR_STRING, ($cpuDetailsLog), $FAIL_STRING\n }\n else {\n $outObject.logging += $logFormatWithBlob -f $PROCESSOR_STRING, ($cpuDetailsLog), $PASS_STRING\n UpdateReturnCode -ReturnCode 0\n }\n }\n}\ncatch {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormat -f $PROCESSOR_STRING, $PROCESSOR_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\n\n# SecureBooot\ntry {\n $isSecureBootEnabled = Confirm-SecureBootUEFI\n $outObject.logging += $logFormatWithBlob -f $SECUREBOOT_STRING, $CAPABLE_STRING, $PASS_STRING\n UpdateReturnCode -ReturnCode 0\n}\ncatch [System.PlatformNotSupportedException] {\n # PlatformNotSupportedException \"Cmdlet not supported on this platform.\" - SecureBoot is not supported or is non-UEFI computer.\n UpdateReturnCode -ReturnCode 1\n $outObject.returnReason += $logFormatReturnReason -f $SECUREBOOT_STRING\n $outObject.logging += $logFormatWithBlob -f $SECUREBOOT_STRING, $NOT_CAPABLE_STRING, $FAIL_STRING\n $exitCode = 1\n}\ncatch [System.UnauthorizedAccessException] {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormatWithBlob -f $SECUREBOOT_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\ncatch {\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormatWithBlob -f $SECUREBOOT_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n}\n\n# i7-7820hq CPU\ntry {\n $supportedDevices = @('surface studio 2', 'precision 5520')\n $systemInfo = @(Get-WmiObject -Class Win32_ComputerSystem)[0]\n\n if ($null -ne $cpuDetails) {\n if ($cpuDetails.Name -match 'i7-7820hq cpu @ 2.90ghz'){\n $modelOrSKUCheckLog = $systemInfo.Model.Trim()\n if ($supportedDevices -contains $modelOrSKUCheckLog){\n $outObject.logging += $logFormatWithBlob -f $I7_7820HQ_CPU_STRING, $modelOrSKUCheckLog, $PASS_STRING\n $outObject.returnCode = 0\n $exitCode = 0\n }\n }\n }\n}\ncatch {\n if ($outObject.returnCode -ne 0){\n UpdateReturnCode -ReturnCode -1\n $outObject.logging += $logFormatWithBlob -f $I7_7820HQ_CPU_STRING, $UNDETERMINED_STRING, $UNDETERMINED_CAPS_STRING\n $outObject.logging += $logFormatException -f \"$($_.Exception.GetType().Name) $($_.Exception.Message)\"\n $exitCode = 1\n }\n}\n\n Switch ($outObject.returnCode) {\n\n 0 { $outObject.returnResult = $CAPABLE_CAPS_STRING }\n 1 { $outObject.returnResult = $NOT_CAPABLE_CAPS_STRING }\n -1 { $outObject.returnResult = $UNDETERMINED_CAPS_STRING }\n -2 { $outObject.returnResult = $FAILED_TO_RUN_STRING }\n}\n\n$outObject | ConvertTo-Json -Compress\n# SIG # Begin signature block\n# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor\n# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG\n# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDb5pJ1SfdIgxY6\n# r/hrvGtt4VSKR7p08h14Kpl4wDY7KaCCDYEwggX/MIID56ADAgECAhMzAAAB32vw\n# LpKnSrTQAAAAAAHfMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD\n# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy\n# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p\n# bmcgUENBIDIwMTEwHhcNMjAxMjE1MjEzMTQ1WhcNMjExMjAyMjEzMTQ1WjB0MQsw\n# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u\n# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy\n# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\n# AQC2uxlZEACjqfHkuFyoCwfL25ofI9DZWKt4wEj3JBQ48GPt1UsDv834CcoUUPMn\n# s/6CtPoaQ4Thy/kbOOg/zJAnrJeiMQqRe2Lsdb/NSI2gXXX9lad1/yPUDOXo4GNw\n# PjXq1JZi+HZV91bUr6ZjzePj1g+bepsqd/HC1XScj0fT3aAxLRykJSzExEBmU9eS\n# yuOwUuq+CriudQtWGMdJU650v/KmzfM46Y6lo/MCnnpvz3zEL7PMdUdwqj/nYhGG\n# 3UVILxX7tAdMbz7LN+6WOIpT1A41rwaoOVnv+8Ua94HwhjZmu1S73yeV7RZZNxoh\n# EegJi9YYssXa7UZUUkCCA+KnAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE\n# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUOPbML8IdkNGtCfMmVPtvI6VZ8+Mw\n# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1\n# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDYzMDA5MB8GA1UdIwQYMBaAFEhu\n# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu\n# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w\n# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3\n# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx\n# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAnnqH\n# tDyYUFaVAkvAK0eqq6nhoL95SZQu3RnpZ7tdQ89QR3++7A+4hrr7V4xxmkB5BObS\n# 0YK+MALE02atjwWgPdpYQ68WdLGroJZHkbZdgERG+7tETFl3aKF4KpoSaGOskZXp\n# TPnCaMo2PXoAMVMGpsQEQswimZq3IQ3nRQfBlJ0PoMMcN/+Pks8ZTL1BoPYsJpok\n# t6cql59q6CypZYIwgyJ892HpttybHKg1ZtQLUlSXccRMlugPgEcNZJagPEgPYni4\n# b11snjRAgf0dyQ0zI9aLXqTxWUU5pCIFiPT0b2wsxzRqCtyGqpkGM8P9GazO8eao\n# mVItCYBcJSByBx/pS0cSYwBBHAZxJODUqxSXoSGDvmTfqUJXntnWkL4okok1FiCD\n# Z4jpyXOQunb6egIXvkgQ7jb2uO26Ow0m8RwleDvhOMrnHsupiOPbozKroSa6paFt\n# VSh89abUSooR8QdZciemmoFhcWkEwFg4spzvYNP4nIs193261WyTaRMZoceGun7G\n# CT2Rl653uUj+F+g94c63AhzSq4khdL4HlFIP2ePv29smfUnHtGq6yYFDLnT0q/Y+\n# Di3jwloF8EWkkHRtSuXlFUbTmwr/lDDgbpZiKhLS7CBTDj32I0L5i532+uHczw82\n# oZDmYmYmIUSMbZOgS65h797rj5JJ6OkeEUJoAVwwggd6MIIFYqADAgECAgphDpDS\n# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK\n# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0\n# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0\n# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla\n# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS\n# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT\n# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB\n# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG\n# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S\n# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz\n# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7\n# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u\n# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33\n# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl\n# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP\n# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB\n# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF\n# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM\n# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ\n# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud\n# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO\n# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0\n# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y\n# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p\n# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y\n# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB\n# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw\n# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA\n# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY\n# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj\n# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd\n# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ\n# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf\n# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ\n# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j\n# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B\n# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96\n# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7\n# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I\n# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG\n# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx\n# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z\n# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAd9r8C6Sp0q00AAAAAAB3zAN\n# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor\n# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgyL6VdnP4\n# aI9w6w9jZZmoqGsIb5MeZN7xb4dvLOpjLWkwQgYKKwYBBAGCNwIBDDE0MDKgFIAS\n# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN\n# BgkqhkiG9w0BAQEFAASCAQCu+Ddvm3aauK83YTvcKeK1Y45n8KlXjTB4To3Xl4eF\n# pJ3HPfAZ6wERmjenTAufA+3MO3798iXRTdzO5Vq5aAvbOjbFESZ+FkVavjSuleP8\n# AkTH+7m847kX3bdy3jotetPPDjD8QRZWqBpPPTEsw67vc+q9QTN+MqfTL9jss6ET\n# 4wEuoDz5c66yJ0lm7FYmd0er/eeM80U9dpHkHWVwz2i/lTLQT2s3TxKgGSJssWb8\n# DkIfIUOS9fY8M+MiqWtMK5h2Fk+ngKMCeP/w4oVHips71e8qhraHfMgda/aE9aa9\n# 3eqwW4s7OZSlnxxkrpDG4KgNPQP+B2KjVMMCieJ3sq23oYIS8TCCEu0GCisGAQQB\n# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME\n# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB\n# MDEwDQYJYIZIAWUDBAIBBQAEIOpg18cuKR1eKeCtMhYnZNmjWgdmlBhUL/dUNbla\n# tP3+AgZhRMV8OAQYEzIwMjExMDA1MTcwOTE2Ljc4OFowBIACAfSggdSkgdEwgc4x\n# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt\n# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p\n# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg\n# VFNTIEVTTjo4OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt\n# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABYAcg8JJI2r7rAAAA\n# AAFgMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo\n# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y\n# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw\n# MB4XDTIxMDExNDE5MDIyMFoXDTIyMDQxMTE5MDIyMFowgc4xCzAJBgNVBAYTAlVT\n# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK\n# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy\n# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4OTdB\n# LUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj\n# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALQxgBzQ8sbM8VIzPgmN\n# 9TWkWs2k8S1CZUyN58SLzLW3158rZZ/O4l68Gb4SkE/iBUSk4yVesBKOVonbLL3n\n# AwIXmsYhn5BR0RXPI9XLizzVqslUgHPzTPRtMtZu+jtygCph5MfquBia/Sp0Hjj7\n# lEDrNHR/C/1/xCaZyQpgIR7lARJIaRVh5y+WqbqmbUsFIoF5UHwwzJFJpOXxYtA0\n# uWuraKpdCUzAzh6wkKZgMkRrXP3E/w5cs4U7cYiYjZRGlm3Gr+vJgkyTsKW3OBiT\n# tkaW/ejtpW+S6pu/NezXFqAzwuSDjeIImOOeEavlA9O9VpCexo1z6VCpp0Eb3904\n# uhMCAwEAAaOCARswggEXMB0GA1UdDgQWBBSnmx74t6gX4JrhdTIJdXzQ674fYzAf\n# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH\n# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU\n# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF\n# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0\n# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG\n# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQAVNJgImzoFpolQdU8nYdcX7ySlKEP3\n# 59qg5Q/SFp7e4j5dA1V+ksvmKdZB1jhjsBs2ImNOItyNY2u2Nwja4JNxFf+2y/KT\n# cP8GE97H8ogr9c+Vb1uHF7gtne3F8vnv0Cb79K4mbhi6S0QIhqPcI8c36UqePwKM\n# Lm32J+vO9wuKW2NK8v9bA5gQu92Aj6uf7AGAuNYHIh0iZok+bcuJpYPKKY1nvS2E\n# a1gzmF8J/irPY4MW8v4/gaekJosfkc6gboma4w1gFDGKgKhv7tlT1+53uHGR2TS1\n# qMYeNwGfGtjiTxQ1BlQEZibk7PFfCe+KRhTRTCRtzWnSg3NEE0y2qLnUMIIGcTCC\n# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC\n# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV\n# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv\n# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN\n# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv\n# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0\n# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw\n# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0\n# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw\n# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe\n# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx\n# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G\n# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA\n# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7\n# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX\n# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v\n# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI\n# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j\n# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g\n# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93\n# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB\n# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA\n# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh\n# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS\n# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK\n# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon\n# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi\n# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/\n# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII\n# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0\n# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a\n# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ\n# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+\n# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT\n# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD\n# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP\n# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4\n# OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy\n# dmljZaIjCgEBMAcGBSsOAwIaAxUA+zKSdHWLRNzIlyqHVxXZgKnZ0KKggYMwgYCk\n# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH\n# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD\n# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF\n# AOUG/nIwIhgPMjAyMTEwMDUyMDQwMThaGA8yMDIxMTAwNjIwNDAxOFowdzA9Bgor\n# BgEEAYRZCgQBMS8wLTAKAgUA5Qb+cgIBADAKAgEAAgIlBQIB/zAHAgEAAgIRTTAK\n# AgUA5QhP8gIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB\n# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAIV30zswI/TMxXga\n# 6x/LaYCFa7cPnP4+bSOL7kJdmw7zmoIrYuJIPi07/Xix6SzHZi09c4j00dzLt7Kx\n# KFLLl+9490WgqSeg5MvQDtYb9pnTIpwaWSmRFOGHmP4hObE2zC/Sg5KcXjpGShEu\n# 6/T/lgQ6GcvjrvPXPs90UKNoVtxdMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC\n# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV\n# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp\n# bWUtU3RhbXAgUENBIDIwMTACEzMAAAFgByDwkkjavusAAAAAAWAwDQYJYIZIAWUD\n# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B\n# CQQxIgQgeShOXPx7JMKbos2vCuTKNl7MTVsmR28OBBDP/e3llkswgfoGCyqGSIb3\n# DQEJEAIvMYHqMIHnMIHkMIG9BCACEqO9o3Mul1tFp68e6ivKfpXS/49cFwniXkj3\n# qLBluTCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u\n# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp\n# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB\n# YAcg8JJI2r7rAAAAAAFgMCIEIHxxceYMklgebZOmXAOCV3hCLWFnCn/LAFebsGuD\n# O4FZMA0GCSqGSIb3DQEBCwUABIIBAF1tJ2TXXI9rhoPJUZyfMDyPqlXdJ7iRajf1\n# UX6UZvqx4CXhvNpDLy3hznOOm79UHcJLMcQ4xwMmvXjhTIKvnonWmKsBZpIYMFWw\n# YKVutd52KCmY1suS+E0npLN9mNUcxTs8L/KXGLL7ZQsNAXzuqxOReAjp6yIUO6Mv\n# xMTCMB0SrJ1uFouRvc2tdcZ104jkmdpWDQfmJtWk2wAsnRGJfa1CuU5c0UmLfZPn\n# nGOQfz+vFCTCbOItztsksB8AXv9nXe+rTH42lqx3hVUX4KN812hUSjfdfUhpLOhQ\n# kcm0kAt2E0B+TsCp2l/TmTnNn5x6RIj2K014Uxm8wTHREOfP8l8=\n# SIG # End signature block" } }, "provider": 1, "to_be_deleted": false, "used_in_workflows": false } ]