| [684] | 1 | KIDS Distribution saved on Jan 12, 2010@09:43:23
 | 
|---|
 | 2 | Tuesday Jan 12
 | 
|---|
 | 3 | **KIDS**:VWHHS*00.1*5^
 | 
|---|
 | 4 | 
 | 
|---|
 | 5 | **INSTALL NAME**
 | 
|---|
 | 6 | VWHHS*00.1*5
 | 
|---|
 | 7 | "BLD",7076,0)
 | 
|---|
 | 8 | VWHHS*00.1*5^^0^3100112^n
 | 
|---|
 | 9 | "BLD",7076,4,0)
 | 
|---|
 | 10 | ^9.64PA^^
 | 
|---|
 | 11 | "BLD",7076,6.3)
 | 
|---|
 | 12 | 2
 | 
|---|
 | 13 | "BLD",7076,"KRN",0)
 | 
|---|
 | 14 | ^9.67PA^8989.52^19
 | 
|---|
 | 15 | "BLD",7076,"KRN",.4,0)
 | 
|---|
 | 16 | .4
 | 
|---|
 | 17 | "BLD",7076,"KRN",.401,0)
 | 
|---|
 | 18 | .401
 | 
|---|
 | 19 | "BLD",7076,"KRN",.402,0)
 | 
|---|
 | 20 | .402
 | 
|---|
 | 21 | "BLD",7076,"KRN",.403,0)
 | 
|---|
 | 22 | .403
 | 
|---|
 | 23 | "BLD",7076,"KRN",.5,0)
 | 
|---|
 | 24 | .5
 | 
|---|
 | 25 | "BLD",7076,"KRN",.84,0)
 | 
|---|
 | 26 | .84
 | 
|---|
 | 27 | "BLD",7076,"KRN",3.6,0)
 | 
|---|
 | 28 | 3.6
 | 
|---|
 | 29 | "BLD",7076,"KRN",3.8,0)
 | 
|---|
 | 30 | 3.8
 | 
|---|
 | 31 | "BLD",7076,"KRN",9.2,0)
 | 
|---|
 | 32 | 9.2
 | 
|---|
 | 33 | "BLD",7076,"KRN",9.8,0)
 | 
|---|
 | 34 | 9.8
 | 
|---|
 | 35 | "BLD",7076,"KRN",9.8,"NM",0)
 | 
|---|
 | 36 | ^9.68A^7^7
 | 
|---|
 | 37 | "BLD",7076,"KRN",9.8,"NM",1,0)
 | 
|---|
 | 38 | VWHSH0^^0^B4330045
 | 
|---|
 | 39 | "BLD",7076,"KRN",9.8,"NM",2,0)
 | 
|---|
 | 40 | VWHSH3^^0^B2878674
 | 
|---|
 | 41 | "BLD",7076,"KRN",9.8,"NM",3,0)
 | 
|---|
 | 42 | VWHSH8^^0^B1242378
 | 
|---|
 | 43 | "BLD",7076,"KRN",9.8,"NM",4,0)
 | 
|---|
 | 44 | VWHSHCLX^^0^B2011086
 | 
|---|
 | 45 | "BLD",7076,"KRN",9.8,"NM",5,0)
 | 
|---|
 | 46 | VWHSHCWN^^0^B1741215
 | 
|---|
 | 47 | "BLD",7076,"KRN",9.8,"NM",6,0)
 | 
|---|
 | 48 | VWHSHGTM^^0^B1519925
 | 
|---|
 | 49 | "BLD",7076,"KRN",9.8,"NM",7,0)
 | 
|---|
 | 50 | VWHSHTST^^0^B405235
 | 
|---|
 | 51 | "BLD",7076,"KRN",9.8,"NM","B","VWHSH0",1)
 | 
|---|
 | 52 | 
 | 
|---|
 | 53 | "BLD",7076,"KRN",9.8,"NM","B","VWHSH3",2)
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 | "BLD",7076,"KRN",9.8,"NM","B","VWHSH8",3)
 | 
|---|
 | 56 | 
 | 
|---|
 | 57 | "BLD",7076,"KRN",9.8,"NM","B","VWHSHCLX",4)
 | 
|---|
 | 58 | 
 | 
|---|
 | 59 | "BLD",7076,"KRN",9.8,"NM","B","VWHSHCWN",5)
 | 
|---|
 | 60 | 
 | 
|---|
 | 61 | "BLD",7076,"KRN",9.8,"NM","B","VWHSHGTM",6)
 | 
|---|
 | 62 | 
 | 
|---|
 | 63 | "BLD",7076,"KRN",9.8,"NM","B","VWHSHTST",7)
 | 
|---|
 | 64 | 
 | 
|---|
 | 65 | "BLD",7076,"KRN",19,0)
 | 
|---|
 | 66 | 19
 | 
|---|
 | 67 | "BLD",7076,"KRN",19.1,0)
 | 
|---|
 | 68 | 19.1
 | 
|---|
 | 69 | "BLD",7076,"KRN",101,0)
 | 
|---|
 | 70 | 101
 | 
|---|
 | 71 | "BLD",7076,"KRN",409.61,0)
 | 
|---|
 | 72 | 409.61
 | 
|---|
 | 73 | "BLD",7076,"KRN",771,0)
 | 
|---|
 | 74 | 771
 | 
|---|
 | 75 | "BLD",7076,"KRN",870,0)
 | 
|---|
 | 76 | 870
 | 
|---|
 | 77 | "BLD",7076,"KRN",8989.51,0)
 | 
|---|
 | 78 | 8989.51
 | 
