Samples/InstallAndAddDataGateway-Sample.ps1


# This sample script helps automate the installation and configuration of a single member gateway cluster and optional additional admin using the available `DataGateway` PowerShell cmdlets.
#
# Note: Before beginning to install and register a gateway, you must be connected to the service with the `Connect-DataGatewayServiceAccount` cmdlet.
#
# Visit the help page for more information on each `DataGateway` PowerShell cmdlet.

Param(
  # Documented on the Install-DataGateway help page
  [Parameter()]
  [Switch]
  $AcceptConditions,

  # Documented on the Install-DataGateway help page
  [Parameter()]
  [string]
  $InstallerLocation,

  # Documented on the Add-DataGatewayCluster help page
  [Parameter(Mandatory = $true)]
  [SecureString]
  $RecoveryKey,

  # Documented on the Add-DataGatewayCluster help page
  [Parameter(Mandatory = $true)]
  [string]
  $GatewayName,

  # Documented on the Add-DataGatewayClusterUser help page as $PrincipalObjectId
  # Note: If you are using a service principal to configure your gateway,
  # specifying this paramater will be the only way to administer the
  # gateway outside of the PowerShell module.
  [Parameter()]
  [Guid]
  $AdditionalGatewayAdminIdForNewGateway
)
$ErrorActionPreference = "stop"

# Thrown an error if not logged in
Get-DataGatewayAccessToken | Out-Null

# Run the gateway installer on the local computer
$installDataGatewayArguments = @{
  AcceptConditions  = $AcceptConditions; 
  InstallerLocation = $InstallerLocation;
}
Install-DataGateway @installDataGatewayArguments

# Create a gateway cluster and save the cluster ID
$addDataGatewayClusterArguments = @{
  RecoveryKey = $RecoveryKey;
  GatewayName = $GatewayName;
}
$newGatewayClusterId = (Add-DataGatewayCluster @addDataGatewayClusterArguments).GatewayObjectId

# Optionally add admin to new gateway
if ($null -ne $AdditionalGatewayAdminIdForNewGateway) {
  $addDataGatewayClusterUserArguments = @{
    GatewayClusterId       = $newGatewayClusterId;
    PrincipalObjectId      = $AdditionalGatewayAdminIdForNewGateway;
    Role                   = "Admin";
    AllowedDataSourceTypes = $null;
  }
  Add-DataGatewayClusterUser @addDataGatewayClusterUserArguments
}

