????

Your IP : 216.73.216.89


Current Path : C:/Windows/System32/Printing_Admin_Scripts/en-US/
Upload File :
Current File : C:/Windows/System32/Printing_Admin_Scripts/en-US/prnport.vbs

��'----------------------------------------------------------------------

'

' Copyright (c) Microsoft Corporation. All rights reserved.

'

' Abstract:

' prnport.vbs - Port script for WMI on Windows 

'     used to add, delete and list ports

'     also for getting and setting the port configuration

'

' Usage:

' prnport [-adlgt?] [-r port] [-s server] [-u user name] [-w password]

'                   [-o raw|lpr] [-h host address] [-q queue] [-n number]

'                   [-me | -md ] [-i SNMP index] [-y community] [-2e | -2d]"

'

' Examples

' prnport -a -s server -r IP_1.2.3.4 -e 1.2.3.4 -o raw -n 9100

' prnport -d -s server -r c:\temp\foo.prn

' prnport -l -s server

' prnport -g -s server -r IP_1.2.3.4

' prnport -t -s server -r IP_1.2.3.4 -me -y public -i 1 -n 9100

'

'----------------------------------------------------------------------



option explicit



'

' Debugging trace flags, to enable debug output trace message

' change gDebugFlag to true.

'

dim   gDebugFlag

const kDebugTrace = 1

const kDebugError = 2



gDebugFlag = false



'

' Operation action values.

'

const kActionAdd          = 0

const kActionDelete       = 1

const kActionList         = 2

const kActionUnknown      = 3

const kActionGet          = 4

const kActionSet          = 5



const kErrorSuccess       = 0

const KErrorFailure       = 1



const kFlagCreateOrUpdate = 0



const kNameSpace          = "root\cimv2"





'

' Constants for the parameter dictionary

'

const kServerName      = 1

const kPortName        = 2

const kDoubleSpool     = 3

const kPortNumber      = 4

const kPortType        = 5

const kHostAddress     = 6

const kSNMPDeviceIndex = 7

const kCommunityName   = 8

const kSNMP            = 9

const kQueueName       = 10

const kUserName        = 11

const kPassword        = 12



'

' Generic strings

'

const L_Empty_Text                 = ""

const L_Space_Text                 = " "

const L_Colon_Text                 = ":"

const L_LPR_Queue                  = "LPR"

const L_Error_Text                 = "Error"

const L_Success_Text               = "Success"

const L_Failed_Text                = "Failed"

const L_Hex_Text                   = "0x"

const L_Printer_Text               = "Printer"

const L_Operation_Text             = "Operation"

const L_Provider_Text              = "Provider"

const L_Description_Text           = "Description"

const L_Debug_Text                 = "Debug:"



'

' General usage messages

'

const L_Help_Help_General01_Text   = "Usage: prnport [-adlgt?] [-r port][-s server][-u user name][-w password]"

const L_Help_Help_General02_Text   = "               [-o raw|lpr][-h host address][-q queue][-n number]"

const L_Help_Help_General03_Text   = "               [-me | -md ][-i SNMP index][-y community][-2e | -2d]"

const L_Help_Help_General04_Text   = "Arguments:"

const L_Help_Help_General05_Text   = "-a     - add a port"

const L_Help_Help_General06_Text   = "-d     - delete the specified port"

const L_Help_Help_General07_Text   = "-g     - get configuration for a TCP port"

const L_Help_Help_General08_Text   = "-h     - IP address of the device"

const L_Help_Help_General09_Text   = "-i     - SNMP index, if SNMP is enabled"

const L_Help_Help_General10_Text   = "-l     - list all TCP ports"

const L_Help_Help_General11_Text   = "-m     - SNMP type. [e] enable, [d] disable"

const L_Help_Help_General12_Text   = "-n     - port number, applies to TCP RAW ports"

const L_Help_Help_General13_Text   = "-o     - port type, raw or lpr"

const L_Help_Help_General14_Text   = "-q     - queue name, applies to TCP LPR ports only"

const L_Help_Help_General15_Text   = "-r     - port name"

const L_Help_Help_General16_Text   = "-s     - server name"

const L_Help_Help_General17_Text   = "-t     - set configuration for a TCP port"

const L_Help_Help_General18_Text   = "-u     - user name"

const L_Help_Help_General19_Text   = "-w     - password"

const L_Help_Help_General20_Text   = "-y     - community name, if SNMP is enabled"

const L_Help_Help_General21_Text   = "-2     - double spool, applies to TCP LPR ports. [e] enable, [d] disable"

const L_Help_Help_General22_Text   = "-?     - display command usage"

const L_Help_Help_General23_Text   = "Examples:"

const L_Help_Help_General24_Text   = "prnport -l -s server"

const L_Help_Help_General25_Text   = "prnport -d -s server -r IP_1.2.3.4"

const L_Help_Help_General26_Text   = "prnport -a -s server -r IP_1.2.3.4 -h 1.2.3.4 -o raw -n 9100"

const L_Help_Help_General27_Text   = "prnport -t -s server -r IP_1.2.3.4 -me -y public -i 1 -n 9100"

const L_Help_Help_General28_Text   = "prnport -g -s server -r IP_1.2.3.4"

const L_Help_Help_General29_Text   = "prnport -a -r IP_1.2.3.4 -h 1.2.3.4"

const L_Help_Help_General30_Text   = "Remark:"

const L_Help_Help_General31_Text   = "The last example will try to get the device settings at the specified IP address."

const L_Help_Help_General32_Text   = "If a device is detected, then a TCP port is added with the preferred settings for that device."



'

' Messages to be displayed if the scripting host is not cscript

'

const L_Help_Help_Host01_Text      = "This script should be executed from the Command Prompt using CScript.exe."

const L_Help_Help_Host02_Text      = "For example: CScript script.vbs arguments"

const L_Help_Help_Host03_Text      = ""

const L_Help_Help_Host04_Text      = "To set CScript as the default application to run .VBS files run the following:"