|---|
 | 79 | "BLD",7076,"KRN",8989.52,0)
 | 
|---|
 | 80 | 8989.52
 | 
|---|
 | 81 | "BLD",7076,"KRN",8994,0)
 | 
|---|
 | 82 | 8994
 | 
|---|
 | 83 | "BLD",7076,"KRN","B",.4,.4)
 | 
|---|
 | 84 | 
 | 
|---|
 | 85 | "BLD",7076,"KRN","B",.401,.401)
 | 
|---|
 | 86 | 
 | 
|---|
 | 87 | "BLD",7076,"KRN","B",.402,.402)
 | 
|---|
 | 88 | 
 | 
|---|
 | 89 | "BLD",7076,"KRN","B",.403,.403)
 | 
|---|
 | 90 | 
 | 
|---|
 | 91 | "BLD",7076,"KRN","B",.5,.5)
 | 
|---|
 | 92 | 
 | 
|---|
 | 93 | "BLD",7076,"KRN","B",.84,.84)
 | 
|---|
 | 94 | 
 | 
|---|
 | 95 | "BLD",7076,"KRN","B",3.6,3.6)
 | 
|---|
 | 96 | 
 | 
|---|
 | 97 | "BLD",7076,"KRN","B",3.8,3.8)
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 | "BLD",7076,"KRN","B",9.2,9.2)
 | 
|---|
 | 100 | 
 | 
|---|
 | 101 | "BLD",7076,"KRN","B",9.8,9.8)
 | 
|---|
 | 102 | 
 | 
|---|
 | 103 | "BLD",7076,"KRN","B",19,19)
 | 
|---|
 | 104 | 
 | 
|---|
 | 105 | "BLD",7076,"KRN","B",19.1,19.1)
 | 
|---|
 | 106 | 
 | 
|---|
 | 107 | "BLD",7076,"KRN","B",101,101)
 | 
|---|
 | 108 | 
 | 
|---|
 | 109 | "BLD",7076,"KRN","B",409.61,409.61)
 | 
|---|
 | 110 | 
 | 
|---|
 | 111 | "BLD",7076,"KRN","B",771,771)
 | 
|---|
 | 112 | 
 | 
|---|
 | 113 | "BLD",7076,"KRN","B",870,870)
 | 
|---|
 | 114 | 
 | 
|---|
 | 115 | "BLD",7076,"KRN","B",8989.51,8989.51)
 | 
|---|
 | 116 | 
 | 
|---|
 | 117 | "BLD",7076,"KRN","B",8989.52,8989.52)
 | 
|---|
 | 118 | 
 | 
|---|
 | 119 | "BLD",7076,"KRN","B",8994,8994)
 | 
|---|
 | 120 | 
 | 
|---|
 | 121 | "BLD",7076,"QUES",0)
 | 
|---|
 | 122 | ^9.62^^0
 | 
|---|
 | 123 | "BLD",7076,"REQB",0)
 | 
|---|
 | 124 | ^9.611^^
 | 
|---|
 | 125 | "MBREQ")
 | 
|---|
 | 126 | 0
 | 
|---|
 | 127 | "QUES","XPF1",0)
 | 
|---|
 | 128 | Y
 | 
|---|
 | 129 | "QUES","XPF1","??")
 | 
|---|
 | 130 | ^D REP^XPDH
 | 
|---|
 | 131 | "QUES","XPF1","A")
 | 
|---|
 | 132 | Shall I write over your |FLAG| File
 | 
|---|
 | 133 | "QUES","XPF1","B")
 | 
|---|
 | 134 | YES
 | 
|---|
 | 135 | "QUES","XPF1","M")
 | 
|---|
 | 136 | D XPF1^XPDIQ
 | 
|---|
 | 137 | "QUES","XPF2",0)
 | 
|---|
 | 138 | Y
 | 
|---|
 | 139 | "QUES","XPF2","??")
 | 
|---|
 | 140 | ^D DTA^XPDH
 | 
|---|
 | 141 | "QUES","XPF2","A")
 | 
|---|
 | 142 | Want my data |FLAG| yours
 | 
|---|
 | 143 | "QUES","XPF2","B")
 | 
|---|
 | 144 | YES
 | 
|---|
 | 145 | "QUES","XPF2","M")
 | 
|---|
 | 146 | D XPF2^XPDIQ
 | 
|---|
 | 147 | "QUES","XPI1",0)
 | 
|---|
 | 148 | YO
 | 
|---|
 | 149 | "QUES","XPI1","??")
 | 
|---|
 | 150 | ^D INHIBIT^XPDH
 | 
|---|
 | 151 | "QUES","XPI1","A")
 | 
|---|
 | 152 | Want KIDS to INHIBIT LOGONs during the install
 | 
|---|
 | 153 | "QUES","XPI1","B")
 | 
|---|
 | 154 | NO
 | 
|---|
 | 155 | "QUES","XPI1","M")
 | 
|---|
 | 156 | D XPI1^XPDIQ
 | 
|---|
 | 157 | "QUES","XPM1",0)
 | 
|---|
 | 158 | PO^VA(200,:EM
 | 
|---|
 | 159 | "QUES","XPM1","??")
 | 
|---|
 | 160 | ^D MG^XPDH
 | 
|---|
 | 161 | "QUES","XPM1","A")
 | 
|---|
 | 162 | Enter the Coordinator for Mail Group '|FLAG|'
 | 
|---|
 | 163 | "QUES","XPM1","B")
 | 
|---|
 | 164 | 
 | 
|---|
 | 165 | "QUES","XPM1","M")
 | 
|---|
 | 166 | D XPM1^XPDIQ
 | 
