Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

951 lines
35 KiB

  1. '----------------------------------------------------------------------
  2. '
  3. ' Copyright (c) Microsoft Corporation. All rights reserved.
  4. '
  5. ' Abstract:
  6. ' prnjobs.vbs - job control script for WMI on Whistler
  7. ' used to pause, resume, cancel and list jobs
  8. '
  9. ' Usage:
  10. ' prnjobs [-zmxl?] [-s server] [-p printer] [-j jobid] [-u user name] [-w password]
  11. '
  12. ' Examples:
  13. ' prnjobs -z -j jobid -p printer
  14. ' prnjobs -l -p printer
  15. '
  16. '----------------------------------------------------------------------
  17. option explicit
  18. '
  19. ' Debugging trace flags, to enable debug output trace message
  20. ' change gDebugFlag to true.
  21. '
  22. const kDebugTrace = 1
  23. const kDebugError = 2
  24. dim gDebugFlag
  25. gDebugFlag = false
  26. '
  27. ' Operation action values.
  28. '
  29. const kActionUnknown = 0
  30. const kActionPause = 1
  31. const kActionResume = 2
  32. const kActionCancel = 3
  33. const kActionList = 4
  34. const kErrorSuccess = 0
  35. const KErrorFailure = 1
  36. const kNameSpace = "root\cimv2"
  37. '
  38. ' Job status constants
  39. '
  40. const kJobPaused = 1
  41. const kJobError = 2
  42. const kJobDeleting = 4
  43. const kJobSpooling = 8
  44. const kJobPrinting = 16
  45. const kJobOffline = 32
  46. const kJobPaperOut = 64
  47. const kJobPrinted = 128
  48. const kJobDeleted = 256
  49. const kJobBlockedDevq = 512
  50. const kJobUserInt = 1024
  51. const kJobRestarted = 2048
  52. const kJobComplete = 4096
  53. '
  54. ' Generic strings
  55. '
  56. const L_Empty_Text = ""
  57. const L_Space_Text = " "
  58. const L_Error_Text = "Error"
  59. const L_Success_Text = "Success"
  60. const L_Failed_Text = "Failed"
  61. const L_Hex_Text = "0x"
  62. const L_Printer_Text = "Printer"
  63. const L_Operation_Text = "Operation"
  64. const L_Provider_Text = "Provider"
  65. const L_Description_Text = "Description"
  66. const L_Debug_Text = "Debug:"
  67. '
  68. ' General usage messages
  69. '
  70. const L_Help_Help_General01_Text = "Usage: prnjobs [-zmxl?] [-s server][-p printer][-j jobid][-u user name][-w password]"
  71. const L_Help_Help_General02_Text = "Arguments:"
  72. const L_Help_Help_General03_Text = "-j - job id"
  73. const L_Help_Help_General04_Text = "-l - list all jobs"
  74. const L_Help_Help_General05_Text = "-m - resume the job"
  75. const L_Help_Help_General06_Text = "-p - printer name"
  76. const L_Help_Help_General07_Text = "-s - server name"
  77. const L_Help_Help_General08_Text = "-u - user name"
  78. const L_Help_Help_General09_Text = "-w - password"
  79. const L_Help_Help_General10_Text = "-x - cancel the job"
  80. const L_Help_Help_General11_Text = "-z - pause the job"
  81. const L_Help_Help_General12_Text = "-? - display command usage"
  82. const L_Help_Help_General13_Text = "Examples:"
  83. const L_Help_Help_General14_Text = "prnjobs -z -p printer -j jobid"
  84. const L_Help_Help_General15_Text = "prnjobs -l -p printer"
  85. const L_Help_Help_General16_Text = "prnjobs -l"
  86. '
  87. ' Messages to be displayed if the scripting host is not cscript
  88. '
  89. const L_Help_Help_Host01_Text = "Please run this script using CScript."
  90. const L_Help_Help_Host02_Text = "This can be achieved by"
  91. const L_Help_Help_Host03_Text = "1. Using ""CScript script.vbs arguments"" or"
  92. const L_Help_Help_Host04_Text = "2. Changing the default Windows Scripting Host to CScript"
  93. const L_Help_Help_Host05_Text = " using ""CScript //H:CScript //S"" and running the script "
  94. const L_Help_Help_Host06_Text = " ""script.vbs arguments""."
  95. '
  96. ' General error messages
  97. '
  98. const L_Text_Error_General01_Text = "The scripting host could not be determined."
  99. const L_Text_Error_General02_Text = "Unable to parse command line."
  100. const L_Text_Error_General03_Text = "Win32 error code"
  101. '
  102. ' Miscellaneous messages
  103. '
  104. const L_Text_Msg_General01_Text = "Unable to enumerate print jobs"
  105. const L_Text_Msg_General02_Text = "Number of print jobs enumerated"
  106. const L_Text_Msg_General03_Text = "Unable to set print job"
  107. const L_Text_Msg_General04_Text = "Unable to get SWbemLocator object"
  108. const L_Text_Msg_General05_Text = "Unable to connect to WMI service"
  109. '
  110. ' Print job properties
  111. '
  112. const L_Text_Msg_Job01_Text = "Job id"
  113. const L_Text_Msg_Job02_Text = "Printer"
  114. const L_Text_Msg_Job03_Text = "Document"
  115. const L_Text_Msg_Job04_Text = "Data type"
  116. const L_Text_Msg_Job05_Text = "Driver name"
  117. const L_Text_Msg_Job06_Text = "Description"
  118. const L_Text_Msg_Job07_Text = "Elapsed time"
  119. const L_Text_Msg_Job08_Text = "Machine name"
  120. const L_Text_Msg_Job09_Text = "Notify"
  121. const L_Text_Msg_Job10_Text = "Owner"
  122. const L_Text_Msg_Job11_Text = "Pages printed"
  123. const L_Text_Msg_Job12_Text = "Parameters"
  124. const L_Text_Msg_Job13_Text = "Size"
  125. const L_Text_Msg_Job14_Text = "Start time"
  126. const L_Text_Msg_Job15_Text = "Until time"
  127. const L_Text_Msg_Job16_Text = "Status"
  128. const L_Text_Msg_Job17_Text = "Time submitted"
  129. const L_Text_Msg_Job18_Text = "Total pages"
  130. '
  131. ' Job status strings
  132. '
  133. const L_Text_Msg_Status01_Text = "The driver cannot print the job"
  134. const L_Text_Msg_Status02_Text = "Sent to the printer"
  135. const L_Text_Msg_Status03_Text = "Job has been deleted"
  136. const L_Text_Msg_Status04_Text = "Job is being deleted"
  137. const L_Text_Msg_Status05_Text = "An error is associated with the job"
  138. const L_Text_Msg_Status06_Text = "Printer is offline"
  139. const L_Text_Msg_Status07_Text = "Printer is out of paper"
  140. const L_Text_Msg_Status08_Text = "Job is paused"
  141. const L_Text_Msg_Status09_Text = "Job has printed"
  142. const L_Text_Msg_Status10_Text = "Job is printing"
  143. const L_Text_Msg_Status11_Text = "Job has been restarted"
  144. const L_Text_Msg_Status12_Text = "Job is spooling"
  145. const L_Text_Msg_Status13_Text = "Printer has an error that requires user intervention"
  146. '
  147. ' Action strings
  148. '
  149. const L_Text_Action_General01_Text = "Pause"
  150. const L_Text_Action_General02_Text = "Resume"
  151. const L_Text_Action_General03_Text = "Cancel"
  152. '
  153. ' Debug messages
  154. '
  155. const L_Text_Dbg_Msg01_Text = "In function ListJobs"
  156. const L_Text_Dbg_Msg02_Text = "In function ExecJob"
  157. const L_Text_Dbg_Msg03_Text = "In function ParseCommandLine"
  158. main
  159. '
  160. ' Main execution starts here
  161. '
  162. sub main
  163. dim iAction
  164. dim iRetval
  165. dim strServer
  166. dim strPrinter
  167. dim strJob
  168. dim strUser
  169. dim strPassword
  170. '
  171. ' Abort if the host is not cscript
  172. '
  173. if not IsHostCscript() then
  174. call wscript.echo(L_Help_Help_Host01_Text & vbCRLF & L_Help_Help_Host02_Text & vbCRLF & _
  175. L_Help_Help_Host03_Text & vbCRLF & L_Help_Help_Host04_Text & vbCRLF & _
  176. L_Help_Help_Host05_Text & vbCRLF & L_Help_Help_Host06_Text & vbCRLF)
  177. wscript.quit
  178. end if
  179. iRetval = ParseCommandLine(iAction, strServer, strPrinter, strJob, strUser, strPassword)
  180. if iRetval = kErrorSuccess then
  181. select case iAction
  182. case kActionPause
  183. iRetval = ExecJob(strServer, strJob, strPrinter, strUser, strPassword, L_Text_Action_General01_Text)
  184. case kActionResume
  185. iRetval = ExecJob(strServer, strJob, strPrinter, strUser, strPassword, L_Text_Action_General02_Text)
  186. case kActionCancel
  187. iRetval = ExecJob(strServer, strJob, strPrinter, strUser, strPassword, L_Text_Action_General03_Text)
  188. case kActionList
  189. iRetval = ListJobs(strServer, strPrinter, strUser, strPassword)
  190. case else
  191. Usage(true)
  192. exit sub
  193. end select
  194. end if
  195. end sub
  196. '
  197. ' Enumerate all print jobs on a printer
  198. '
  199. function ListJobs(strServer, strPrinter, strUser, strPassword)
  200. on error resume next
  201. DebugPrint kDebugTrace, L_Text_Dbg_Msg01_Text
  202. dim Jobs
  203. dim oJob
  204. dim oService
  205. dim iRetval
  206. dim strTemp
  207. dim iTotal
  208. if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then
  209. set Jobs = oService.InstancesOf("Win32_PrintJob")
  210. else
  211. ListJobs = kErrorFailure
  212. exit function
  213. end if
  214. if Err.Number <> kErrorSuccess then
  215. wscript.echo L_Text_Msg_General01_Text & L_Space_Text & L_Error_Text & L_Space_Text _
  216. & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description
  217. ListJobs = kErrorFailure
  218. exit function
  219. end if
  220. iTotal = 0
  221. for each oJob in Jobs
  222. '
  223. ' oJob.Name has the form "printer name, job id". We are isolating the printer name
  224. '
  225. strTemp = Mid(oJob.Name, 1, InStr(1, oJob.Name, ",", 1)-1 )
  226. '
  227. ' If no printer was specified, then enumerate all jobs
  228. '
  229. if strPrinter = null or strPrinter = "" or LCase(strTemp) = LCase(strPrinter) then
  230. iTotal = iTotal + 1
  231. wscript.echo L_Empty_Text
  232. wscript.echo L_Text_Msg_Job01_Text & L_Space_Text & oJob.JobId
  233. wscript.echo L_Text_Msg_Job02_Text & L_Space_Text & strTemp
  234. wscript.echo L_Text_Msg_Job03_Text & L_Space_Text & oJob.Document
  235. wscript.echo L_Text_Msg_Job04_Text & L_Space_Text & oJob.DataType
  236. wscript.echo L_Text_Msg_Job05_Text & L_Space_Text & oJob.DriverName
  237. wscript.echo L_Text_Msg_Job06_Text & L_Space_Text & oJob.Description
  238. wscript.echo L_Text_Msg_Job07_Text & L_Space_Text & Mid(CStr(oJob.ElapsedTime), 9, 2) & ":" _
  239. & Mid(CStr(oJob.ElapsedTime), 11, 2) & ":" _
  240. & Mid(CStr(oJob.ElapsedTime), 13, 2)
  241. wscript.echo L_Text_Msg_Job08_Text & L_Space_Text & oJob.HostPrintQueue
  242. wscript.echo L_Text_Msg_Job09_Text & L_Space_Text & oJob.Notify
  243. wscript.echo L_Text_Msg_Job10_Text & L_Space_Text & oJob.Owner
  244. wscript.echo L_Text_Msg_Job11_Text & L_Space_Text & oJob.PagesPrinted
  245. wscript.echo L_Text_Msg_Job12_Text & L_Space_Text & oJob.Parameters
  246. wscript.echo L_Text_Msg_Job13_Text & L_Space_Text & oJob.Size
  247. if CStr(oJob.StartTime) <> "********000000.000000+000" and _
  248. CStr(oJob.UntilTime) <> "********000000.000000+000" then
  249. wscript.echo L_Text_Msg_Job14_Text & L_Space_Text & Mid(Mid(CStr(oJob.StartTime), 9, 4), 1, 2) & "h" _
  250. & Mid(Mid(CStr(oJob.StartTime), 9, 4), 3, 2)
  251. wscript.echo L_Text_Msg_Job15_Text & L_Space_Text & Mid(Mid(CStr(oJob.UntilTime), 9, 4), 1, 2) & "h" _
  252. & Mid(Mid(CStr(oJob.UntilTime), 9, 4), 3, 2)
  253. end if
  254. wscript.echo L_Text_Msg_Job16_Text & L_Space_Text & JobStatusToString(oJob.StatusMask)
  255. wscript.echo L_Text_Msg_Job17_Text & L_Space_Text & Mid(CStr(oJob.TimeSubmitted), 5, 2) & "/" _
  256. & Mid(CStr(oJob.TimeSubmitted), 7, 2) & "/" _
  257. & Mid(CStr(oJob.TimeSubmitted), 1, 4) & " " _
  258. & Mid(CStr(oJob.TimeSubmitted), 9, 2) & ":" _
  259. & Mid(CStr(oJob.TimeSubmitted), 11, 2) & ":" _
  260. & Mid(CStr(oJob.TimeSubmitted), 13, 2)
  261. wscript.echo L_Text_Msg_Job19_Text & L_Space_Text & oJob.TotalPages
  262. Err.Clear
  263. end if
  264. next
  265. wscript.echo L_Empty_Text
  266. wscript.echo L_Text_Msg_General02_Text & L_Space_Text & iTotal
  267. ListJobs = kErrorSuccess
  268. end function
  269. '
  270. ' Convert the job status from bit mask to string
  271. '
  272. function JobStatusToString(Status)
  273. on error resume next
  274. dim strString
  275. strString = L_Empty_Text
  276. if (Status and kJobPaused) = kJobPaused then strString = strString & L_Text_Msg_Status08_Text & L_Space_Text end if
  277. if (Status and kJobError) = kJobError then strString = strString & L_Text_Msg_Status05_Text & L_Space_Text end if
  278. if (Status and kJobDeleting) = kJobDeleting then strString = strString & L_Text_Msg_Status04_Text & L_Space_Text end if
  279. if (Status and kJobSpooling) = kJobSpooling then strString = strString & L_Text_Msg_Status12_Text & L_Space_Text end if
  280. if (Status and kJobPrinting) = kJobPrinting then strString = strString & L_Text_Msg_Status10_Text & L_Space_Text end if
  281. if (Status and kJobOffline) = kJobOffline then strString = strString & L_Text_Msg_Status06_Text & L_Space_Text end if
  282. if (Status and kJobPaperOut) = kJobPaperOut then strString = strString & L_Text_Msg_Status07_Text & L_Space_Text end if
  283. if (Status and kJobPrinted) = kJobPrinted then strString = strString & L_Text_Msg_Status09_Text & L_Space_Text end if
  284. if (Status and kJobDeleted) = kJobDeleted then strString = strString & L_Text_Msg_Status03_Text & L_Space_Text end if
  285. if (Status and kJobBlockedDevq) = kJobBlockedDevq then strString = strString & L_Text_Msg_Status01_Text & L_Space_Text end if
  286. if (Status and kJobUserInt) = kJobUserInt then strString = strString & L_Text_Msg_Status13_Text & L_Space_Text end if
  287. if (Status and kJobRestarted) = kJobRestarted then strString = strString & L_Text_Msg_Status11_Text & L_Space_Text end if
  288. if (Status and kJobComplete) = kJobComplete then strString = strString & L_Text_Msg_Status02_Text & L_Space_Text end if
  289. JobStatusToString = strString
  290. end function
  291. '
  292. ' Pause/Resume/Cancel jobs
  293. '
  294. function ExecJob(strServer, strJob, strPrinter, strUser, strPassword, strCommand)
  295. on error resume next
  296. DebugPrint kDebugTrace, L_Text_Dbg_Msg02_Text
  297. dim oJob
  298. dim oService
  299. dim iRetval
  300. dim uResult
  301. dim strName
  302. '
  303. ' Build up the key. The key for print jobs is "printer-name, job-id"
  304. '
  305. strName = strPrinter & ", " & strJob
  306. iRetval = kErrorFailure
  307. if WmiConnect(strServer, kNameSpace, strUser, strPassword, oService) then
  308. set oJob = oService.Get("Win32_PrintJob.Name='" & strName & "'")
  309. else
  310. ExecJob = kErrorFailure
  311. exit function
  312. end if
  313. '
  314. ' Check if getting job instance succeeded
  315. '
  316. if Err.Number = kErrorSuccess then
  317. uResult = kErrorSuccess
  318. select case strCommand
  319. case L_Text_Action_General01_Text
  320. uResult = oJob.Pause()
  321. case L_Text_Action_General02_Text
  322. uResult = oJob.Resume()
  323. case L_Text_Action_General03_Text
  324. oJob.Delete_()
  325. case else
  326. Usage(true)
  327. end select
  328. if Err.Number = kErrorSuccess then
  329. if uResult = kErrorSuccess then
  330. wscript.echo L_Success_Text & L_Space_Text & strCommand & L_Space_Text _
  331. & L_Text_Msg_Job01_Text & L_Space_Text & strJob _
  332. & L_Space_Text & L_Printer_Text & L_Space_Text & strPrinter
  333. iRetval = kErrorSuccess
  334. else
  335. wscript.echo L_Failed_Text & L_Space_Text & strCommand & L_Space_Text _
  336. & L_Text_Error_General03_Text & L_Space_Text & uResult
  337. end if
  338. else
  339. wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _
  340. & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description
  341. '
  342. ' Try getting extended error information
  343. '
  344. call LastError()
  345. end if
  346. else
  347. wscript.echo L_Text_Msg_General03_Text & L_Space_Text & L_Error_Text & L_Space_Text _
  348. & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description
  349. '
  350. ' Try getting extended error information
  351. '
  352. call LastError()
  353. end if
  354. ExecJob = iRetval
  355. end function
  356. '
  357. ' Debug display helper function
  358. '
  359. sub DebugPrint(uFlags, strString)
  360. if gDebugFlag = true then
  361. if uFlags = kDebugTrace then
  362. wscript.echo L_Debug_Text & L_Space_Text & strString
  363. end if
  364. if uFlags = kDebugError then
  365. if Err <> 0 then
  366. wscript.echo L_Debug_Text & L_Space_Text & strString & L_Space_Text _
  367. & L_Error_Text & L_Space_Text & L_Hex_Text & hex(Err.Number) _
  368. & L_Space_Text & Err.Description
  369. end if
  370. end if
  371. end if
  372. end sub
  373. '
  374. ' Parse the command line into its components
  375. '
  376. function ParseCommandLine(iAction, strServer, strPrinter, strJob, strUser, strPassword)
  377. on error resume next
  378. DebugPrint kDebugTrace, L_Text_Dbg_Msg03_Text
  379. dim oArgs
  380. dim iIndex
  381. iAction = kActionUnknown
  382. iIndex = 0
  383. set oArgs = wscript.Arguments
  384. while iIndex < oArgs.Count
  385. select case oArgs(iIndex)
  386. case "-z"
  387. iAction = kActionPause
  388. case "-m"
  389. iAction = kActionResume
  390. case "-x"
  391. iAction = kActionCancel
  392. case "-l"
  393. iAction = kActionList
  394. case "-p"
  395. iIndex = iIndex + 1
  396. strPrinter = oArgs(iIndex)
  397. case "-s"
  398. iIndex = iIndex + 1
  399. strServer = RemoveBackslashes(oArgs(iIndex))
  400. case "-j"
  401. iIndex = iIndex + 1
  402. strJob = oArgs(iIndex)
  403. case "-u"
  404. iIndex = iIndex + 1
  405. strUser = oArgs(iIndex)
  406. case "-w"
  407. iIndex = iIndex + 1
  408. strPassword = oArgs(iIndex)
  409. case "-?"
  410. Usage(true)
  411. exit function
  412. case else
  413. Usage(true)
  414. exit function
  415. end select
  416. iIndex = iIndex + 1
  417. wend
  418. if Err.Number = kErrorSuccess then
  419. ParseCommandLine = kErrorSuccess
  420. else
  421. wscript.echo L_Text_Error_General02_Text & L_Space_Text & L_Error_Text & L_Space_Text _
  422. & L_Hex_Text & hex(Err.Number) & L_Space_text & Err.Description
  423. ParseCommandLine = kErrorFailure
  424. end if
  425. end function
  426. '
  427. ' Display command usage.
  428. '
  429. sub Usage(bExit)
  430. wscript.echo L_Help_Help_General01_Text
  431. wscript.echo L_Empty_Text
  432. wscript.echo L_Help_Help_General02_Text
  433. wscript.echo L_Help_Help_General03_Text
  434. wscript.echo L_Help_Help_General04_Text
  435. wscript.echo L_Help_Help_General05_Text
  436. wscript.echo L_Help_Help_General06_Text
  437. wscript.echo L_Help_Help_General07_Text
  438. wscript.echo L_Help_Help_General08_Text
  439. wscript.echo L_Help_Help_General09_Text
  440. wscript.echo L_Help_Help_General10_Text
  441. wscript.echo L_Help_Help_General11_Text
  442. wscript.echo L_Help_Help_General12_Text
  443. wscript.echo L_Empty_Text
  444. wscript.echo L_Help_Help_General13_Text
  445. wscript.echo L_Help_Help_General14_Text
  446. wscript.echo L_Help_Help_General15_Text
  447. wscript.echo L_Help_Help_General16_Text
  448. if bExit then
  449. wscript.quit(1)
  450. end if
  451. end sub
  452. '
  453. ' Determines which program is being used to run this script.
  454. ' Returns true if the script host is cscript.exe
  455. '
  456. function IsHostCscript()
  457. on error resume next
  458. dim strFullName
  459. dim strCommand
  460. dim i, j
  461. dim bReturn
  462. bReturn = false
  463. strFullName = WScript.FullName
  464. i = InStr(1, strFullName, ".exe", 1)
  465. if i <> 0 then
  466. j = InStrRev(strFullName, "\", i, 1)
  467. if j <> 0 then
  468. strCommand = Mid(strFullName, j+1, i-j-1)
  469. if LCase(strCommand) = "cscript" then
  470. bReturn = true
  471. end if
  472. end if
  473. end if
  474. if Err <> 0 then
  475. wscript.echo L_Text_Error_General01_Text & L_Space_Text & L_Error_Text & L_Space_Text _
  476. & L_Hex_Text & hex(Err.Number) & L_Space_Text & Err.Description
  477. end if
  478. IsHostCscript = bReturn
  479. end function
  480. '
  481. ' Retrieves extended information about the last error that occurred
  482. ' during a WBEM operation. The methods that set an SWbemLastError
  483. ' object are GetObject, PutInstance, DeleteInstance
  484. '
  485. sub LastError()
  486. on error resume next
  487. dim oError
  488. set oError = CreateObject("WbemScripting.SWbemLastError")
  489. if Err = kErrorSuccess then
  490. wscript.echo L_Operation_Text & L_Space_Text & oError.Operation
  491. wscript.echo L_Provider_Text & L_Space_Text & oError.ProviderName
  492. wscript.echo L_Description_Text & L_Space_Text & oError.Description
  493. wscript.echo L_Text_Error_General03_Text & L_Space_Text & oError.StatusCode
  494. end if
  495. end sub
  496. '
  497. ' Connects to the WMI service on a server. oService is returned as a service
  498. ' object (SWbemServices)
  499. '
  500. function WmiConnect(strServer, strNameSpace, strUser, strPassword, oService)
  501. on error resume next
  502. dim oLocator
  503. dim bResult
  504. oService = null
  505. bResult = false
  506. set oLocator = CreateObject("WbemScripting.SWbemLocator")
  507. if Err = kErrorSuccess then
  508. set oService = oLocator.ConnectServer(strServer, strNameSpace, strUser, strPassword)
  509. if Err = kErrorSuccess then
  510. bResult = true
  511. oService.Security_.impersonationlevel = 3
  512. '
  513. ' Required to perform administrative tasks on the spooler service
  514. '
  515. oService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege"
  516. Err.Clear
  517. else
  518. wscript.echo L_Text_Msg_General05_Text & L_Space_Text & L_Error_Text _
  519. & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
  520. & Err.Description
  521. end if
  522. else
  523. wscript.echo L_Text_Msg_General04_Text & L_Space_Text & L_Error_Text _
  524. & L_Space_Text & L_Hex_Text & hex(Err.Number) & L_Space_Text _
  525. & Err.Description
  526. end if
  527. WmiConnect = bResult
  528. end function
  529. '
  530. ' Remove leading "\\" from server name
  531. '
  532. function RemoveBackslashes(strServer)
  533. dim strRet
  534. strRet = strServer
  535. if Left(strServer, 2) = "\\" and Len(strServer) > 2 then
  536. strRet = Mid(strServer, 3)
  537. end if
  538. RemoveBackslashes = strRet
  539. end function
  540. '' SIG '' Begin signature block
  541. '' SIG '' MIIZMAYJKoZIhvcNAQcCoIIZITCCGR0CAQExDjAMBggq
  542. '' SIG '' hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
  543. '' SIG '' AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB
  544. '' SIG '' AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEENjz
  545. '' SIG '' 96n5MChPNOn81WwOE+igghQ4MIICvDCCAiUCEEoZ0jiM
  546. '' SIG '' glkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
  547. '' SIG '' BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAV
  548. '' SIG '' BgNVBAsTDlZlcmlTaWduLCBJbmMuMSwwKgYDVQQLEyNW
  549. '' SIG '' ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2UgUm9v
  550. '' SIG '' dDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVE
  551. '' SIG '' LCAoYyk5NyBWZXJpU2lnbiwgSW5jLjAeFw05NzA1MTIw
  552. '' SIG '' MDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8wHQYDVQQK
  553. '' SIG '' ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQL
  554. '' SIG '' Ew5WZXJpU2lnbiwgSW5jLjEsMCoGA1UECxMjVmVyaVNp
  555. '' SIG '' Z24gVGltZSBTdGFtcGluZyBTZXJ2aWNlIFJvb3QxNDAy
  556. '' SIG '' BgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMp
  557. '' SIG '' OTcgVmVyaVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEB
  558. '' SIG '' BQADgY0AMIGJAoGBANMuIPBofCwtLoEcsQaypwu3EQ1X
  559. '' SIG '' 2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCH
  560. '' SIG '' Jet9WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUi
  561. '' SIG '' WC/VzBQFhDa6lKq0TUrp7jsirVaZfiGcbIbASkeXarSm
  562. '' SIG '' NtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
  563. '' SIG '' YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7i
  564. '' SIG '' We/MhOOJlEzbTmHvs6T7Rj1QNAufcFb2jip/F87lY795
  565. '' SIG '' aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS3P+6
  566. '' SIG '' Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2MwggQC
  567. '' SIG '' MIIDa6ADAgECAhAIem1cb2KTT7rE/UPhFBidMA0GCSqG
  568. '' SIG '' SIb3DQEBBAUAMIGeMR8wHQYDVQQKExZWZXJpU2lnbiBU
  569. '' SIG '' cnVzdCBOZXR3b3JrMRcwFQYDVQQLEw5WZXJpU2lnbiwg
  570. '' SIG '' SW5jLjEsMCoGA1UECxMjVmVyaVNpZ24gVGltZSBTdGFt
  571. '' SIG '' cGluZyBTZXJ2aWNlIFJvb3QxNDAyBgNVBAsTK05PIExJ
  572. '' SIG '' QUJJTElUWSBBQ0NFUFRFRCwgKGMpOTcgVmVyaVNpZ24s
  573. '' SIG '' IEluYy4wHhcNMDEwMjI4MDAwMDAwWhcNMDQwMTA2MjM1
  574. '' SIG '' OTU5WjCBoDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4x
  575. '' SIG '' HzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsx
  576. '' SIG '' OzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczov
  577. '' SIG '' L3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAxMScwJQYD
  578. '' SIG '' VQQDEx5WZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZp
  579. '' SIG '' Y2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
  580. '' SIG '' AQDAemGH67KnA2MbKxph3oC3FR2gi5A9uyeShBQ564XO
  581. '' SIG '' KZIGZkikA0+N6E+n8K9e0S8Zx5HxtZ57kSHO6f/jTvD8
  582. '' SIG '' r5VYuGMt5o72KRjNcI5Qw+2Wu0DbviXoQlXW9oXyBueL
  583. '' SIG '' mRwx8wMP1EycJCrcGxuPgvOw76dN4xSn4I/Wx2jCYVip
  584. '' SIG '' ctT4MEhP2S9vYyDZicqCe8JLvCjFgWjn5oJArEY6oPk/
  585. '' SIG '' Ns1Mu1RCWnple/6E5MdHVKy5PeyAxxr3xDOBgckqlft/
  586. '' SIG '' XjqHkBTbzC518u9r5j2pYL5CAapPqluoPyIxnxIV+XOh
  587. '' SIG '' HoKLBCvqRgJMbY8fUC6VSyp4BoR0PZGPLEcxAgMBAAGj
  588. '' SIG '' gbgwgbUwQAYIKwYBBQUHAQEENDAyMDAGCCsGAQUFBzAB
  589. '' SIG '' hiRodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20vb2NzcC9z
  590. '' SIG '' dGF0dXMwCQYDVR0TBAIwADBEBgNVHSAEPTA7MDkGC2CG
  591. '' SIG '' SAGG+EUBBwEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
  592. '' SIG '' d3d3LnZlcmlzaWduLmNvbS9ycGEwEwYDVR0lBAwwCgYI
  593. '' SIG '' KwYBBQUHAwgwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEB
  594. '' SIG '' BAUAA4GBAC3zT2NgLBja9SQPUrMM67O8Z4XCI+2PRg3P
  595. '' SIG '' Gk2+83x6IDAyGGiLkrsymfCTuDsVBid7PgIGAKQhkoQT
  596. '' SIG '' CsWY5UBXxQUl6K+vEWqp5TvL6SP2lCldQFXzpVOdyDY6
  597. '' SIG '' OWUIc3OkMtKvrL/HBTz/RezD6Nok0c5jrgmn++Ib4/1B
  598. '' SIG '' CmqWMIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9A
  599. '' SIG '' MA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNvcHly
  600. '' SIG '' aWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAc
  601. '' SIG '' BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8G
  602. '' SIG '' A1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5MB4X
  603. '' SIG '' DTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFowcDEr
  604. '' SIG '' MCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jv
  605. '' SIG '' c29mdCBDb3JwLjEeMBwGA1UECxMVTWljcm9zb2Z0IENv
  606. '' SIG '' cnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgUm9v
  607. '' SIG '' dCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IB
  608. '' SIG '' DwAwggEKAoIBAQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf
  609. '' SIG '' +P6VTKO3/p2iID58UaKboo9gMmvRQmR57qx2yVTa8uuc
  610. '' SIG '' hhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dos
  611. '' SIG '' vwy1WCbBRucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyh
  612. '' SIG '' YC13TOmZtGQ7mlAcMQgkFJ+p55ErGOY9mGMUYFgFZZ8d
  613. '' SIG '' N1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjM
  614. '' SIG '' lgkoIQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14W
  615. '' SIG '' gXcE2va+roCV/rDNf9anGnJcPMq88AijIjCzBoXJsyB3
  616. '' SIG '' E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw
  617. '' SIG '' 72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHly
  618. '' SIG '' aWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAc
  619. '' SIG '' BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8G
  620. '' SIG '' A1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8A
  621. '' SIG '' wQCLPDyIEdE+9mPs30AwDQYJKoZIhvcNAQEEBQADggEB
  622. '' SIG '' AJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4FkYiPyTrm
  623. '' SIG '' IfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzd
  624. '' SIG '' MY09nxBwarv+Ek8YacD80EPjEVogT+pie6+qGcgrNyUt
  625. '' SIG '' vmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH/YIX+OVnbA1R
  626. '' SIG '' 9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3I
  627. '' SIG '' V+5lScdSVLa0AygS/5DW8AiPfriXxas3LOR65Kh343ag
  628. '' SIG '' ANBqP8HSNorgQRKoNWobats14dQcBOSoRQTIWjM4bk0c
  629. '' SIG '' DWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qAwggSLMIID
  630. '' SIG '' c6ADAgECAgphBiqNAAAAAAALMA0GCSqGSIb3DQEBBQUA
  631. '' SIG '' MIGmMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
  632. '' SIG '' Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
  633. '' SIG '' TWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQLEyJD
  634. '' SIG '' b3B5cmlnaHQgKGMpIDIwMDAgTWljcm9zb2Z0IENvcnAu
  635. '' SIG '' MSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5n
  636. '' SIG '' IFBDQTAeFw0wMTAzMjkyMTI3MjZaFw0wMjA1MjkyMTM3
  637. '' SIG '' MjZaMIGhMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
  638. '' SIG '' aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
  639. '' SIG '' ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQL
  640. '' SIG '' EyJDb3B5cmlnaHQgKGMpIDIwMDEgTWljcm9zb2Z0IENv
  641. '' SIG '' cnAuMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRp
  642. '' SIG '' b24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAI4W
  643. '' SIG '' b9oX0+NFlbKs0+XPMT0dxIe7TkgF+YtWqSuHY8hE2jDJ
  644. '' SIG '' FLzreBq6xOricgBMRmab3mJGbp73RLrous/C1fU7lke4
  645. '' SIG '' UV7Rd2cie1MqLeoij3xO/wK1GzOg6pXrGLp2+WHSAAuU
  646. '' SIG '' YDQ7SYYss9mOky4ta/3jVaq4qm7gcPSiYAYvAgMBAAGj
  647. '' SIG '' ggFAMIIBPDAOBgNVHQ8BAf8EBAMCBsAwEwYDVR0lBAww
  648. '' SIG '' CgYIKwYBBQUHAwMwHQYDVR0OBBYEFO+QQN5P4BuzRdgH
  649. '' SIG '' A3uZ+XUZZjUaMIGpBgNVHSMEgaEwgZ6AFClcuRu2zTPu
  650. '' SIG '' u55Zffflyi7EDTQooXSkcjBwMSswKQYDVQQLEyJDb3B5
  651. '' SIG '' cmlnaHQgKGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4w
  652. '' SIG '' HAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
  653. '' SIG '' BgNVBAMTGE1pY3Jvc29mdCBSb290IEF1dGhvcml0eYIQ
  654. '' SIG '' aguZT8AA3qoR1NhAmqi+5jBKBgNVHR8EQzBBMD+gPaA7
  655. '' SIG '' hjlodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
  656. '' SIG '' bC9wcm9kdWN0cy9Db2RlU2lnblBDQS5jcmwwDQYJKoZI
  657. '' SIG '' hvcNAQEFBQADggEBAARnzM/dcU1Hwo6DaRJrol+WJgfo
  658. '' SIG '' j9jTnlrbJ2kdHfQ8VShT3REkJ5KuWVZA6cRNnezbq36U
  659. '' SIG '' mz0gLDXyJ07AyDm3ZWPRNWbaU71BfllKpFK39f3IvaF7
  660. '' SIG '' BriY2Jju0Qs0dWYN3EGPw7CShFfBQnqFxpET21St3n5B
  661. '' SIG '' 3CCv6RvJwjIxxY3py/qDS8FYkzLE1+PNeqvffQicxoU7
  662. '' SIG '' 6EGBOLF4Gbw4981rws6qTJAdg8bmAYloqueP6AdQKjLd
  663. '' SIG '' 18+9zHrZOg//skSKV8gaN2QHF317cktGBqEoWyNXHmr9
  664. '' SIG '' kSIzQNF1SxIBbgYhhDZvqCoMfz6uNSv2t30LCBPlV/NL
  665. '' SIG '' rY8gv7gwggTJMIIDsaADAgECAhBqC5lPwADeqhHU2ECa
  666. '' SIG '' qL7mMA0GCSqGSIb3DQEBBAUAMHAxKzApBgNVBAsTIkNv
  667. '' SIG '' cHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4x
  668. '' SIG '' HjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
  669. '' SIG '' MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5
  670. '' SIG '' MB4XDTAwMTIxMDA4MDAwMFoXDTA1MTExMjA4MDAwMFow
  671. '' SIG '' gaYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
  672. '' SIG '' dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
  673. '' SIG '' aWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAsTIkNv
  674. '' SIG '' cHlyaWdodCAoYykgMjAwMCBNaWNyb3NvZnQgQ29ycC4x
  675. '' SIG '' IzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcg
  676. '' SIG '' UENBMIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKC
  677. '' SIG '' AQEAooQVU9gLMA40lf86G8LzL3ttNyNN89KM5f2v/cUC
  678. '' SIG '' NB8kx+Wh3FTsfgJ0R6vbMlgWFFEpOPF+srSMOke1OU5u
  679. '' SIG '' VMIxDDpt+83Ny1CcG66n2NlKJj+1xcuPluJJ8m3Y6ZY+
  680. '' SIG '' 3gXP8KZVN60vYM2AYUKhSVRKDxi3S9mTmTBaR3VktNO7
  681. '' SIG '' 3barDJ1PuHM7GDqqtIeMsIiwTU8fThG1M4DfDTpkb0TH
  682. '' SIG '' NL1Kk5u8ph35BSNOYCmPzCryhJqZrajbCnB71jRBkKW3
  683. '' SIG '' ZsdcGx2jMw6bVAMaP5iQuMznPQR0QxyP9znms6xIemsq
  684. '' SIG '' DmIBYTl2bv0+mAdLFPEBRv0VAOBH2k/kBeSAJQIBA6OC
  685. '' SIG '' ASgwggEkMBMGA1UdJQQMMAoGCCsGAQUFBwMDMIGiBgNV
  686. '' SIG '' HQEEgZowgZeAEFvQcO9pcp4jUX4Usk2O/8uhcjBwMSsw
  687. '' SIG '' KQYDVQQLEyJDb3B5cmlnaHQgKGMpIDE5OTcgTWljcm9z
  688. '' SIG '' b2Z0IENvcnAuMR4wHAYDVQQLExVNaWNyb3NvZnQgQ29y
  689. '' SIG '' cG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBSb290
  690. '' SIG '' IEF1dGhvcml0eYIPAMEAizw8iBHRPvZj7N9AMBAGCSsG
  691. '' SIG '' AQQBgjcVAQQDAgEAMB0GA1UdDgQWBBQpXLkbts0z7rue
  692. '' SIG '' WX335couxA00KDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi
  693. '' SIG '' AEMAQTALBgNVHQ8EBAMCAUYwDwYDVR0TAQH/BAUwAwEB
  694. '' SIG '' /zANBgkqhkiG9w0BAQQFAAOCAQEARVjimkF//J2/SHd3
  695. '' SIG '' rozZ5hnFV7QavbS5XwKhRWo5Wfm5J5wtTZ78ouQ4ijhk
  696. '' SIG '' IkLfuS8qz7fWBsrrKr/gGoV821EIPfQi09TAbYiBFURf
  697. '' SIG '' ZINkxKmULIrbkDdKD7fo1GGPdnbh2SX/JISVjQRWVJSh
  698. '' SIG '' HDo+grzupYeMHIxLeV+1SfpeMmk6H1StdU3fZOcwPNtk
  699. '' SIG '' SUT7+8QcQnHmoD1F7msAn6xCvboRs1bk+9WiKoHYH06i
  700. '' SIG '' Vb4nj3Cmomwb/1SKgryBS6ahsWZ6qRenywbAR+ums+kx
  701. '' SIG '' FVM9KgS//3NI3IsnQ/xj6O4kh1u+NtHoMfUy2V7feXq6
  702. '' SIG '' MKxphkr7jBG/G41UWTGCBGIwggReAgEBMIG1MIGmMQsw
  703. '' SIG '' CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
  704. '' SIG '' MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
  705. '' SIG '' b2Z0IENvcnBvcmF0aW9uMSswKQYDVQQLEyJDb3B5cmln
  706. '' SIG '' aHQgKGMpIDIwMDAgTWljcm9zb2Z0IENvcnAuMSMwIQYD
  707. '' SIG '' VQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQQIK
  708. '' SIG '' YQYqjQAAAAAACzAMBggqhkiG9w0CBQUAoIGwMBkGCSqG
  709. '' SIG '' SIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcC
  710. '' SIG '' AQsxDjAMBgorBgEEAYI3AgEVMB8GCSqGSIb3DQEJBDES
  711. '' SIG '' BBCCJIA8Xa3hbMOmcmENDlALMFQGCisGAQQBgjcCAQwx
  712. '' SIG '' RjBEoCaAJABXAE0ASQAgAHAAcgBpAG4AdABlAHIAIABz
  713. '' SIG '' AGMAcgBpAHAAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29m
  714. '' SIG '' dC5jb20wDQYJKoZIhvcNAQEBBQAEgYANXx8X9wO7H87A
  715. '' SIG '' jfhHKZfnx58x5L+Wff0SS1HLRzHBKV5h02E67RTQ0xa5
  716. '' SIG '' GYdNf5uoRws+OsuyqtI/R1rtTkkIQcJ8ZsTWRBzr9H2+
  717. '' SIG '' h517hBwXeU/wpyh16QBREIdbpXdFD+RWAF6iTYvffyvI
  718. '' SIG '' vdsT8wBcB0w0Fd4pA7BYP0bLMKGCAkwwggJIBgkqhkiG
  719. '' SIG '' 9w0BCQYxggI5MIICNQIBATCBszCBnjEfMB0GA1UEChMW
  720. '' SIG '' VmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMO
  721. '' SIG '' VmVyaVNpZ24sIEluYy4xLDAqBgNVBAsTI1ZlcmlTaWdu
  722. '' SIG '' IFRpbWUgU3RhbXBpbmcgU2VydmljZSBSb290MTQwMgYD
  723. '' SIG '' VQQLEytOTyBMSUFCSUxJVFkgQUNDRVBURUQsIChjKTk3
  724. '' SIG '' IFZlcmlTaWduLCBJbmMuAhAIem1cb2KTT7rE/UPhFBid
  725. '' SIG '' MAwGCCqGSIb3DQIFBQCgWTAYBgkqhkiG9w0BCQMxCwYJ
  726. '' SIG '' KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wMTEyMDcy
  727. '' SIG '' MDIzMDlaMB8GCSqGSIb3DQEJBDESBBAC9RKfRgIH0QcN
  728. '' SIG '' Ajx0z4CdMA0GCSqGSIb3DQEBAQUABIIBAJl0lzJa+J4Z
  729. '' SIG '' AuprvTpIZZEdMp+8fyma4ZOWcZTf1WJ2QN7qeFo6xsQR
  730. '' SIG '' sfSqpaxP2MC6OCGSLsqHZ/PmPPNBfKXRLtQpTEyMPFEy
  731. '' SIG '' j/zCIR3KKkmIs7AZzX/f9jwWAfhhrFXoEZCRwjFEVLOx
  732. '' SIG '' l4WHuyd8qIq/lxgU4xuAQlIoJ6xkLFzTjoAOAVHlDtV8
  733. '' SIG '' F6Hzz3owO7t8L32O/TSX6qrFH5gHvcKtA8gb2SN7xL3X
  734. '' SIG '' ydIL/AbyYQc8zKXTBL41y/gq6pv+vsHyquzVICcDhAXf
  735. '' SIG '' xi+gjqPdfk69eMMYw/4BQN13l20fojIcBAbORHrxfYDy
  736. '' SIG '' egHLtsfcnY79dVKneR+cDKM=
  737. '' SIG '' End signature block