# SIG # Begin signature block
# MIIodwYJKoZIhvcNAQcCoIIoaDCCKGQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAdLEiJZjhqzHah
# tQwTwQunAybs3XolsLHLD1/b4iX9IKCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0
# Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz
# NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo
# DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3
# a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF
# HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy
# 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE
# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w
# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
# MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci
# tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
# b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG
# CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0
# MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC
# Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj
# L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp
# h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3
# cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X
# dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL
# E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi
# u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1
# sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq
# 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb
# DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/
# V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq
# hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
# IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg
# Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
# CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03
# a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr
# rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg
# OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy
# 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9
# sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh
# dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k
# A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB
# w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn
# Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90
# lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w
# ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o
# ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
# VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa
# BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
# bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG
# AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV
# HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG
# AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl
# AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb
# C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l
# hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6
# I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0
# wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560
# STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam
# ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa
# J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah
# XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA
# 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt
# Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr
# /Xmfwb1tbWrJUnMTDXpQzTGCGlcwghpTAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp
# Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB
# BQCggeIwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIOKQvRMHlqfNmdoFDHQdAdX8
# 762I6Aj9yC7vkeBPah1KMHYGCisGAQQBgjcCAQwxaDBmoEiARgBJAG4AcwB0AGEA
# bABsAEEAbgBkAEEAZABkAEQAYQB0AGEARwBhAHQAZQB3AGEAeQAtAFMAYQBtAHAA
# bABlAC4AcABzADGhGoAYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3
# DQEBAQUABIIBAALqPnHT11PNiOpNNwRc/L4+GeJiKwjWdk1//NOCB2zaW/0l5VMr
# q2LjGG+rxowe3t1HoM2/fufglhhnlgGeweAd4av1Gn5G8Rh7lbSWRB2kIDffGdqj
# /Qf+bF34eewhA18OizjUt1OvfhbYdO/AEK8QDmQlF97W9ppQ6fEEuTYPsIRkLcPH
# 1vgpbFHANIKzt/jZYyFzT4NugBXNugzyHNpMx7bFsmJaZpWcettAjz6+QtDiwAxE
# pPeMngGaFEapv3hWr05RU+dDTC3GhuRRtFtsIfVBgFxv7HPubjQm66AYb/8xVFi2
# keOu5J63+bRnnTiwy7411tTAKXTajbNOBDOhghetMIIXqQYKKwYBBAGCNwMDATGC
# F5kwgheVBgkqhkiG9w0BBwKggheGMIIXggIBAzEPMA0GCWCGSAFlAwQCAQUAMIIB
# WgYLKoZIhvcNAQkQAQSgggFJBIIBRTCCAUECAQEGCisGAQQBhFkKAwEwMTANBglg
# hkgBZQMEAgEFAAQgR0ZuxAMhRHpQ0EzW/MG+jUG/2qmpf4+fzMYf/KpJefgCBmft
# LDHLIxgTMjAyNTA0MjIyMzIyMjQuNzc3WjAEgAIB9KCB2aSB1jCB0zELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0
# IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRT
# UyBFU046MzYwNS0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
# YW1wIFNlcnZpY2WgghH7MIIHKDCCBRCgAwIBAgITMwAAAfdYIHUEyvvC9AABAAAB
# 9zANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAe
# Fw0yNDA3MjUxODMxMDZaFw0yNTEwMjIxODMxMDZaMIHTMQswCQYDVQQGEwJVUzET
# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
# TWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFu
# ZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjoz
# NjA1LTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
# dmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANDnR0wTaJuv7lym
# hCj/azyE5E+kMRddbY8wdDZNW8g6T6xUx4Wt4ccEnU3K/GNGt5OhEJcKsukTs+Nn
# tEeXg1vnQqEGqYqQyBVDmKd6DbqsF/8XqQExJGNezMlxceq0FtjXFlCVt0KNgLid
# BzrW5UqSLUGTxph5xqpLfwweORcMZOlaEr8TXECoShE5Ls67fFOg0XHEJtRXYZjy
# oA84HHwzzOaPhp824jLustOvQOBB5izJpHnEpFbwZnGfFZ8xR0w5Bi3aZw1eRV41
# TmwIG0jNHJ6mEhn0ae1RhwUasqLHL0eG3EPglfaQ42yekua2Z9bgPIUYY9PR7N9x
# 0Xr7eKFgFWBiLYBLBvgawmG6YFjAxCFZwID2RIjwGiPMARnphOH3hJLs+0wMIJEQ
# XFMy4EOLrz6kQ9QPiZLduvqQ6lmEp9DAPI9M2nEJPavwL3Ij1w/SLdns/pqhM4BU
# UbCRi7XH/R5LLyvCbHeiOcxUoZaouW6c39WODTojToeUMFtaSLwOYq5Wpe6hYZAH
# nnmapqKfPrjcWV8RQkBt0d7OaV1vPRYgofa5l61ajgsIHFxSCUAEJJZSrCPlCahq
# va5kQASc+ZRykxWJhcHDOdillozcd8+qHcM9ofrMWsXsE6HvRqrQ8d/2lPsqjUXA
# fMNLUl1H/spTeLpOcRxKS6cfmTTbAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU30ak
# Mz95vT2Vri39afP5nhX5JpgwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ
# 6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSku
# Y3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNy
# b3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIw
# UENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggr
# BgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBADdGo2ny
# C3i+kkCDCDAFzNUHesWqHItpjq6UfLylssk7C92/NwO1xi4gG0MU66p171VlnjbL
# eWEA/LGjvlE4DiyXU3X1AA4S16CvkZcI353YpiCU/TB/bVGFy8yVyoWTNPaLj8Db
# K5/GDiyKXQIuUz8jfApddThmUpT/a/CZ76JltNAKCeD5fa5YNBuZXEJJwF6h2vZ0
# HVqdWcV6jXftCbCppUfLXADV99wpTPTZ2gpSRMS0B4inh1FFrasizJeuU1usETO1
# 5Re2Pj05wvHbjVp+Li54Pjjf2d/RjuqgY+yBGcaKuKN2rxIfW2uN1FOk4M1WWgZv
# FWgNMEsFHv6aqUzmBVjetly94JfyQtqc3yD8T+ul30SyMWn4wVV5vClQ59nDC/SL
# 0StNrPeNWOfkUeIEgDoS4kEOgNN1TUbqfrKTGtJPl0zwIvtmjB+cWtWY2/yvLvX/
# TNOVNP21DCVyQz/vsrFqSW1UQ4hxu7M2nGvq9x4lD40CckJdjYjnGExlfw3C6ywg
# StsxudNxRm9ODeSn9dF4AMBWl5aHeQfXiofeT51ysdizQYC8BvOWp5YYRscQUOZh
# bCRpAZ9D2T7QM2cn6/eqsc6adqR/QySXIygg6zJmc4l2s6WuVVTd+gjtZA1OAAZE
# mE1zjPEZiV7kJu5lBd21po/oYwCW+Kc+oU+VMIIHcTCCBVmgAwIBAgITMwAAABXF
# 52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2Vy
# dGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMw
# MTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw
# JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZI
# hvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfS
# qWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893
# MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWEC
# esSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W
# 7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWY
# bWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdb
# Z2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn42
# 7DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1D
# TsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12Nv
# DMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLb
# JbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3
# tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQB
# gjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D
# 9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEF
# BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9z
# aXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoA
# UwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQY
# MBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6
# Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1
# dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0
# dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIw
# MTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Ge
# ckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQY
# Iu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY
# 3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09
# J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tu
# PywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJv
# EKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lU
# ZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQ
# THa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8
# vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAn
# Qj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUF
# EMFxBmoQtB1VM1izoXBm8qGCA1YwggI+AgEBMIIBAaGB2aSB1jCB0zELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0
# IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRT
# UyBFU046MzYwNS0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
# YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAG9vCgxv8V2zQY5jO/56sN24KxDm
# oIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm
# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcN
# AQELBQACBQDrsgdXMCIYDzIwMjUwNDIyMTIxNzI3WhgPMjAyNTA0MjMxMjE3Mjda
# MHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOuyB1cCAQAwBwIBAAICLRQwBwIBAAIC
# EpkwCgIFAOuzWNcCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAK
# MAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAQ9gYoipk
# yC+XPNeaNdTtyXmehyoxL903ux3JJ5f2gPpxYEnZ16Zd5LkJh5ZkVm48eDWMMWjB
# /yovRloVLrMHkayKjZlY+TnzflBaZBZWDak5E3nvA69TOCVvgzxy8qcVCv+2E9Wp
# zmmzg5dUZSEGQWDxF2jkf/d/s21y10/wR/jPvcAuGh5v3k9szISB4BOOzKOlhrRW
# 5BGFv49U6H18ciU2nGH7u6dYFwW+PZgzt/TjkOMAWG/WlyfZ9dV62wcGPGZCc+NI
# hrmecvQhIGAWTfgjd9wX32TSRnSDmvGwy91YZ0Wk9Net8RA9n8Vg62u6Dt4cuBJS
# 7H5DP4yXY9/S+jGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
# QSAyMDEwAhMzAAAB91ggdQTK+8L0AAEAAAH3MA0GCWCGSAFlAwQCAQUAoIIBSjAa
# BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIF5huw41
# UigK/q/ZonGG0+MNiqjizXDR4HC4GJLaPqc3MIH6BgsqhkiG9w0BCRACLzGB6jCB
# 5zCB5DCBvQQgIdqY2mt3GtHnGLobutLmBz/yCpz23nW1UCeUqCB+WeIwgZgwgYCk
# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAfdYIHUEyvvC9AAB
# AAAB9zAiBCBAN9i9uIQyhat1LOTn2iNT4SaN0i0mS+EE7wm1s0Z0/TANBgkqhkiG
# 9w0BAQsFAASCAgBonGtCJOa1i2A7a+FTrrDSOad8MmgXYJI1nDmDsHS+LEY+Rv2L
# XrxZbzUupyORTJq2p3Nfh4HKR7yMMGECpzD4qhhzV+IsAZT4WKrCYSJIBd7iKDYA
# 77LkkwT3ldqsgOmzsXiFLzBhKhMNq+Qh77hyIEjZkjk7odzrqPyA391NvHqJHl+x
# Jr0morsALflmlSOK5nCKfYjzD22en/mPzGmSZl89amqzeg66OeELhWSQFqquxrNd
# SODxnoEIBguD80YS80i3YuV9s/DcOlHVZ/sy13CJGgK/XFYCqZJfYyh970ZeLRlw
# 89OpqMYL73sPy0A1/YZRBO1ocDsbiZU+3I4ZeIc54G45ucUD97iUhzWdm2Dh41yq
# dz9bEVuZW5YgkD0JjULkFW61MVx55P7aWHcKDLiNYh36Zm4tZ1Y+jFjOnwqCxvLH
# Sno4bqNXq9utMrQ49rIzR+3msqSDr96MHd1Qs0957+Dzl4FV3eLQemiQz3+nYHG5
# GD09vgtMqXh8tlX6GHRz1iIDDfpSmJEfMmk/tfc61w43ASZ6c86Ttkm36+AHQmNA
# RsfjsdPPU9j3vKY2PlQH9e/xilrL6+h/7UC0RU1QV0gxVML3rI06nde9pmyVtI/v
# /FPvy/bCyyyT1NSNvUWRQwmg9rSwYPWtdbeSIULvKgAgqaSj5MF9D6w2UA==
# SIG # End signature block