|---|
 | 167 | "QUES","XPO1",0)
 | 
|---|
 | 168 | Y
 | 
|---|
 | 169 | "QUES","XPO1","??")
 | 
|---|
 | 170 | ^D MENU^XPDH
 | 
|---|
 | 171 | "QUES","XPO1","A")
 | 
|---|
 | 172 | Want KIDS to Rebuild Menu Trees Upon Completion of Install
 | 
|---|
 | 173 | "QUES","XPO1","B")
 | 
|---|
 | 174 | NO
 | 
|---|
 | 175 | "QUES","XPO1","M")
 | 
|---|
 | 176 | D XPO1^XPDIQ
 | 
|---|
 | 177 | "QUES","XPZ1",0)
 | 
|---|
 | 178 | Y
 | 
|---|
 | 179 | "QUES","XPZ1","??")
 | 
|---|
 | 180 | ^D OPT^XPDH
 | 
|---|
 | 181 | "QUES","XPZ1","A")
 | 
|---|
 | 182 | Want to DISABLE Scheduled Options, Menu Options, and Protocols
 | 
|---|
 | 183 | "QUES","XPZ1","B")
 | 
|---|
 | 184 | NO
 | 
|---|
 | 185 | "QUES","XPZ1","M")
 | 
|---|
 | 186 | D XPZ1^XPDIQ
 | 
|---|
 | 187 | "QUES","XPZ2",0)
 | 
|---|
 | 188 | Y
 | 
|---|
 | 189 | "QUES","XPZ2","??")
 | 
|---|
 | 190 | ^D RTN^XPDH
 | 
|---|
 | 191 | "QUES","XPZ2","A")
 | 
|---|
 | 192 | Want to MOVE routines to other CPUs
 | 
|---|
 | 193 | "QUES","XPZ2","B")
 | 
|---|
 | 194 | NO
 | 
|---|
 | 195 | "QUES","XPZ2","M")
 | 
|---|
 | 196 | D XPZ2^XPDIQ
 | 
|---|
 | 197 | "RTN")
 | 
|---|
 | 198 | 7
 | 
|---|
 | 199 | "RTN","VWHSH0")
 | 
|---|
 | 200 | 0^1^B4330045
 | 
|---|
 | 201 | "RTN","VWHSH0",1,0)
 | 
|---|
 | 202 | VWHSH0 ;;GpZ; - ; IMPROVED HASHING UTILITY: MAIN INSTALL MODULE; 01/08/2010
 | 
|---|
 | 203 | "RTN","VWHSH0",2,0)
 | 
|---|
 | 204 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 205 | "RTN","VWHSH0",3,0)
 | 
|---|
 | 206 |  ;; VWHSH
 | 
|---|
 | 207 | "RTN","VWHSH0",4,0)
 | 
|---|
 | 208 | CHECK ;;
 | 
|---|
 | 209 | "RTN","VWHSH0",5,0)
 | 
|---|
 | 210 |  N %S,%D,%ZR,HSH,HASH,HASHLIST,MUMPS,OS,PATH,SCR,ZTOS
 | 
|---|
 | 211 | "RTN","VWHSH0",6,0)
 | 
|---|
 | 212 |  DO 
 | 
|---|
 | 213 | "RTN","VWHSH0",7,0)
 | 
|---|
 | 214 |  . IF $$EN^XUSHSH("TEST")="TEST" S HASH="NONE" QUIT
 | 
|---|
 | 215 | "RTN","VWHSH0",8,0)
 | 
|---|
 | 216 |  . S HASH=$P($G(^%ZOSF("HASHLIST")),"|")  ; ID installed HASH from earlier version.
 | 
|---|
 | 217 | "RTN","VWHSH0",9,0)
 | 
|---|
 | 218 |  . S HASH=$S($$EN^XUSHSH("TEST")="TEST":"NONE",$L($G(HASH))>0:HASH,1:"LEGACY")  ; query current XUSHSH
 | 
|---|
 | 219 | "RTN","VWHSH0",10,0)
 | 
|---|
 | 220 |  DO DEFHASH
 | 
|---|
 | 221 | "RTN","VWHSH0",11,0)
 | 
|---|
 | 222 |  IF HASHLIST'[" MD5 " S ABORT="gpg FAILURE; CHECK for gnupg dependency & its PATH" GOTO ABORT
 | 
|---|
 | 223 | "RTN","VWHSH0",12,0)
 | 
|---|
 | 224 |  S %S=$S(ZTOS=8:"VWHSHGTM",HASHLIST["Linux":"VWHSHCLX",1:"VWHSHCWN")
 | 
|---|
 | 225 | "RTN","VWHSH0",13,0)
 | 
|---|
 | 226 |  S %D="XUSHSH",U="^",SCR="I 1"
 | 
|---|
 | 227 | "RTN","VWHSH0",14,0)
 | 
|---|
 | 228 |  IF $T(^VWHSHLEG)="" S %S="XUSHSH^"_%S,%D="VWHSHLEG^"_%D
 | 
|---|
 | 229 | "RTN","VWHSH0",15,0)
 | 
|---|
 | 230 |  ; preserve old ^XUSHSH as ^VWHSHLEG
 | 
|---|
 | 231 | "RTN","VWHSH0",16,0)
 | 
|---|
 | 232 |  S U="^",SCR="I 1"
 | 
|---|
 | 233 | "RTN","VWHSH0",17,0)
 | 
|---|
 | 234 |  DO MOVE^ZTMGRSET
 | 
|---|
 | 235 | "RTN","VWHSH0",18,0)
 | 
|---|
 | 236 |  QUIT
 | 