const L_Help_Help_Host05_Text      = "     CScript //H:CScript //S"

const L_Help_Help_Host06_Text      = "You can then run ""script.vbs arguments"" without preceding the script with CScript."



'

' General error messages

'

const L_Text_Error_General01_Text  = "The scripting host could not be determined."

const L_Text_Error_General02_Text  = "Unable to parse command line."

const L_Text_Error_General03_Text  = "Win32 error code"



'

' Miscellaneous messages

'

const L_Text_Msg_General01_Text    = "Added port"

const L_Text_Msg_General02_Text    = "Unable to delete port"

const L_Text_Msg_General03_Text    = "Unable to get port"

const L_Text_Msg_General04_Text    = "Created/updated port"

const L_Text_Msg_General05_Text    = "Unable to create/update port"

const L_Text_Msg_General06_Text    = "Unable to enumerate ports"

const L_Text_Msg_General07_Text    = "Number of ports enumerated"

const L_Text_Msg_General08_Text    = "Deleted port"

const L_Text_Msg_General09_Text    = "Unable to get SWbemLocator object"

const L_Text_Msg_General10_Text    = "Unable to connect to WMI service"





'

' Port properties

'

const L_Text_Msg_Port01_Text       = "Server name"

const L_Text_Msg_Port02_Text       = "Port name"

const L_Text_Msg_Port03_Text       = "Host address"

const L_Text_Msg_Port04_Text       = "Protocol RAW"

const L_Text_Msg_Port05_Text       = "Protocol LPR"

const L_Text_Msg_Port06_Text       = "Port number"

const L_Text_Msg_Port07_Text       = "Queue"

const L_Text_Msg_Port08_Text       = "Byte Count Enabled"

const L_Text_Msg_Port09_Text       = "Byte Count Disabled"

const L_Text_Msg_Port10_Text       = "SNMP Enabled"

const L_Text_Msg_Port11_Text       = "SNMP Disabled"

const L_Text_Msg_Port12_Text       = "Community"

const L_Text_Msg_Port13_Text       = "Device index"



'

' Debug messages

'

const L_Text_Dbg_Msg01_Text        = "In function DelPort"

const L_Text_Dbg_Msg02_Text        = "In function CreateOrSetPort"

const L_Text_Dbg_Msg03_Text        = "In function ListPorts"

const L_Text_Dbg_Msg04_Text        = "In function GetPort"

const L_Text_Dbg_Msg05_Text        = "In function ParseCommandLine"



main



'

' Main execution starts here

'

sub main



    on error resume next



    dim iAction

    dim iRetval

    dim oParamDict



    '

    ' Abort if the host is not cscript

    '

    if not IsHostCscript() then



        call wscript.echo(L_Help_Help_Host01_Text & vbCRLF & L_Help_Help_Host02_Text & vbCRLF & _

                          L_Help_Help_Host03_Text & vbCRLF & L_Help_Help_Host04_Text & vbCRLF & _

                          L_Help_Help_Host05_Text & vbCRLF & L_Help_Help_Host06_Text & vbCRLF)



        wscript.quit



    end if



    set oParamDict = CreateObject("Scripting.Dictionary")



    iRetval = ParseCommandLine(iAction, oParamDict)



    if iRetval = 0 then



        select case iAction



            case kActionAdd

                iRetval = CreateOrSetPort(oParamDict)



            case kActionDelete

                iRetval = DelPort(oParamDict)



            case kActionList

                iRetval = ListPorts(oParamDict)



            case kActionGet

                iRetVal = GetPort(oParamDict)



            case kActionSet

                iRetVal = CreateOrSetPort(oParamDict)



            case else

                Usage(true)

                exit sub



        end select



    end if



end sub



'

' Delete a port

'

