public/Invoke-GkSeAzResourceGraphRequest.ps1

<#
.SYNOPSIS
    Executing KQL Query on Azure Resource Graph API
 
.DESCRIPTION
    Request to Azure Resource Graph API to execute KQL Query with pagination support to fetch all resources.
 
.PARAMETER KqlQuery
    KQL Query to be executed on Azure Resource Graph API
 
.PARAMETER BatchSize
    Number of records to be fetched in a single request. Default is 1000.
 
.PARAMETER SkipResult
    Number of records to be skipped in the result. Default is 0.
 
.EXAMPLE
    Execute Azure Resource Graph query to fetch all registration assignments for Managed Services (Lighthouse)
    Invoke-GkSeAzResourceGraphRequest -KqlQuery 'ManagedServicesResources | where type == "microsoft.managedservices/registrationassignments"'
#>


function Invoke-GkSeAzResourceGraphRequest {
    [CmdletBinding()]
    param (
        # Request Uri
        [Parameter(Mandatory)]
        [string]$KqlQuery,

        [parameter(Mandatory = $false)]
        [string]$BatchSize = "1000"
    )

    $Result = @()
    $SkipResult = "0"

    try {
        while ($true) {
            if ($SkipResult -gt 0) {
                $GraphResult = Search-AzGraph -Query $KqlQuery -First $BatchSize -SkipToken $GraphResult.SkipToken -UseTenantScope
            } else {
                $GraphResult = Search-AzGraph -Query $KqlQuery -First $BatchSize -UseTenantScope
            }

            $Result += $GraphResult.data

            if ($GraphResult.data.Count -lt $BatchSize) {
                break;
            }
            $SkipResult += $SkipResult + $BatchSize
        }
        return $Result
    } catch {
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}
# SIG # Begin signature block
# MIIv6QYJKoZIhvcNAQcCoIIv2jCCL9YCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD7MjcS5la7QSY6
# TnM16NS1NgFtfXeMDzUYdwSQ66Z6E6CCFA4wggVyMIIDWqADAgECAhB2U/6sdUZI
# k/Xl10pIOk74MA0GCSqGSIb3DQEBDAUAMFMxCzAJBgNVBAYTAkJFMRkwFwYDVQQK
# ExBHbG9iYWxTaWduIG52LXNhMSkwJwYDVQQDEyBHbG9iYWxTaWduIENvZGUgU2ln
# bmluZyBSb290IFI0NTAeFw0yMDAzMTgwMDAwMDBaFw00NTAzMTgwMDAwMDBaMFMx
# CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSkwJwYDVQQD
# EyBHbG9iYWxTaWduIENvZGUgU2lnbmluZyBSb290IFI0NTCCAiIwDQYJKoZIhvcN
# AQEBBQADggIPADCCAgoCggIBALYtxTDdeuirkD0DcrA6S5kWYbLl/6VnHTcc5X7s
# k4OqhPWjQ5uYRYq4Y1ddmwCIBCXp+GiSS4LYS8lKA/Oof2qPimEnvaFE0P31PyLC
# o0+RjbMFsiiCkV37WYgFC5cGwpj4LKczJO5QOkHM8KCwex1N0qhYOJbp3/kbkbuL
# ECzSx0Mdogl0oYCve+YzCgxZa4689Ktal3t/rlX7hPCA/oRM1+K6vcR1oW+9YRB0
# RLKYB+J0q/9o3GwmPukf5eAEh60w0wyNA3xVuBZwXCR4ICXrZ2eIq7pONJhrcBHe
# OMrUvqHAnOHfHgIB2DvhZ0OEts/8dLcvhKO/ugk3PWdssUVcGWGrQYP1rB3rdw1G
# R3POv72Vle2dK4gQ/vpY6KdX4bPPqFrpByWbEsSegHI9k9yMlN87ROYmgPzSwwPw
# jAzSRdYu54+YnuYE7kJuZ35CFnFi5wT5YMZkobacgSFOK8ZtaJSGxpl0c2cxepHy
# 1Ix5bnymu35Gb03FhRIrz5oiRAiohTfOB2FXBhcSJMDEMXOhmDVXR34QOkXZLaRR
# kJipoAc3xGUaqhxrFnf3p5fsPxkwmW8x++pAsufSxPrJ0PBQdnRZ+o1tFzK++Ol+
# A/Tnh3Wa1EqRLIUDEwIrQoDyiWo2z8hMoM6e+MuNrRan097VmxinxpI68YJj8S4O
# JGTfAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0G
# A1UdDgQWBBQfAL9GgAr8eDm3pbRD2VZQu86WOzANBgkqhkiG9w0BAQwFAAOCAgEA
# Xiu6dJc0RF92SChAhJPuAW7pobPWgCXme+S8CZE9D/x2rdfUMCC7j2DQkdYc8pzv
# eBorlDICwSSWUlIC0PPR/PKbOW6Z4R+OQ0F9mh5byV2ahPwm5ofzdHImraQb2T07
# alKgPAkeLx57szO0Rcf3rLGvk2Ctdq64shV464Nq6//bRqsk5e4C+pAfWcAvXda3
# XaRcELdyU/hBTsz6eBolSsr+hWJDYcO0N6qB0vTWOg+9jVl+MEfeK2vnIVAzX9Rn
# m9S4Z588J5kD/4VDjnMSyiDN6GHVsWbcF9Y5bQ/bzyM3oYKJThxrP9agzaoHnT5C
# JqrXDO76R78aUn7RdYHTyYpiF21PiKAhoCY+r23ZYjAf6Zgorm6N1Y5McmaTgI0q
# 41XHYGeQQlZcIlEPs9xOOe5N3dkdeBBUO27Ql28DtR6yI3PGErKaZND8lYUkqP/f
# obDckUCu3wkzq7ndkrfxzJF0O2nrZ5cbkL/nx6BvcbtXv7ePWu16QGoWzYCELS/h
# AtQklEOzFfwMKxv9cW/8y7x1Fzpeg9LJsy8b1ZyNf1T+fn7kVqOHp53hWVKUQY9t
# W76GlZr/GnbdQNJRSnC0HzNjI3c/7CceWeQIh+00gkoPP/6gHcH1Z3NFhnj0qinp
# J4fGGdvGExTDOUmHTaCX4GUT9Z13Vunas1jHOvLAzYIwggboMIIE0KADAgECAhB3
# vQ4Ft1kLth1HYVMeP3XtMA0GCSqGSIb3DQEBCwUAMFMxCzAJBgNVBAYTAkJFMRkw
# FwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSkwJwYDVQQDEyBHbG9iYWxTaWduIENv
# ZGUgU2lnbmluZyBSb290IFI0NTAeFw0yMDA3MjgwMDAwMDBaFw0zMDA3MjgwMDAw
# MDBaMFwxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTIw
# MAYDVQQDEylHbG9iYWxTaWduIEdDQyBSNDUgRVYgQ29kZVNpZ25pbmcgQ0EgMjAy
# MDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMsg75ceuQEyQ6BbqYoj
# /SBerjgSi8os1P9B2BpV1BlTt/2jF+d6OVzA984Ro/ml7QH6tbqT76+T3PjisxlM
# g7BKRFAEeIQQaqTWlpCOgfh8qy+1o1cz0lh7lA5tD6WRJiqzg09ysYp7ZJLQ8LRV
# X5YLEeWatSyyEc8lG31RK5gfSaNf+BOeNbgDAtqkEy+FSu/EL3AOwdTMMxLsvUCV
# 0xHK5s2zBZzIU+tS13hMUQGSgt4T8weOdLqEgJ/SpBUO6K/r94n233Hw0b6nskEz
# IHXMsdXtHQcZxOsmd/KrbReTSam35sOQnMa47MzJe5pexcUkk2NvfhCLYc+YVaMk
# oog28vmfvpMusgafJsAMAVYS4bKKnw4e3JiLLs/a4ok0ph8moKiueG3soYgVPMLq
# 7rfYrWGlr3A2onmO3A1zwPHkLKuU7FgGOTZI1jta6CLOdA6vLPEV2tG0leis1Ult
# 5a/dm2tjIF2OfjuyQ9hiOpTlzbSYszcZJBJyc6sEsAnchebUIgTvQCodLm3HadNu
# twFsDeCXpxbmJouI9wNEhl9iZ0y1pzeoVdwDNoxuz202JvEOj7A9ccDhMqeC5LYy
# AjIwfLWTyCH9PIjmaWP47nXJi8Kr77o6/elev7YR8b7wPcoyPm593g9+m5XEEofn
# GrhO7izB36Fl6CSDySrC/blTAgMBAAGjggGtMIIBqTAOBgNVHQ8BAf8EBAMCAYYw
# EwYDVR0lBAwwCgYIKwYBBQUHAwMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E
# FgQUJZ3Q/FkJhmPF7POxEztXHAOSNhEwHwYDVR0jBBgwFoAUHwC/RoAK/Hg5t6W0
# Q9lWULvOljswgZMGCCsGAQUFBwEBBIGGMIGDMDkGCCsGAQUFBzABhi1odHRwOi8v
# b2NzcC5nbG9iYWxzaWduLmNvbS9jb2Rlc2lnbmluZ3Jvb3RyNDUwRgYIKwYBBQUH
# MAKGOmh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2FjZXJ0L2NvZGVzaWdu
# aW5ncm9vdHI0NS5jcnQwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2NybC5nbG9i
# YWxzaWduLmNvbS9jb2Rlc2lnbmluZ3Jvb3RyNDUuY3JsMFUGA1UdIAROMEwwQQYJ
# KwYBBAGgMgECMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24u
# Y29tL3JlcG9zaXRvcnkvMAcGBWeBDAEDMA0GCSqGSIb3DQEBCwUAA4ICAQAldaAJ
# yTm6t6E5iS8Yn6vW6x1L6JR8DQdomxyd73G2F2prAk+zP4ZFh8xlm0zjWAYCImbV
# YQLFY4/UovG2XiULd5bpzXFAM4gp7O7zom28TbU+BkvJczPKCBQtPUzosLp1pnQt
# pFg6bBNJ+KUVChSWhbFqaDQlQq+WVvQQ+iR98StywRbha+vmqZjHPlr00Bid/XSX
# hndGKj0jfShziq7vKxuav2xTpxSePIdxwF6OyPvTKpIz6ldNXgdeysEYrIEtGiH6
# bs+XYXvfcXo6ymP31TBENzL+u0OF3Lr8psozGSt3bdvLBfB+X3Uuora/Nao2Y8nO
# ZNm9/Lws80lWAMgSK8YnuzevV+/Ezx4pxPTiLc4qYc9X7fUKQOL1GNYe6ZAvytOH
# X5OKSBoRHeU3hZ8uZmKaXoFOlaxVV0PcU4slfjxhD4oLuvU/pteO9wRWXiG7n9dq
# cYC/lt5yA9jYIivzJxZPOOhRQAyuku++PX33gMZMNleElaeEFUgwDlInCI2Oor0i
# xxnJpsoOqHo222q6YV8RJJWk4o5o7hmpSZle0LQ0vdb5QMcQlzFSOTUpEYck08T7
# qWPLd0jV+mL8JOAEek7Q5G7ezp44UCb0IXFl1wkl1MkHAHq4x/N36MXU4lXQ0x72
# f1LiSY25EXIMiEQmM2YBRN/kMw4h3mKJSAfa9TCCB6gwggWQoAMCAQICDGR1ZIPC
# lFEtPGEf6DANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQ
# R2xvYmFsU2lnbiBudi1zYTEyMDAGA1UEAxMpR2xvYmFsU2lnbiBHQ0MgUjQ1IEVW
# IENvZGVTaWduaW5nIENBIDIwMjAwHhcNMjUxMTIxMTMxMTU5WhcNMjcxMTIyMTMx
# MTU5WjCCAQwxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRIwEAYDVQQF
# EwlIUkIgMTIzODExEzARBgsrBgEEAYI3PAIBAxMCREUxFzAVBgsrBgEEAYI3PAIB
# AhMGSGVzc2VuMSIwIAYLKwYBBAGCNzwCAQETEU9mZmVuYmFjaCBhbSBNYWluMQsw
# CQYDVQQGEwJERTEPMA0GA1UECBMGSGVzc2VuMRowGAYDVQQHExFPZmZlbmJhY2gg
# YW0gTWFpbjEZMBcGA1UECQwQS2Fpc2Vyc3RyYcOfZSAzOTEXMBUGA1UEChMOZ2x1
# ZWNra2FuamEgQUcxFzAVBgNVBAMTDmdsdWVja2thbmphIEFHMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEAlC95OVX90abcXjWF+WRMimWtM0VmEtG/SvQ9
# 9LmxUdvLbvMLKg9BstQYNyMlOYMzsBon8JCl+UguHfuDRgWDMYKYFrPstsjWc4O+
# hNGE96QxtZBTKBZVQz1W/NBcuwCz/a3EWVrsA5lLmX5EXhZYWOlwNQHKKMorZovl
# 0lixJ+4v1d58G/dlWaj3MfJ8bfLuQTi2tYas5Rc/Yqr4G6yXCN7DGnVy7wHjdDoS
# GYgBOm0+v3aip6lghJLx4s/FJvnJjOhO2OIUCw6K7vRLGBFnu4HMCI+WWdarMT5S
# TRwGBiASZWymxQKKDqYgVbqWQwq/+wX117P2tTHxLA0Kk9uBYBgjPRm39fGz5v/L
# e2BVAx66gTQBxgD+L9z1XU/e9q+QhJKWYWd+OzstG9+k40gsgJjNAtpyZty/ng39
# E4uKPWlwJqTPWuQu9S6zAvhmfKDEBn6YR/dnsMXdRogX+2XaAxGmFtPAUvOvWUBP
# UAvwp+TKNyrTxVjBoTtSlfv4AzmL7U3kizzpUIPGFhtdrbNr+AY2zD6i+khGqErg
# FBvevH+WjTyqL9pAk/bs39aiZlWEhqYy0MkcA0SmKuLgeKb04Un3K0LjSUmpQbNp
# LifIdkKLbjqKduAkX2GHDbfgQfANRh+sVyOjX06aTiP6NhE7g6F+/CLpHrjKiSFV
# ByyfBg0CAwEAAaOCAbYwggGyMA4GA1UdDwEB/wQEAwIHgDCBnwYIKwYBBQUHAQEE
# gZIwgY8wTAYIKwYBBQUHMAKGQGh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20v
# Y2FjZXJ0L2dzZ2NjcjQ1ZXZjb2Rlc2lnbmNhMjAyMC5jcnQwPwYIKwYBBQUHMAGG
# M2h0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjQ1ZXZjb2Rlc2lnbmNh
# MjAyMDBVBgNVHSAETjBMMEEGCSsGAQQBoDIBAjA0MDIGCCsGAQUFBwIBFiZodHRw
# czovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAHBgVngQwBAzAJBgNV
# HRMEAjAAMEcGA1UdHwRAMD4wPKA6oDiGNmh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5j
# b20vZ3NnY2NyNDVldmNvZGVzaWduY2EyMDIwLmNybDATBgNVHSUEDDAKBggrBgEF
# BQcDAzAfBgNVHSMEGDAWgBQlndD8WQmGY8Xs87ETO1ccA5I2ETAdBgNVHQ4EFgQU
# N+aFEC9epkAz4QHuyRG1m0U10L4wDQYJKoZIhvcNAQELBQADggIBAB+HxrhV7H0N
# 4b5GfD+RsWVmAwc0FAiMZtvupCBnuermYMCTdYcX2xYgkcRwAzaLfpiH57f2xduF
# Ncng+tszwcVnZGbzH64faQHaIq9Oj7oBp82BV1ngKrtYmaNoXpGiyx2gbIGQxgUU
# RNbe4itE/dFcv25Nsv5yZFzSdJPV2skZa3JhORmfsoZxvaVZYseSPEIkabEMDT0h
# 2we8eJwrYRgCGSoxdFiRjPiXdp7rdbfTmY1EMkCovawc4XCFlt3WGWHkxMb9kjCA
# 9HWhWV0sXXZAHWA2Ty3VdskeVhYdwY5q6RTyD+FSH0FXtgCtKoaAuIJeAbhIxZbP
# k7rtWt7tVfN6MiEb339RdoIevJwaz20NQurAYO3aul04zU8yXgEhuZuk1tXqlnoP
# RgDso/PIqNhp5KqYmdkiykFPNKXCl/5VV13Ukpnw2i28qhfM90b7OqeZ92GnpG+L
# +pc/jQOu/m3i9z0Gg7uhyXTh6DHErv5Wy2riggbQrX8Lx/+c6/WUW18BUelJQ5hM
# k5PgS7PFmEKJ5IF4dNC8KN4eCnaPdtB/Andh8sDtS1SMrxSUqkoE6haq/xGKLsoe
# nlr8IvmhohxbAsn0UO4zgzIGeQQHAizVWuxyVt5cksomVM87ChXQoeXIpQ/90MIQ
# E7F4ymvX/qym0x1/7NCFC77dT+dWaNRjMYIbMTCCGy0CAQEwbDBcMQswCQYDVQQG
# EwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEyMDAGA1UEAxMpR2xvYmFs
# U2lnbiBHQ0MgUjQ1IEVWIENvZGVTaWduaW5nIENBIDIwMjACDGR1ZIPClFEtPGEf
# 6DANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkG
# CSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE
# AYI3AgEVMC8GCSqGSIb3DQEJBDEiBCB7vJrvMQSGiaLjZzaQkhVGO1skuWKXGVNQ
# Bs5T8O10DDANBgkqhkiG9w0BAQEFAASCAgBc7hlyCql4jjuF8yU/L1mMwglt88I2
# X5Yu/IjArUBvX9r/1r/MNu0iEQ9H8ofeoLghi+CW57WZsHBtpinZHkO4oPCGRVu2
# 8vlyIe55oZhdB46Vb70ZMGrpH3tutlFxQJlV+veN3X7h7Z8d7WV7WSG6kwiu0WXu
# bk0bHvaTVWMZKpwPkznu9Fq9wPXkJ/4Q+A1K9qzrqtahOrJaFahSBp5kCEe9TBEu
# vEvoO03yogL/zx7nuabKd78PT9wDQtz6UyVgRcye3IlD7TFQlZNWpiGndvJQrqi+
# X4HYmPEhc0sdA7DNx3NGVpCoxc7Ba5Rly25dd0xf1rXYie93ISoMb5nRTXuL9KDb
# ywr7g2ebijAps9BchAOQvTPvZ+p8dNewuYbmKvvoyrH1ExUS94nTHkiO7NkUUL2s
# qfWUTK1akb+utsgxGbtP9dZ8G9oxM6h2gjFvne6KS5UQjvBNuMN1uJBjCzaeUZSH
# V/0qH9oXA7fJKw+iLjZiB2Dm19foOBevB8GVwNNBUEjjDNTU/TvST4OKgQvJ3nJa
# 5ly4wnWIChS2B3IH0tpXElkrZkh9urRUDKLmuy7yWwr3Di+gm2aot5RqqdhIg53G
# ACWoklsbY+51+iuRSlaXEaTizni3R3AlgiKo0E7ILoAwV4Em/dLoC9IHuKLrf/RO
# 9tI83QrpSxb6IKGCGA8wghgLBgorBgEEAYI3AwMBMYIX+zCCF/cGCSqGSIb3DQEH
# AqCCF+gwghfkAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFgBgsqhkiG9w0BCRABBKCC
# AU8EggFLMIIBRwIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCAbJTl9
# gfL6BFRA3Dn/vFU/k68nNLuGhjpnobLAFTmQIQIGaR9QLJMDGBEyMDI1MTIwMTE5
# MjcyOS40WjAEgAIB9KCB4aSB3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9u
# czEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOjdBMDAtMDVFMC1EOTQ3MTUwMwYD
# VQQDEyxNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhvcml0
# eaCCDyEwggeCMIIFaqADAgECAhMzAAAABeXPD/9mLsmHAAAAAAAFMA0GCSqGSIb3
# DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24g
# Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAyMDAeFw0yMDExMTkyMDMyMzFa
# Fw0zNTExMTkyMDQyMzFaMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRp
# bWVzdGFtcGluZyBDQSAyMDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
# AgEAnnznUmP94MWfBX1jtQYioxwe1+eXM9ETBb1lRkd3kcFdcG9/sqtDlwxKoVIc
# aqDb+omFio5DHC4RBcbyQHjXCwMk/l3TOYtgoBjxnG/eViS4sOx8y4gSq8Zg49RE
# Af5huXhIkQRKe3Qxs8Sgp02KHAznEa/Ssah8nWo5hJM1xznkRsFPu6rfDHeZeG1W
# a1wISvlkpOQooTULFm809Z0ZYlQ8Lp7i5F9YciFlyAKwn6yjN/kR4fkquUWfGmMo
# pNq/B8U/pdoZkZZQbxNlqJOiBGgCWpx69uKqKhTPVi3gVErnc/qi+dR8A2MiAz0k
# N0nh7SqINGbmw5OIRC0EsZ31WF3Uxp3GgZwetEKxLms73KG/Z+MkeuaVDQQheang
# OEMGJ4pQZH55ngI0Tdy1bi69INBV5Kn2HVJo9XxRYR/JPGAaM6xGl57Ei95HUw9N
# V/uC3yFjrhc087qLJQawSC3xzY/EXzsT4I7sDbxOmM2rl4uKK6eEpurRduOQ2hTk
# mG1hSuWYBunFGNv21Kt4N20AKmbeuSnGnsBCd2cjRKG79+TX+sTehawOoxfeOO/j
# R7wo3liwkGdzPJYHgnJ54UxbckF914AqHOiEV7xTnD1a69w/UTxwjEugpIPMIIE6
# 7SFZ2PMo27xjlLAHWW3l1CEAFjLNHd3EQ79PUr8FUXetXr0CAwEAAaOCAhswggIX
# MA4GA1UdDwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUa2ko
# OjUvSGNAz3vYr0npPtk92yEwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUH
# AgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0
# b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMA
# dQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFMh+0mqFKhvKGZgE
# ByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNodHRwOi8vd3d3Lm1pY3Jvc29m
# dC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNh
# dGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3Js
# MIGUBggrBgEFBQcBAQSBhzCBhDCBgQYIKwYBBQUHMAKGdWh0dHA6Ly93d3cubWlj
# cm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBW
# ZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAy
# MDIwLmNydDANBgkqhkiG9w0BAQwFAAOCAgEAX4h2x35ttVoVdedMeGj6TuHYRJkl
# FaW4sTQ5r+k77iB79cSLNe+GzRjv4pVjJviceW6AF6ycWoEYR0LYhaa0ozJLU5Yi
# +LCmcrdovkl53DNt4EXs87KDogYb9eGEndSpZ5ZM74LNvVzY0/nPISHz0Xva71Qj
# D4h+8z2XMOZzY7YQ0Psw+etyNZ1CesufU211rLslLKsO8F2aBs2cIo1k+aHOhrw9
# xw6JCWONNboZ497mwYW5EfN0W3zL5s3ad4Xtm7yFM7Ujrhc0aqy3xL7D5FR2J7x9
# cLWMq7eb0oYioXhqV2tgFqbKHeDick+P8tHYIFovIP7YG4ZkJWag1H91KlELGWi3
# SLv10o4KGag42pswjybTi4toQcC/irAodDW8HNtX+cbz0sMptFJK+KObAnDFHEsu
# kxD+7jFfEV9Hh/+CSxKRsmnuiovCWIOb+H7DRon9TlxydiFhvu88o0w35JkNbJxT
# k4MhF/KgaXn0GxdH8elEa2Imq45gaa8D+mTm8LWVydt4ytxYP/bqjN49D9NZ81co
# E6aQWm88TwIf4R4YZbOpMKN0CyejaPNN41LGXHeCUMYmBx3PkP8ADHD1J2Cr/6tj
# uOOCztfp+o9Nc+ZoIAkpUcA/X2gSMkgHAPUvIdtoSAHEUKiBhI6JQivRepyvWcl+
# JYbYbBh7pmgAXVswggeXMIIFf6ADAgECAhMzAAAAWGXN6z+h1/zSAAAAAABYMA0G
# CSqGSIb3DQEBDAUAMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQg
# Q29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVz
# dGFtcGluZyBDQSAyMDIwMB4XDTI1MTAyMzIwNDY1NVoXDTI2MTAyMjIwNDY1NVow
# gdsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT
# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQg
# VFNTIEVTTjo3QTAwLTA1RTAtRDk0NzE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1Ymxp
# YyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
# A4ICDwAwggIKAoICAQCdeDSkdpDs9UCWWf4dlmskVwugpt6SFbXIv5A0FSAUVSyN
# kgpqqo3iggmwkzemzSsk1I7ud0I1G5kNfZaC6vcCTvt5euWgFepmY7plVd4M1EIu
# V1bgDT81+PMntdeR0SGOvzWCFcSlHvML7Bto036w9LHMsBkF6JsMU/tfCznBfRm0
# iw3Vrb5erlu9aneREzK3CyROO6dGB4tkv+0GnbfslV1E8UBD2NhEqkKpQGj+/XGM
# EtEJXc9qUqOcZ9vcw3hTuNXKqJ8UdKFydbkIRFGgGZRrqzKAPMVKvx7eD3dM80sV
# SK9QTQaYt9tflx4PUa3UVxnrH8ktUBPOTn4FYdszHAkhWRU9OpJIyNDopMp1yere
# kfRzgAUmn+CW9ymrRT1/NkiMkYa92mKyGVGXvtFC1SFKPEe8KfcsL/GpBDA4dJAO
# waHo1fYPRF+xLIS1MAHIBp77bDUcHJMNNyaVM0sS5At4KPWA0F0haPRY5jIO2OND
# /yJNZjp7LW9v2oeWMiPkeAid1Pk/0xiTZWDZ7uEpRk0E1sD+GyAGy6hn4hfz1a+M
# Q31psX3VLg4lW6KeYqws78wtueXuKS4PR03qgDRh7DINCdyzXawz0c627vZAD9Nm
# V5+9byv3G0xcBihCVwaOyTxbhRztx+pWpsg+N2hzxnEHMtxdxXI/inlzIvC+QwID
# AQABo4IByzCCAccwHQYDVR0OBBYEFHKNTcV6vhXFcn6GM9xEmfGdEgmwMB8GA1Ud
# IwQYMBaAFGtpKDo1L0hjQM972K9J6T7ZPdshMGwGA1UdHwRlMGMwYaBfoF2GW2h0
# dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFB1
# YmxpYyUyMFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIwMjAyMC5jcmwweQYIKwYB
# BQUHAQEEbTBrMGkGCCsGAQUFBzAChl1odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVzdGFt
# cGluZyUyMENBJTIwMjAyMC5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAK
# BggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwZgYDVR0gBF8wXTBRBgwrBgEEAYI3
# TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMAgGBmeBDAEEAjANBgkqhkiG9w0BAQwF
# AAOCAgEAe+vEiJUXWIdxe/GslMIPx461s9Rsr3H4vPvSJh6GH4bRSg4xwx/ThAPq
# 1A9N5nkeEYRORyfStoMnk2l9tEG4oQffWvFtkr3ujXYpEM0nc27h49pQikf9NxbP
# w8tU4IQLLBLFsSAQbbSTLJ0Zzjpzn3W1fOl+QkNySOhivKlp6t15AtFAf0tqhNhl
# 90DMyj4PLQ7UPMUmQXlieyYAzyW32vU21d0WN1sUwJtXl1q7riZXbazXzoDxSaL6
# Xbf35R7RxslAjKRaEiWGFaHFCCiSyofPuSnYYVkAB7JJOYg5A5bJc4DwkDxMhInK
# fckM6BK2/nzc/dXRBIAtPolcMJbboVXbTxUYkzOS/RLbaI5Nkn+hqZOmTxHMPyhZ
# Pyl9t7Wr+T9vE+JdhFvOmz3prlg6SjufRV2jrUM4mEv+aGTTVjfjyCrq+Eb9VNx0
# YeHWsKTA4zTkHfkBlmr0C0+l9HMmKesfPMZHH6vp8Pdxxgw8wxf83B3aKvOumHXv
# Z9BxJ/V8zC/AiGZ8fgZYkn6Z/UcDq5egA5UHJySC5e+WPyA+LtPYRLpFTz5Cyx+p
# M1MkqOwGF5Ypa/ZbgRJV6fYvuULPuLv0WED7SSnTJcmdjB3NZLSi9Mg1Qsg2bNXI
# xxJSbla5V/xhnfdwC53Y6mvo3X5G4tkNq8O+OJ6GUjl0f4YTLnoxggdDMIIHPwIB
# ATB4MGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBD
# QSAyMDIwAhMzAAAAWGXN6z+h1/zSAAAAAABYMA0GCWCGSAFlAwQCAQUAoIIEnDAR
# BgsqhkiG9w0BCRACDzECBQAwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwG
# CSqGSIb3DQEJBTEPFw0yNTEyMDExOTI3MjlaMC8GCSqGSIb3DQEJBDEiBCBnBFBv
# n5hiHe82UJDnrYfwW9uax+c+Ouys4LpereLb3TCBuQYLKoZIhvcNAQkQAi8xgakw
# gaYwgaMwgaAEIMUiVLuyB9D7ACjVxZtbP5Y3r1UF2znyFutqf3X1ouhxMHwwZaRj
# MGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# MjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAy
# MDIwAhMzAAAAWGXN6z+h1/zSAAAAAABYMIIDXgYLKoZIhvcNAQkQAhIxggNNMIID
# SaGCA0UwggNBMIICKQIBATCCAQmhgeGkgd4wgdsxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9w
# ZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo3QTAwLTA1RTAtRDk0
# NzE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBB
# dXRob3JpdHmiIwoBATAHBgUrDgMCGgMVAJ1keRvbp6twXY7ra8J1lR9RK8RcoGcw
# ZaRjMGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBD
# QSAyMDIwMA0GCSqGSIb3DQEBCwUAAgUA7NhO7zAiGA8yMDI1MTIwMTE3MjkxOVoY
# DzIwMjUxMjAyMTcyOTE5WjB0MDoGCisGAQQBhFkKBAExLDAqMAoCBQDs2E7vAgEA
# MAcCAQACAhxHMAcCAQACAhP+MAoCBQDs2aBvAgEAMDYGCisGAQQBhFkKBAIxKDAm
# MAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcN
# AQELBQADggEBAJ+Wf4v0hvXUvqUlJCbm0H3q3FtkY6+GDAZ2o2elQJAnaNrt483Q
# Ie2dPoT7XpYq2PLqrp/6qy0VEgI8LLU29NwHhIedwFsJ/NQyJeGi0wn1bmIx2ocp
# fKoJQS/+2HEUq/U/oSZAsypI7tPyRpkuWAVvQDv/m7sCX0sDZK9XjDpPgtrM6+w+
# 1yP1NDDUPhnldYEavfA9L+UdNJH2fdFTO0C0UH1hsyRooYfdLrBNdqAY7Kw9e4hQ
# dSWuZ/2rBTMbWizA/0seRdYZJP1TffbPAiDBn9pJrxhHa4jU/x+buFjOrQWwgEIb
# IMv5iO2xZnTZfR+UhzUvmMfo5G5IG111OHowDQYJKoZIhvcNAQEBBQAEggIAEmd3
# jQXj4ABNt4gLImo9TLib5nTBgzgROxhUnArweQwlIw2qtAHIeV/kAaCRj7p+gVsm
# Z+7YANoIBMdgXLlXvApHoPN8iXQsm8owygKxbfhf6tU8NZ2LK0ykU7yyBYAApDlx
# 1OsDM2ySqnUBdk8ryX7gM+mwMqHpE6zC7E6gtlsuix7WsrNQvnePoPHIOtsw/1rN
# 27nt9Sqg/Qh0rPUDmhdeMsaNXUzd6cnY/+QpnUfsmknkTdLb3Q/coAGRPbFThF7O
# pd/az5aSmmLf6TIpHD6q8nu2mGPhbGDpi4SvGBouF8xSIpWcUx735drHI/k8cd44
# R+pAtCdAT6ZRN8Z+lkHhDwoclbSgEsr/C8Ub7CgmqY4O2vvcPyyhWG3ZDrhg1zya
# vXYhqnikSlFrG33IwmUGkdEkln6RbzL0HCPCUhc/jHchYEwOpo2UbdmRIJYVtzUb
# VHigE6uv8XF1VUORkS2onvz9PTkxAgsfsZWwbd7xUHj18m0uu/VQSlt9iWPi6Rhu
# y+/C6sz/wQJu0IqF4tYlC7ZPCJrPuNgdIwgs97wVzeHn2ojoe4/qkSgtNa+HwscS
# gU2WrnV8mOvdc2irR4hZZlfIuAxDWO9LjtKRzG+QgmXBEO6+GvZrnR6pMFORnZys
# Zy/wkZWeoHwfI/ytaeiQsGNTq8WsvAaMTpkDfzE=
# SIG # End signature block