|---|
 | 237 | "RTN","VWHSH0",19,0)
 | 
|---|
 | 238 |  ;
 | 
|---|
 | 239 | "RTN","VWHSH0",20,0)
 | 
|---|
 | 240 | DEFHASH ;; Entry point for changing default hash.
 | 
|---|
 | 241 | "RTN","VWHSH0",21,0)
 | 
|---|
 | 242 |  IF '$L($G(HASH)) DO
 | 
|---|
 | 243 | "RTN","VWHSH0",22,0)
 | 
|---|
 | 244 |  . S HASH=$P($G(^%ZOSF("HASHLIST")),"|")
 | 
|---|
 | 245 | "RTN","VWHSH0",23,0)
 | 
|---|
 | 246 |  . QUIT:$L($G(HASH))
 | 
|---|
 | 247 | "RTN","VWHSH0",24,0)
 | 
|---|
 | 248 |  . S:$T(^VWHSHLEG)>"" HASH=$S($$EN^VWHSHLEG("TEST")="TEST":"NONE",1:"LEGACY")
 | 
|---|
 | 249 | "RTN","VWHSH0",25,0)
 | 
|---|
 | 250 |  . QUIT:$L($G(HASH))
 | 
|---|
 | 251 | "RTN","VWHSH0",26,0)
 | 
|---|
 | 252 |  . S HASH="LEGACY"  ; hard-coded default hash is LEGACY
 | 
|---|
 | 253 | "RTN","VWHSH0",27,0)
 | 
|---|
 | 254 |  . QUIT
 | 
|---|
 | 255 | "RTN","VWHSH0",28,0)
 | 
|---|
 | 256 |  S HASH=$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 | 
|---|
 | 257 | "RTN","VWHSH0",29,0)
 | 
|---|
 | 258 |  S MUMPS=^%ZOSF("OS"),ZTOS=$S(MUMPS["GT.M":8,MUMPS["OpenM":3)
 | 
|---|
 | 259 | "RTN","VWHSH0",30,0)
 | 
|---|
 | 260 |  ; SHOULD ERROR IF neither GTM nor Cache.
 | 
|---|
 | 261 | "RTN","VWHSH0",31,0)
 | 
|---|
 | 262 |  S HASHLIST=HASH_"||"_$$INIT^@("VWHSH"_ZTOS)()
 | 
|---|
 | 263 | "RTN","VWHSH0",32,0)
 | 
|---|
 | 264 |  S ^%ZOSF("HASHLIST")=HASHLIST
 | 
|---|
 | 265 | "RTN","VWHSH0",33,0)
 | 
|---|
 | 266 |  QUIT
 | 
|---|
 | 267 | "RTN","VWHSH0",34,0)
 | 
|---|
 | 268 |  ;
 | 
|---|
 | 269 | "RTN","VWHSH0",35,0)
 | 
|---|
 | 270 | ABORT ;; Failed to find gpg hashes.
 | 
|---|
 | 271 | "RTN","VWHSH0",36,0)
 | 
|---|
 | 272 |  U 0 W !,ABORT,! W $G(^%ZOSF("HASHLIST")),!
 | 
|---|
 | 273 | "RTN","VWHSH3")
 | 
|---|
 | 274 | 0^2^B2878674
 | 
|---|
 | 275 | "RTN","VWHSH3",1,0)
 | 
|---|
 | 276 | VWHSH3 ;;GpZ; - ; IMPROVED HASHING UTILITY: INSTALL MODULE, OpenM; 01/08/2010
 | 
|---|
 | 277 | "RTN","VWHSH3",2,0)
 | 
|---|
 | 278 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 279 | "RTN","VWHSH3",3,0)
 | 
|---|
 | 280 |  ;
 | 
|---|
 | 281 | "RTN","VWHSH3",4,0)
 | 
|---|
 | 282 |  QUIT
 | 
|---|
 | 283 | "RTN","VWHSH3",5,0)
 | 
|---|
 | 284 |  ;
 | 
|---|
 | 285 | "RTN","VWHSH3",6,0)
 | 
|---|
 | 286 | INIT() S MUMPS=^%ZOSF("OS"),OS=$$OPENM("uname -o","Linux")
 | 
|---|
 | 287 | "RTN","VWHSH3",7,0)
 | 
|---|
 | 288 |  IF OS'["Linux" S OS=$$OPENM("Ver","Microsoft") DO
 | 
|---|
 | 289 | "RTN","VWHSH3",8,0)
 | 
|---|
 | 290 |  . S PIPE="PATH"
 | 
|---|
 | 291 | "RTN","VWHSH3",9,0)
 | 
|---|
 | 292 |  . OPEN PIPE:"Q" USE PIPE READ PATH CLOSE PIPE
 | 
|---|
 | 293 | "RTN","VWHSH3",10,0)
 | 
|---|
 | 294 |  . S PATH=PATH_";C:\""Program Files""\GNU\GnuPG\"
 | 
|---|
 | 295 | "RTN","VWHSH3",11,0)
 | 
|---|
 | 296 |  . F I=1:1:$L(PATH,";") Q:($P(PATH,";",I)["GnuPG")
 | 
|---|
 | 297 | "RTN","VWHSH3",12,0)
 | 
|---|
 | 298 |  . S PATH=$P(PATH,";",I)
 | 
|---|
 | 299 | "RTN","VWHSH3",13,0)
 | 
|---|
 | 300 |  ELSE  S PATH=$P($P($$OPENM("whereis gpg","gpg")," ",2),"gpg")
 | 
|---|
 | 301 | "RTN","VWHSH3",14,0)
 | 