function DelPort(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg01_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict(kPortName)



    dim oService

    dim oPort

    dim iResult

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort='" & strPort & "'")



    else



        DelPort = kErrorFailure



        exit function



    end if



    '

    ' Check if Get succeeded

    '

    if Err.Number = kErrorSuccess then



        '

        ' Try deleting the instance

        '

        oPort.Delete_



        if Err.Number = kErrorSuccess then



            wscript.echo L_Text_Msg_General08_Text & L_Space_Text & strPort



        else



            wscript.echo L_Text_Msg_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                         & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



            '

            ' Try getting extended error information

            '

            call LastError()



        end if



    else



        wscript.echo L_Text_Msg_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



    end if



    DelPort = iResult



end function



'

' Add or update a port

'

function CreateOrSetPort(oParamDict)



    on error resume next



    dim oPort

    dim oService

    dim iResult

    dim PortType

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    DebugPrint kDebugTrace, L_Text_Dbg_Msg02_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict.Item(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict.Item(kPortName)

    DebugPrint kDebugTrace, L_Text_Msg_Port06_Text & L_Space_Text & oParamDict.Item(kPortNumber)

    DebugPrint kDebugTrace, L_Text_Msg_Port07_Text & L_Space_Text & oParamDict.Item(kQueueName)

    DebugPrint kDebugTrace, L_Text_Msg_Port13_Text & L_Space_Text & oParamDict.Item(kSNMPDeviceIndex)

    DebugPrint kDebugTrace, L_Text_Msg_Port12_Text & L_Space_Text & oParamDict.Item(kCommunityName)

    DebugPrint kDebugTrace, L_Text_Msg_Port03_Text & L_Space_Text & oParamDict.Item(kHostAddress)



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    '

    ' If the port exists, then get the settings. Later PutInstance will do an update

    '

    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort.Name='" & strPort & "'")



        '

        ' If get was unsuccessful then spawn a new port instance. Later PutInstance will do a create

        '

        if Err.Number <> kErrorSuccess then



            '

            ' Clear the previous error

            '

            Err.Clear



            set oPort = oService.Get("Win32_TCPIPPrinterPort").SpawnInstance_



        end if



    else



        CreateOrSetPort = kErrorFailure



        exit function



    end if



    if Err.Number <> kErrorSuccess then



        wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        CreateOrSetPort = kErrorFailure



        exit function



    end if



    oPort.Name          = oParamDict.Item(kPortName)

    oPort.HostAddress   = oParamDict.Item(kHostAddress)

    oPort.PortNumber    = oParamDict.Item(kPortNumber)

    oPort.SNMPEnabled   = oParamDict.Item(kSNMP)

    oPort.SNMPDevIndex  = oParamDict.Item(kSNMPDeviceIndex)

    oPort.SNMPCommunity = oParamDict.Item(kCommunityName)

    oPort.Queue         = oParamDict.Item(kQueueName)

    oPort.ByteCount     = oParamDict.Item(kDoubleSpool)



    PortType     = oParamDict.Item(kPortType)



    '

    ' Update the port object with the settings corresponding

    ' to the port type of the port to be added

    '

    select case lcase(PortType)



            case "raw"



                 oPort.Protocol      = 1



                 if Not IsNull(oPort.Queue) then



                     wscript.echo L_Error_Text & L_Colon_Text & L_Space_Text _

                     & L_Help_Help_General14_Text



                     CreateOrSetPort = kErrorFailure



                     exit function



                 end if



            case "lpr"



                 oPort.Protocol      = 2



                 if IsNull(oPort.Queue) then



                     oPort.Queue = L_LPR_Queue



                 end if



            case else



                 '

                 ' PutInstance will attempt to get the configuration of

                 ' the device based on its IP address. Those settings

                 ' will be used to add a new port

                 '

    end select



    '

    ' Try creating or updating the port

    '

    oPort.Put_(kFlagCreateOrUpdate)



    if Err.Number = kErrorSuccess then



        wscript.echo L_Text_Msg_General04_Text & L_Space_Text & oPort.Name



        iResult = kErrorSuccess



    else



        wscript.echo L_Text_Msg_General05_Text & L_Space_Text & oPort.Name & L_Space_Text _

                     & L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _

                     & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



        iResult = kErrorFailure



    end if



    CreateOrSetPort = iResult



end function



'

' List ports on a machine.

'

function ListPorts(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg03_Text



    dim Ports

    dim oPort

    dim oService

    dim iRetval

    dim iTotal

    dim strServer

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set Ports = oService.InstancesOf("Win32_TCPIPPrinterPort")



    else



        ListPorts = kErrorFailure



        exit function



    end if



    if Err.Number <> kErrorSuccess then



        wscript.echo L_Text_Msg_General06_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        ListPrinters = kErrorFailure



        exit function



    end if



    iTotal = 0



    for each oPort in Ports



        iTotal = iTotal + 1



        wscript.echo L_Empty_Text

        wscript.echo L_Text_Msg_Port01_Text & L_Space_Text & strServer

        wscript.echo L_Text_Msg_Port02_Text & L_Space_Text & oPort.Name

        wscript.echo L_Text_Msg_Port03_Text & L_Space_Text & oPort.HostAddress



        if oPort.Protocol = 1 then



            wscript.echo L_Text_Msg_Port04_Text

            wscript.echo L_Text_Msg_Port06_Text & L_Space_Text & oPort.PortNumber



        else



            wscript.echo L_Text_Msg_Port05_Text

            wscript.echo L_Text_Msg_Port07_Text & L_Space_Text & oPort.Queue



            if oPort.ByteCount then



                wscript.echo L_Text_Msg_Port08_Text



            else



                wscript.echo L_Text_Msg_Port09_Text



            end if



        end if



        if oPort.SNMPEnabled then



            wscript.echo L_Text_Msg_Port10_Text

            wscript.echo L_Text_Msg_Port12_Text & L_Space_Text & oPort.SNMPCommunity

            wscript.echo L_Text_Msg_Port13_Text & L_Space_Text & oPort.SNMPDevIndex



        else



            wscript.echo L_Text_Msg_Port11_Text



        end if



        Err.Clear



    next



    wscript.echo L_Empty_Text

    wscript.echo L_Text_Msg_General07_Text & L_Space_Text & iTotal



    ListPorts = kErrorSuccess



end function



'

' Gets the configuration of a port

'

function GetPort(oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg04_Text

    DebugPrint kDebugTrace, L_Text_Msg_Port01_Text & L_Space_Text & oParamDict(kServerName)

    DebugPrint kDebugTrace, L_Text_Msg_Port02_Text & L_Space_Text & oParamDict(kPortName)



    dim oService

    dim oPort

    dim iResult

    dim strServer

    dim strPort

    dim strUser

    dim strPassword



    iResult = kErrorFailure



    strServer   = oParamDict(kServerName)

    strPort     = oParamDict(kPortName)

    strUser     = oParamDict(kUserName)

    strPassword = oParamDict(kPassword)



    if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then



        set oPort = oService.Get("Win32_TCPIPPrinterPort.Name='" & strPort & "'")



    else



        GetPort = kErrorFailure



        exit function



    end if



    if Err.Number = kErrorSuccess then



        wscript.echo L_Empty_Text

        wscript.echo L_Text_Msg_Port01_Text & L_Space_Text & strServer

        wscript.echo L_Text_Msg_Port02_Text & L_Space_Text & oPort.Name

        wscript.echo L_Text_Msg_Port03_Text & L_Space_Text & oPort.HostAddress



        if oPort.Protocol = 1 then



            wscript.echo L_Text_Msg_Port04_Text

            wscript.echo L_Text_Msg_Port06_Text & L_Space_Text & oPort.PortNumber



        else



            wscript.echo L_Text_Msg_Port05_Text

            wscript.echo L_Text_Msg_Port07_Text & L_Space_Text & oPort.Queue



            if oPort.ByteCount then



                wscript.echo L_Text_Msg_Port08_Text



            else



                wscript.echo L_Text_Msg_Port09_Text



            end if



        end if



        if oPort.SNMPEnabled then



            wscript.echo L_Text_Msg_Port10_Text

            wscript.echo L_Text_Msg_Port12_Text & L_Space_Text & oPort.SNMPCommunity

            wscript.echo L_Text_Msg_Port13_Text & L_Space_Text & oPort.SNMPDevIndex



        else



            wscript.echo L_Text_Msg_Port11_Text



        end if



        iResult = kErrorSuccess



    else



        wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



        '

        ' Try getting extended error information

        '

        call LastError()



    end if



    GetPort = iResult



end function



'

' Debug display helper function

'

sub DebugPrint(uFlags, strString)



    if gDebugFlag = true then



        if uFlags = kDebugTrace then



            wscript.echo L_Debug_Text & L_Space_Text & strString



        end if



        if uFlags = kDebugError then



            if Err <> 0 then



                wscript.echo L_Debug_Text & L_Space_Text & strString & L_Space_Text _

                             & L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _

                             & L_Space_Text & Err.Description



            end if



        end if



    end if



end sub



'

' Parse the command line into its components

'

function ParseCommandLine(iAction, oParamDict)



    on error resume next



    DebugPrint kDebugTrace, L_Text_Dbg_Msg05_Text



    dim oArgs

    dim iIndex



    iAction = kActionUnknown



    set oArgs = Wscript.Arguments



    while iIndex < oArgs.Count



        select case oArgs(iIndex)



            case "-g"

                iAction = kActionGet



            case "-t"

                iAction = kActionSet



            case "-a"

                iAction = kActionAdd



            case "-d"

                iAction = kActionDelete



            case "-l"

                iAction = kActionList



            case "-2e"

                oParamDict.Add kDoubleSpool, true



            case "-2d"

                oParamDict.Add kDoubleSpool, false



            case "-s"

                iIndex = iIndex + 1

                oParamDict.Add kServerName, RemoveBackslashes(oArgs(iIndex))



            case "-u"

                iIndex = iIndex + 1

                oParamDict.Add kUserName, oArgs(iIndex)



            case "-w"

                iIndex = iIndex + 1

                oParamDict.Add kPassword, oArgs(iIndex)



            case "-n"

                iIndex = iIndex + 1

                oParamDict.Add kPortNumber, oArgs(iIndex)



            case "-r"

                iIndex = iIndex + 1

                oParamDict.Add kPortName, oArgs(iIndex)



            case "-o"

                iIndex = iIndex + 1

                oParamDict.Add kPortType, oArgs(iIndex)



            case "-h"

                iIndex = iIndex + 1

                oParamDict.Add kHostAddress, oArgs(iIndex)



            case "-q"

                iIndex = iIndex + 1

                oParamDict.Add kQueueName, oArgs(iIndex)



            case "-i"

                iIndex = iIndex + 1

                oParamDict.Add kSNMPDeviceIndex, oArgs(iIndex)



            case "-y"

                iIndex = iIndex + 1

                oParamDict.Add kCommunityName, oArgs(iIndex)



            case "-me"

                oParamDict.Add kSNMP, true



            case "-md"

                oParamDict.Add kSNMP, false



            case "-?"

                Usage(True)

                exit function



            case else

                Usage(True)

                exit function



        end select



        iIndex = iIndex + 1



    wend



    if Err = kErrorSuccess then



        ParseCommandLine = kErrorSuccess



    else



        wscript.echo L_Text_Error_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_text & Err.Description





        ParseCommandLine = kErrorFailure



    end if



end  function



'

' Display command usage.

'

sub Usage(bExit)



    wscript.echo L_Help_Help_General01_Text

    wscript.echo L_Help_Help_General02_Text

    wscript.echo L_Help_Help_General03_Text

    wscript.echo L_Help_Help_General04_Text

    wscript.echo L_Help_Help_General05_Text

    wscript.echo L_Help_Help_General06_Text

    wscript.echo L_Help_Help_General07_Text

    wscript.echo L_Help_Help_General08_Text

    wscript.echo L_Help_Help_General09_Text

    wscript.echo L_Help_Help_General10_Text

    wscript.echo L_Help_Help_General11_Text

    wscript.echo L_Help_Help_General12_Text

    wscript.echo L_Help_Help_General13_Text

    wscript.echo L_Help_Help_General14_Text

    wscript.echo L_Help_Help_General15_Text

    wscript.echo L_Help_Help_General16_Text

    wscript.echo L_Help_Help_General17_Text

    wscript.echo L_Help_Help_General18_Text

    wscript.echo L_Help_Help_General19_Text

    wscript.echo L_Help_Help_General20_Text

    wscript.echo L_Help_Help_General21_Text

    wscript.echo L_Help_Help_General22_Text

    wscript.echo L_Empty_Text

    wscript.echo L_Help_Help_General23_Text

    wscript.echo L_Help_Help_General24_Text

    wscript.echo L_Help_Help_General25_Text

    wscript.echo L_Help_Help_General26_Text

    wscript.echo L_Help_Help_General27_Text

    wscript.echo L_Help_Help_General28_Text

    wscript.echo L_Help_Help_General29_Text

    wscript.echo L_Empty_Text

    wscript.echo L_Help_Help_General30_Text

    wscript.echo L_Help_Help_General31_Text

    wscript.echo L_Help_Help_General32_Text



    if bExit then



        wscript.quit(1)



    end if



end sub



'

' Determines which program is being used to run this script.

' Returns true if the script host is cscript.exe

'

function IsHostCscript()



    on error resume next



    dim strFullName

    dim strCommand

    dim i, j

    dim bReturn



    bReturn = false



    strFullName = WScript.FullName



    i = InStr(1, strFullName, ".exe", 1)



    if i <> 0 then



        j = InStrRev(strFullName, "\", i, 1)



        if j <> 0 then



            strCommand = Mid(strFullName, j+1, i-j-1)



            if LCase(strCommand) = "cscript" then



                bReturn = true



            end if



        end if



    end if



    if Err <> 0 then



        wscript.echo L_Text_Error_General01_Text & L_Space_Text & L_Error_Text & L_Space_Text _

                     & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description



    end if



    IsHostCscript = bReturn



end function



'

' Retrieves extended information about the last error that occurred

' during a WBEM operation. The methods that set an SWbemLastError

' object are GetObject, PutInstance, DeleteInstance

'

sub LastError()



    on error resume next



    dim oError



    set oError = CreateObject("WbemScripting.SWbemLastError")



    if Err = kErrorSuccess then



        wscript.echo L_Operation_Text            & L_Space_Text & oError.Operation

        wscript.echo L_Provider_Text             & L_Space_Text & oError.ProviderName

        wscript.echo L_Description_Text          & L_Space_Text & oError.Description

        wscript.echo L_Text_Error_General04_Text & L_Space_Text & oError.StatusCode



    end if



end sub



'

' Connects to the WMI service on a server. oService is returned as a service

' object (SWbemServices)

'

function WmiConnect(strServer, strNameSpace, strUser, strPassword, oService)



   on error resume next



   dim oLocator

   dim bResult



   oService = null



   bResult  = false



   set oLocator = CreateObject("WbemScripting.SWbemLocator")



   if Err = kErrorSuccess then



      set oService = oLocator.ConnectServer(strServer, strNameSpace, strUser, strPassword)



      if Err = kErrorSuccess then



          bResult = true



          oService.Security_.impersonationlevel = 3



          '

          ' Required to perform administrative tasks on the spooler service

          '

          oService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege"



          Err.Clear



      else



          wscript.echo L_Text_Msg_General10_Text & L_Space_Text & L_Error_Text _

                       & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _

                       & Err.Description



      end if



   else



       wscript.echo L_Text_Msg_General09_Text & L_Space_Text & L_Error_Text _

                    & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _

                    & Err.Description



   end if



   WmiConnect = bResult



end function



'

' Remove leading "\\" from server name

'

function RemoveBackslashes(strServer)



    dim strRet



    strRet = strServer



    if Left(strServer, 2) = "\\" and Len(strServer) > 2 then



        strRet = Mid(strServer, 3)



    end if



    RemoveBackslashes = strRet



end function



'' SIG '' Begin signature block

'' SIG '' MIIhXwYJKoZIhvcNAQcCoIIhUDCCIUwCAQExDzANBglg

'' SIG '' hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor

'' SIG '' BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC

'' SIG '' AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg

'' SIG '' JP2OI/dGh8Dr4i1IHJc1kEljUqgI55azox+O936+ZZqg

'' SIG '' ggrlMIIFBjCCA+6gAwIBAgITMwAAAu0sReTBRc9IRAAA

'' SIG '' AAAC7TANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMC

'' SIG '' VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT

'' SIG '' B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw

'' SIG '' b3JhdGlvbjEuMCwGA1UEAxMlTWljcm9zb2Z0IFdpbmRv

'' SIG '' d3MgUHJvZHVjdGlvbiBQQ0EgMjAxMTAeFw0yMDEyMTUy

'' SIG '' MTI5MTRaFw0yMTEyMDIyMTI5MTRaMHAxCzAJBgNVBAYT

'' SIG '' AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH

'' SIG '' EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y

'' SIG '' cG9yYXRpb24xGjAYBgNVBAMTEU1pY3Jvc29mdCBXaW5k

'' SIG '' b3dzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC

'' SIG '' AQEA1/mOTaZIAMdvXd/Uq3DhEpREugbVndaHjzafKgYv

'' SIG '' XqdiboW0UGKgYBgiM+f66zVMFxocrP4gxe33290l7UFD

'' SIG '' 6iVt6t7BkJDi91lzCGFZMsjlKfRwvDC64ucGyhaS64N5

'' SIG '' uQlvjwH8a8YjNwPwfF2IOU8r1MStiYVtBS6cQPAGT9HK

'' SIG '' FsuKOkieubIYQMwh6F05jPheTP0NvbxlISpy9LEbUYoB

'' SIG '' bbOjZ+GJbjOil7USxnbYK+bEQ+qSCnrHfolbLX5Ajmk3

'' SIG '' uFC11bjuJxA9opD6cmwi2QAs+V4HFuDjAhvJojb8lP/v

'' SIG '' qiZRe4mRvp0xsaQWI2y/Jv5czI7ZBiI6v+0d1QIDAQAB

'' SIG '' o4IBgjCCAX4wHwYDVR0lBBgwFgYKKwYBBAGCNwoDBgYI

'' SIG '' KwYBBQUHAwMwHQYDVR0OBBYEFBX5vmhcu8syt5gpQoPf

'' SIG '' BQEaWSozMFQGA1UdEQRNMEukSTBHMS0wKwYDVQQLEyRN

'' SIG '' aWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0

'' SIG '' ZWQxFjAUBgNVBAUTDTIyOTg3OSs0NjMzNDQwHwYDVR0j

'' SIG '' BBgwFoAUqSkCOY4WxJd4zZD5nk+a4XxVr1MwVAYDVR0f

'' SIG '' BE0wSzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQu

'' SIG '' Y29tL3BraW9wcy9jcmwvTWljV2luUHJvUENBMjAxMV8y

'' SIG '' MDExLTEwLTE5LmNybDBhBggrBgEFBQcBAQRVMFMwUQYI

'' SIG '' KwYBBQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNv

'' SIG '' bS9wa2lvcHMvY2VydHMvTWljV2luUHJvUENBMjAxMV8y

'' SIG '' MDExLTEwLTE5LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqG

'' SIG '' SIb3DQEBCwUAA4IBAQAeDDbpx7pwpcs42ObZbp01JdBL

'' SIG '' Ul1/8L2+4IaJVeTRbjYc5hRcGbh3wjkNLBP90gXISlh8

'' SIG '' ZsC7k22x+k89M8JnDPp47a81uAE0kO3eEq9M90XvusY1

'' SIG '' B+2Q2N62wRJAjlvrj8jsX5RPGD69Hf9Tl0+TXE2aZ+FU

'' SIG '' o1vH9WsKRHorLLASNzOO+VrSx+iPN4ht2sHppvFK749M

'' SIG '' fSiTpnwMv1YTQ9gj/AiT+Htn+DYj8k/siV96lsHRhgE8

'' SIG '' xuTSyl306rKlfiuoCI/Q2o1vPpbPMz30r2q9Yd3823uc

'' SIG '' uN9CoFTpeOjSnvjz7uLjnrxDSSoKopMFZgvnGGcLWNEV

'' SIG '' nlxc/H+/MIIF1zCCA7+gAwIBAgIKYQd2VgAAAAAACDAN

'' SIG '' BgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzAR

'' SIG '' BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v

'' SIG '' bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv

'' SIG '' bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm

'' SIG '' aWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTExMDE5MTg0

'' SIG '' MTQyWhcNMjYxMDE5MTg1MTQyWjCBhDELMAkGA1UEBhMC

'' SIG '' VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT

'' SIG '' B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw

'' SIG '' b3JhdGlvbjEuMCwGA1UEAxMlTWljcm9zb2Z0IFdpbmRv

'' SIG '' d3MgUHJvZHVjdGlvbiBQQ0EgMjAxMTCCASIwDQYJKoZI

'' SIG '' hvcNAQEBBQADggEPADCCAQoCggEBAN0Mu6LkLgnj58X3

'' SIG '' lmm8ACG9aTMz760Ey1SA7gaDu8UghNn30ovzOLCrpK0t

'' SIG '' fGJ5Bf/jSj8ENSBw48Tna+CcwDZ16Yox3Y1w5dw3tXRG

'' SIG '' lihbh2AjLL/cR6Vn91EnnnLrB6bJuR47UzV85dPsJ7mH

'' SIG '' HP65ySMJb6hGkcFuljxB08ujP10Cak3saR8lKFw2//1D

'' SIG '' FQqU4Bm0z9/CEuLCWyfuJ3gwi1sqCWsiiVNgFizAaB1T

'' SIG '' uuxJ851hjIVoCXNEXX2iVCvdefcVzzVdbBwrXM68nCOL

'' SIG '' b261Jtk2E8NP1ieuuTI7QZIs4cfNd+iqVE73XAsEh2W0

'' SIG '' QxiosuBtGXfsWiT6SAMCAwEAAaOCAUMwggE/MBAGCSsG

'' SIG '' AQQBgjcVAQQDAgEAMB0GA1UdDgQWBBSpKQI5jhbEl3jN

'' SIG '' kPmeT5rhfFWvUzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi

'' SIG '' AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB

'' SIG '' /zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoY

'' SIG '' xDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1p

'' SIG '' Y3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNS

'' SIG '' b29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUH

'' SIG '' AQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1p

'' SIG '' Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1

'' SIG '' dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG9w0BAQsFAAOC

'' SIG '' AgEAFPx8cVGlecJusu85Prw8Ug9uKz8QE3P+qGjQSKY0

'' SIG '' TYqWBSbuMUaQYXnW/zguRWv0wOUouNodj4rbCdcax0wK

'' SIG '' NmZqjOwb1wSQqBgXpJu54kAyNnbEwVrGv+QEwOoW06zD

'' SIG '' aO9irN1UbFAwWKbrfP6Up06O9Ox8hnNXwlIhczRa86OK

'' SIG '' VsgE2gcJ7fiL4870fo6u8PYLigj7P8kdcn9TuOu+Y+Dj

'' SIG '' PTFlsIHl8qzNFqSfPaixm8JC0JCEX1Qd/4nquh1HkG+w

'' SIG '' c05Bn0CfX+WhKrIRkXOKISjwzt5zOV8+q1xg7N8DEKjT

'' SIG '' Cen09paFtn9RiGZHGY2isBI9gSpoBXe7kUxie7bBB8e6

'' SIG '' eoc0Aw5LYnqZ6cr8zko3yS2kV3wc/j3cuA9a+tbEswKF

'' SIG '' Ajrqs9lu5GkhN96B0fZ1GQVn05NXXikbOcjuLeHN5EVz

'' SIG '' W9DSznqrFhmCRljQXp2Bs2evbDXyvOU/JOI1ogp1BvYY

'' SIG '' VpnUeCzRBRvr0IgBnaoQ8QXfun4sY7cGmyMhxPl4bOJY

'' SIG '' FwY2K5ESA8yk2fItuvmUnUDtGEXxzopcaz6rA9NwGCoK

'' SIG '' auBfR9HVYwoy8q/XNh8qcFrlQlkIcUtXun6DgfAhPPQc

'' SIG '' wcW5kJMOiEWThumxIJm+mMvFlaRdYtagYwggvXUQd309

'' SIG '' 80W5n5efy1eAbzOpBM93pGIcWX4xghXSMIIVzgIBATCB

'' SIG '' nDCBhDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp

'' SIG '' bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT

'' SIG '' FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEuMCwGA1UEAxMl

'' SIG '' TWljcm9zb2Z0IFdpbmRvd3MgUHJvZHVjdGlvbiBQQ0Eg

'' SIG '' MjAxMQITMwAAAu0sReTBRc9IRAAAAAAC7TANBglghkgB

'' SIG '' ZQMEAgEFAKCCAQQwGQYJKoZIhvcNAQkDMQwGCisGAQQB

'' SIG '' gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcC

'' SIG '' ARUwLwYJKoZIhvcNAQkEMSIEIKB3KTvjHOwjJx/hn7dw

'' SIG '' 25GG9ZVY36lHuHhwdldxEuIxMDwGCisGAQQBgjcKAxwx

'' SIG '' LgwsQkMyV2E3YWphdlFZK1N5ZWRHVlhiRjBqcDAwZkUy

'' SIG '' RG50VE5yU1BIRWdDdz0wWgYKKwYBBAGCNwIBDDFMMEqg

'' SIG '' JIAiAE0AaQBjAHIAbwBzAG8AZgB0ACAAVwBpAG4AZABv

'' SIG '' AHcAc6EigCBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v

'' SIG '' d2luZG93czANBgkqhkiG9w0BAQEFAASCAQCBzgVixMsn

'' SIG '' AlBt0VjtG5AjMdFUxQ9iB2nqFnb16RNI/MU6MC7HNhqt

'' SIG '' SQDfmyREaHUjLvLsllfBkP2uWifVUmSgeGSx32dBdnwK

'' SIG '' 9oZ6diVqes87bQQ1lpae0eiFAg9DlC4zMstf6PEeMIF1

'' SIG '' xB7tOYESLV0FS46QQ13y+rAYaot3Q78/SDsqz4BR6U01

'' SIG '' jdUK5avNehm/PQJoqmKohP6ocS0zFE3Av2BnNg8A4uMk

'' SIG '' 4S/A3a12P7r4P2W9GbJFv2bsMkYnbzCLi3tL0ROfLaPg

'' SIG '' daQFyJ6yMA7d/49gY3UDBshPlq3Kd9qcUh9CjQawZ8i4

'' SIG '' nLzk5NABy4iC39R98CG4udpHoYIS/jCCEvoGCisGAQQB

'' SIG '' gjcDAwExghLqMIIS5gYJKoZIhvcNAQcCoIIS1zCCEtMC

'' SIG '' AQMxDzANBglghkgBZQMEAgEFADCCAVkGCyqGSIb3DQEJ

'' SIG '' EAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMBMDEw

'' SIG '' DQYJYIZIAWUDBAIBBQAEIIcG45Zbn6xVVSLgwzAw4CT+

'' SIG '' 5LRZYn8VHjfgioWSXbenAgZgivj5/8sYEzIwMjEwNTA4

'' SIG '' MDUxMzU0LjQ2N1owBIACAfSggdikgdUwgdIxCzAJBgNV

'' SIG '' BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD

'' SIG '' VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg

'' SIG '' Q29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJ

'' SIG '' cmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UE

'' SIG '' CxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0LUQyMjAx

'' SIG '' JTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl

'' SIG '' cnZpY2Wggg5NMIIE+TCCA+GgAwIBAgITMwAAAUAjGdZe

'' SIG '' 3pUkMQAAAAABQDANBgkqhkiG9w0BAQsFADB8MQswCQYD

'' SIG '' VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G

'' SIG '' A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0

'' SIG '' IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg

'' SIG '' VGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMDEwMTUxNzI4

'' SIG '' MjZaFw0yMjAxMTIxNzI4MjZaMIHSMQswCQYDVQQGEwJV

'' SIG '' UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH

'' SIG '' UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv

'' SIG '' cmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFu

'' SIG '' ZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRo

'' SIG '' YWxlcyBUU1MgRVNOOkZDNDEtNEJENC1EMjIwMSUwIwYD

'' SIG '' VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl

'' SIG '' MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA

'' SIG '' rn1rM3Hq1S9N0z8R+YKqZu25ykk5OlT8TsuwtdBWyDCR

'' SIG '' FoASk9fB6siColFhXBhyej4c3yIwN0UyJWBOTAjHteOI

'' SIG '' YjfCpx539rbgBI5/BTHtC+qcBT7ftPknTtQn89lNOcpP

'' SIG '' 70fuYVZLoQsDnLjGxxtW/eVewR5Q0I1mWQfJy5xOfelk

'' SIG '' 5OWjz3YV4HKtqyIRzJZd/RzcY8w6qmzoSNsYIdvliT2e

'' SIG '' eQZbyYTdJQsRozIKTMLCJUBfVjow2fJMDtzDB9XEOdfh

'' SIG '' PWzvUOadYgqqh0lslAR7NV90FFmZgZWARrG8j7ZnVnC5

'' SIG '' MOXOS/NI58S48ycsug0pN2NGLLk2YWjxCwIDAQABo4IB

'' SIG '' GzCCARcwHQYDVR0OBBYEFDVDHC4md0YgjozSqnVs+OeE

'' SIG '' LQ5nMB8GA1UdIwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2ha

'' SIG '' hW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu

'' SIG '' bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p

'' SIG '' Y1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNybDBaBggrBgEF

'' SIG '' BQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cu

'' SIG '' bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3Rh

'' SIG '' UENBXzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAw

'' SIG '' EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEL

'' SIG '' BQADggEBAGMMUq2gQuCC9wr4YhISfPyobaNYV3Ov4YwW

'' SIG '' sSfIz/j1xaN9TvLAB2BxPi2CtRbgbBUf48n07yReZInw

'' SIG '' u2r8vwLoNG2TtYzey01DRyjjsNoiHF9UuRLFyKZChkKC

'' SIG '' 3o9r0Oy2x0YYjUpDxVChZ5q5cAfw884wP0iUcYnKKGn8

'' SIG '' eJ0nwpr7zr/Tlu+HOjXDT9C754aS4KUFNm8D7iwuvWWz

'' SIG '' SOVl7XMWdu82BnnTmB7s2Ocf3I4adGzdixQ5Zxxa3zOA

'' SIG '' vKzrV+0HcVQIY3SQJ9PzjDRlzCviMThxA8FUIRL3FnYq

'' SIG '' vchWkEoZ4w8S7FsGWNlXLWQ7fHMb3l4gjueHyO4p6tUw

'' SIG '' ggZxMIIEWaADAgECAgphCYEqAAAAAAACMA0GCSqGSIb3

'' SIG '' DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK

'' SIG '' V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG

'' SIG '' A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYD

'' SIG '' VQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBB

'' SIG '' dXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0y

'' SIG '' NTA3MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYD

'' SIG '' VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k

'' SIG '' MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x

'' SIG '' JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD

'' SIG '' QSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB

'' SIG '' CgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWlCgCC

'' SIG '' hfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4J

'' SIG '' E458YTBZsTBED/FgiIRUQwzXTbg4CLNC3ZOs1nMwVyaC

'' SIG '' o0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeRX4FUsc+T

'' SIG '' TJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9L

'' SIG '' ZIlQYrFd/XcfPfBXday9ikJNQFHRD5wGPmd/9WbAA5ZE

'' SIG '' fu/QS/1u5ZrKsajyeioKMfDaTgaRtogINeh4HLDpmc08

'' SIG '' 5y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQID

'' SIG '' AQABo4IB5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYD

'' SIG '' VR0OBBYEFNVjOlyKMZDzQ3t8RhvFM2hahW1VMBkGCSsG

'' SIG '' AQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB

'' SIG '' hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2

'' SIG '' VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJ

'' SIG '' oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kv

'' SIG '' Y3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2

'' SIG '' LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUH

'' SIG '' MAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kv

'' SIG '' Y2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0

'' SIG '' MIGgBgNVHSABAf8EgZUwgZIwgY8GCSsGAQQBgjcuAzCB

'' SIG '' gTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3Nv

'' SIG '' ZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBA

'' SIG '' BggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8A

'' SIG '' bABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTAN

'' SIG '' BgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2d

'' SIG '' o6Ehb7Prpsz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9

'' SIG '' x6ieJeP5vO1rVFcIK1GCRBL7uVOMzPRgEop2zEBAQZvc

'' SIG '' XBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqR

'' SIG '' UgCvOA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOl

'' SIG '' lo9ZKby2/QThcJ8ySif9Va8v/rbljjO7Yl+a21dA6fHO

'' SIG '' mWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99

'' SIG '' lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCb

'' SIG '' IjggtSXlZOz39L9+Y1klD3ouOVd2onGqBooPiRa6YacR

'' SIG '' y5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQHm+9

'' SIG '' 8eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwms

'' SIG '' ObvsxsvYgrRyzR30uIUBHoD7G4kqVDmyW9rIDVWZeodz

'' SIG '' OwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp25ayp0Ki

'' SIG '' yc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu

'' SIG '' 3EQ8l1Bx16HSxVXjad5XwdHeMMD9zOZN+w2/XU/pnR4Z

'' SIG '' OC+8z1gFLu8NoFA12u8JJxzVs341Hgi62jbb01+P3nSI

'' SIG '' SRKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNV

'' SIG '' BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD

'' SIG '' VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg

'' SIG '' Q29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJ

'' SIG '' cmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UE

'' SIG '' CxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0LUQyMjAx

'' SIG '' JTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNl

'' SIG '' cnZpY2WiIwoBATAHBgUrDgMCGgMVAEKl5h7yE6Y7Mpfm

'' SIG '' MpEbQzkJclFToIGDMIGApH4wfDELMAkGA1UEBhMCVVMx

'' SIG '' EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl

'' SIG '' ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh

'' SIG '' dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3Rh

'' SIG '' bXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDkQAMu

'' SIG '' MCIYDzIwMjEwNTA4MDIxOTI2WhgPMjAyMTA1MDkwMjE5

'' SIG '' MjZaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAORAAy4C

'' SIG '' AQAwCgIBAAICEvYCAf8wBwIBAAICEUYwCgIFAORBVK4C

'' SIG '' AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoD

'' SIG '' AqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG

'' SIG '' 9w0BAQUFAAOBgQAw6S02tiUHwg116zUSwZLqq9vHNAPL

'' SIG '' 1H9T4wPgJH6cWtPhDS0C9VZYmuEjl2YEg7dXjJKw7Dy6

'' SIG '' b24SZ2LX1D3t9dJgo5p/8VOjToCFf+FqypJsHGKjn/9W

'' SIG '' 52RMatcg0DebqWFJ0AGz8lCQMGdMixAb28vfhXWAb3K2

'' SIG '' E/86w5pQRzGCAw0wggMJAgEBMIGTMHwxCzAJBgNVBAYT

'' SIG '' AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH

'' SIG '' EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y

'' SIG '' cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l

'' SIG '' LVN0YW1wIFBDQSAyMDEwAhMzAAABQCMZ1l7elSQxAAAA

'' SIG '' AAFAMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0B

'' SIG '' CQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIE

'' SIG '' IPQR+qngB9FWSrCsc2sZljE7dB0ZGRlZuAD902a9OZ8s

'' SIG '' MIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgLzaw

'' SIG '' terM0qRcJO/zcvJT7do/ycp8RZsRSTqqtgIIl4MwgZgw

'' SIG '' gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz

'' SIG '' aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE

'' SIG '' ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD

'' SIG '' Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAIT

'' SIG '' MwAAAUAjGdZe3pUkMQAAAAABQDAiBCBtQKG8wpl5MWnM

'' SIG '' S5f1wKISBkleMHMr881EGe4PRB0icTANBgkqhkiG9w0B

'' SIG '' AQsFAASCAQBfOEMqqD2T7Te/hE4x4QHuNEH9d9emoxA1

'' SIG '' HqIi/UIgamAVxLVOYOl+gH0sXbbD9sRayLreb/othA/Z

'' SIG '' YdRkOeBx69zSBuMFa+7dFJvAowjqmWHCbf7xMlVcKCd6

'' SIG '' ojFObYHbsCzSSD3QnIysosTu99zdmf82Oo5niC69eGqv

'' SIG '' 20S/vBo2nME9nzbFTA2QewLfzifZ0rpPHh78NkwShY9B

'' SIG '' ohK20SBQOoTunBTjxeVASB/RFSb9gDvhuOBEQZ6CLjFG

'' SIG '' 9ddyk0j4UwcoIgKXKlha/B35d0kyTuEY4S4a2kqaq8V9

'' SIG '' OBVaaLDsRaMUzPXyraMQNcAIeddqyA3fo7Pg4Fu2afJu

'' SIG '' End signature block