NetScalerToolkit.Configuration/Public/ns-functions-config-subscriber.ps1
|
# Generated NetScalerToolkit Configuration bundle for category 'subscriber'. # region Invoke-NSAddSubscriberProfile function Invoke-NSAddSubscriberProfile { <# .SYNOPSIS Creates a NetScaler subscriberprofile resource. .DESCRIPTION Configuration for Subscriber Profile resource. .PARAMETER Ip Subscriber ip address. .PARAMETER ServicePath Name of the servicepath to be taken for this subscriber. .PARAMETER Subscriberrules Rules configured for this subscriber. This is similar to rules received from PCRF for dynamic subscriber sessions. .PARAMETER SubscriptionidType Subscription-Id type. Possible values = E164, IMSI, SIP_URI, NAI, PRIVATE .PARAMETER Subscriptionidvalue Subscription-Id value. .PARAMETER Vlan The vlan number on which the subscriber is located. Default value: 0 Minimum value = 0 Maximum value = 4096 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSAddSubscriberProfile -Ip 'example' -PassThru .EXAMPLE Invoke-NSAddSubscriberProfile -Ip 'example' -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(Mandatory, Position = 0)] [string] $Ip, [Parameter()] [string] $ServicePath, [Parameter()] [string[]] $Subscriberrules, [Parameter()] [ValidateSet('E164', 'IMSI', 'SIP_URI', 'NAI', 'PRIVATE')] [string] $SubscriptionidType, [Parameter()] [string] $Subscriptionidvalue, [Parameter()] [int] $Vlan, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('Ip')) { $properties['ip'] = $Ip } if ($PSBoundParameters.ContainsKey('ServicePath')) { $properties['servicepath'] = $ServicePath } if ($PSBoundParameters.ContainsKey('Subscriberrules')) { $properties['subscriberrules'] = $Subscriberrules } if ($PSBoundParameters.ContainsKey('SubscriptionidType')) { $properties['subscriptionidtype'] = $SubscriptionidType } if ($PSBoundParameters.ContainsKey('Subscriptionidvalue')) { $properties['subscriptionidvalue'] = $Subscriptionidvalue } if ($PSBoundParameters.ContainsKey('Vlan')) { $properties['vlan'] = $Vlan } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess("$Ip", 'Create subscriberprofile')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscriberprofile -Payload @{ subscriberprofile = $body } -RawResponse if ($PassThru) { return Invoke-NSGetSubscriberProfile -Ip $Ip -Session $Session } return $response } } # endregion Invoke-NSAddSubscriberProfile # region Invoke-NSClearSubscribersessions function Invoke-NSClearSubscribersessions { <# .SYNOPSIS Clears NetScaler subscribersessions data. .DESCRIPTION Configuration for subscriber sesions resource. .PARAMETER Ip Subscriber IP Address. Default value: 0 .PARAMETER Vlan The vlan number on which the subscriber is located. Default value: 0 Minimum value = 0 Maximum value = 4096 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSClearSubscribersessions .EXAMPLE Invoke-NSClearSubscribersessions -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [string] $Ip, [Parameter()] [int] $Vlan, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('Ip')) { $body['ip'] = $Ip } if ($PSBoundParameters.ContainsKey('Vlan')) { $body['vlan'] = $Vlan } if ($PSCmdlet.ShouldProcess('subscribersessions', 'Clear subscribersessions')) { Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscribersessions -Action clear -Payload @{ subscribersessions = $body } -RawResponse } } } # endregion Invoke-NSClearSubscribersessions # region Invoke-NSDeleteSubscriberProfile function Invoke-NSDeleteSubscriberProfile { <# .SYNOPSIS Removes a NetScaler subscriberprofile resource. .DESCRIPTION Configuration for Subscriber Profile resource. .PARAMETER Ip Subscriber ip address. .PARAMETER Vlan The vlan number on which the subscriber is located. Default value: 0 Minimum value = 0 Maximum value = 4096 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSDeleteSubscriberProfile -Ip 'example' -Vlan 1 -Confirm:$false .EXAMPLE Invoke-NSGetSubscriberProfile -Ip 'subscriberprofile_example' | Invoke-NSDeleteSubscriberProfile -Confirm:$false .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] param( [Parameter(Mandatory, Position = 0, ValueFromPipelineByPropertyName)] [string] $Ip, [Parameter()] [int] $Vlan, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) $argumentParts = @() if ($PSBoundParameters.ContainsKey('Vlan')) { $argumentParts += 'vlan:' + $Vlan } if ($argumentParts.Count -gt 0) { $query.args = $argumentParts -join ',' } if ($PSCmdlet.ShouldProcess("$Ip", 'Delete subscriberprofile')) { Invoke-NSRestRequest @transportParameters -Session $Session -Method DELETE -Task config -Type subscriberprofile -Resource $Ip -Query $query -RawResponse } } } # endregion Invoke-NSDeleteSubscriberProfile # region Invoke-NSGetSubscribergxinterface function Invoke-NSGetSubscribergxinterface { <# .SYNOPSIS Gets NetScaler subscribergxinterface configuration. .DESCRIPTION Configuration for Gx interface Parameters resource. .PARAMETER Nodeid Unique number that identifies the cluster node. Minimum value = 0 Maximum value = 31 .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetSubscribergxinterface .EXAMPLE Invoke-NSGetSubscribergxinterface -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter(ParameterSetName = 'All')] [int] $Nodeid, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } $argumentParts = @() if ($PSBoundParameters.ContainsKey('Nodeid')) { $argumentValue = $Nodeid if ($argumentValue -is [System.Management.Automation.SwitchParameter]) { $argumentValue = [bool] $argumentValue } if ($argumentValue -is [bool]) { $argumentValue = $argumentValue.ToString().ToLowerInvariant() } $argumentParts += 'nodeid:' + $argumentValue } if ($argumentParts.Count -gt 0) { $query.args = $argumentParts -join ',' } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'subscribergxinterface' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetSubscribergxinterface # region Invoke-NSGetSubscriberparam function Invoke-NSGetSubscriberparam { <# .SYNOPSIS Gets NetScaler subscriberparam configuration. .DESCRIPTION Configuration for Subscriber Params resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetSubscriberparam .EXAMPLE Invoke-NSGetSubscriberparam -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'subscriberparam' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetSubscriberparam # region Invoke-NSGetSubscriberProfile function Invoke-NSGetSubscriberProfile { <# .SYNOPSIS Gets NetScaler subscriberprofile configuration. .DESCRIPTION Configuration for Subscriber Profile resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Count Returns only the number of matching resources. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetSubscriberProfile .EXAMPLE Invoke-NSGetSubscriberProfile -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter(ParameterSetName = 'Count')] [switch] $Count, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } if ($Count) { $query.count = 'yes' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'subscriberprofile' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetSubscriberProfile # region Invoke-NSGetSubscriberRADIUSInterface function Invoke-NSGetSubscriberRADIUSInterface { <# .SYNOPSIS Gets NetScaler subscriberradiusinterface configuration. .DESCRIPTION Configuration for RADIUS interface Parameters resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetSubscriberRADIUSInterface .EXAMPLE Invoke-NSGetSubscriberRADIUSInterface -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'subscriberradiusinterface' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetSubscriberRADIUSInterface # region Invoke-NSGetSubscribersessions function Invoke-NSGetSubscribersessions { <# .SYNOPSIS Gets NetScaler subscribersessions configuration. .DESCRIPTION Configuration for subscriber sesions resource. .PARAMETER Ip Subscriber IP Address. Default value: 0 .PARAMETER Vlan The vlan number on which the subscriber is located. Default value: 0 Minimum value = 0 Maximum value = 4096 .PARAMETER Nodeid Unique number that identifies the cluster node. Minimum value = 0 Maximum value = 31 .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Count Returns only the number of matching resources. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetSubscribersessions .EXAMPLE Invoke-NSGetSubscribersessions -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter(ParameterSetName = 'All')] [string] $Ip, [Parameter(ParameterSetName = 'All')] [int] $Vlan, [Parameter(ParameterSetName = 'All')] [int] $Nodeid, [Parameter(ParameterSetName = 'Count')] [switch] $Count, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } $argumentParts = @() if ($PSBoundParameters.ContainsKey('Ip')) { $argumentValue = $Ip if ($argumentValue -is [System.Management.Automation.SwitchParameter]) { $argumentValue = [bool] $argumentValue } if ($argumentValue -is [bool]) { $argumentValue = $argumentValue.ToString().ToLowerInvariant() } $argumentParts += 'ip:' + $argumentValue } if ($PSBoundParameters.ContainsKey('Vlan')) { $argumentValue = $Vlan if ($argumentValue -is [System.Management.Automation.SwitchParameter]) { $argumentValue = [bool] $argumentValue } if ($argumentValue -is [bool]) { $argumentValue = $argumentValue.ToString().ToLowerInvariant() } $argumentParts += 'vlan:' + $argumentValue } if ($PSBoundParameters.ContainsKey('Nodeid')) { $argumentValue = $Nodeid if ($argumentValue -is [System.Management.Automation.SwitchParameter]) { $argumentValue = [bool] $argumentValue } if ($argumentValue -is [bool]) { $argumentValue = $argumentValue.ToString().ToLowerInvariant() } $argumentParts += 'nodeid:' + $argumentValue } if ($argumentParts.Count -gt 0) { $query.args = $argumentParts -join ',' } if ($ViewSummary) { $query.view = 'summary' } if ($Count) { $query.count = 'yes' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'subscribersessions' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetSubscribersessions # region Invoke-NSUnsetSubscribergxinterface function Invoke-NSUnsetSubscribergxinterface { <# .SYNOPSIS Clears one or more NetScaler subscribergxinterface resource properties. .DESCRIPTION Configuration for Gx interface Parameters resource. .PARAMETER CerRequestTimeout q!Healthcheck request timeout, in seconds, after which the Citrix ADC considers that no CCA packet received to the initiated CCR. After this time Citrix ADC should send again CCR to PCRF server. !. Default value: 0 Minimum value = 0 Maximum value = 86400 .PARAMETER HealthCheck q!Set this setting to yes if Citrix ADC should send DWR packets to PCRF server. When the session is idle, healthcheck timer expires and DWR packets are initiated in order to check that PCRF server is active. By default set to No. !. Default value: NO Possible values = YES, NO .PARAMETER HealthCheckttl q!Healthcheck timeout, in seconds, after which the DWR will be sent in order to ensure the state of the PCRF server. Any CCR, CCA, RAR or RRA message resets the timer. !. Default value: 30 Minimum value = 6 Maximum value = 86400 .PARAMETER Holdonsubscriberabsence Set this setting to yes if Citrix ADC needs to Hold pakcets till subscriber session is fetched from PCRF. Else set to NO. By default set to yes. If this setting is set to NO, then till Citrix ADC fetches subscriber from PCRF, default subscriber profile will be applied to this subscriber if configured. If default subscriber profile is also not configured an undef would be raised to expressions which use Subscriber attributes. . Default value: YES Possible values = YES, NO .PARAMETER Idlettl q!Idle Time, in seconds, after which the Gx CCR-U request will be sent after any PCRF activity on a session. Any RAR or CCA message resets the timer. Zero value disables the idle timeout. !. Default value: 900 Minimum value = 0 Maximum value = 86400 .PARAMETER Negativettl q!Negative TTL, in seconds, after which the Gx CCR-I request will be resent for sessions that have not been resolved by PCRF due to server being down or no response or failed response. Instead of polling the PCRF server constantly, negative-TTL makes Citrix ADC stick to un-resolved session. Meanwhile Citrix ADC installs a negative session to avoid going to PCRF. For Negative Sessions, Netcaler inherits the attributes from default subscriber profile if default subscriber is configured. A default subscriber could be configured as 'add subscriber profile *'. Or these attributes can be inherited from Radius as well if Radius is configued. Zero value disables the Negative Sessions. And Citrix ADC does not install Negative sessions even if subscriber session could not be fetched. !. Default value: 600 Minimum value = 0 Maximum value = 86400 .PARAMETER NegativettllimitedSuccess Set this to YES if Citrix ADC should create negative session for Result-Code DIAMETER_LIMITED_SUCCESS (2002) received in CCA-I. If set to NO, regular session is created. Default value: NO Possible values = YES, NO .PARAMETER Purgesdbongxfailure Set this setting to YES if needed to purge Subscriber Database in case of Gx failure. By default set to NO. . Default value: NO Possible values = YES, NO .PARAMETER RequestRetryattempts If the request does not complete within requestTimeout time, the request is retransmitted for requestRetryAttempts time. Default value: 3 .PARAMETER RequestTimeout q!Time, in seconds, within which the Gx CCR request must complete. If the request does not complete within this time, the request is retransmitted for requestRetryAttempts time. If still reuqest is not complete then default subscriber profile will be applied to this subscriber if configured. If default subscriber profile is also not configured an undef would be raised to expressions which use Subscriber attributes. Zero disables the timeout. !. Default value: 10 Minimum value = 0 Maximum value = 86400 .PARAMETER RevalidationTimeout q!Revalidation Timeout, in seconds, after which the Gx CCR-U request will be sent after any PCRF activity on a session. Any RAR or CCA message resets the timer. Zero value disables the idle timeout. !. Default value: 0 Minimum value = 0 Maximum value = 86400 .PARAMETER Service Name of DIAMETER/SSL_DIAMETER service corresponding to PCRF to which the Gx connection is established. The service type of the service must be DIAMETER/SSL_DIAMETER. Mutually exclusive with vserver parameter. Therefore, you cannot set both Service and the Virtual Server in the Gx Interface. Minimum length = 1 .PARAMETER ServicePathavp The AVP code in which PCRF sends service path applicable for subscriber. Minimum value = 1 .PARAMETER ServicePathvendorid The vendorid of the AVP in which PCRF sends service path for subscriber. .PARAMETER VServer Name of the load balancing, or content switching vserver to which the Gx connections are established. The service type of the virtual server must be DIAMETER/SSL_DIAMETER. Mutually exclusive with the service parameter. Therefore, you cannot set both service and the Virtual Server in the Gx Interface. Minimum length = 1 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetSubscribergxinterface -CerRequestTimeout -PassThru .EXAMPLE Invoke-NSUnsetSubscribergxinterface -CerRequestTimeout -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [switch] $CerRequestTimeout, [Parameter()] [ValidateSet('YES', 'NO')] [switch] $HealthCheck, [Parameter()] [switch] $HealthCheckttl, [Parameter()] [ValidateSet('YES', 'NO')] [switch] $Holdonsubscriberabsence, [Parameter()] [switch] $Idlettl, [Parameter()] [switch] $Negativettl, [Parameter()] [ValidateSet('YES', 'NO')] [switch] $NegativettllimitedSuccess, [Parameter()] [ValidateSet('YES', 'NO')] [switch] $Purgesdbongxfailure, [Parameter()] [switch] $RequestRetryattempts, [Parameter()] [switch] $RequestTimeout, [Parameter()] [switch] $RevalidationTimeout, [Parameter()] [switch] $Service, [Parameter()] [switch] $ServicePathavp, [Parameter()] [switch] $ServicePathvendorid, [Parameter()] [switch] $VServer, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{} if ($PSBoundParameters.ContainsKey('CerRequestTimeout')) { $body['cerrequesttimeout'] = $true } if ($PSBoundParameters.ContainsKey('HealthCheck')) { $body['healthcheck'] = $true } if ($PSBoundParameters.ContainsKey('HealthCheckttl')) { $body['healthcheckttl'] = $true } if ($PSBoundParameters.ContainsKey('Holdonsubscriberabsence')) { $body['holdonsubscriberabsence'] = $true } if ($PSBoundParameters.ContainsKey('Idlettl')) { $body['idlettl'] = $true } if ($PSBoundParameters.ContainsKey('Negativettl')) { $body['negativettl'] = $true } if ($PSBoundParameters.ContainsKey('NegativettllimitedSuccess')) { $body['negativettllimitedsuccess'] = $true } if ($PSBoundParameters.ContainsKey('Purgesdbongxfailure')) { $body['purgesdbongxfailure'] = $true } if ($PSBoundParameters.ContainsKey('RequestRetryattempts')) { $body['requestretryattempts'] = $true } if ($PSBoundParameters.ContainsKey('RequestTimeout')) { $body['requesttimeout'] = $true } if ($PSBoundParameters.ContainsKey('RevalidationTimeout')) { $body['revalidationtimeout'] = $true } if ($PSBoundParameters.ContainsKey('Service')) { $body['service'] = $true } if ($PSBoundParameters.ContainsKey('ServicePathavp')) { $body['servicepathavp'] = $true } if ($PSBoundParameters.ContainsKey('ServicePathvendorid')) { $body['servicepathvendorid'] = $true } if ($PSBoundParameters.ContainsKey('VServer')) { $body['vserver'] = $true } if ($body.Count -le 0) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess('subscribergxinterface', 'Clear subscribergxinterface properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscribergxinterface -Action unset -Payload @{ subscribergxinterface = $body } -RawResponse return $response } } } # endregion Invoke-NSUnsetSubscribergxinterface # region Invoke-NSUnsetSubscriberparam function Invoke-NSUnsetSubscriberparam { <# .SYNOPSIS Clears one or more NetScaler subscriberparam resource properties. .DESCRIPTION Configuration for Subscriber Params resource. .PARAMETER IdleAction q!Once idleTTL exprires on a subscriber session, Citrix ADC will take an idle action on that session. idleAction could be chosen from one of these ==> 1. ccrTerminate: (default) send CCR-T to inform PCRF about session termination and delete the session. 2. delete: Just delete the subscriber session without informing PCRF. 3. ccrUpdate: Do not delete the session and instead send a CCR-U to PCRF requesting for an updated session. !. Default value: ccrTerminate Possible values = ccrTerminate, delete, ccrUpdate .PARAMETER Idlettl q!Idle Timeout, in seconds, after which Citrix ADC will take an idleAction on a subscriber session (refer to 'idleAction' arguement in 'set subscriber param' for more details on idleAction). Any data-plane or control plane activity updates the idleTimeout on subscriber session. idleAction could be to 'just delete the session' or 'delete and CCR-T' (if PCRF is configured) or 'do not delete but send a CCR-U'. Zero value disables the idle timeout. !. Default value: 0 Minimum value = 0 Maximum value = 172800 .PARAMETER InterfaceType Subscriber Interface refers to Citrix ADC interaction with control plane protocols, RADIUS and GX. Types of subscriber interface: NONE, RadiusOnly, RadiusAndGx, GxOnly. NONE: Only static subscribers can be configured. RadiusOnly: GX interface is absent. Subscriber information is obtained through RADIUS Accounting messages. RadiusAndGx: Subscriber ID obtained through RADIUS Accounting is used to query PCRF. Subscriber information is obtained from both RADIUS and PCRF. GxOnly: RADIUS interface is absent. Subscriber information is queried using Subscriber IP or IP+VLAN. Default value: None Possible values = None, RadiusOnly, RadiusAndGx, GxOnly .PARAMETER KeyType Type of subscriber key type IP or IPANDVLAN. IPANDVLAN option can be used only when the interfaceType is set to gxOnly. Changing the lookup method should result to the subscriber session database being flushed. Default value: IP Possible values = IP, IPANDVLAN .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetSubscriberparam -IdleAction ccrTerminate -PassThru .EXAMPLE Invoke-NSUnsetSubscriberparam -IdleAction ccrTerminate -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [ValidateSet('ccrTerminate', 'delete', 'ccrUpdate')] [switch] $IdleAction, [Parameter()] [switch] $Idlettl, [Parameter()] [ValidateSet('None', 'RadiusOnly', 'RadiusAndGx', 'GxOnly')] [switch] $InterfaceType, [Parameter()] [ValidateSet('IP', 'IPANDVLAN')] [switch] $KeyType, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{} if ($PSBoundParameters.ContainsKey('IdleAction')) { $body['idleaction'] = $true } if ($PSBoundParameters.ContainsKey('Idlettl')) { $body['idlettl'] = $true } if ($PSBoundParameters.ContainsKey('InterfaceType')) { $body['interfacetype'] = $true } if ($PSBoundParameters.ContainsKey('KeyType')) { $body['keytype'] = $true } if ($body.Count -le 0) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess('subscriberparam', 'Clear subscriberparam properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscriberparam -Action unset -Payload @{ subscriberparam = $body } -RawResponse return $response } } } # endregion Invoke-NSUnsetSubscriberparam # region Invoke-NSUnsetSubscriberProfile function Invoke-NSUnsetSubscriberProfile { <# .SYNOPSIS Clears one or more NetScaler subscriberprofile resource properties. .DESCRIPTION Configuration for Subscriber Profile resource. .PARAMETER Ip Subscriber ip address. .PARAMETER ServicePath Name of the servicepath to be taken for this subscriber. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetSubscriberProfile -Ip 'example' -ServicePath -PassThru .EXAMPLE Invoke-NSUnsetSubscriberProfile -Ip 'example' -ServicePath -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(Mandatory, Position = 0, ValueFromPipelineByPropertyName)] [string] $Ip, [Parameter()] [switch] $ServicePath, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{ ip = $Ip } if ($PSBoundParameters.ContainsKey('ServicePath')) { $body['servicepath'] = $true } if ($body.Count -le 1) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess("$Ip", 'Clear subscriberprofile properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscriberprofile -Action unset -Payload @{ subscriberprofile = $body } -RawResponse if ($PassThru) { return Invoke-NSGetSubscriberProfile -Ip $Ip -Session $Session } return $response } } } # endregion Invoke-NSUnsetSubscriberProfile # region Invoke-NSUnsetSubscriberRADIUSInterface function Invoke-NSUnsetSubscriberRADIUSInterface { <# .SYNOPSIS Clears one or more NetScaler subscriberradiusinterface resource properties. .DESCRIPTION Configuration for RADIUS interface Parameters resource. .PARAMETER RADIUSInterimasstart Treat radius interim message as start radius messages. Default value: DISABLED Possible values = ENABLED, DISABLED .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetSubscriberRADIUSInterface -RADIUSInterimasstart ENABLED -PassThru .EXAMPLE Invoke-NSUnsetSubscriberRADIUSInterface -RADIUSInterimasstart ENABLED -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [ValidateSet('ENABLED', 'DISABLED')] [switch] $RADIUSInterimasstart, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{} if ($PSBoundParameters.ContainsKey('RADIUSInterimasstart')) { $body['radiusinterimasstart'] = $true } if ($body.Count -le 0) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess('subscriberradiusinterface', 'Clear subscriberradiusinterface properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type subscriberradiusinterface -Action unset -Payload @{ subscriberradiusinterface = $body } -RawResponse return $response } } } # endregion Invoke-NSUnsetSubscriberRADIUSInterface # region Invoke-NSUpdateSubscribergxinterface function Invoke-NSUpdateSubscribergxinterface { <# .SYNOPSIS Updates a NetScaler subscribergxinterface resource. .DESCRIPTION Configuration for Gx interface Parameters resource. .PARAMETER CerRequestTimeout q!Healthcheck request timeout, in seconds, after which the Citrix ADC considers that no CCA packet received to the initiated CCR. After this time Citrix ADC should send again CCR to PCRF server. !. Default value: 0 Minimum value = 0 Maximum value = 86400 .PARAMETER HealthCheck q!Set this setting to yes if Citrix ADC should send DWR packets to PCRF server. When the session is idle, healthcheck timer expires and DWR packets are initiated in order to check that PCRF server is active. By default set to No. !. Default value: NO Possible values = YES, NO .PARAMETER HealthCheckttl q!Healthcheck timeout, in seconds, after which the DWR will be sent in order to ensure the state of the PCRF server. Any CCR, CCA, RAR or RRA message resets the timer. !. Default value: 30 Minimum value = 6 Maximum value = 86400 .PARAMETER Holdonsubscriberabsence Set this setting to yes if Citrix ADC needs to Hold pakcets till subscriber session is fetched from PCRF. Else set to NO. By default set to yes. If this setting is set to NO, then till Citrix ADC fetches subscriber from PCRF, default subscriber profile will be applied to this subscriber if configured. If default subscriber profile is also not configured an undef would be raised to expressions which use Subscriber attributes. . Default value: YES Possible values = YES, NO .PARAMETER Idlettl q!Idle Time, in seconds, after which the Gx CCR-U request will be sent after any PCRF activity on a session. Any RAR or CCA message resets the timer. Zero value disables the idle timeout. !. Default value: 900 Minimum value = 0 Maximum value = 86400 .PARAMETER Negativettl q!Negative TTL, in seconds, after which the Gx CCR-I request will be resent for sessions that have not been resolved by PCRF due to server being down or no response or failed response. Instead of polling the PCRF server constantly, negative-TTL makes Citrix ADC stick to un-resolved session. Meanwhile Citrix ADC installs a negative session to avoid going to PCRF. For Negative Sessions, Netcaler inherits the attributes from default subscriber profile if default subscriber is configured. A default subscriber could be configured as 'add subscriber profile *'. Or these attributes can be inherited from Radius as well if Radius is configued. Zero value disables the Negative Sessions. And Citrix ADC does not install Negative sessions even if subscriber session could not be fetched. !. Default value: 600 Minimum value = 0 Maximum value = 86400 .PARAMETER NegativettllimitedSuccess Set this to YES if Citrix ADC should create negative session for Result-Code DIAMETER_LIMITED_SUCCESS (2002) received in CCA-I. If set to NO, regular session is created. Default value: NO Possible values = YES, NO .PARAMETER Pcrfrealm PCRF realm is of type DiameterIdentity and contains the realm of PCRF to which the message is to be routed. This is the realm used in Destination-Realm AVP by Citrix ADC Gx client (as a Diameter node). Minimum length = 1 .PARAMETER Purgesdbongxfailure Set this setting to YES if needed to purge Subscriber Database in case of Gx failure. By default set to NO. . Default value: NO Possible values = YES, NO .PARAMETER RequestRetryattempts If the request does not complete within requestTimeout time, the request is retransmitted for requestRetryAttempts time. Default value: 3 .PARAMETER RequestTimeout q!Time, in seconds, within which the Gx CCR request must complete. If the request does not complete within this time, the request is retransmitted for requestRetryAttempts time. If still reuqest is not complete then default subscriber profile will be applied to this subscriber if configured. If default subscriber profile is also not configured an undef would be raised to expressions which use Subscriber attributes. Zero disables the timeout. !. Default value: 10 Minimum value = 0 Maximum value = 86400 .PARAMETER RevalidationTimeout q!Revalidation Timeout, in seconds, after which the Gx CCR-U request will be sent after any PCRF activity on a session. Any RAR or CCA message resets the timer. Zero value disables the idle timeout. !. Default value: 0 Minimum value = 0 Maximum value = 86400 .PARAMETER Service Name of DIAMETER/SSL_DIAMETER service corresponding to PCRF to which the Gx connection is established. The service type of the service must be DIAMETER/SSL_DIAMETER. Mutually exclusive with vserver parameter. Therefore, you cannot set both Service and the Virtual Server in the Gx Interface. Minimum length = 1 .PARAMETER ServicePathavp The AVP code in which PCRF sends service path applicable for subscriber. Minimum value = 1 .PARAMETER ServicePathvendorid The vendorid of the AVP in which PCRF sends service path for subscriber. .PARAMETER VServer Name of the load balancing, or content switching vserver to which the Gx connections are established. The service type of the virtual server must be DIAMETER/SSL_DIAMETER. Mutually exclusive with the service parameter. Therefore, you cannot set both service and the Virtual Server in the Gx Interface. Minimum length = 1 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateSubscribergxinterface -PassThru .EXAMPLE Invoke-NSUpdateSubscribergxinterface -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [int] $CerRequestTimeout, [Parameter()] [ValidateSet('YES', 'NO')] [string] $HealthCheck, [Parameter()] [int] $HealthCheckttl, [Parameter()] [ValidateSet('YES', 'NO')] [string] $Holdonsubscriberabsence, [Parameter()] [int] $Idlettl, [Parameter()] [int] $Negativettl, [Parameter()] [ValidateSet('YES', 'NO')] [string] $NegativettllimitedSuccess, [Parameter()] [string] $Pcrfrealm, [Parameter()] [ValidateSet('YES', 'NO')] [string] $Purgesdbongxfailure, [Parameter()] [int] $RequestRetryattempts, [Parameter()] [int] $RequestTimeout, [Parameter()] [int] $RevalidationTimeout, [Parameter()] [string] $Service, [Parameter()] [string] $ServicePathavp, [Parameter()] [int] $ServicePathvendorid, [Parameter()] [string] $VServer, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('CerRequestTimeout')) { $properties['cerrequesttimeout'] = $CerRequestTimeout } if ($PSBoundParameters.ContainsKey('HealthCheck')) { $properties['healthcheck'] = $HealthCheck } if ($PSBoundParameters.ContainsKey('HealthCheckttl')) { $properties['healthcheckttl'] = $HealthCheckttl } if ($PSBoundParameters.ContainsKey('Holdonsubscriberabsence')) { $properties['holdonsubscriberabsence'] = $Holdonsubscriberabsence } if ($PSBoundParameters.ContainsKey('Idlettl')) { $properties['idlettl'] = $Idlettl } if ($PSBoundParameters.ContainsKey('Negativettl')) { $properties['negativettl'] = $Negativettl } if ($PSBoundParameters.ContainsKey('NegativettllimitedSuccess')) { $properties['negativettllimitedsuccess'] = $NegativettllimitedSuccess } if ($PSBoundParameters.ContainsKey('Pcrfrealm')) { $properties['pcrfrealm'] = $Pcrfrealm } if ($PSBoundParameters.ContainsKey('Purgesdbongxfailure')) { $properties['purgesdbongxfailure'] = $Purgesdbongxfailure } if ($PSBoundParameters.ContainsKey('RequestRetryattempts')) { $properties['requestretryattempts'] = $RequestRetryattempts } if ($PSBoundParameters.ContainsKey('RequestTimeout')) { $properties['requesttimeout'] = $RequestTimeout } if ($PSBoundParameters.ContainsKey('RevalidationTimeout')) { $properties['revalidationtimeout'] = $RevalidationTimeout } if ($PSBoundParameters.ContainsKey('Service')) { $properties['service'] = $Service } if ($PSBoundParameters.ContainsKey('ServicePathavp')) { $properties['servicepathavp'] = $ServicePathavp } if ($PSBoundParameters.ContainsKey('ServicePathvendorid')) { $properties['servicepathvendorid'] = $ServicePathvendorid } if ($PSBoundParameters.ContainsKey('VServer')) { $properties['vserver'] = $VServer } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess('subscribergxinterface', 'Update subscribergxinterface')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type subscribergxinterface -Payload @{ subscribergxinterface = $body } -RawResponse return $response } } # endregion Invoke-NSUpdateSubscribergxinterface # region Invoke-NSUpdateSubscriberparam function Invoke-NSUpdateSubscriberparam { <# .SYNOPSIS Updates a NetScaler subscriberparam resource. .DESCRIPTION Configuration for Subscriber Params resource. .PARAMETER IdleAction q!Once idleTTL exprires on a subscriber session, Citrix ADC will take an idle action on that session. idleAction could be chosen from one of these ==> 1. ccrTerminate: (default) send CCR-T to inform PCRF about session termination and delete the session. 2. delete: Just delete the subscriber session without informing PCRF. 3. ccrUpdate: Do not delete the session and instead send a CCR-U to PCRF requesting for an updated session. !. Default value: ccrTerminate Possible values = ccrTerminate, delete, ccrUpdate .PARAMETER Idlettl q!Idle Timeout, in seconds, after which Citrix ADC will take an idleAction on a subscriber session (refer to 'idleAction' arguement in 'set subscriber param' for more details on idleAction). Any data-plane or control plane activity updates the idleTimeout on subscriber session. idleAction could be to 'just delete the session' or 'delete and CCR-T' (if PCRF is configured) or 'do not delete but send a CCR-U'. Zero value disables the idle timeout. !. Default value: 0 Minimum value = 0 Maximum value = 172800 .PARAMETER InterfaceType Subscriber Interface refers to Citrix ADC interaction with control plane protocols, RADIUS and GX. Types of subscriber interface: NONE, RadiusOnly, RadiusAndGx, GxOnly. NONE: Only static subscribers can be configured. RadiusOnly: GX interface is absent. Subscriber information is obtained through RADIUS Accounting messages. RadiusAndGx: Subscriber ID obtained through RADIUS Accounting is used to query PCRF. Subscriber information is obtained from both RADIUS and PCRF. GxOnly: RADIUS interface is absent. Subscriber information is queried using Subscriber IP or IP+VLAN. Default value: None Possible values = None, RadiusOnly, RadiusAndGx, GxOnly .PARAMETER IPv6Prefixlookuplist The ipv6PrefixLookupList should consist of all the ipv6 prefix lengths assigned to the UE's'. Minimum value = 1 Maximum value = 128 .PARAMETER KeyType Type of subscriber key type IP or IPANDVLAN. IPANDVLAN option can be used only when the interfaceType is set to gxOnly. Changing the lookup method should result to the subscriber session database being flushed. Default value: IP Possible values = IP, IPANDVLAN .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateSubscriberparam -PassThru .EXAMPLE Invoke-NSUpdateSubscriberparam -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [ValidateSet('ccrTerminate', 'delete', 'ccrUpdate')] [string] $IdleAction, [Parameter()] [int] $Idlettl, [Parameter()] [ValidateSet('None', 'RadiusOnly', 'RadiusAndGx', 'GxOnly')] [string] $InterfaceType, [Parameter()] [string] $IPv6Prefixlookuplist, [Parameter()] [ValidateSet('IP', 'IPANDVLAN')] [string] $KeyType, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('IdleAction')) { $properties['idleaction'] = $IdleAction } if ($PSBoundParameters.ContainsKey('Idlettl')) { $properties['idlettl'] = $Idlettl } if ($PSBoundParameters.ContainsKey('InterfaceType')) { $properties['interfacetype'] = $InterfaceType } if ($PSBoundParameters.ContainsKey('IPv6Prefixlookuplist')) { $properties['ipv6prefixlookuplist'] = $IPv6Prefixlookuplist } if ($PSBoundParameters.ContainsKey('KeyType')) { $properties['keytype'] = $KeyType } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess('subscriberparam', 'Update subscriberparam')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type subscriberparam -Payload @{ subscriberparam = $body } -RawResponse return $response } } # endregion Invoke-NSUpdateSubscriberparam # region Invoke-NSUpdateSubscriberProfile function Invoke-NSUpdateSubscriberProfile { <# .SYNOPSIS Updates a NetScaler subscriberprofile resource. .DESCRIPTION Configuration for Subscriber Profile resource. .PARAMETER Ip Subscriber ip address. .PARAMETER ServicePath Name of the servicepath to be taken for this subscriber. .PARAMETER Subscriberrules Rules configured for this subscriber. This is similar to rules received from PCRF for dynamic subscriber sessions. .PARAMETER SubscriptionidType Subscription-Id type. Possible values = E164, IMSI, SIP_URI, NAI, PRIVATE .PARAMETER Subscriptionidvalue Subscription-Id value. .PARAMETER Vlan The vlan number on which the subscriber is located. Default value: 0 Minimum value = 0 Maximum value = 4096 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateSubscriberProfile -Ip 'example' -PassThru .EXAMPLE Invoke-NSUpdateSubscriberProfile -Ip 'example' -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(Mandatory, Position = 0)] [string] $Ip, [Parameter()] [string] $ServicePath, [Parameter()] [string[]] $Subscriberrules, [Parameter()] [ValidateSet('E164', 'IMSI', 'SIP_URI', 'NAI', 'PRIVATE')] [string] $SubscriptionidType, [Parameter()] [string] $Subscriptionidvalue, [Parameter()] [int] $Vlan, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('Ip')) { $properties['ip'] = $Ip } if ($PSBoundParameters.ContainsKey('ServicePath')) { $properties['servicepath'] = $ServicePath } if ($PSBoundParameters.ContainsKey('Subscriberrules')) { $properties['subscriberrules'] = $Subscriberrules } if ($PSBoundParameters.ContainsKey('SubscriptionidType')) { $properties['subscriptionidtype'] = $SubscriptionidType } if ($PSBoundParameters.ContainsKey('Subscriptionidvalue')) { $properties['subscriptionidvalue'] = $Subscriptionidvalue } if ($PSBoundParameters.ContainsKey('Vlan')) { $properties['vlan'] = $Vlan } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess("$Ip", 'Update subscriberprofile')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type subscriberprofile -Payload @{ subscriberprofile = $body } -RawResponse if ($PassThru) { return Invoke-NSGetSubscriberProfile -Ip $Ip -Session $Session } return $response } } # endregion Invoke-NSUpdateSubscriberProfile # region Invoke-NSUpdateSubscriberRADIUSInterface function Invoke-NSUpdateSubscriberRADIUSInterface { <# .SYNOPSIS Updates a NetScaler subscriberradiusinterface resource. .DESCRIPTION Configuration for RADIUS interface Parameters resource. .PARAMETER ListenIngService Name of RADIUS LISTENING service that will process RADIUS accounting requests. Minimum length = 1 .PARAMETER RADIUSInterimasstart Treat radius interim message as start radius messages. Default value: DISABLED Possible values = ENABLED, DISABLED .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateSubscriberRADIUSInterface -PassThru .EXAMPLE Invoke-NSUpdateSubscriberRADIUSInterface -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [string] $ListenIngService, [Parameter()] [ValidateSet('ENABLED', 'DISABLED')] [string] $RADIUSInterimasstart, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('ListenIngService')) { $properties['listeningservice'] = $ListenIngService } if ($PSBoundParameters.ContainsKey('RADIUSInterimasstart')) { $properties['radiusinterimasstart'] = $RADIUSInterimasstart } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess('subscriberradiusinterface', 'Update subscriberradiusinterface')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type subscriberradiusinterface -Payload @{ subscriberradiusinterface = $body } -RawResponse return $response } } # endregion Invoke-NSUpdateSubscriberRADIUSInterface # SIG # Begin signature block # MIImdwYJKoZIhvcNAQcCoIImaDCCJmQCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAv0z98ga+5dsie # U7raROVLyqlKxXAtM2tfoc5SwdXyBaCCIAowggYUMIID/KADAgECAhB6I67aU2mW # D5HIPlz0x+M/MA0GCSqGSIb3DQEBDAUAMFcxCzAJBgNVBAYTAkdCMRgwFgYDVQQK # Ew9TZWN0aWdvIExpbWl0ZWQxLjAsBgNVBAMTJVNlY3RpZ28gUHVibGljIFRpbWUg # U3RhbXBpbmcgUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5 # WjBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSwwKgYD # VQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFIzNjCCAaIwDQYJ # KoZIhvcNAQEBBQADggGPADCCAYoCggGBAM2Y2ENBq26CK+z2M34mNOSJjNPvIhKA # VD7vJq+MDoGD46IiM+b83+3ecLvBhStSVjeYXIjfa3ajoW3cS3ElcJzkyZlBnwDE # JuHlzpbN4kMH2qRBVrjrGJgSlzzUqcGQBaCxpectRGhhnOSwcjPMI3G0hedv2eNm # GiUbD12OeORN0ADzdpsQ4dDi6M4YhoGE9cbY11XxM2AVZn0GiOUC9+XE0wI7CQKf # OUfigLDn7i/WeyxZ43XLj5GVo7LDBExSLnh+va8WxTlA+uBvq1KO8RSHUQLgzb1g # bL9Ihgzxmkdp2ZWNuLc+XyEmJNbD2OIIq/fWlwBp6KNL19zpHsODLIsgZ+WZ1AzC # s1HEK6VWrxmnKyJJg2Lv23DlEdZlQSGdF+z+Gyn9/CRezKe7WNyxRf4e4bwUtrYE # 2F5Q+05yDD68clwnweckKtxRaF0VzN/w76kOLIaFVhf5sMM/caEZLtOYqYadtn03 # 4ykSFaZuIBU9uCSrKRKTPJhWvXk4CllgrwIDAQABo4IBXDCCAVgwHwYDVR0jBBgw # FoAU9ndq3T/9ARP/FqFsggIv0Ao9FCUwHQYDVR0OBBYEFF9Y7UwxeqJhQo1SgLqz # YZcZojKbMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1Ud # JQQMMAoGCCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYEVR0gADBMBgNVHR8ERTBDMEGg # P6A9hjtodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3Rh # bXBpbmdSb290UjQ2LmNybDB8BggrBgEFBQcBAQRwMG4wRwYIKwYBBQUHMAKGO2h0 # dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY1RpbWVTdGFtcGluZ1Jv # b3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTAN # BgkqhkiG9w0BAQwFAAOCAgEAEtd7IK0ONVgMnoEdJVj9TC1ndK/HYiYh9lVUacah # RoZ2W2hfiEOyQExnHk1jkvpIJzAMxmEc6ZvIyHI5UkPCbXKspioYMdbOnBWQUn73 # 3qMooBfIghpR/klUqNxx6/fDXqY0hSU1OSkkSivt51UlmJElUICZYBodzD3M/SFj # eCP59anwxs6hwj1mfvzG+b1coYGnqsSz2wSKr+nDO+Db8qNcTbJZRAiSazr7KyUJ # Go1c+MScGfG5QHV+bps8BX5Oyv9Ct36Y4Il6ajTqV2ifikkVtB3RNBUgwu/mSiSU # ice/Jp/q8BMk/gN8+0rNIE+QqU63JoVMCMPY2752LmESsRVVoypJVt8/N3qQ1c6F # ibbcRabo3azZkcIdWGVSAdoLgAIxEKBeNh9AQO1gQrnh1TA8ldXuJzPSuALOz1Uj # b0PCyNVkWk7hkhVHfcvBfI8NtgWQupiaAeNHe0pWSGH2opXZYKYG4Lbukg7HpNi/ # KqJhue2Keak6qH9A8CeEOB7Eob0Zf+fU+CCQaL0cJqlmnx9HCDxF+3BLbUufrV64 # EbTI40zqegPZdA+sXCmbcZy6okx/SjwsusWRItFA3DE8MORZeFb6BmzBtqKJ7l93 # 9bbKBy2jvxcJI98Va95Q5JnlKor3m0E7xpMeYRriWklUPsetMSf2NvUQa/E5vVye # fQIwggZFMIIELaADAgECAhAIMk+dt9qRb2Pk8qM8Xl1RMA0GCSqGSIb3DQEBCwUA # MFYxCzAJBgNVBAYTAlBMMSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMu # QS4xJDAiBgNVBAMTG0NlcnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQTAeFw0yNDA0 # MDQxNDA0MjRaFw0yNzA0MDQxNDA0MjNaMGsxCzAJBgNVBAYTAk5MMRIwEAYDVQQH # DAlTY2hpam5kZWwxIzAhBgNVBAoMGkpvaG4gQmlsbGVrZW5zIENvbnN1bHRhbmN5 # MSMwIQYDVQQDDBpKb2huIEJpbGxla2VucyBDb25zdWx0YW5jeTCCAaIwDQYJKoZI # hvcNAQEBBQADggGPADCCAYoCggGBAMslntDbSQwHZXwFhmibivbnd0Qfn6sqe/6f # os3pKzKxEsR907RkDMet2x6RRg3eJkiIr3TFPwqBooyXXgK3zxxpyhGOcuIqyM9J # 28DVf4kUyZHsjGO/8HFjrr3K1hABNUszP0o7H3o6J31eqV1UmCXYhQlNoW9FOmRC # 1amlquBmh7w4EKYEytqdmdOBavAD5Xq4vLPxNP6kyA+B2YTtk/xM27TghtbwFGKn # u9Vwnm7dFcpLxans4ONt2OxDQOMA5NwgcUv/YTpjhq9qoz6ivG55NRJGNvUXsM3w # 2o7dR6Xh4MuEGrTSrOWGg2A5EcLH1XqQtkF5cZnAPM8W/9HUp8ggornWnFVQ9/6M # ga+ermy5wy5XrmQpN+x3u6tit7xlHk1Hc+4XY4a4ie3BPXG2PhJhmZAn4ebNSBwN # Hh8z7WTT9X9OFERepGSytZVeEP7hgyptSLcuhpwWeR4QdBb7dV++4p3PsAUQVHFp # wkSbrRTv4EiJ0Lcz9P1HPGFoHiFAQQIDAQABo4IBeDCCAXQwDAYDVR0TAQH/BAIw # ADA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY2NzY2EyMDIxLmNybC5jZXJ0dW0u # cGwvY2NzY2EyMDIxLmNybDBzBggrBgEFBQcBAQRnMGUwLAYIKwYBBQUHMAGGIGh0 # dHA6Ly9jY3NjYTIwMjEub2NzcC1jZXJ0dW0uY29tMDUGCCsGAQUFBzAChilodHRw # Oi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY2NzY2EyMDIxLmNlcjAfBgNVHSMEGDAW # gBTddF1MANt7n6B0yrFu9zzAMsBwzTAdBgNVHQ4EFgQUO6KtBpOBgmrlANVAnyiQ # C6W6lJwwSwYDVR0gBEQwQjAIBgZngQwBBAEwNgYLKoRoAYb2dwIFAQQwJzAlBggr # BgEFBQcCARYZaHR0cHM6Ly93d3cuY2VydHVtLnBsL0NQUzATBgNVHSUEDDAKBggr # BgEFBQcDAzAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAEQsN8wg # PMdWVkwHPPTN+jKpdns5AKVFjcn00psf2NGVVgWWNQBIQc9lEuTBWb54IK6Ga3hx # QRZfnPNo5HGl73YLmFgdFQrFzZ1lnaMdIcyh8LTWv6+XNWfoyCM9wCp4zMIDPOs8 # LKSMQqA/wRgqiACWnOS4a6fyd5GUIAm4CuaptpFYr90l4Dn/wAdXOdY32UhgzmSu # xpUbhD8gVJUaBNVmQaRqeU8y49MxiVrUKJXde1BCrtR9awXbqembc7Nqvmi60tYK # lD27hlpKtj6eGPjkht0hHEsgzU0Fxw7ZJghYG2wXfpF2ziN893ak9Mi/1dmCNmor # GOnybKYfT6ff6YTCDDNkod4egcMZdOSv+/Qv+HAeIgEvrxE9QsGlzTwbRtbm6gwY # YcVBs/SsVUdBn/TSB35MMxRhHE5iC3aUTkDbceo/XP3uFhVL4g2JZHpFfCSu2TQr # rzRn2sn07jfMvzeHArCOJgBW1gPqR3WrJ4hUxL06Rbg1gs9tU5HGGz9KNQMfQFQ7 # 0Wz7UIhezGcFcRfkIfSkMmQYYpsc7rfzj+z0ThfDVzzJr2dMOFsMlfj1T6l22GBq # 9XQx0A4lcc5Fl9pRxbOuHHWFqIBD/BCEhwniOCySzqENd2N+oz8znKooSISStnkN # aYXt6xblJF2dx9Dn89FK7d1IquNxOwt0tI5dMIIGYjCCBMqgAwIBAgIRAKQpO24e # 3denNAiHrXpOtyQwDQYJKoZIhvcNAQEMBQAwVTELMAkGA1UEBhMCR0IxGDAWBgNV # BAoTD1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQdWJsaWMgVGlt # ZSBTdGFtcGluZyBDQSBSMzYwHhcNMjUwMzI3MDAwMDAwWhcNMzYwMzIxMjM1OTU5 # WjByMQswCQYDVQQGEwJHQjEXMBUGA1UECBMOV2VzdCBZb3Jrc2hpcmUxGDAWBgNV # BAoTD1NlY3RpZ28gTGltaXRlZDEwMC4GA1UEAxMnU2VjdGlnbyBQdWJsaWMgVGlt # ZSBTdGFtcGluZyBTaWduZXIgUjM2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC # CgKCAgEA04SV9G6kU3jyPRBLeBIHPNyUgVNnYayfsGOyYEXrn3+SkDYTLs1crcw/ # ol2swE1TzB2aR/5JIjKNf75QBha2Ddj+4NEPKDxHEd4dEn7RTWMcTIfm492TW22I # 8LfH+A7Ehz0/safc6BbsNBzjHTt7FngNfhfJoYOrkugSaT8F0IzUh6VUwoHdYDpi # ln9dh0n0m545d5A5tJD92iFAIbKHQWGbCQNYplqpAFasHBn77OqW37P9BhOASdmj # p3IijYiFdcA0WQIe60vzvrk0HG+iVcwVZjz+t5OcXGTcxqOAzk1frDNZ1aw8nFhG # EvG0ktJQknnJZE3D40GofV7O8WzgaAnZmoUn4PCpvH36vD4XaAF2CjiPsJWiY/j2 # xLsJuqx3JtuI4akH0MmGzlBUylhXvdNVXcjAuIEcEQKtOBR9lU4wXQpISrbOT8ux # +96GzBq8TdbhoFcmYaOBZKlwPP7pOp5Mzx/UMhyBA93PQhiCdPfIVOCINsUY4U23 # p4KJ3F1HqP3H6Slw3lHACnLilGETXRg5X/Fp8G8qlG5Y+M49ZEGUp2bneRLZoyHT # yynHvFISpefhBCV0KdRZHPcuSL5OAGWnBjAlRtHvsMBrI3AAA0Tu1oGvPa/4yeei # Ayu+9y3SLC98gDVbySnXnkujjhIh+oaatsk/oyf5R2vcxHahajMCAwEAAaOCAY4w # ggGKMB8GA1UdIwQYMBaAFF9Y7UwxeqJhQo1SgLqzYZcZojKbMB0GA1UdDgQWBBSI # YYyhKjdkgShgoZsx0Iz9LALOTzAOBgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIw # ADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEB # AgEDCDAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZn # gQwBBAIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5zZWN0aWdvLmNvbS9T # ZWN0aWdvUHVibGljVGltZVN0YW1waW5nQ0FSMzYuY3JsMHoGCCsGAQUFBwEBBG4w # bDBFBggrBgEFBQcwAoY5aHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVi # bGljVGltZVN0YW1waW5nQ0FSMzYuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz # cC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAYEAAoE+pIZyUSH5ZakuPVKK # 4eWbzEsTRJOEjbIu6r7vmzXXLpJx4FyGmcqnFZoa1dzx3JrUCrdG5b//LfAxOGy9 # Ph9JtrYChJaVHrusDh9NgYwiGDOhyyJ2zRy3+kdqhwtUlLCdNjFjakTSE+hkC9F5 # ty1uxOoQ2ZkfI5WM4WXA3ZHcNHB4V42zi7Jk3ktEnkSdViVxM6rduXW0jmmiu71Z # pBFZDh7Kdens+PQXPgMqvzodgQJEkxaION5XRCoBxAwWwiMm2thPDuZTzWp/gUFz # i7izCmEt4pE3Kf0MOt3ccgwn4Kl2FIcQaV55nkjv1gODcHcD9+ZVjYZoyKTVWb4V # qMQy/j8Q3aaYd/jOQ66Fhk3NWbg2tYl5jhQCuIsE55Vg4N0DUbEWvXJxtxQQaVR5 # xzhEI+BjJKzh3TQ026JxHhr2fuJ0mV68AluFr9qshgwS5SpN5FFtaSEnAwqZv3IS # +mlG50rK7W3qXbWwi4hmpylUfygtYLEdLQukNEX1jiOKMIIGgjCCBGqgAwIBAgIQ # NsKwvXwbOuejs902y8l1aDANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UEBhMCVVMx # EzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYD # VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBS # U0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjEwMzIyMDAwMDAwWhcNMzgw # MTE4MjM1OTU5WjBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p # dGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3Qg # UjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiJ3YuUVnnR3d6Lkm # gZpUVMB8SQWbzFoVD9mUEES0QUCBdxSZqdTkdizICFNeINCSJS+lV1ipnW5ihkQy # C0cRLWXUJzodqpnMRs46npiJPHrfLBOifjfhpdXJ2aHHsPHggGsCi7uE0awqKggE # /LkYw3sqaBia67h/3awoqNvGqiFRJ+OTWYmUCO2GAXsePHi+/JUNAax3kpqstbl3 # vcTdOGhtKShvZIvjwulRH87rbukNyHGWX5tNK/WABKf+Gnoi4cmisS7oSimgHUI0 # Wn/4elNd40BFdSZ1EwpuddZ+Wr7+Dfo0lcHflm/FDDrOJ3rWqauUP8hsokDoI7D/ # yUVI9DAE/WK3Jl3C4LKwIpn1mNzMyptRwsXKrop06m7NUNHdlTDEMovXAIDGAvYy # nPt5lutv8lZeI5w3MOlCybAZDpK3Dy1MKo+6aEtE9vtiTMzz/o2dYfdP0KWZwZIX # bYsTIlg1YIetCpi5s14qiXOpRsKqFKqav9R1R5vj3NgevsAsvxsAnI8Oa5s2oy25 # qhsoBIGo/zi6GpxFj+mOdh35Xn91y72J4RGOJEoqzEIbW3q0b2iPuWLA911cRxgY # 5SJYubvjay3nSMbBPPFsyl6mY4/WYucmyS9lo3l7jk27MAe145GWxK4O3m3gEFEI # kv7kRmefDR7Oe2T1HxAnICQvr9sCAwEAAaOCARYwggESMB8GA1UdIwQYMBaAFFN5 # v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBT2d2rdP/0BE/8WoWyCAi/QCj0U # JTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAKBggr # BgEFBQcDCDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0 # cDovL2NybC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25B # dXRob3JpdHkuY3JsMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0cDov # L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEADr5lQe1oRLjl # ocXUEYfktzsljOt+2sgXke3Y8UPEooU5y39rAARaAdAxUeiX1ktLJ3+lgxtoLQhn # 5cFb3GF2SSZRX8ptQ6IvuD3wz/LNHKpQ5nX8hjsDLRhsyeIiJsms9yAWnvdYOdEM # q1W61KE9JlBkB20XBee6JaXx4UBErc+YuoSb1SxVf7nkNtUjPfcxuFtrQdRMRi/f # InV/AobE8Gw/8yBMQKKaHt5eia8ybT8Y/Ffa6HAJyz9gvEOcF1VWXG8OMeM7Vy7B # s6mSIkYeYtddU1ux1dQLbEGur18ut97wgGwDiGinCwKPyFO7ApcmVJOtlw9FVJxw # /mL1TbyBns4zOgkaXFnnfzg4qbSvnrwyj1NiurMp4pmAWjR+Pb/SIduPnmFzbSN/ # G8reZCL4fvGlvPFk4Uab/JVCSmj59+/mB2Gn6G/UYOy8k60mKcmaAZsEVkhOFuoj # 4we8CYyaR9vd9PGZKSinaZIkvVjbH/3nlLb0a7SBIkiRzfPfS9T+JesylbHa1LtR # V9U/7m0q7Ma2CQ/t392ioOssXW7oKLdOmMBl14suVFBmbzrt5V5cQPnwtd3UOTpS # 9oCG+ZZheiIvPgkDmA8FzPsnfXW5qHELB43ET7HHFHeRPRYrMBKjkb8/IN7Po0d0 # hQoF4TeMM+zYAJzoKQnVKOLg8pZVPT8wgga5MIIEoaADAgECAhEAmaOACiZVO2Wr # 3G6EprPqOTANBgkqhkiG9w0BAQwFADCBgDELMAkGA1UEBhMCUEwxIjAgBgNVBAoT # GVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0 # aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0 # d29yayBDQSAyMB4XDTIxMDUxOTA1MzIxOFoXDTM2MDUxODA1MzIxOFowVjELMAkG # A1UEBhMCUEwxITAfBgNVBAoTGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEkMCIG # A1UEAxMbQ2VydHVtIENvZGUgU2lnbmluZyAyMDIxIENBMIICIjANBgkqhkiG9w0B # AQEFAAOCAg8AMIICCgKCAgEAnSPPBDAjO8FGLOczcz5jXXp1ur5cTbq96y34vuTm # flN4mSAfgLKTvggv24/rWiVGzGxT9YEASVMw1Aj8ewTS4IndU8s7VS5+djSoMcbv # IKck6+hI1shsylP4JyLvmxwLHtSworV9wmjhNd627h27a8RdrT1PH9ud0IF+njvM # k2xqbNTIPsnWtw3E7DmDoUmDQiYi/ucJ42fcHqBkbbxYDB7SYOouu9Tj1yHIohzu # C8KNqfcYf7Z4/iZgkBJ+UFNDcc6zokZ2uJIxWgPWXMEmhu1gMXgv8aGUsRdaCtVD # 2bSlbfsq7BiqljjaCun+RJgTgFRCtsuAEw0pG9+FA+yQN9n/kZtMLK+Wo837Q4QO # ZgYqVWQ4x6cM7/G0yswg1ElLlJj6NYKLw9EcBXE7TF3HybZtYvj9lDV2nT8mFSkc # SkAExzd4prHwYjUXTeZIlVXqj+eaYqoMTpMrfh5MCAOIG5knN4Q/JHuurfTI5XDY # O962WZayx7ACFf5ydJpoEowSP07YaBiQ8nXpDkNrUA9g7qf/rCkKbWpQ5boufUnq # 1UiYPIAHlezf4muJqxqIns/kqld6JVX8cixbd6PzkDpwZo4SlADaCi2JSplKShBS # ND36E/ENVv8urPS0yOnpG4tIoBGxVCARPCg1BnyMJ4rBJAcOSnAWd18Jx5n858JS # qPECAwEAAaOCAVUwggFRMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFN10XUwA # 23ufoHTKsW73PMAywHDNMB8GA1UdIwQYMBaAFLahVDkCw6A/joq8+tT4HKbROg79 # MA4GA1UdDwEB/wQEAwIBBjATBgNVHSUEDDAKBggrBgEFBQcDAzAwBgNVHR8EKTAn # MCWgI6Ahhh9odHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYTIuY3JsMGwGCCsGAQUF # BwEBBGAwXjAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNv # bTAyBggrBgEFBQcwAoYmaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBsL2N0bmNh # Mi5jZXIwOQYDVR0gBDIwMDAuBgRVHSAAMCYwJAYIKwYBBQUHAgEWGGh0dHA6Ly93 # d3cuY2VydHVtLnBsL0NQUzANBgkqhkiG9w0BAQwFAAOCAgEAdYhYD+WPUCiaU58Q # 7EP89DttyZqGYn2XRDhJkL6P+/T0IPZyxfxiXumYlARMgwRzLRUStJl490L94C9L # GF3vjzzH8Jq3iR74BRlkO18J3zIdmCKQa5LyZ48IfICJTZVJeChDUyuQy6rGDxLU # UAsO0eqeLNhLVsgw6/zOfImNlARKn1FP7o0fTbj8ipNGxHBIutiRsWrhWM2f8pXd # d3x2mbJCKKtl2s42g9KUJHEIiLni9ByoqIUul4GblLQigO0ugh7bWRLDm0CdY9rN # LqyA3ahe8WlxVWkxyrQLjH8ItI17RdySaYayX3PhRSC4Am1/7mATwZWwSD+B7eMc # ZNhpn8zJ+6MTyE6YoEBSRVrs0zFFIHUR08Wk0ikSf+lIe5Iv6RY3/bFAEloMU+vU # BfSouCReZwSLo8WdrDlPXtR0gicDnytO7eZ5827NS2x7gCBibESYkOh1/w1tVxTp # V2Na3PR7nxYVlPu1JPoRZCbH86gc96UTvuWiOruWmyOEMLOGGniR+x+zPF/2DaGg # K2W1eEJfo2qyrBNPvF7wuAyQfiFXLwvWHamoYtPZo0LHuH8X3n9C+xN4YaNjt2yw # zOr+tKyEVAotnyU9vyEVOaIYMk3IeBrmFnn0gbKeTTyYeEEUz/Qwt4HOUBCrW602 # NCmvO1nm+/80nLy5r0AZvCQxaQ4xggXDMIIFvwIBATBqMFYxCzAJBgNVBAYTAlBM # MSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMTG0Nl # cnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQQIQCDJPnbfakW9j5PKjPF5dUTANBglg # hkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3 # DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEV # MC8GCSqGSIb3DQEJBDEiBCCHitOs3P4j0enK4xwyRoY3xUQ8fNTGvFw7U2S6boQo # kjANBgkqhkiG9w0BAQEFAASCAYBCFDDv2HyO/c2NiUFkRj1iDrFZayLdAJ6N8NDl # SkuNt4s05dgK9yZrnJIT2SuG6FMYWBDxliYE1oGKC9jEZm+6urNfinsFkX1UYILW # PZtqG2PPaLJkdD8Ow9YWnmPH8nYUpDcR6htV6sZr61IzcnUd85wrMTaHdXuF0xHs # q1UplmIYCaeGW47xn3dTzVYy7Kn5wXs0Eis16ENiWsNSaXkBKThYP/4XsJZQK2Tb # iKhOHC3TdBiESmlB100QXl285D/HdKhONqa/SS8jBw+srIBZDDNmfN1X4r/2nagj # rBfs9JRaQg1abCwAdhtcloC3wlMxCp8mGCN08hGfIuvNPk/j36mDN5v10ErxZrIr # AOf0Lt/2nurGlEQI2UNlMEAKvcYXbcU2PKFURD9XGzHP63zbn/gd5Yby6qJIrxaP # YRi2x+djg9v4LjN4AlMCp+A+nBvVuSNXvKkEQOmx4zHtGhA75I4d55msWXV+5obq # 9+dvN41TbavsmKwjenewx0ctI1yhggMjMIIDHwYJKoZIhvcNAQkGMYIDEDCCAwwC # AQEwajBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSww # KgYDVQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFIzNgIRAKQp # O24e3denNAiHrXpOtyQwDQYJYIZIAWUDBAICBQCgeTAYBgkqhkiG9w0BCQMxCwYJ # KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNjA2MDExOTU2NDdaMD8GCSqGSIb3 # DQEJBDEyBDClVWPVnJiI5SkZdNJ1pg670Ge/Xjuhoskjqa2LpZJfN1MLEF8pN1mM # UO7lNTIwdGgwDQYJKoZIhvcNAQEBBQAEggIAFN2iLkG6GX1CHq79B6r4ax6UEy9f # 19/g9gMJxEJ8vIAHeg84NUz59IEFZ39mx75WiZb6IPP9vYposlUeKmkkMkck73+6 # lWhlSvCkLOeKald/L944IDSKE+PcZZgt8Si2JXSL05WcQv2TmV89znVF8Miz15Fr # Fda8YWmcaCVtDIMuchIif0uVbDc8PuokMvtBNm2ZTNqJeBiJXit3ChzOsVmGrQ9w # OUlVr3mfCLvGQz4v61r0rSiW3THOBmAMTuhOPk0DM/VYLVxTtr4kstVC44Uy+iMK # mGGOLxbv6qNi9NzdowRBCq/tSW1W99RCjO7f7SoLDcydOg6b/LdCyFtS22cuip7x # iAKhCO+IqBCY4yHwCv8Ji2CtOciC2sarkN9yDKmFXXettRjKME5NLAeWDhVHskwf # i/cZleTL6SbJee1OENrZJycyy5HEiEa0+Bb5SqbcDNjci55tZ+4zqYnMHMxxQTiV # VsVl0d6VClPZJLu7Vliu1NS9nfUx1xP9wzulmCxU9LLi3nVlENkR7/XGoOF5d5wD # MtmW7wNR9SeuqwdDDO+Xx5zyFOPI4mpQiGUMrWn9B+yDL2jLMISpqkhGJgZNgNNO # 0ben9l1Pm957e/t2K6LStP089vQirDjTwuW1iU2mMs/9uB6gszYmq7zu3RaCLBYF # isFv8oa9Juby8VI= # SIG # End signature block |