|---|
 | 302 |  S ZUT=$ZUTIL(68,40,1)
 | 
|---|
 | 303 | "RTN","VWHSH3",15,0)
 | 
|---|
 | 304 |  S PIPE=$G(PATH)_"gpg --version"
 | 
|---|
 | 305 | "RTN","VWHSH3",16,0)
 | 
|---|
 | 306 |  OPEN PIPE:"Q"
 | 
|---|
 | 307 | "RTN","VWHSH3",17,0)
 | 
|---|
 | 308 |  F I=1:1:20 USE PIPE R HASHLIST QUIT:$ZEOF<0  D:HASHLIST["'gpg' is not recognized"  q:HASHLIST["Hash:"
 | 
|---|
 | 309 | "RTN","VWHSH3",18,0)
 | 
|---|
 | 310 |  . S HASHLIST="Hash:gpg_not_found:gpg_HASHES_not_available"
 | 
|---|
 | 311 | "RTN","VWHSH3",19,0)
 | 
|---|
 | 312 |  CLOSE PIPE
 | 
|---|
 | 313 | "RTN","VWHSH3",20,0)
 | 
|---|
 | 314 |  S ZUT=$ZUTIL(68,40,ZUT)
 | 
|---|
 | 315 | "RTN","VWHSH3",21,0)
 | 
|---|
 | 316 |  S HASHLIST=HASHLIST
 | 
|---|
 | 317 | "RTN","VWHSH3",22,0)
 | 
|---|
 | 318 |  S HASHLIST=$TR($P(HASHLIST,"Hash:",2),",")
 | 
|---|
 | 319 | "RTN","VWHSH3",23,0)
 | 
|---|
 | 320 |  S HASHLIST=HASHLIST_" ||"_PATH_"||"_MUMPS_OS_"||"
 | 
|---|
 | 321 | "RTN","VWHSH3",24,0)
 | 
|---|
 | 322 |  QUIT HASHLIST
 | 
|---|
 | 323 | "RTN","VWHSH3",25,0)
 | 
|---|
 | 324 |  ;
 | 
|---|
 | 325 | "RTN","VWHSH3",26,0)
 | 
|---|
 | 326 | OPENM(PIPE,SEEKING) ;;
 | 
|---|
 | 327 | "RTN","VWHSH3",27,0)
 | 
|---|
 | 328 |  N (PIPE,SEEKING)
 | 
|---|
 | 329 | "RTN","VWHSH3",28,0)
 | 
|---|
 | 330 |  S ZUT=$ZUTIL(68,40,1)
 | 
|---|
 | 331 | "RTN","VWHSH3",29,0)
 | 
|---|
 | 332 |  OPEN PIPE:"Q"
 | 
|---|
 | 333 | "RTN","VWHSH3",30,0)
 | 
|---|
 | 334 |  F I=1:1:4 USE PIPE READ X Q:$ZEOF<0  Q:X[SEEKING
 | 
|---|
 | 335 | "RTN","VWHSH3",31,0)
 | 
|---|
 | 336 |  CLOSE PIPE
 | 
|---|
 | 337 | "RTN","VWHSH3",32,0)
 | 
|---|
 | 338 |  S ZUT=$ZUTIL(68,40,ZUT)
 | 
|---|
 | 339 | "RTN","VWHSH3",33,0)
 | 
|---|
 | 340 |  QUIT X
 | 
|---|
 | 341 | "RTN","VWHSH8")
 | 
|---|
 | 342 | 0^3^B1242378
 | 
|---|
 | 343 | "RTN","VWHSH8",1,0)
 | 
|---|
 | 344 | VWHSH8 ;;GpZ; - ; IMPROVED HASHING UTILITY: INSTALL MODULE, GT.M; 01/08/2010
 | 
|---|
 | 345 | "RTN","VWHSH8",2,0)
 | 
|---|
 | 346 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 347 | "RTN","VWHSH8",3,0)
 | 
|---|
 | 348 |  ;
 | 
|---|
 | 349 | "RTN","VWHSH8",4,0)
 | 
|---|
 | 350 |  QUIT
 | 
|---|
 | 351 | "RTN","VWHSH8",5,0)
 | 
|---|
 | 352 |  ;
 | 
|---|
 | 353 | "RTN","VWHSH8",6,0)
 | 
|---|
 | 354 | INIT() S MUMPS=^%ZOSF("OS"),OS=$$GTM("uname -o")
 | 
|---|
 | 355 | "RTN","VWHSH8",7,0)
 | 
|---|
 | 356 |  S PATH=$P($P($$GTM("whereis gpg")," ",2),"gpg")
 | 
|---|
 | 357 | "RTN","VWHSH8",8,0)
 | 
|---|
 | 358 |  S X=$TR("host:"_MUMPS_OS_":","^ ","-")
 | 
|---|
 | 359 | "RTN","VWHSH8",9,0)
 | 
|---|
 | 360 |  O "PIPE":(COMM="gpg --version|grep -E ^Hash:":READONLY)::"PIPE"
 | 
|---|
 | 361 | "RTN","VWHSH8",10,0)
 | 
|---|
 | 362 |  U "PIPE" R HASHLIST
 | 
|---|
 | 363 | "RTN","VWHSH8",11,0)
 | 
|---|
 | 364 |  C "PIPE" U 0
 | 
|---|
 | 365 | "RTN","VWHSH8",12,0)
 | 
|---|
 | 366 |  S HASHLIST=$TR($P(HASHLIST,"Hash:",2),",")
 | 
|---|
 | 367 | "RTN","VWHSH8",13,0)
 | 
