Modules/bConnectV2.Defensecontrol/Api/BCDefensecontrolMicrosoftDefenderApi.ps1

#
# bConnect Defense Control API
# <p>With DefenseControl, relevant security configurations as well as endpoint threats detected by MicrosoftDefender can be viewed. In addition, orchestration of the Microsoft BitLocker tool enables reliable protection of endpoint hard disks (see <a href=""https://docs.baramundi.com/helpsetid=m_defense-control&amp;externalid=k_defense-control"">documentation</a>).<br> <br>The APIs provided here allow reading BitLocker related information, MicrosoftDefender status and detected threats on Windows endpoints.</p>
# Version: 2.0


<#
.SYNOPSIS
 
Retrieves information concerning Microsoft Defender state on windows endpoints
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are EndpointId or EndpointName (e.g. EndpointName asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are EndpointName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.OUTPUTS
 
MicrosoftDefenderWindowsEndpointPagedList
#>



function Get-bCDefensecontrolMicrosoftDefenderStates {
    [CmdletBinding(DefaultParameterSetName='SinglePages')]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ParameterSetName='SinglePages', Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderStates' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/WindowsEndpoints'

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 1
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "MicrosoftDefenderWindowsEndpointPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 1) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -le $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "MicrosoftDefenderWindowsEndpointPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Retrieves information concerning Microsoft Defender state for a single windows endpoint
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.OUTPUTS
 
MicrosoftDefenderWindowsEndpoint
#>



function Get-bCDefensecontrolMicrosoftDefenderStatesByWindowsEndpointId {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderStatesByWindowsEndpointId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/WindowsEndpoints/{id}'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling getMicrosoftDefenderStatesByWindowsEndpointId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "MicrosoftDefenderWindowsEndpoint" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Get a threat by id
 
.DESCRIPTION
 
No description available.
 
.PARAMETER Id
No description available.
 
.OUTPUTS
 
Threat
#>



function Get-bCDefensecontrolMicrosoftDefenderThreat {
    [CmdletBinding()]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${Id}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderThreat' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/Threats/{id}'
        if (!$Id) {
            throw "Error! The required parameter `Id` missing when calling getMicrosoftDefenderThreat."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $Id
        $LocalVarUri = $LocalVarUri.replace('{id}', $encodedValue)

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        # single request
        $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "Threat" `
                                -IsBodyNullable $false

        return $ApiResult["Response"]
    }
}

<#
.SYNOPSIS
 
Get all threats found by Microsoft Defender
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are Name, Severity or EndpointName (e.g. Name asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are Name, DomainUser, ProcessName, FileNames or EndpointName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.OUTPUTS
 
ThreatPagedList
#>



function Get-bCDefensecontrolMicrosoftDefenderThreats {
    [CmdletBinding(DefaultParameterSetName='SinglePages')]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ParameterSetName='SinglePages', Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderThreats' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/Threats'

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 1
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 1) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -le $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Get all threats found by Microsoft Defender for a specific logical group
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER LogicalGroupId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are Name, Severity or EndpointName (e.g. Name asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are Name, DomainUser, ProcessName, FileNames or EndpointName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.PARAMETER IncludeSubfolders
No description available.
 
.OUTPUTS
 
ThreatPagedList
#>



function Get-bCDefensecontrolMicrosoftDefenderThreatsByLogicalGroupId {
    [CmdletBinding(DefaultParameterSetName='SinglePages')]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${LogicalGroupId},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ParameterSetName='SinglePages', Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize},
        [Parameter(Position = 5, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Boolean]]
        ${IncludeSubfolders}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderThreatsByLogicalGroupId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/LogicalGroups/{logicalGroupId}/Threats'
        if (!$LogicalGroupId) {
            throw "Error! The required parameter `LogicalGroupId` missing when calling getMicrosoftDefenderThreatsByLogicalGroupId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $LogicalGroupId
        $LocalVarUri = $LocalVarUri.replace('{logicalGroupId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        if ($IncludeSubfolders) {
            $LocalVarQueryParameters['includeSubfolders'] = $IncludeSubfolders
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 1
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 1) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -le $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}

<#
.SYNOPSIS
 
Get all threats found by Microsoft Defender for a specific windows endpoint
 
.DESCRIPTION
 
No description available.
 
.PARAMETER GetAllPages
Get all the possible pages for this request and return them.
 
.PARAMETER EndpointId
No description available.
 
.PARAMETER OrderBy
Sorts results by property name and with sort direction. Multiple properties are separated by comma.<br />Possible values are Name, Severity or EndpointName (e.g. Name asc).
 
.PARAMETER SearchQuery
Filters results by matching the given value against searchable properties.<br />Searchable values are Name, DomainUser, ProcessName, FileNames or EndpointName.
 
.PARAMETER Page
The zero-indexed number of the first page that begins the set of pages that are returned in the response.
 
.PARAMETER PageSize
The number of items to list on a single page. For example, if page_size is 10, each page shows ten items. <br />A valid value is a non-negative, non-zero integer. The default value is 20. Maximum value is 1000.
 
.OUTPUTS
 
ThreatPagedList
#>



function Get-bCDefensecontrolMicrosoftDefenderThreatsByWindowsEndpointId {
    [CmdletBinding(DefaultParameterSetName='SinglePages')]
    Param (
        [Parameter(ParameterSetName='GetAllPages')]
        [Switch]
        $GetAllPages,
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${EndpointId},
        [Parameter(Position = 1, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${OrderBy},
        [Parameter(Position = 2, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [String]
        ${SearchQuery},
        [Parameter(ParameterSetName='SinglePages', Position = 3, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${Page},
        [Parameter(Position = 4, ValueFromPipelineByPropertyName = $true, Mandatory = $false)]
        [System.Nullable[Int32]]
        ${PageSize}
    )

    Process {
        'Calling method: Get-bCDefensecontrolMicrosoftDefenderThreatsByWindowsEndpointId' | Write-Debug
        $PSBoundParameters | Out-DebugParameter | Write-Debug

        $LocalVarAccepts = @()
        $LocalVarContentTypes = @()
        $LocalVarQueryParameters = @{}
        $LocalVarHeaderParameters = @{}
        $LocalVarBodyParameter = $null

        # HTTP header 'Accept' (if needed)
        $LocalVarAccepts = @('application/json')

        $LocalVarUri = '/v2.0/MicrosoftDefender/WindowsEndpoints/{endpointId}/Threats'
        if (!$EndpointId) {
            throw "Error! The required parameter `EndpointId` missing when calling getMicrosoftDefenderThreatsByWindowsEndpointId."
        }
        $encodedValue = Convert-ToUrlEncoded -Value $EndpointId
        $LocalVarUri = $LocalVarUri.replace('{endpointId}', $encodedValue)

        if ($OrderBy) {
            $LocalVarQueryParameters['OrderBy'] = $OrderBy
        }

        if ($SearchQuery) {
            $LocalVarQueryParameters['SearchQuery'] = $SearchQuery
        }

        if ($Page) {
            $LocalVarQueryParameters['Page'] = $Page
        }

        if ($PageSize) {
            $LocalVarQueryParameters['PageSize'] = $PageSize
        }

        $LocalVarHeaderParameters = Add-SecurityHeader -LocalVarHeaderParameters $LocalVarHeaderParameters

        if ($GetAllPages) {
            $currentPageCount = 1
            # will be set in the loop to actual value
            $totalPages = 1

            # Sets the page size to 1000 by default when the user doesn't set it
            if (!$PageSize) {
                $LocalVarQueryParameters['PageSize'] = 1000
            }

            # this loop will iterate through all the possible pages and return them
            do {
                # set the page for te request
                $LocalVarQueryParameters["Page"] = $currentPageCount
                $currentPage = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false

                # sets the totalPages to its actual value
                if ($currentPageCount -eq 1) {
                    $totalPages = $currentPage["Response"].totalPages
                }
                # the object for the current page
                $currentPage["Response"]
                $currentPageCount++
            } while ($currentPageCount -le $totalPages)
        } else {
            # single request
            $ApiResult = Invoke-bCDefensecontrolApiClient -Method 'GET' `
                                -Uri $LocalVarUri `
                                -Accepts $LocalVarAccepts `
                                -ContentTypes $LocalVarContentTypes `
                                -Body $LocalVarBodyParameter `
                                -HeaderParameters $LocalVarHeaderParameters `
                                -QueryParameters $LocalVarQueryParameters `
                                -ReturnType "ThreatPagedList" `
                                -IsBodyNullable $false
            return $ApiResult["Response"]
        }
    }
}


# SIG # Begin signature block
# MIIoYgYJKoZIhvcNAQcCoIIoUzCCKE8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDdBFdKSnbeM+ib
# 6mpspv0KahL7kNNTUpGNz9khYlvca6CCIV8wggWNMIIEdaADAgECAhAOmxiO+dAt
# 5+/bUOIIQBhaMA0GCSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBa
# Fw0zMTExMDkyMzU5NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
# ZXJ0IFRydXN0ZWQgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
# ggIBAL/mkHNo3rvkXUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3E
# MB/zG6Q4FutWxpdtHauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKy
# unWZanMylNEQRBAu34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsF
# xl7sWxq868nPzaw0QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU1
# 5zHL2pNe3I6PgNq2kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJB
# MtfbBHMqbpEBfCFM1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObUR
# WBf3JFxGj2T3wWmIdph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6
# nj3cAORFJYm2mkQZK37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxB
# YKqxYxhElRp2Yn72gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5S
# UUd0viastkF13nqsX40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+x
# q4aLT8LWRV+dIPyhHsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIB
# NjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwP
# TzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMC
# AYYweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
# Y2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0
# aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENB
# LmNybDARBgNVHSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0Nc
# Vec4X6CjdBs9thbX979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnov
# Lbc47/T/gLn4offyct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65Zy
# oUi0mcudT6cGAxN3J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFW
# juyk1T3osdz9HNj0d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPF
# mCLBsln1VWvPJ6tsds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9z
# twGpn1eqXijiuZQwggawMIIEmKADAgECAhAIrUCyYNKcTJ9ezam9k67ZMA0GCSqG
# SIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
# GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRy
# dXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0zNjA0MjgyMzU5NTlaMGkx
# CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4
# RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcgUlNBNDA5NiBTSEEzODQg
# MjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVtC9C0Cit
# eLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0JAfhS0/TeEP0F9ce2vnS
# 1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJrQ5qZ8sU7H/Lvy0daE6ZM
# swEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhFLqGfLOEYwhrMxe6TSXBC
# Mo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+FLEikVoQ11vkunKoAFdE3
# /hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh3K3kGKDYwSNHR7OhD26j
# q22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJwZPt4bRc4G/rJvmM1bL5
# OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQayg9Rc9hUZTO1i4F4z8ujo
# 7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbIYViY9XwCFjyDKK05huzU
# tw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchApQfDVxW0mdmgRQRNYmtwm
# KwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRroOBl8ZhzNeDhFMJlP/2NP
# TLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IBWTCCAVUwEgYDVR0TAQH/
# BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHwYDVR0j
# BBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0
# cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0
# cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8E
# PDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVz
# dGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAEDMAgGBmeBDAEEATANBgkq
# hkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql+Eg08yy25nRm95RysQDK
# r2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFFUP2cvbaF4HZ+N3HLIvda
# qpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1hmYFW9snjdufE5BtfQ/g+
# lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3RywYFzzDaju4ImhvTnhOE7a
# brs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5UbdldAhQfQDN8A+KVssIhdXNS
# y0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw8MzK7/0pNVwfiThV9zeK
# iwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnPLqR0kq3bPKSchh/jwVYb
# KyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatEQOON8BUozu3xGFYHKi8Q
# xAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bnKD+sEq6lLyJsQfmCXBVm
# zGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQjiWQ1tygVQK+pKHJ6l/aCn
# HwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbqyK+p/pQd52MbOoZWeE4w
# gga0MIIEnKADAgECAhANx6xXBf8hmS5AQyIMOkmGMA0GCSqGSIb3DQEBCwUAMGIx
# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
# dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH
# NDAeFw0yNTA1MDcwMDAwMDBaFw0zODAxMTQyMzU5NTlaMGkxCzAJBgNVBAYTAlVT
# MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1
# c3RlZCBHNCBUaW1lU3RhbXBpbmcgUlNBNDA5NiBTSEEyNTYgMjAyNSBDQTEwggIi
# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0eDHTCphBcr48RsAcrHXbo0Zo
# dLRRF51NrY0NlLWZloMsVO1DahGPNRcybEKq+RuwOnPhof6pvF4uGjwjqNjfEvUi
# 6wuim5bap+0lgloM2zX4kftn5B1IpYzTqpyFQ/4Bt0mAxAHeHYNnQxqXmRinvuNg
# xVBdJkf77S2uPoCj7GH8BLuxBG5AvftBdsOECS1UkxBvMgEdgkFiDNYiOTx4OtiF
# cMSkqTtF2hfQz3zQSku2Ws3IfDReb6e3mmdglTcaarps0wjUjsZvkgFkriK9tUKJ
# m/s80FiocSk1VYLZlDwFt+cVFBURJg6zMUjZa/zbCclF83bRVFLeGkuAhHiGPMvS
# GmhgaTzVyhYn4p0+8y9oHRaQT/aofEnS5xLrfxnGpTXiUOeSLsJygoLPp66bkDX1
# ZlAeSpQl92QOMeRxykvq6gbylsXQskBBBnGy3tW/AMOMCZIVNSaz7BX8VtYGqLt9
# MmeOreGPRdtBx3yGOP+rx3rKWDEJlIqLXvJWnY0v5ydPpOjL6s36czwzsucuoKs7
# Yk/ehb//Wx+5kMqIMRvUBDx6z1ev+7psNOdgJMoiwOrUG2ZdSoQbU2rMkpLiQ6bG
# RinZbI4OLu9BMIFm1UUl9VnePs6BaaeEWvjJSjNm2qA+sdFUeEY0qVjPKOWug/G6
# X5uAiynM7Bu2ayBjUwIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAd
# BgNVHQ4EFgQU729TSunkBnx6yuKQVvYv1Ensy04wHwYDVR0jBBgwFoAU7NfjgtJx
# XWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUF
# BwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGln
# aWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5j
# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJo
# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy
# bDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQEL
# BQADggIBABfO+xaAHP4HPRF2cTC9vgvItTSmf83Qh8WIGjB/T8ObXAZz8OjuhUxj
# aaFdleMM0lBryPTQM2qEJPe36zwbSI/mS83afsl3YTj+IQhQE7jU/kXjjytJgnn0
# hvrV6hqWGd3rLAUt6vJy9lMDPjTLxLgXf9r5nWMQwr8Myb9rEVKChHyfpzee5kH0
# F8HABBgr0UdqirZ7bowe9Vj2AIMD8liyrukZ2iA/wdG2th9y1IsA0QF8dTXqvcnT
# mpfeQh35k5zOCPmSNq1UH410ANVko43+Cdmu4y81hjajV/gxdEkMx1NKU4uHQcKf
# ZxAvBAKqMVuqte69M9J6A47OvgRaPs+2ykgcGV00TYr2Lr3ty9qIijanrUR3anzE
# wlvzZiiyfTPjLbnFRsjsYg39OlV8cipDoq7+qNNjqFzeGxcytL5TTLL4ZaoBdqbh
# OhZ3ZRDUphPvSRmMThi0vw9vODRzW6AxnJll38F0cuJG7uEBYTptMSbhdhGQDpOX
# gpIUsWTjd6xpR6oaQf/DJbg3s6KCLPAlZ66RzIg9sC+NJpud/v4+7RWsWCiKi9EO
# LLHfMR2ZyJ/+xhCx9yHbxtl5TPau1j/1MIDpMPx0LckTetiSuEtQvLsNz3Qbp7wG
# WqbIiOWCnb5WqxL3/BAPvIXKUjPSxyZsq8WhbaM2tszWkPZPubdcMIIG7TCCBNWg
# AwIBAgIQCoDvGEuN8QWC0cR2p5V0aDANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQG
# EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0
# IFRydXN0ZWQgRzQgVGltZVN0YW1waW5nIFJTQTQwOTYgU0hBMjU2IDIwMjUgQ0Ex
# MB4XDTI1MDYwNDAwMDAwMFoXDTM2MDkwMzIzNTk1OVowYzELMAkGA1UEBhMCVVMx
# FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBTSEEy
# NTYgUlNBNDA5NiBUaW1lc3RhbXAgUmVzcG9uZGVyIDIwMjUgMTCCAiIwDQYJKoZI
# hvcNAQEBBQADggIPADCCAgoCggIBANBGrC0Sxp7Q6q5gVrMrV7pvUf+GcAoB38o3
# zBlCMGMyqJnfFNZx+wvA69HFTBdwbHwBSOeLpvPnZ8ZN+vo8dE2/pPvOx/Vj8Tch
# TySA2R4QKpVD7dvNZh6wW2R6kSu9RJt/4QhguSssp3qome7MrxVyfQO9sMx6ZAWj
# FDYOzDi8SOhPUWlLnh00Cll8pjrUcCV3K3E0zz09ldQ//nBZZREr4h/GI6Dxb2Uo
# yrN0ijtUDVHRXdmncOOMA3CoB/iUSROUINDT98oksouTMYFOnHoRh6+86Ltc5zjP
# KHW5KqCvpSduSwhwUmotuQhcg9tw2YD3w6ySSSu+3qU8DD+nigNJFmt6LAHvH3KS
# uNLoZLc1Hf2JNMVL4Q1OpbybpMe46YceNA0LfNsnqcnpJeItK/DhKbPxTTuGoX7w
# JNdoRORVbPR1VVnDuSeHVZlc4seAO+6d2sC26/PQPdP51ho1zBp+xUIZkpSFA8vW
# doUoHLWnqWU3dCCyFG1roSrgHjSHlq8xymLnjCbSLZ49kPmk8iyyizNDIXj//cOg
# rY7rlRyTlaCCfw7aSUROwnu7zER6EaJ+AliL7ojTdS5PWPsWeupWs7NpChUk555K
# 096V1hE0yZIXe+giAwW00aHzrDchIc2bQhpp0IoKRR7YufAkprxMiXAJQ1XCmnCf
# gPf8+3mnAgMBAAGjggGVMIIBkTAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTkO/zy
# Me39/dfzkXFjGVBDz2GM6DAfBgNVHSMEGDAWgBTvb1NK6eQGfHrK4pBW9i/USezL
# TjAOBgNVHQ8BAf8EBAMCB4AwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwgZUGCCsG
# AQUFBwEBBIGIMIGFMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j
# b20wXQYIKwYBBQUHMAKGUWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdp
# Q2VydFRydXN0ZWRHNFRpbWVTdGFtcGluZ1JTQTQwOTZTSEEyNTYyMDI1Q0ExLmNy
# dDBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln
# aUNlcnRUcnVzdGVkRzRUaW1lU3RhbXBpbmdSU0E0MDk2U0hBMjU2MjAyNUNBMS5j
# cmwwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEB
# CwUAA4ICAQBlKq3xHCcEua5gQezRCESeY0ByIfjk9iJP2zWLpQq1b4URGnwWBdEZ
# D9gBq9fNaNmFj6Eh8/YmRDfxT7C0k8FUFqNh+tshgb4O6Lgjg8K8elC4+oWCqnU/
# ML9lFfim8/9yJmZSe2F8AQ/UdKFOtj7YMTmqPO9mzskgiC3QYIUP2S3HQvHG1FDu
# +WUqW4daIqToXFE/JQ/EABgfZXLWU0ziTN6R3ygQBHMUBaB5bdrPbF6MRYs03h4o
# bEMnxYOX8VBRKe1uNnzQVTeLni2nHkX/QqvXnNb+YkDFkxUGtMTaiLR9wjxUxu2h
# ECZpqyU1d0IbX6Wq8/gVutDojBIFeRlqAcuEVT0cKsb+zJNEsuEB7O7/cuvTQasn
# M9AWcIQfVjnzrvwiCZ85EE8LUkqRhoS3Y50OHgaY7T/lwd6UArb+BOVAkg2oOvol
# /DJgddJ35XTxfUlQ+8Hggt8l2Yv7roancJIFcbojBcxlRcGG0LIhp6GvReQGgMgY
# xQbV1S3CrWqZzBt1R9xJgKf47CdxVRd/ndUlQ05oxYy2zRWVFjF7mcr4C34Mj3oc
# CVccAvlKV9jEnstrniLvUxxVZE/rptb7IRE2lskKPIJgbaP5t2nGj/ULLi49xTcB
# ZU8atufk+EMF/cWuiC7POGT75qaL6vdCvHlshtjdNXOCIUjsarfNZzCCB20wggVV
# oAMCAQICEAeWORKotX7L33/aMY+MKvMwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UE
# BhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2Vy
# dCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENB
# MTAeFw0yNDEyMDMwMDAwMDBaFw0yODAxMDcyMzU5NTlaMHUxCzAJBgNVBAYTAkRF
# MQ8wDQYDVQQIEwZCYXllcm4xETAPBgNVBAcTCEF1Z3NidXJnMSAwHgYDVQQKExdi
# YXJhbXVuZGkgc29mdHdhcmUgR21iSDEgMB4GA1UEAxMXYmFyYW11bmRpIHNvZnR3
# YXJlIEdtYkgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+S6cECzQO
# u8A60a+OXaQRRhXyPzkiZCDqO+mh7CBJg5vF3CLA6JMhWwSAUsCfmKqL2Eu2biUK
# CgVnhRgZboZvIUTF4VuOfOOwUGduJ6Z7Y1Fcq7m0hbaRZy0a7YI6Bj/BcOqFQHOT
# +XfR+TXOLx1oelgJAfo5xSgCKvg7K/LVYN/nkuyY+tz22Xpu3s6oenFNpVz2tg+l
# I4wD7rxwuZjkm8Jxn1JvOHbJndOdHYmtaCp+ui1EqU2upHJrDjdd1D+tIiRhQEMs
# j9NUrQMR5BdmWrUyRBo0QcP/Tr7QUMjYTWPTLXYkKT+4ucVqCUfcI2bgmsmLRsbs
# o35i5QbkDoeim2ABLe+tfTgRZ0kO3ksMLwzqPX/TcZsIrUPKSKczVZ49rSThiKmD
# 1kdA208IgixWFJt8ZEfz48gCBixLK2ZZOMAmuaWkwFqk2LTpsaDkctt9xdCCT5l5
# DS3+xPIs27dA/qUBSQ5br73n30YbypEoMr37mBKhlhvciIECtbXrcFyYwGLaL/VR
# XxHEh0Ww40ZEZRllo+XZAFyE7nSzG2k9v/ojlZ2WHnLWCcSPssdx1JGJK6ifmE21
# D/Z3S5mM3xQ9ygj99DYjihRAUHLr4nxtz51EiBw0/0iiHlCDlBmgfb3Qxgtkoo3p
# al8MO9AdRGZI4xbNayEr70dYTkAM4Cqj+wIDAQABo4ICAzCCAf8wHwYDVR0jBBgw
# FoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFLv54WJIjznuTWLFbjBC
# Lq4QqTnEMD4GA1UdIAQ3MDUwMwYGZ4EMAQQBMCkwJwYIKwYBBQUHAgEWG2h0dHA6
# Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAww
# CgYIKwYBBQUHAwMwgbUGA1UdHwSBrTCBqjBToFGgT4ZNaHR0cDovL2NybDMuZGln
# aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hB
# Mzg0MjAyMUNBMS5jcmwwU6BRoE+GTWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEu
# Y3JsMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Au
# ZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdpY2Vy
# dC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQy
# MDIxQ0ExLmNydDAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQA+bqWjJhzW
# +fzGu1RdCjuiQ3Cb0IKcwgvyaa9ggYBB2Y+oeixw1KlNTWXE6jXP33B5qWEexwSo
# d24vmOSFeA6XoINPjVewXxW/oTa8rg/v2Gho056msV6pevg5yb4wTKgRNseP+/Aa
# IYGijiQ9PpQpR50S2h55oZOKcQsLGg9yndxmWbjnHmzWPeML4nBoeN8rIlwO2wjC
# nEKpNqK4yfcm2vLavE0nmpTRGpA7qSK0Ao2hU8vlqNevsWo4kdrRbqvkiyYH6DSi
# iwYs9aQrtIRn1dsncX72I3wEf360ljy07aUrVb6pxRTxEDChctqs0oqVWv8f6dPo
# OV9iqnHaBlDMu/bUIvAlmzpmbvsQykuDZdZIe7RGCt51niE2ToSvAmAnxGE0jitC
# 877Uh+XgK/3/GBL75WN51ojm1JscY/yhiZALvFjGFjqDuoFe3lvEFMnZIOSoSvVX
# cj+Bs95hS/gq3oRRwFor+05oUV4WbYslY6TH3xAkoiOUnF3BJzgugIsMIYThZmgZ
# JxuFdHQxJafXEGYoJLU01tgjsAQzfac3ccnrcbNAVDPs9sN8v+CjHJrqLiaSfUBa
# 8FjcuVvHeCqRcmyvMhDTPnMsxAzy5mntbaej5N9OA43Ifh9H6SikzmZGxeJqwF6w
# +IE7qyRjdrqMNuNVNC25WbAzNWCvqE38sjGCBlkwggZVAgEBMH0waTELMAkGA1UE
# BhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2Vy
# dCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENB
# MQIQB5Y5Eqi1fsvff9oxj4wq8zANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3
# AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
# AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCAiMBKkTw0M
# NKz/Pp+6yhAaS+opMSFKeGXKbpKskK8fSDANBgkqhkiG9w0BAQEFAASCAgB3m/Wj
# GM1V84Za+B58r4LxRgFvH7piimf9lfbQOGMLQ9vJkmUm3BssCvMQev2LCixXK6yX
# qXpcIZvGN8A4eniA9N1K4KAeGFP0xJAlAbGZRw/HsaLqwBG8aPnShNTB6je3uvd2
# Lj6y41SzA47eyOrwZOKSOhbI9FDdp59mGvvIZbiIjdV1LI4npmE2LqjnM2QR4w5W
# zku3nUU7qukyQrqgsKO4Au3jiL2hCFPBStO16yBBW6b+17bdg0v3OSJXErXxU5EP
# TwSP1+1RjcSlbTLEzRy+0iNFWGVHyfftu+m8Qfy7KvMEUtM7ehjkrvmvNDlnIMAU
# X/Fbe/eaMeof/tDOt8ELMMHcnll7o2XIkGmJhqCFUwze5UURnEzrcO3ktqq3p4Lr
# ignjQjwIhLxNruBOTxIyGWD4XDmb4OjwGARfvHFzhnJaEHo2F7KsJx04F0/bsoFH
# gM6DMTCjIXhqWzbeaW9urERtZXgQTLK6JUbpY9Bn5uZzwxc9zODE2foObUspFJAm
# XgyS1uIB1OIUgSWyutePfMHVkCw2OOnlLVnbp3M6Mba5vq2hYnkJmeWK9kke50NB
# lCWWd4ScxIsrz5SZtd3l11krOiiWMo9nO0hsACzcollTjnsR0IcuyCi863jG34vR
# oPEWQuXFpFkny1i820UDrWkyX0r0oeRvBVDcJ6GCAyYwggMiBgkqhkiG9w0BCQYx
# ggMTMIIDDwIBATB9MGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBUaW1lU3RhbXBpbmcg
# UlNBNDA5NiBTSEEyNTYgMjAyNSBDQTECEAqA7xhLjfEFgtHEdqeVdGgwDQYJYIZI
# AWUDBAIBBQCgaTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJ
# BTEPFw0yNTA5MTAwODE4MDlaMC8GCSqGSIb3DQEJBDEiBCBX7HlZcXZWrMv5tSOc
# FG+Z+hOElfKnGbSqdATSH5fQyTANBgkqhkiG9w0BAQEFAASCAgA+T9Ew+0PxgD0F
# I2Td8BtFWe0gPOpzVa/0/KXnAa/YoQ4B5rb7sBZNeU+q6LzagpBgI9nuRt8lkEP/
# e6GjUSV6I6rQZvEATsCJQWPb6+auxcx3ssyaPQfhAF3Pyjvbus3EF4zzqZ26W6Sm
# g1A9rNxfwDX59LpXQbtbfR/3voRPk6luiK/UWxdPmGI5GJyML4mHu/zVbZ/OFuBV
# JW99PNRnyhnO5KUTJ05eReIr52uaIaOa/Pn8+79T+GN4m3b1QH1uBPkRGLLEzeOO
# 9t99/fkuKRrWMGqMsXncMtEExJSbgNZhJDSUcCu2tfXiIn7e8EVAznMQRdygcso0
# dB4G65BECo3vK+9EVugREYuWpExvpuzKpUznbaUrOMZn2+56aRyhi0S1bYLzBkxi
# zF5p+7ccBP8VQsCZWfYy6UJ7poeWmDC9L4BydGy5JCYlNQs4g1ZCI4BlbGyVgcGE
# nlUE9Qy6WRSOICgA/OxK0rihQLaMvUtxORd7tje45cc9lvlH9JdoQUVB7XKfBoQ1
# znlBcQNLCnqWBuNgOn+0P9FNWbCfO5L6Q8AhfPBAU6iyPafjIVW2d/D+NDxpR6zq
# hx4y5RBeete3HBPVMbFMh00FI3QyUsUGGV/ilodFhLZtCjEBB3F0QFKYGxjhzCXH
# ML15C/NULh2/wfvXpUW4HEMXIEBMKQ==
# SIG # End signature block