Functions_v5/Get-XurrentData.ps1
|
function Get-XurrentData { [CmdletBinding(DefaultParameterSetName = 'param')] param ( [Parameter(Mandatory = $true, ParameterSetName = 'id')] [Parameter(Mandatory = $true, ParameterSetName = 'param')] [Parameter(Mandatory = $true, ParameterSetName = 'export')] [ValidateScript({ $null -ne $script:XurrentAuth.$_ })] [string]$Environment, [Parameter(Mandatory = $true, ParameterSetName = 'id')] [Parameter(Mandatory = $true, ParameterSetName = 'param')] [Parameter(Mandatory = $true, ParameterSetName = 'export')] [ValidateScript({ $_ -in $script:XurrentDataTypes })] [string]$Type, [Parameter(Mandatory = $false, ParameterSetName = 'id')] [string]$SubType, [Parameter(Mandatory = $false, ParameterSetName = 'id')] [Parameter(Mandatory = $false, ParameterSetName = 'param')] [switch]$Full = $false, [Parameter(Mandatory = $false, ParameterSetName = 'id')] [Parameter(Mandatory = $false, ParameterSetName = 'param')] [string]$Parameter, [Parameter(Mandatory = $true, ParameterSetName = 'id')] [int[]]$ID, [Parameter(Mandatory = $false, ParameterSetName = 'id')] [Parameter(Mandatory = $false, ParameterSetName = 'param')] [ValidateScript({ $PSBoundParameters.full -eq $true })] [switch]$ConvertCustomFields = $true, [Parameter(Mandatory = $false, ParameterSetName = 'export')] [switch]$ConvertCustomFieldJson = $true, [Parameter(Mandatory = $true, ParameterSetName = 'export')] [ValidateScript({ $PSVersionTable.PSVersion -ge $Script:MinimalV7Version})] [switch]$Export ) $url = "$($script:XurrentAuth.$Environment.URL)/$($Type)" $InitialURL = $null if ($PSCmdlet.ParameterSetName -eq 'id') { $data = @() foreach ($item in $ID) { $data += @{ id = $item } } } elseif ($PSCmdlet.ParameterSetName -eq 'export') { $data = @() Write-Verbose -Message "get data from export" foreach ($tmp in (Import-Csv -Path (Export-XurrentData -Environment $Environment -Type $Type))) { if ($ConvertCustomFieldJson -and $null -ne $tmp.'Custom Fields') { Write-Verbose -Message "convert custom fields" ConvertFrom-XurrentCustomFields -Object $tmp -DataFromExport } $data += $tmp } return $data } else { if (-not [string]::IsNullOrEmpty($Parameter)) { $InitialURL = $url + "?" + $Parameter } else { $InitialURL = $url } Write-Verbose -Message "get data from $($InitialURL)" $tempdata = Invoke-WebRequest -Method get -Uri $InitialURL -Headers $script:XurrentAuth.$Environment.header -UseBasicParsing -Verbose:$false if ($tempdata.Headers."X-Pagination-Total-Pages" -gt 1) { $data = @() Write-Verbose -Message "total pages: $($tempdata.Headers."X-Pagination-Total-Pages")" $data += $tempdata.Content | ConvertFrom-Json while ($tempdata.Headers.'X-Pagination-Current-Page' -ne $tempdata.Headers."X-Pagination-Total-Pages") { $nextURL = ($tempdata.Headers.link.Split(",") | Where-Object { $_ -match 'next' }).Split(";")[0].trim("<> ") $tempdata = Invoke-WebRequest -Method get -Uri $nextURL -Headers $script:XurrentAuth.$Environment.header -UseBasicParsing -Verbose:$false $data += $tempdata.Content | ConvertFrom-Json } } elseif ($null -ne $tempdata) { $data = $tempdata.Content | ConvertFrom-Json } if ($Full -eq $false) { return $data } } Write-Verbose -Message "get full data" $FullData = @() foreach ($id in $data.id) { $tmpURL = $url + "/" + $id if (-not [string]::IsNullOrEmpty($SubType)) { $tmpURL = $tmpURL + "/" + $SubType } if (-not [string]::IsNullOrEmpty($Parameter)) { $tmpURL = $tmpURL + "?" + $Parameter } Write-Verbose "get data from $($tmpURL)" $tmp = Invoke-RestMethod -Method get -Uri $tmpURL -Headers $script:XurrentAuth.$Environment.header -Verbose:$false Write-Verbose "$($tmp.custom_fields.count)" if ($ConvertCustomFields -and $null -ne $tmp.custom_fields -and [string]::IsNullOrEmpty($SubType)) { Write-Verbose -Message "convert custom fields" ConvertFrom-XurrentCustomFields -Object $tmp } $FullData += $tmp } return $FullData } # SIG # Begin signature block # MIIeIgYJKoZIhvcNAQcCoIIeEzCCHg8CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAzTT/aBeW5B5a3 # SOLqFLVeduX3k3C0tIqkIW7FGbBHc6CCGGcwggLjMIIBy6ADAgECAhBCCNCn9wPq # pUWzhBFHlrjQMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNVBAMMCVJvbWFuIEVuejAe # Fw0yNTAxMjgxODU2MDBaFw0zNTAxMjgxOTA1NTlaMBQxEjAQBgNVBAMMCVJvbWFu # IEVuejCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALt5S9z43iR8NBGw # YEauedJQedy94yOW/rOaYoX9Sn8YUkT6R9uEdnt5SbAHDw50q+76c2Sx0jPUMMn9 # V/15cyJbMu9Ej3+AiMfFi/opqzyhci/k46fd5ewdAJk5GGBHHJ5hO5zegTtEQWyX # 2PMn3WE7B6Uy8FxQrxl+1e3DO1sDT/zhn8qeWEzTjM4/p3YFwR1pc7mX2DLLFybB # V71DYeAWvjGF0z/dfi7ib1mLMsN4spML41umn+F/TQtf7QP68ft3ludk8Gd1e7D7 # sWDK+J6AN3iga6evVTucJB200eHFofh7HTdcncH/6ue/d4NvDvKjLjN295lMiWU8 # W7ojGCUCAwEAAaMxMC8wDgYDVR0PAQH/BAQDAgIEMB0GA1UdDgQWBBTsDKDLy1wE # 1KpSirF8sbQKlb4PFzANBgkqhkiG9w0BAQsFAAOCAQEAV02VHByfqH3B7iP49kHp # Un3DQ3thGaizIFL/prPdgzqJiAuBY/VMNY97/5tKIyzX5pEGoVeyR2wZKTGYu5xR # aOLxhqk8TtPd2h1H4o8Tpsas6c5VsfbHKaPtdC2xRWJIK9f+LQmrQ8EQ/xNuuNv0 # InccOrm9L8z2P1JHde2LZD7qfM3N8h5WOCrV3QRb09WkMESJcHMoGVTAvUYj2iq0 # MZkXwwaNTcwD/zIxp1C2Z9VqX8etAPQHUeX2uPrJQdSHnrNaiNJAbUWBg3ZAKk4G # ciK9DmWaN4ukbHpuj7dSZOW21q2thw0F+K7Rn3A2CJ+stdn8JD9n/8i/9tuetSVR # 7TCCAxkwggIBoAMCAQICECgf8HLUn66mQrAI0KycNMIwDQYJKoZIhvcNAQEFBQAw # FDESMBAGA1UEAwwJUm9tYW4gRW56MB4XDTI1MDEyODE5MzAzM1oXDTI2MDEyODE5 # NTAzM1owFDESMBAGA1UEAwwJUm9tYW4gRW56MIIBIjANBgkqhkiG9w0BAQEFAAOC # AQ8AMIIBCgKCAQEAz+j0Awf9ccGPIKAfYQ5ZUmtjZuuFNnIjHb9gtjeSNJ8BluHB # HKF8tSCwvpMrevoOy0xpeg/khZSvQ+Hx7M4oHeV0A2mK3M3ut8JvLxWEDlon41hD # CEhUcT+vD/9fXHUecbRBGpSGcBghkgfM3euU3MhpJNoVE3ZPp3q4Us5A2t5B99PR # T2q1kcZyP/M0Z6ww8KHPBiJueK3frwPAxuIXEOBuYEIRWE3sugozFIQXUvpSiT4W # 7CXqYDIALlSpd51Ir/tT7Yx1UzR2oz7BKW6jrL9t3guTDnJ0WyQVFWRRUKiysvCA # +VHySpg4U72CSjccjXTVxFsI0KLXqi2dA7xPCQIDAQABo2cwZTAOBgNVHQ8BAf8E # BAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHwYDVR0jBBgwFoAU7Aygy8tcBNSq # UoqxfLG0CpW+DxcwHQYDVR0OBBYEFO6xfVS2jp6QRsW08nYw70j3fyy/MA0GCSqG # SIb3DQEBBQUAA4IBAQBs22lqOGJLfdTyGQo9Jgmn96B7WR1inhEnOM66UU44U51a # L/LJYcGUI27PUFTG6tXad38v6fJj8o1otrYye16UIsFyxAO4UtiXH/dFQukp/YWl # /SP69DlYjOAaNu7lqxK7JfIzfSPgsoZjp7KmT4WHO5Zs7F8C9qYab5/hZGAKLg8W # 6Tk2pAdNhleScgvW2pW0podkDBDVjBng4ItyYe0KigHzH4KtYeFqRnzM/29NMAOq # o4eYPwH2jMTRwjDDqhF8h9IfgoT3LD0nZK0bmy9PRzBqyLmaR4EmZ1b3ziDes+ak # p5tXqY28722FtIKI2WKiUZ7WTUEcXdaoTxEQ6noVMIIFgzCCA2ugAwIBAgIORea7 # A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMXR2xvYmFsU2ln # biBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds # b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYD # VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2ln # bjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC # AgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRIxutbPK6DuEGSMxSkb3/pKszG # sIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE3nOUTvOniX9PeGMI # yBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbFvuJt # MgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ay # d2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGB # zVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02 # oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2SXcwvHE35absIQh1/OZhFj93 # 1dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguyCLNhZglqsQY6ZZZZwPA1 # /cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP0f/fMBH5 # hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvc # E+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBh # MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWj # kxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdT # oDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLNnsAEoJFp5lzQhN7craJP6Ed4 # 1mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0lV7Ae46ZeBZD # E1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY # BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN # 25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/Q # cYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGyt # Xm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZpnOZ7BN9uBmm23goJSFmH63sU # YHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/TuTAjB0yPEL+GltmZ # WrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItKoZB0 # JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5 # d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeD # BVrJpBAwggZZMIIEQaADAgECAg0B7BySQN79LkBdfEd0MA0GCSqGSIb3DQEBDAUA # MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFI2MRMwEQYDVQQKEwpH # bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTE4MDYyMDAwMDAwMFoX # DTM0MTIxMDAwMDAwMFowWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNp # Z24gbnYtc2ExMTAvBgNVBAMTKEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0g # U0hBMzg0IC0gRzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDwAuIw # I/rgG+GadLOvdYNfqUdSx2E6Y3w5I3ltdPwx5HQSGZb6zidiW64HiifuV6PENe2z # NMeswwzrgGZt0ShKwSy7uXDycq6M95laXXauv0SofEEkjo+6xU//NkGrpy39eE5D # iP6TGRfZ7jHPvIo7bmrEiPDul/bc8xigS5kcDoenJuGIyaDlmeKe9JxMP11b7Lbv # 0mXPRQtUPbFUUweLmW64VJmKqDGSO/J6ffwOWN+BauGwbB5lgirUIceU/kKWO/EL # sX9/RpgOhz16ZevRVqkuvftYPbWF+lOZTVt07XJLog2CNxkM0KvqWsHvD9WZuT/0 # TzXxnA/TNxNS2SU07Zbv+GfqCL6PSXr/kLHU9ykV1/kNXdaHQx50xHAotIB7vSqb # u4ThDqxvDbm19m1W/oodCT4kDmcmx/yyDaCUsLKUzHvmZ/6mWLLU2EESwVX9bpHF # u7FMCEue1EIGbxsY1TbqZK7O/fUF5uJm0A4FIayxEQYjGeT7BTRE6giunUlnEYuC # 5a1ahqdm/TMDAd6ZJflxbumcXQJMYDzPAo8B/XLukvGnEt5CEk3sqSbldwKsDlcM # CdFhniaI/MiyTdtk8EWfusE/VKPYdgKVbGqNyiJc9gwE4yn6S7Ac0zd0hNkdZqs0 # c48efXxeltY9GbCX6oxQkW2vV4Z+EDcdaxoU3wIDAQABo4IBKTCCASUwDgYDVR0P # AQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOoWxmnn48tX # RTkzpPBAvtDDvWWWMB8GA1UdIwQYMBaAFK5sBaOTE+Ki5+LXHNbH8H/IZ1OgMD4G # CCsGAQUFBwEBBDIwMDAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AyLmdsb2JhbHNp # Z24uY29tL3Jvb3RyNjA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmdsb2Jh # bHNpZ24uY29tL3Jvb3QtcjYuY3JsMEcGA1UdIARAMD4wPAYEVR0gADA0MDIGCCsG # AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN # BgkqhkiG9w0BAQwFAAOCAgEAf+KI2VdnK0JfgacJC7rEuygYVtZMv9sbB3DG+wsJ # rQA6YDMfOcYWaxlASSUIHuSb99akDY8elvKGohfeQb9P4byrze7AI4zGhf5LFST5 # GETsH8KkrNCyz+zCVmUdvX/23oLIt59h07VGSJiXAmd6FpVK22LG0LMCzDRIRVXd # 7OlKn14U7XIQcXZw0g+W8+o3V5SRGK/cjZk4GVjCqaF+om4VJuq0+X8q5+dIZGkv # 0pqhcvb3JEt0Wn1yhjWzAlcfi5z8u6xM3vreU0yD/RKxtklVT3WdrG9KyC5qucqI # wxIwTrIIc59eodaZzul9S5YszBZrGM3kWTeGCSziRdayzW6CdaXajR63Wy+ILj19 # 8fKRMAWcznt8oMWsr1EG8BHHHTDFUVZg6HyVPSLj1QokUyeXgPpIiScseeI85Zse # 46qEgok+wEr1If5iEO0dMPz2zOpIJ3yLdUJ/a8vzpWuVHwRYNAqJ7YJQ5NF7qMnm # vkiqK1XZjbclIA4bUaDUY6qD6mxyYUrJ+kPExlfFnbY8sIuwuRwx773vFNgUQGwg # HcIt6AvGjW2MtnHtUiH+PvafnzkarqzSL3ogsfSsqh3iLRSd+pZqHcY8yvPZHL9T # TaRHWXyVxENB+SXiLBB+gfkNlKd98rUJ9dhgckBQlSDUQ0S++qCV5yBZtnjGpGqq # IpswggZ7MIIEY6ADAgECAhABB2SbCLCn/n3WVKjy9Cn2MA0GCSqGSIb3DQEBCwUA # MFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYD # VQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0MB4X # DTIzMTEwNzE3MTM0MFoXDTM0MTIwOTE3MTM0MFowbDELMAkGA1UEBhMCQkUxGTAX # BgNVBAoMEEdsb2JhbFNpZ24gbnYtc2ExQjBABgNVBAMMOUdsb2JhbHNpZ24gVFNB # IGZvciBNUyBBdXRoZW50aWNvZGUgQWR2YW5jZWQgLSBHNCAtIDIwMjMxMTCCAaIw # DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALmomz6pptxC00Gfik1DRwn5aIsT # +3WPmVzKgEJh74664XHWR5CtmU1jA7bvqSaj+zbqbhRH99dNRHSyKl6dMl8EaK+3 # yc9bCycvKE6C3o61s4n65xFJyCdAXpNvCSHG1l+Y87e6oUByrt0P384hQgRUOOrK # It0DuRqh4LcclyhzLCCNP2aydpnaOsn2cpZSdNh9ZW7gIm/+r0b9fq9OyImBMqGY # K49357Kj1ZqfH9GDIE5N70w7UXuRI+GDSqJvuATmZBRLLjt86bX9s242REA29b4h # 5ujQ+n73qE5GrJSw0Cl04rGXqn848YnierfKbAUwGFhvfVt+OpHUfG9O/+kxfqWC # NeEu/wpg6lKFV4d65CqvPKLfedvgeY/fke3/Jj12QEvfG0v2gqjqgyitU7a3ltcd # LYzvv32KnpR8U6lkBGt8zBZnGTGCkun0OrzUiKi9ju5PEnnY/+CWkFB+ARX/8ONs # Xhr0r0DF5Sc9Rvg6QTj/OUi03AYB+zsIKGhpqQIDAQABo4IBqDCCAaQwDgYDVR0P # AQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMB0GA1UdDgQWBBT4o6fl # I3VW0aWlO4luFnHLVdaICTBWBgNVHSAETzBNMAgGBmeBDAEEAjBBBgkrBgEEAaAy # AR4wNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVw # b3NpdG9yeS8wDAYDVR0TAQH/BAIwADCBkAYIKwYBBQUHAQEEgYMwgYAwOQYIKwYB # BQUHMAGGLWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2NhL2dzdHNhY2FzaGEz # ODRnNDBDBggrBgEFBQcwAoY3aHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9j # YWNlcnQvZ3N0c2FjYXNoYTM4NGc0LmNydDAfBgNVHSMEGDAWgBTqFsZp5+PLV0U5 # M6TwQL7Qw71lljBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vY3JsLmdsb2JhbHNp # Z24uY29tL2NhL2dzdHNhY2FzaGEzODRnNC5jcmwwDQYJKoZIhvcNAQELBQADggIB # AHArWS5rBVK1Jlchtc8Q6JrwrMtyVGhtVUWZljlYRxvQaWsobPCTi6ZEy3jJq05i # xIIfBZDerAaWO66gRg2BhuyQcNyyNS7LVS1DR2+Lek5BP/6yIZxAMditj5U3GoLr # yLcOp6FcGqrAakn9D4oEBybC2Q7PJgN9MEW/bFB6D+kkNkyApOgiQStgZrysC88y # yIB/KkbHnMLlHw/WVfkCDGHFvGKPXaMiYetqmHiwZC8JsA3JuAgcWl4GMCRdcYN2 # OP1IaphdP0JIbyyENvzm/pLC0nBjQYO19KAKZVrVQfSDqDAbyNZbbkDow83mN+LJ # 6VVci1PE7uHfu9O1kYq7Z3O1CPCoSKsOG+BEcL7iBOcRqeE/UEGaDGYKVkXBBUH5 # QhX9BKaRtfpMFop+fgWaoYd0VP3Hp8Dmk2edpB0qXDoEtU7VFx6j4o3uPjwKgU9Z # MfsF/5gZ05i4BthIm0mT4QLHbbIsitzqXtvUb/0HrB48NlF38T4skmT1mPBPK5oQ # 89pfOPpKQsl/YKObSaEzCxDOwk+l07KAWBkm+kMJSrV11Z7Yrw2vHrb7S0l4/V+x # 6obteup3utHs54Y1Cflau5bh9gpX+f3W/iQaAFC9nk3IkRg37NIozg+ul0Ydwnxg # y7uaZK6WtbnlynrletZ4QSTeZsn2UBdFpX/TH+oe2u/oMYIFETCCBQ0CAQEwKDAU # MRIwEAYDVQQDDAlSb21hbiBFbnoCECgf8HLUn66mQrAI0KycNMIwDQYJYIZIAWUD # BAIBBQCgTDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAvBgkqhkiG9w0BCQQx # IgQgzA2AJxsYiI7JEl7TVVFhK6FLiArjtJw/OYG4ZI31avkwDQYJKoZIhvcNAQEB # BQAEggEATfSomk8TSJ+Lvhrxm9MPVwaj/C0utThPsiBmDqMkX9zd0eY1uiMTxeC6 # lCla7+ef0qOZfpfVCaLIa2Cgv9Hq5nhq/j+2MhiaKardpmyWC8iDo9QOdG+PMLku # x9yqSQf5xeWdl6Clu6jYDjwQc8+YTpd1ciH2BSLPuWKnADEiEAZOkIhLXnEXI+bk # HBPfJX0H6lhieWxCk7PvU5WEBGAwfB9xBDlZRt9HDZNCcj1wJkFPuUE9vtrjzJ5C # qRqwOHIBm6dEgSyCDzRtAnUdtoC7Ly7Omlfzp6PWjbZBnWKPcIsDyWTi7lTCJV/V # X8dtBHZ5GLZLJpLprlgrK+UlJFxfKqGCA2wwggNoBgkqhkiG9w0BCQYxggNZMIID # VQIBATBvMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNh # MTEwLwYDVQQDEyhHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAt # IEc0AhABB2SbCLCn/n3WVKjy9Cn2MAsGCWCGSAFlAwQCAaCCAT0wGAYJKoZIhvcN # AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjUwMTI5MTMyODA1WjAr # BgkqhkiG9w0BCTQxHjAcMAsGCWCGSAFlAwQCAaENBgkqhkiG9w0BAQsFADAvBgkq # hkiG9w0BCQQxIgQg0S2srtefMKb8qvOH4L1OiMBioPBqMTa/RTlVjeOPScAwgaQG # CyqGSIb3DQEJEAIMMYGUMIGRMIGOMIGLBBRE05OczRuIf4Z6zNqB7K8PZfzSWTBz # MF+kXTBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEx # MC8GA1UEAxMoR2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgQ0EgLSBTSEEzODQgLSBH # NAIQAQdkmwiwp/591lSo8vQp9jANBgkqhkiG9w0BAQsFAASCAYAAkVbYEfOnD+GI # ZQ+WLH6OpADL5+i9yIMcFIWtqbkbkPNcNSyHzsfj4j/tdQM3jUus+udruTWyaCKw # rcXqDrIfHE2huD+/isQpsaOpYnb603C+d7vOUSoAoZn0jK0z8/7SOFqKtan7NDgB # wjDa08fVHsmXT/onyrY5eeJ1XnshkWmNu5vbAqkIGJ9mFMuxWuv20jbyxPNaNs7n # EcGA/J+9w6W+EviiQpMAfW0x5Yc9rMSeuZcKgv9ks/5HBznHnZJQ7e0tQVseYOWn # Hla4KGEt3wPBN2kPAWv9+r84ny3OzXnexdJftk26MTr1pE9jqfkz65yNaRDIH8Y1 # jk3dmuIuIEMJDg+Aj+ntyKc/C9CB2pdIB7ggBZAKOXl4FhdDvcYjffYTekRHf8gO # GR1tIyuLlJ/PpkyVVWUY3AiuUzR9ItYtYB6uHw7ICvr6qFkK7BK4HqGJpHz5aG+A # XhAcO7CDgJVaMVLM9ukyaRgPuYf/MBimwJmnjaFF4rqx5kyLkPk= # SIG # End signature block |