|---|
 | 368 |  S HASHLIST=HASHLIST_" ||"_PATH_"||"_MUMPS_OS_"||"
 | 
|---|
 | 369 | "RTN","VWHSH8",14,0)
 | 
|---|
 | 370 |  QUIT HASHLIST
 | 
|---|
 | 371 | "RTN","VWHSH8",15,0)
 | 
|---|
 | 372 |  ;
 | 
|---|
 | 373 | "RTN","VWHSH8",16,0)
 | 
|---|
 | 374 | GTM(PIPE) ;
 | 
|---|
 | 375 | "RTN","VWHSH8",17,0)
 | 
|---|
 | 376 |  N (PIPE)
 | 
|---|
 | 377 | "RTN","VWHSH8",18,0)
 | 
|---|
 | 378 |  OPEN "PIPE":(command=PIPE)::"pipe"
 | 
|---|
 | 379 | "RTN","VWHSH8",19,0)
 | 
|---|
 | 380 |  S X="" F I=1:1:4 U "PIPE" R XX Q:$ZEOF  S X=X_XX
 | 
|---|
 | 381 | "RTN","VWHSH8",20,0)
 | 
|---|
 | 382 |  CLOSE "PIPE"
 | 
|---|
 | 383 | "RTN","VWHSH8",21,0)
 | 
|---|
 | 384 |  QUIT X
 | 
|---|
 | 385 | "RTN","VWHSHCLX")
 | 
|---|
 | 386 | 0^4^B2011086
 | 
|---|
 | 387 | "RTN","VWHSHCLX",1,0)
 | 
|---|
 | 388 | XUSHSH ;;GpZ; - ; IMPROVED HASHING UTILITY: for Cache/Linux (VWHSHCLX); 01/08/2010
 | 
|---|
 | 389 | "RTN","VWHSHCLX",2,0)
 | 
|---|
 | 390 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 391 | "RTN","VWHSHCLX",3,0)
 | 
|---|
 | 392 |  ;;
 | 
|---|
 | 393 | "RTN","VWHSHCLX",4,0)
 | 
|---|
 | 394 | A S X=$$EN(X) Q
 | 
|---|
 | 395 | "RTN","VWHSHCLX",5,0)
 | 
|---|
 | 396 |  ;;
 | 
|---|
 | 397 | "RTN","VWHSHCLX",6,0)
 | 
|---|
 | 398 | EN(X,HASH) ;;
 | 
|---|
 | 399 | "RTN","VWHSHCLX",7,0)
 | 
|---|
 | 400 |  N (X,HASH)
 | 
|---|
 | 401 | "RTN","VWHSHCLX",8,0)
 | 
|---|
 | 402 |  D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0
 | 
|---|
 | 403 | "RTN","VWHSHCLX",9,0)
 | 
|---|
 | 404 |  S HASHLIST=^%ZOSF("HASHLIST")
 | 
|---|
 | 405 | "RTN","VWHSHCLX",10,0)
 | 
|---|
 | 406 |  S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
 | 
|---|
 | 407 | "RTN","VWHSHCLX",11,0)
 | 
|---|
 | 408 |  IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X)
 | 
|---|
 | 409 | "RTN","VWHSHCLX",12,0)
 | 
|---|
 | 410 |  Q:HASHLIST'[(" "_HASH_" ") X
 | 
|---|
 | 411 | "RTN","VWHSHCLX",13,0)
 | 
|---|
 | 412 |  S SED="sed -e 's/$/\r/'|"
 | 
|---|
 | 413 | "RTN","VWHSHCLX",14,0)
 | 
|---|
 | 414 |  N PIPE,ZUT,I
 | 
|---|
 | 415 | "RTN","VWHSHCLX",15,0)
 | 
|---|
 | 416 |  S ZUT=$ZUTIL(68,40,1)  ;; MSM-style End-of-File Handling
 | 
|---|
 | 417 | "RTN","VWHSHCLX",16,0)
 | 
|---|
 | 418 |  S PIPE=" echo "_X_"||"_SED_$P(HASHLIST,"||",3)_"gpg --print-md "_HASH
 | 
|---|
 | 419 | "RTN","VWHSHCLX",17,0)
 | 
|---|
 | 420 |  OPEN PIPE:"Q"
 | 
|---|
 | 421 | "RTN","VWHSHCLX",18,0)
 | 
|---|
 | 422 |  F I=1:1:4 USE PIPE R X Q:$ZEOF<0  S HASHOUT=$G(HASHOUT)_X
 | 
|---|
 | 423 | "RTN","VWHSHCLX",19,0)
 | 
|---|
 | 424 |  CLOSE PIPE
 | 
|---|
 | 425 | "RTN","VWHSHCLX",20,0)
 | 
|---|
 | 426 |  S ZUT=$ZUTIL(68,40,ZUT),X=HASHOUT
 | 
|---|
 | 427 | "RTN","VWHSHCLX",21,0)
 | 
|---|
 | 428 |  Q $TR(X," ")
 | 
|---|
 | 429 | "RTN","VWHSHCWN")
 | 
|---|
 | 430 | 0^5^B1741215
 | 
|---|
 | 431 | "RTN","VWHSHCWN",1,0)
 | 
|---|
 | 432 | XUSHSH ;;GpZ;  ; IMPROVED HASHING UTILITY: Cache/Windows (VWHSHCWN);01/08/2010
 | 
|---|
 | 433 | "RTN","VWHSHCWN",2,0)
 | 
|---|
 | 434 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 435 | "RTN","VWHSHCWN",3,0)
 | 
|---|
 | 436 |  ;;
 | 
|---|
 | 437 | "RTN","VWHSHCWN",4,0)
 | 
|---|
 | 438 | A S X=$$EN(X) Q
 | 
|---|
 | 439 | "RTN","VWHSHCWN",5,0)
 | 
|---|
 | 440 |  ;;
 | 
|---|
 | 441 | "RTN","VWHSHCWN",6,0)
 | 
|---|
 | 442 | EN(X,HASH) ;;
 | 
|---|
 | 443 | "RTN","VWHSHCWN",7,0)
 | 
|---|
 | 444 |  N (X,HASH)
 | 
|---|
 | 445 | "RTN","VWHSHCWN",8,0)
 | 
|---|
 | 446 |  D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0
 | 
|---|
 | 447 | "RTN","VWHSHCWN",9,0)
 | 
|---|
 | 448 |  S HASHLIST=^%ZOSF("HASHLIST")
 | 
|---|
 | 449 | "RTN","VWHSHCWN",10,0)
 | 
|---|
 | 450 |  S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
 | 
|---|
 | 451 | "RTN","VWHSHCWN",11,0)
 | 
|---|
 | 452 |  IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X)
 | 
|---|
 | 453 | "RTN","VWHSHCWN",12,0)
 | 
|---|
 | 454 |  Q:HASHLIST'[(" "_HASH_" ") X
 | 
|---|
 | 455 | "RTN","VWHSHCWN",13,0)
 | 
|---|
 | 456 |  N PIPE,ZUT,I
 | 
|---|
 | 457 | "RTN","VWHSHCWN",14,0)
 | 
|---|
 | 458 |  S ZUT=$ZUTIL(68,40,1)
 | 
|---|
 | 459 | "RTN","VWHSHCWN",15,0)
 | 
|---|
 | 460 |  S PIPE=" echo "_X_"||"_$P(HASHLIST,"||",3)_"gpg --print-md "_HASH
 | 
|---|
 | 461 | "RTN","VWHSHCWN",16,0)
 | 
|---|
 | 462 |  OPEN PIPE:"Q"
 | 
|---|
 | 463 | "RTN","VWHSHCWN",17,0)
 | 
|---|
 | 464 |  F I=1:1:4 USE PIPE R X Q:$ZEOF<0  S HASHOUT=$G(HASHOUT)_X
 | 
|---|
 | 465 | "RTN","VWHSHCWN",18,0)
 | 
|---|
 | 466 |  CLOSE PIPE
 | 
|---|
 | 467 | "RTN","VWHSHCWN",19,0)
 | 
|---|
 | 468 |  S ZUT=$ZUTIL(68,40,ZUT),X=HASHOUT
 | 
|---|
 | 469 | "RTN","VWHSHCWN",20,0)
 | 
|---|
 | 470 |  Q $TR(X," ")
 | 
|---|
 | 471 | "RTN","VWHSHGTM")
 | 
|---|
 | 472 | 0^6^B1519925
 | 
|---|
 | 473 | "RTN","VWHSHGTM",1,0)
 | 
|---|
 | 474 | XUSHSH ;;GpZ; - ; IMPROVED HASHING UTILITY: GT.M Version (VWHSHGTM); 01/08/2010
 | 
|---|
 | 475 | "RTN","VWHSHGTM",2,0)
 | 
|---|
 | 476 | V ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 477 | "RTN","VWHSHGTM",3,0)
 | 
|---|
 | 478 |  ;;
 | 
|---|
 | 479 | "RTN","VWHSHGTM",4,0)
 | 
|---|
 | 480 | A S X=$$EN(X) Q
 | 
|---|
 | 481 | "RTN","VWHSHGTM",5,0)
 | 
|---|
 | 482 |  ;;
 | 
|---|
 | 483 | "RTN","VWHSHGTM",6,0)
 | 
|---|
 | 484 | EN(X,HASH) ;;
 | 
|---|
 | 485 | "RTN","VWHSHGTM",7,0)
 | 
|---|
 | 486 |  N (X,HASH)
 | 
|---|
 | 487 | "RTN","VWHSHGTM",8,0)
 | 
|---|
 | 488 |  D:'$L($G(^%ZOSF("HASHLIST"))) DEFHASH^VWHSH0
 | 
|---|
 | 489 | "RTN","VWHSHGTM",9,0)
 | 
|---|
 | 490 |  S HASHLIST=^%ZOSF("HASHLIST")
 | 
|---|
 | 491 | "RTN","VWHSHGTM",10,0)
 | 
|---|
 | 492 |  S HASH=$S('$L($G(HASH)):$P(HASHLIST,"|",1),1:$TR(HASH,"abcdefghijklmnopqrstuvwxyz- ","ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
 | 
|---|
 | 493 | "RTN","VWHSHGTM",11,0)
 | 
|---|
 | 494 |  IF HASH="LEGACY" QUIT $$EN^VWHSHLEG(X)
 | 
|---|
 | 495 | "RTN","VWHSHGTM",12,0)
 | 
|---|
 | 496 |  Q:HASHLIST'[(" "_HASH_" ") X
 | 
|---|
 | 497 | "RTN","VWHSHGTM",13,0)
 | 
|---|
 | 498 |  S SED="sed -e 's/$/\r/'|"
 | 
|---|
 | 499 | "RTN","VWHSHGTM",14,0)
 | 
|---|
 | 500 |  OPEN "PIPE":(COMM=SED_"gpg --print-md "_HASH)::"PIPE"
 | 
|---|
 | 501 | "RTN","VWHSHGTM",15,0)
 | 
|---|
 | 502 |  USE "PIPE" W X,! W /EOF
 | 
|---|
 | 503 | "RTN","VWHSHGTM",16,0)
 | 
|---|
 | 504 |  F  R X Q:$ZEOF  S HASHOUT=$G(HASHOUT)_X
 | 
|---|
 | 505 | "RTN","VWHSHGTM",17,0)
 | 
|---|
 | 506 |  CLOSE "PIPE"
 | 
|---|
 | 507 | "RTN","VWHSHGTM",18,0)
 | 
|---|
 | 508 |  Q $TR(HASHOUT," ")
 | 
|---|
 | 509 | "RTN","VWHSHTST")
 | 
|---|
 | 510 | 0^7^B405235
 | 
|---|
 | 511 | "RTN","VWHSHTST",1,0)
 | 
|---|
 | 512 | XUSHSH ;JL.Z; ROBUST PASSWORD HASH TEST xushsh; 11 SEPTEMBER 2009
 | 
|---|
 | 513 | "RTN","VWHSHTST",2,0)
 | 
|---|
 | 514 |  ;;8.0;KERNEL;**60**;Jul 10, 1995
 | 
|---|
 | 515 | "RTN","VWHSHTST",3,0)
 | 
|---|
 | 516 |  ;;
 | 
|---|
 | 517 | "RTN","VWHSHTST",4,0)
 | 
|---|
 | 518 |  ;;
 | 
|---|
 | 519 | "RTN","VWHSHTST",5,0)
 | 
|---|
 | 520 |  ;;SF-ISC/STAFF - PASSWORD ENCRYPTION ;3/23/89  15:09 ; 4/14/05 1:22pm
 | 
|---|
 | 521 | "RTN","VWHSHTST",6,0)
 | 
|---|
 | 522 |  ;;8.0;KERNEL;;Jul 10, 1995
 | 
|---|
 | 523 | "RTN","VWHSHTST",7,0)
 | 
|---|
 | 524 |  ;; Input in X
 | 
|---|
 | 525 | "RTN","VWHSHTST",8,0)
 | 
|---|
 | 526 |  ;; Output in X
 | 
|---|
 | 527 | "RTN","VWHSHTST",9,0)
 | 
|---|
 | 528 |  ;; Algorithm for VistA Office EHR encryption (BSL)
 | 
|---|
 | 529 | "RTN","VWHSHTST",10,0)
 | 
|---|
 | 530 | A ; 
 | 
|---|
 | 531 | "RTN","VWHSHTST",11,0)
 | 
|---|
 | 532 |  S X=$$EN(X)
 | 
|---|
 | 533 | "RTN","VWHSHTST",12,0)
 | 
|---|
 | 534 |  Q
 | 
|---|
 | 535 | "RTN","VWHSHTST",13,0)
 | 
|---|
 | 536 |  ;
 | 
|---|
 | 537 | "RTN","VWHSHTST",14,0)
 | 
|---|
 | 538 | EN(X)
 | 
|---|
 | 539 | "RTN","VWHSHTST",15,0)
 | 
|---|
 | 540 |  Q X
 | 
|---|
 | 541 | "RTN","VWHSHTST",16,0)
 | 
|---|
 | 542 |  
 | 
|---|
 | 543 | "RTN","VWHSHTST",17,0)
 | 
|---|
 | 544 |  
 | 
|---|
 | 545 | "RTN","VWHSHTST",18,0)
 | 
|---|
 | 546 |  
 | 
|---|
 | 547 | "RTN","VWHSHTST",19,0)
 | 
|---|
 | 548 |  
 | 
|---|
 | 549 | "RTN","VWHSHTST",20,0)
 | 
|---|
 | 550 |  
 | 
|---|
 | 551 | "RTN","VWHSHTST",21,0)
 | 
|---|
 | 552 |  
 | 
|---|
 | 553 | "RTN","VWHSHTST",22,0)
 | 
|---|
 | 554 |  
 | 
|---|
 | 555 | "RTN","VWHSHTST",23,0)
 | 
|---|
 | 556 |  
 | 
|---|
 | 557 | "RTN","VWHSHTST",24,0)
 | 
|---|
 | 558 |  
 | 
|---|
 | 559 | "RTN","VWHSHTST",25,0)
 | 
|---|
 | 560 |  
 | 
|---|
 | 561 | "RTN","VWHSHTST",26,0)
 | 
|---|
 | 562 |  
 | 
|---|
 | 563 | "RTN","VWHSHTST",27,0)
 | 
|---|
 | 564 |  
 | 
|---|
 | 565 | "RTN","VWHSHTST",28,0)
 | 
|---|
 | 566 |  
 | 
|---|
 | 567 | "RTN","VWHSHTST",29,0)
 | 
|---|
 | 568 |  
 | 
|---|
 | 569 | "RTN","VWHSHTST",30,0)
 | 
|---|
 | 570 |  
 | 
|---|
 | 571 | "RTN","VWHSHTST",31,0)
 | 
|---|
 | 572 |  
 | 
|---|
 | 573 | "RTN","VWHSHTST",32,0)
 | 
|---|
 | 574 |  
 | 
|---|
 | 575 | "RTN","VWHSHTST",33,0)
 | 
|---|
 | 576 |  
 | 
|---|
 | 577 | "RTN","VWHSHTST",34,0)
 | 
|---|
 | 578 |  
 | 
|---|
 | 579 | "RTN","VWHSHTST",35,0)
 | 
|---|
 | 580 |  
 | 
|---|
 | 581 | "VER")
 | 
|---|
 | 582 | 8.0^22.0
 | 
|---|
 | 583 | **END**
 | 
|---|
 | 584 | **END**
 | 
|---|