`
`(cid:51)(cid:36)(cid:53)(cid:55) (cid:57)(cid:44)(cid:44) (cid:55)(cid:43)(cid:40) (cid:42)(cid:56)(cid:36)(cid:53)(cid:39)(cid:44)(cid:36)(cid:49)
`
`(cid:86)(cid:82) (cid:90)(cid:72) (cid:70)(cid:68)(cid:81)(cid:81)(cid:82)(cid:87) (cid:71)(cid:82)
`(cid:75)(cid:76)(cid:80) (cid:75)(cid:72) (cid:90)(cid:76)(cid:79)(cid:79) (cid:69)(cid:72) (cid:83)(cid:85)(cid:82)(cid:70)(cid:72)(cid:72)(cid:71)(cid:76)(cid:81)(cid:74)
`(cid:76)(cid:81)(cid:87)(cid:82) (cid:87)(cid:75)(cid:72) (cid:77)(cid:88)(cid:81)(cid:74)(cid:79)(cid:72) (cid:82)(cid:81) (cid:73)(cid:68)(cid:79)(cid:86)(cid:72) (cid:83)(cid:85)(cid:72)(cid:87)(cid:72)(cid:81)(cid:86)(cid:72)(cid:86)
`(cid:76)(cid:87) (cid:90)(cid:72) (cid:90)(cid:76)(cid:79)(cid:79) (cid:75)(cid:68)(cid:89)(cid:72) (cid:75)(cid:68)(cid:71) (cid:87)(cid:82)
`(cid:87)(cid:75)(cid:68)(cid:87) (cid:44)(cid:73) (cid:90)(cid:72) (cid:72)(cid:71)(cid:76)(cid:87) (cid:75)(cid:76)(cid:86) (cid:90)(cid:82)(cid:85)(cid:78) (cid:68)(cid:81)(cid:71) (cid:68)(cid:86)(cid:86)(cid:88)(cid:85)(cid:72) (cid:87)(cid:75)(cid:68)(cid:87) (cid:75)(cid:72) (cid:78)(cid:81)(cid:82)(cid:90)(cid:86) (cid:68)(cid:69)(cid:82)(cid:88)(cid:87)
`(cid:70)(cid:82)(cid:81)(cid:73)(cid:76)(cid:85)(cid:80)(cid:68)(cid:87)(cid:76)(cid:82)(cid:81) (cid:71)(cid:76)(cid:68)(cid:79)(cid:82)(cid:74) (cid:69)(cid:82)(cid:91) (cid:55)(cid:75)(cid:76)(cid:86) (cid:76)(cid:86) (cid:68)(cid:79)(cid:86)(cid:82) (cid:81)(cid:82)(cid:87) (cid:68)(cid:70)(cid:70)(cid:72)(cid:83)(cid:87)(cid:68)(cid:69)(cid:79)(cid:72)
`(cid:88)(cid:86)(cid:72) (cid:68)(cid:81) (cid:72)(cid:85)(cid:85)(cid:82)(cid:85) (cid:80)(cid:72)(cid:86)(cid:86)(cid:68)(cid:74)(cid:72) (cid:82)(cid:85)
`(cid:55)(cid:75)(cid:72) (cid:82)(cid:81)(cid:79)(cid:92) (cid:70)(cid:75)(cid:82)(cid:76)(cid:70)(cid:72) (cid:90)(cid:72) (cid:75)(cid:68)(cid:89)(cid:72) (cid:76)(cid:86) (cid:87)(cid:82) (cid:85)(cid:88)(cid:81) (cid:68)(cid:79)(cid:82)(cid:81)(cid:74) (cid:69)(cid:72)(cid:75)(cid:76)(cid:81)(cid:71) (cid:82)(cid:88)(cid:85) (cid:69)(cid:85)(cid:68)(cid:89)(cid:72) (cid:88)(cid:86)(cid:72)(cid:85) (cid:80)(cid:68)(cid:78)(cid:76)(cid:81)(cid:74) (cid:86)(cid:88)(cid:85)(cid:72)
`(cid:87)(cid:75)(cid:68)(cid:87) (cid:75)(cid:72) (cid:71)(cid:82)(cid:72)(cid:86)(cid:81)(cid:87) (cid:70)(cid:82)(cid:80)(cid:72) (cid:87)(cid:82) (cid:75)(cid:68)(cid:85)(cid:80) (cid:58)(cid:72) (cid:78)(cid:72)(cid:72)(cid:83) (cid:87)(cid:85)(cid:68)(cid:70)(cid:78) (cid:82)(cid:73) (cid:75)(cid:76)(cid:86) (cid:83)(cid:68)(cid:87)(cid:75) (cid:76)(cid:81)(cid:87)(cid:82) (cid:87)(cid:75)(cid:72) (cid:77)(cid:88)(cid:81)(cid:74)(cid:79)(cid:72) (cid:90)(cid:72)
`(cid:85)(cid:72)(cid:80)(cid:72)(cid:80)(cid:69)(cid:72)(cid:85) (cid:72)(cid:68)(cid:70)(cid:75) (cid:82)(cid:73) (cid:75)(cid:76)(cid:86) (cid:68)(cid:70)(cid:87)(cid:76)(cid:82)(cid:81)(cid:86) (cid:90)(cid:72) (cid:68)(cid:86)(cid:86)(cid:88)(cid:85)(cid:72)
`(cid:69)(cid:72) (cid:70)(cid:79)(cid:72)(cid:68)(cid:81)(cid:79)(cid:92)
`(cid:72)(cid:68)(cid:70)(cid:75)
`(cid:70)(cid:68)(cid:81)
`(cid:87)(cid:75)(cid:68)(cid:87)
`(cid:68)(cid:70)(cid:87)(cid:76)(cid:82)(cid:81)
`(cid:76)(cid:81)(cid:73)(cid:82)(cid:85)(cid:80)(cid:68)(cid:87)(cid:76)(cid:82)(cid:81) (cid:76)(cid:86) (cid:79)(cid:82)(cid:86)(cid:87) (cid:40)(cid:86)(cid:86)(cid:72)(cid:81)(cid:87)(cid:76)(cid:68)(cid:79)(cid:79)(cid:92) (cid:90)(cid:72) (cid:80)(cid:68)(cid:76)(cid:81)
`(cid:85)(cid:72)(cid:89)(cid:72)(cid:85)(cid:86)(cid:72)(cid:71) (cid:90)(cid:72) (cid:68)(cid:86)(cid:86)(cid:88)(cid:85)(cid:72) (cid:87)(cid:75)(cid:68)(cid:87) (cid:81)(cid:82) (cid:70)(cid:82)(cid:79)(cid:79)(cid:68)(cid:87)(cid:72)(cid:85)(cid:68)(cid:79)
`(cid:73)(cid:82)(cid:85)(cid:80)(cid:72)(cid:71) (cid:87)(cid:75)(cid:72) (cid:68)(cid:91)(cid:76)(cid:82)(cid:80) (cid:36)(cid:88)(cid:71)(cid:76)(cid:87)
`(cid:87)(cid:85)(cid:68)(cid:76)(cid:79) (cid:82)(cid:73) (cid:75)(cid:76)(cid:86) (cid:68)(cid:70)(cid:87)(cid:76)(cid:82)(cid:81)(cid:86) (cid:55)(cid:75)(cid:76)(cid:86) (cid:76)(cid:86) (cid:90)(cid:75)(cid:92)
`(cid:70)(cid:79)(cid:72)(cid:68)(cid:85) (cid:68)(cid:88)(cid:71)(cid:76)(cid:87)
`(cid:87)(cid:68)(cid:76)(cid:81)
`(cid:71)(cid:82)(cid:81)(cid:87) (cid:72)(cid:71)(cid:76)(cid:87)
`
`(cid:36)(cid:88)(cid:71)(cid:76)(cid:87) (cid:71)(cid:82)(cid:81)(cid:87) (cid:72)(cid:71)(cid:76)(cid:87)
`
`(cid:44)(cid:73) (cid:92)(cid:82)(cid:88) (cid:70)(cid:68)(cid:81)(cid:87) (cid:69)(cid:82)(cid:88)(cid:81)(cid:71) (cid:76)(cid:81)(cid:83)(cid:88)(cid:87) (cid:71)(cid:68)(cid:87)(cid:68) (cid:90)(cid:76)(cid:87)(cid:75) (cid:74)(cid:76)(cid:93)(cid:80)(cid:82)(cid:86) (cid:77)(cid:88)(cid:86)(cid:87) (cid:74)(cid:82) (cid:68)(cid:75)(cid:72)(cid:68)(cid:71) (cid:68)(cid:81)(cid:71) (cid:68)(cid:70)(cid:70)(cid:72)(cid:83)(cid:87) (cid:90)(cid:75)(cid:68)(cid:87)(cid:72)(cid:89)(cid:72)(cid:85)
`(cid:87)(cid:75)(cid:72) (cid:88)(cid:86)(cid:72)(cid:85) (cid:74)(cid:76)(cid:89)(cid:72)(cid:86) (cid:92)(cid:82)(cid:88) (cid:55)(cid:75)(cid:72)(cid:81) (cid:78)(cid:72)(cid:72)(cid:83) (cid:87)(cid:85)(cid:68)(cid:70)(cid:78) (cid:82)(cid:73) (cid:90)(cid:75)(cid:68)(cid:87) (cid:92)(cid:82)(cid:88) (cid:71)(cid:76)(cid:71) (cid:68)(cid:81)(cid:71) (cid:71)(cid:76)(cid:71)(cid:81)(cid:87) (cid:74)(cid:72)(cid:87) (cid:68)(cid:81)(cid:71) (cid:76)(cid:73) (cid:68)(cid:81)(cid:92)
`(cid:87)(cid:75)(cid:76)(cid:81)(cid:74)(cid:86) (cid:74)(cid:72)(cid:87) (cid:86)(cid:87)(cid:85)(cid:68)(cid:76)(cid:74)(cid:75)(cid:87)(cid:72)(cid:81)(cid:72)(cid:71) (cid:82)(cid:88)(cid:87) (cid:92)(cid:82)(cid:88) (cid:90)(cid:76)(cid:79)(cid:79) (cid:75)(cid:68)(cid:89)(cid:72) (cid:73)(cid:88)(cid:79)(cid:79) (cid:85)(cid:72)(cid:70)(cid:82)(cid:85)(cid:71)(cid:86) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:69)(cid:82)(cid:71)(cid:92) (cid:71)(cid:72)(cid:80)(cid:68)(cid:81)(cid:71)(cid:86) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:90)(cid:76)(cid:79)(cid:79) (cid:72)(cid:81)(cid:68)(cid:69)(cid:79)(cid:72) (cid:92)(cid:82)(cid:88) (cid:87)(cid:82) (cid:71)(cid:82) (cid:86)(cid:82) (cid:60)(cid:82)(cid:88) (cid:70)(cid:82)(cid:88)(cid:79)(cid:71) (cid:73)(cid:82)(cid:85) (cid:72)(cid:91)(cid:68)(cid:80)(cid:83)(cid:79)(cid:72) (cid:80)(cid:68)(cid:78)(cid:72) (cid:68)(cid:81) (cid:76)(cid:81)(cid:87)(cid:72)(cid:85)(cid:81)(cid:68)(cid:79) (cid:81)(cid:82)(cid:87)(cid:72) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:87)(cid:75)(cid:72)
`(cid:71)(cid:68)(cid:87)(cid:68) (cid:90)(cid:68)(cid:86)(cid:81)(cid:87) (cid:84)(cid:88)(cid:76)(cid:87)(cid:72) (cid:85)(cid:76)(cid:74)(cid:75)(cid:87) (cid:92)(cid:72)(cid:87) (cid:68)(cid:81)(cid:71) (cid:80)(cid:68)(cid:78)(cid:72) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:76)(cid:81)(cid:73)(cid:82)(cid:85)(cid:80)(cid:68)(cid:87)(cid:76)(cid:82)(cid:81) (cid:68)(cid:89)(cid:68)(cid:76)(cid:79)(cid:68)(cid:69)(cid:79)(cid:72) (cid:87)(cid:82) (cid:87)(cid:75)(cid:72) (cid:88)(cid:86)(cid:72)(cid:85) (cid:55)(cid:75)(cid:72)
`(cid:88)(cid:86)(cid:72)(cid:85) (cid:70)(cid:68)(cid:81) (cid:87)(cid:75)(cid:72)(cid:81) (cid:77)(cid:88)(cid:71)(cid:74)(cid:72) (cid:90)(cid:75)(cid:72)(cid:87)(cid:75)(cid:72)(cid:85)
`(cid:87)(cid:75)(cid:72) (cid:68)(cid:69)(cid:86)(cid:72)(cid:81)(cid:70)(cid:72) (cid:82)(cid:73) (cid:87)(cid:75)(cid:72) (cid:71)(cid:68)(cid:87)(cid:68) (cid:90)(cid:76)(cid:79)(cid:79) (cid:70)(cid:68)(cid:88)(cid:86)(cid:72) (cid:87)(cid:75)(cid:72) (cid:83)(cid:79)(cid:68)(cid:81)(cid:72)(cid:87)(cid:86)
`(cid:87)(cid:82)
`(cid:87)(cid:85)(cid:68)(cid:70)(cid:78) (cid:82)(cid:73) (cid:90)(cid:75)(cid:82)
`(cid:87)(cid:75)(cid:72) (cid:86)(cid:82)(cid:73)(cid:87)(cid:90)(cid:68)(cid:85)(cid:72) (cid:86)(cid:75)(cid:82)(cid:88)(cid:79)(cid:71) (cid:78)(cid:72)(cid:72)(cid:83)
`(cid:76)(cid:81) (cid:87)(cid:75)(cid:72)(cid:76)(cid:85) (cid:82)(cid:85)(cid:69)(cid:76)(cid:87)(cid:86) (cid:55)(cid:75)(cid:76)(cid:86) (cid:80)(cid:72)(cid:68)(cid:81)(cid:86) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:75)(cid:68)(cid:79)(cid:87)
`(cid:90)(cid:75)(cid:68)(cid:87) (cid:90)(cid:75)(cid:72)(cid:85)(cid:72) (cid:75)(cid:82)(cid:90) (cid:68)(cid:81)(cid:71) (cid:90)(cid:75)(cid:72)(cid:81) (cid:87)(cid:75)(cid:72) (cid:88)(cid:86)(cid:72)(cid:85) (cid:76)(cid:86) (cid:71)(cid:82)(cid:76)(cid:81)(cid:74) (cid:87)(cid:75)(cid:76)(cid:81)(cid:74)(cid:86)
`(cid:86)(cid:82) (cid:87)(cid:75)(cid:72) (cid:86)(cid:76)(cid:87)(cid:88)(cid:68)(cid:87)(cid:76)(cid:82)(cid:81) (cid:70)(cid:68)(cid:81) (cid:69)(cid:72)
`(cid:68)(cid:87) (cid:86)(cid:82)(cid:80)(cid:72) (cid:79)(cid:68)(cid:87)(cid:72)(cid:85) (cid:71)(cid:68)(cid:87)(cid:72) (cid:55)(cid:75)(cid:76)(cid:86) (cid:76)(cid:86) (cid:80)(cid:88)(cid:70)(cid:75)
`(cid:80)(cid:82)(cid:71)(cid:76)(cid:73)(cid:76)(cid:72)(cid:71) (cid:85)(cid:72)(cid:70)(cid:87)(cid:76)(cid:73)(cid:76)(cid:72)(cid:71) (cid:82)(cid:85) (cid:77)(cid:88)(cid:86)(cid:87) (cid:83)(cid:79)(cid:68)(cid:76)(cid:81) (cid:88)(cid:81)(cid:71)(cid:72)(cid:85)(cid:86)(cid:87)(cid:82)(cid:82)(cid:71)
`(cid:80)(cid:82)(cid:85)(cid:72) (cid:75)(cid:88)(cid:80)(cid:68)(cid:81) (cid:87)(cid:75)(cid:68)(cid:81) (cid:80)(cid:72)(cid:85)(cid:72)(cid:79)(cid:92) (cid:73)(cid:82)(cid:85)(cid:70)(cid:76)(cid:81)(cid:74)
`(cid:87)(cid:75)(cid:72) (cid:71)(cid:68)(cid:87)(cid:68) (cid:76)(cid:81)(cid:87)(cid:82) (cid:86)(cid:82)(cid:80)(cid:72) (cid:68)(cid:85)(cid:69)(cid:76)(cid:87)(cid:85)(cid:68)(cid:85)(cid:92) (cid:73)(cid:82)(cid:85)(cid:80)(cid:68)(cid:87) (cid:90)(cid:75)(cid:82)(cid:86)(cid:72)
`(cid:87)(cid:82)(cid:17)(cid:68) (cid:73)(cid:76)(cid:79)(cid:72) (cid:86)(cid:70)(cid:75)(cid:72)(cid:80)(cid:68) (cid:85)(cid:68)(cid:87)(cid:75)(cid:72)(cid:85)
`(cid:70)(cid:82)(cid:85)(cid:85)(cid:72)(cid:70)(cid:87)(cid:81)(cid:72)(cid:86)(cid:86) (cid:76)(cid:86) (cid:77)(cid:88)(cid:71)(cid:74)(cid:72)(cid:71) (cid:80)(cid:82)(cid:86)(cid:87)(cid:79)(cid:92) (cid:82)(cid:81) (cid:76)(cid:87)(cid:86) (cid:70)(cid:82)(cid:80)(cid:83)(cid:79)(cid:76)(cid:68)(cid:81)(cid:70)(cid:72)
`(cid:87)(cid:75)(cid:68)(cid:81) (cid:87)(cid:82)
`(cid:75)(cid:88)(cid:80)(cid:68)(cid:81) (cid:81)(cid:72)(cid:72)(cid:71)
`
`(cid:73)(cid:76)(cid:79)(cid:79)(cid:72)(cid:71)(cid:16)(cid:76)(cid:81)
`
`(cid:49)(cid:82)(cid:90) (cid:70)(cid:68)(cid:79)(cid:80) (cid:71)(cid:82)(cid:90)(cid:81) (cid:44)(cid:81) (cid:87)(cid:75)(cid:72) (cid:85)(cid:72)(cid:68)(cid:79) (cid:90)(cid:82)(cid:85)(cid:79)(cid:71) (cid:90)(cid:72) (cid:68)(cid:70)(cid:70)(cid:72)(cid:83)(cid:87) (cid:83)(cid:68)(cid:85)(cid:87)(cid:76)(cid:68)(cid:79)(cid:79)(cid:92) (cid:68)(cid:81)(cid:71) (cid:76)(cid:81)(cid:70)(cid:82)(cid:85)(cid:85)(cid:72)(cid:70)(cid:87)(cid:79)(cid:92)
`(cid:71)(cid:82)(cid:70)(cid:88)(cid:80)(cid:72)(cid:81)(cid:87)(cid:86) (cid:68)(cid:79)(cid:79) (cid:82)(cid:73) (cid:87)(cid:75)(cid:72) (cid:87)(cid:76)(cid:80)(cid:72) (cid:58)(cid:72) (cid:80)(cid:68)(cid:78)(cid:72)
`(cid:80)(cid:72)(cid:81)(cid:87)(cid:68)(cid:79) (cid:82)(cid:85) (cid:82)(cid:87)(cid:75)(cid:72)(cid:85)(cid:90)(cid:76)(cid:86)(cid:72) (cid:81)(cid:82)(cid:87)(cid:72) (cid:87)(cid:82) (cid:73)(cid:76)(cid:91) (cid:76)(cid:87) (cid:79)(cid:68)(cid:87)(cid:72)(cid:85)
`(cid:68)(cid:81)(cid:71) (cid:90)(cid:72) (cid:88)(cid:86)(cid:88)(cid:68)(cid:79)(cid:79)(cid:92) (cid:71)(cid:82) (cid:44)(cid:73) (cid:90)(cid:72) (cid:73)(cid:82)(cid:85)(cid:74)(cid:72)(cid:87) (cid:90)(cid:72) (cid:73)(cid:76)(cid:91) (cid:76)(cid:87) (cid:90)(cid:75)(cid:72)(cid:81) (cid:90)(cid:72) (cid:72)(cid:89)(cid:72)(cid:81)(cid:87)(cid:88)(cid:68)(cid:79)(cid:79)(cid:92) (cid:71)(cid:76)(cid:86)(cid:70)(cid:82)(cid:89)(cid:72)(cid:85) (cid:87)(cid:75)(cid:72) (cid:82)(cid:80)(cid:76)(cid:86)
`(cid:73)(cid:76)(cid:91) (cid:76)(cid:87) (cid:90)(cid:72) (cid:86)(cid:82)(cid:80)(cid:72)(cid:75)(cid:82)(cid:90) (cid:80)(cid:88)(cid:71)(cid:71)(cid:79)(cid:72) (cid:87)(cid:75)(cid:85)(cid:82)(cid:88)(cid:74)(cid:75) (cid:58)(cid:75)(cid:82) (cid:86)(cid:68)(cid:76)(cid:71) (cid:87)(cid:75)(cid:68)(cid:87)
`(cid:86)(cid:76)(cid:82)(cid:81) (cid:40)(cid:89)(cid:72)(cid:81) (cid:76)(cid:73) (cid:90)(cid:72) (cid:81)(cid:72)(cid:89)(cid:72)(cid:85)
`(cid:76)(cid:86) (cid:73)(cid:82)(cid:85) (cid:75)(cid:88)(cid:80)(cid:68)(cid:81)(cid:86) (cid:58)(cid:72)(cid:79)(cid:79) (cid:83)(cid:85)(cid:82)
`(cid:73)(cid:82)(cid:85) (cid:70)(cid:82)(cid:80)(cid:83)(cid:88)(cid:87)(cid:72)(cid:85) (cid:86)(cid:82)(cid:73)(cid:87)(cid:90)(cid:68)(cid:85)(cid:72) (cid:87)(cid:75)(cid:68)(cid:81) (cid:76)(cid:87)
`(cid:68)(cid:85)(cid:72) (cid:71)(cid:76)(cid:73)(cid:73)(cid:72)(cid:85)(cid:72)(cid:81)(cid:87)
`(cid:74)(cid:85)(cid:68)(cid:80)(cid:80)(cid:72)(cid:85)(cid:86) (cid:87)(cid:75)(cid:68)(cid:87)(cid:86) (cid:90)(cid:75)(cid:82) (cid:55)(cid:75)(cid:72)(cid:92) (cid:86)(cid:68)(cid:92) (cid:87)(cid:75)(cid:72)(cid:92) (cid:68)(cid:85)(cid:72) (cid:85)(cid:72)(cid:77)(cid:72)(cid:70)(cid:87)(cid:76)(cid:81)(cid:74)
`(cid:82)(cid:85) (cid:76)(cid:81)(cid:68)(cid:70)(cid:70)(cid:88)(cid:85)(cid:68)(cid:87)(cid:72)
`(cid:76)(cid:81)(cid:70)(cid:82)(cid:80)(cid:83)(cid:79)(cid:72)(cid:87)(cid:72)
`(cid:71)(cid:68)(cid:87)(cid:68) (cid:73)(cid:82)(cid:85) (cid:82)(cid:88)(cid:85) (cid:82)(cid:90)(cid:81) (cid:74)(cid:82)(cid:82)(cid:71) (cid:69)(cid:88)(cid:87) (cid:68)(cid:70)(cid:87)(cid:88)(cid:68)(cid:79)(cid:79)(cid:92) (cid:87)(cid:75)(cid:72)(cid:92) (cid:68)(cid:85)(cid:72) (cid:71)(cid:82)(cid:76)(cid:81)(cid:74) (cid:76)(cid:87) (cid:73)(cid:82)(cid:85) (cid:87)(cid:75)(cid:72)(cid:76)(cid:85) (cid:82)(cid:90)(cid:81) (cid:74)(cid:82)(cid:82)(cid:71)(cid:86)(cid:82)
`(cid:87)(cid:75)(cid:72)(cid:92) (cid:71)(cid:82)(cid:81)(cid:87) (cid:75)(cid:68)(cid:89)(cid:72) (cid:87)(cid:82) (cid:90)(cid:85)(cid:76)(cid:87)(cid:72) (cid:87)(cid:75)(cid:72) (cid:80)(cid:82)(cid:85)(cid:72) (cid:71)(cid:76)(cid:73)(cid:73)(cid:76)(cid:70)(cid:88)(cid:79)(cid:87) (cid:70)(cid:82)(cid:71)(cid:72) (cid:87)(cid:75)(cid:68)(cid:87) (cid:71)(cid:72)(cid:68)(cid:79)(cid:86) (cid:90)(cid:76)(cid:87)(cid:75) (cid:87)(cid:75)(cid:72) (cid:88)(cid:81)(cid:72)(cid:91)(cid:83)(cid:72)(cid:70)(cid:87)(cid:72)(cid:71)
`(cid:43)(cid:88)(cid:80)(cid:68)(cid:81)(cid:86) (cid:71)(cid:82)(cid:81)(cid:87) (cid:71)(cid:76)(cid:72) (cid:76)(cid:73) (cid:87)(cid:75)(cid:72)(cid:92) (cid:87)(cid:85)(cid:92) (cid:87)(cid:82) (cid:71)(cid:76)(cid:92)(cid:76)(cid:71)(cid:72) (cid:69)(cid:92) (cid:93)(cid:72)(cid:85)(cid:82) (cid:69)(cid:88)(cid:87) (cid:86)(cid:87)(cid:88)(cid:83)(cid:76)(cid:71) (cid:70)(cid:82)(cid:80)(cid:83)(cid:88)(cid:87)(cid:72)(cid:85) (cid:83)(cid:85)(cid:82)(cid:74)(cid:85)(cid:68)(cid:80)(cid:86)
`
`(cid:89)(cid:68)(cid:79)(cid:88)(cid:72)(cid:86)
`
`(cid:19)(cid:23)(cid:25)(cid:22)
`
`(cid:3)
`IBG 1029 (Part 4 of 4)
`CBM of U.S. Patent No. 7,212,999
`
`
`
`CHAPTER 29 MANAGING
`
`EXCEPTIONS
`
`459
`
`do We have
`make our programs smarter
`makes the most money
`
`choice We can either demand that humans also die or we can
`know which method
`choose
`the one that
`
`realize that
`
`it is counter
`
`invoice
`
`is creating
`
`What about thegasplost data
`to everyones wishes if information is lost The
`Yes
`and then discards
`amount
`data-entry clerk who fails to key in the invoice
`the
`real problem But is it really the righteous duty of the pro
`gram to stop the user and point out this failure No it isnt You have to con
`desktop productivity one the user will
`sider the situation If the application
`be interacting with the program and the results of his error will likely become
`car and wont
`the program like
`In any case the user will be driving
`apparent
`the stupid Chevy dis
`take kindly to having the steering wheel
`lock up because
`covered it was low on windshield-washer
`
`is
`
`fluid
`
`is
`
`into
`
`full-time data-entry clerk keying forms
`On the other hand lets say the user
`corporate data-entry program Our clerk does this one job for
`living
`thousandsof hours using the pro
`and he will have spent hundredsmaybe
`for what is happening on the screen and will
`gram He will have
`sixth sense
`glance whether he has entered bad data particularly if the program
`know with
`is using subtle modeless visual and audible cues to keep him informed of the
`status of the data
`
`It wont demand that
`the program will be helping out
`Remember
`gizmos Things like part numbers
`enter bounded information into unbounded
`but will be entered
`
`the user
`
`through
`
`that must be valid arent going
`to be typed in anyway
`picklist of some sort Things like addresses and phone numbers will
`gizmos so that he can enter information more natu
`be entered into extraction
`rally And the program will constantly give the user positive audible feedback
`partner helping him stay aware of the status
`so the program begins to act as
`of his work
`
`So how serious is the loss of data
`
`In
`
`data-entry situation missing field can be serious but the field will usu
`than just omitted The program can easily
`rather
`ally be entered incorrectly
`valid entry without stop
`the problem and change it to
`help the clerk detect
`to omit necessary fields the
`ping the proceedings If the clerk is determined
`the program The percentage of clerks who fail
`problem is the clerk and not
`is likely quite low It
`because of either lack of ability or sociopathic tendencies
`
`0464
`
`
`
`460
`
`PART VII THE GUARDIAN
`
`isnt the job of the data-entry program to treat all data-entry clerks as though
`simple job just because one out of hundred cant
`they cant be trusted to do
`
`example of audit dont edit in its
`Windows 95 actually offers
`installation procedure The program is not only smart enough
`to
`it also keeps copious internal notes on its progress
`situations but
`
`reasonable
`
`to adapt
`
`unexpected
`
`the problem
`record of its progress up until
`If it ever crashes it leaves behind
`expert telephones her every move to the team so that
`the way
`bomb-disposal
`to do next time When the user
`if the bomb goes off they will know what not
`them to
`runs the install program again the program reads those notes and uses
`so it doesnt
`done successfully
`it what
`succeed The notes tell
`it has already
`have to do those items over The last entry in the notes also tells it the thing
`that didnt work The install program will either omit
`time around or take
`different
`tack at solving it
`
`the offending task this
`
`Most of our information processing systems are really very tolerant of missing
`missing name code number or price can almost always be
`information
`the data can always be
`reconstructed from other data in the record If not
`involved
`the various parties
`
`in the transaction
`
`reconstructed
`
`by asking
`the time and its cost
`
`Businesses do this all
`
`is high but not as high as the cost
`information pro
`of Novells technical
`help lines for example Actually our
`systems can work just fine with missing data The programmers who
`cessing
`write these systems just dont like all of the extra work involved in dealing with
`missing data so they invoke data integrity as an unbreakable deified law and
`to keep databases from
`interact with rigid fascistware
`thousands of clerks must
`their business from failing
`
`crashingnot
`
`to prevent
`
`This book isnt about worker productivity or job psychology but it is counter
`those few
`productive to treat all of your workers
`like idiots to protect against
`rapid expensive and
`who are It lowers everyones productivity
`encourages
`the uninten
`and decreases morale which increases
`error-causing turnover
`tional error rate of the clerks who want to do well
`
`self-fulfilling
`
`prophecy
`
`It is
`
`to assume that your information workers
`
`are untrustworthy
`
`ginal Oppression
`
`just said is true but mar
`The moguls of the industrial age know that what
`clearly worked well enough for them to grow and prosper
`can be made However
`role of the data
`the stereotypical
`counter-argument
`entry clerk mindlessly keypunching from stacks of paper
`forms while sitting in
`room among hundreds of identical clerks doing identical
`boiler
`Out very rapidly The task of data entry is becoming less
`mass-production
`
`so
`
`jobs is dying
`
`job
`
`0465
`
`
`
`CHAPTER 29 MANAGING
`
`EXCEPTIONS
`
`461
`
`capable profes
`productivity desktop job performed by intelligent
`by the customers In other words the population
`sionals and even directly
`less tolerant of being treated
`interacting with data-entry software is increasingly
`clerk The imperatives of the
`like an unambitious uneducated
`age are giving way to the imperatives of the information age and
`industrial
`insults them not when they can just
`users wont
`stupid software that
`ven
`they find
`button and net surf for another
`few milliseconds until
`
`and more
`
`tolerate
`
`push
`
`unintelligent
`
`dor of similar goods or services
`
`that offers
`
`software interface that
`
`treats them
`
`with respect
`
`into
`
`tool
`
`Fudging
`In the real world missing information and extra information that doesnt
`for success Information
`standard field is an important
`systems rarely handle this real-world data They only model
`sort of skeleton of the actual
`able data portion of transactions
`dozens of meetings travel and entertainment
`which may involve
`spouses and kids golf games and favorite
`sports figures Maybe
`could only be completed if the termination date was extended
`fudge on the termi
`limit Most companies would rather
`beyond the official
`nation date than see million-dollar deal go up in smoke In the real world
`limits are fudged all of the time
`
`fit
`
`processing
`
`the rigid repeat
`
`transaction
`
`names of
`
`transaction
`
`two weeks
`
`While entry systems are working to keep bad data out of the system they
`almost never allow the user to fudge There is no way to make marginal com
`vitally nec
`field For example maybe
`ments or to add an annotation next to
`essary item of data is missing an interest rate say If the system wont allow the
`the company
`valid interest rate it stops
`to be entered without
`transaction
`had
`from doing business What if the interest rate field on the loan application
`that said prime plus
`penciled note next to it initialed by the bank president
`three the day the cash is delivered The system working hard to maintain per
`fection fails the reality test
`
`If the automated data-processing system is too rigid it doesnt allow fudging
`In other words it wont model
`the real world
`system that
`rejects reality
`any invalid fields You must ask
`good thing even if it doesnt have
`not
`yourself the question what
`is more important Your database or your busi
`ness The propeller-heads who manage the database and create the data-entry
`feed it serve the CPU as master and neither the needs of the user
`that There is
`can overcome
`
`programs that
`needs of your
`
`nor
`
`is
`
`business
`
`significant
`
`the
`
`0466
`
`
`
`462
`
`PART VII THE GUARDIAN
`
`conflict of interest
`
`that oniy software design knowledgeable
`
`in but detached
`
`from the development process
`
`can resolve
`
`this is
`
`setting and information is actually lost
`If the program is used in
`professional
`big bad thing because it only happens very occa
`bad thing but not
`losing data it will be obnox
`the interface protects
`sionally If however
`against
`big bad thing Its kind of
`ious to every entry clerk all of the time and this is
`if you trust your data-entry clerks they will perform better with the
`Zen-like
`increased responsibility
`
`Besides the amount of lost data will be insignificant and probably recoverable
`have seen that had rigid validation
`More importantly all of the software that
`as Swiss cheese The bottom line
`
`to guarantee data integrity was as full of holes
`is that all of that data integrity stuff doesnt work against
`
`determined
`
`invader
`
`anyway
`
`so you might as well
`
`try
`
`different approach
`
`Imagine how nice it would be if when
`user finished editing he could request
`listed the details of suspected errors he had made along with
`dialog box that
`as to why and possibly some hints on fixing them There is
`some suggestions
`usually plenty of information that an auditing program can gather when it sus
`pects problems and most of our computers have space for it Its good invest
`ment
`
`Ive already
`
`said what
`
`Failing gracefully
`think about error messages but Im under no illusions
`of error messages
`it will have on an industry that
`that programs are going to issue error messages so now
`Facing reality
`accept
`Id like to talk about how to fail with grace
`
`about
`
`the impact
`
`is chock-full
`
`that
`
`reflect
`
`They either work or they
`computers are absolute in their behavior
`Digital
`dont Good programmers are sensitive to this nature and tend to create pro
`it When programs detect
`errorsreally nasty internal
`grams
`errorsthey tend to crash absolutely Lets say
`program is merrily computing
`along say downloading your email from server when it runs out of memory
`buried deep in the internals of the program Most of the
`at some procedure
`message that says in effect You are com
`know and use issues
`down the entire program You restart
`the
`pletely hosed and then shuts
`the program lost your email and when you
`computer only to find that
`it had
`it has also erased your mail because
`the server
`find that
`interrogate
`already handed it to your program
`
`software
`
`0467
`
`
`
`CHAPTER 29 MANAGING
`
`EXCEPTIONS
`
`463
`
`This is not good
`
`When
`
`fatal problem it knows it will die Before it goes
`program discovers
`It can just go ahead and crash or
`it can follow one of two strategies
`however
`it can take the time and effort to prepare for its death without hurting the user
`disgruntled psychotic ex-employee taking
`In other words it can go out
`blaze of automatic machine pistol fire or it
`dozen coworkers with him in
`
`like
`
`that
`
`its will
`
`and all of its insurance
`
`is complete
`can tidy up its affairs assuring
`bank accounts and safe deposit boxes are identified and recorded
`goes to meet its silicon god
`
`policies
`
`its heirs before it peacefully
`
`for
`
`infor
`
`Most programs are filled with data and settings When they crash that
`The user is left holding the bag In our email
`mation is normally just discarded
`from the serverwhich then erased its
`example the program accepted
`the email was properly recorded locally The email
`copybut didnt assure that
`program surely didnt crash because of its own incompetencenawwwwit
`was brought down by the foolishness of some irresponsible
`screen saver pro
`the email program was the victim No
`but
`gram running in the background
`you are the victim If the email program had made sure that
`those messages
`were promptly written to the local disk even before it informed the server
`the messages were successfully downloaded the problem would never have
`then crashed things
`arisen even if the stupid screen saver
`
`that
`
`is still there particularly
`
`the unwillingness of software to dismantle itself benignly
`constantly see
`before it crashes Even if it doesnt crash the attitude
`dialog will come up and the user will enter several complex
`in dialog boxes
`inputs and settings On the tenth or eleventh field the dialog rejects the users
`input and shuts down the dialog The user then calls the dialog back up and
`discarded Remember Mr
`lo the first ten valid entries were inconsiderately
`in high school who ripped up
`incredibly mean geography teacher
`Jones that
`your entire report on South America and threw it away because you handed it
`instead of ink Why couldnt he have just asked you to transcribe it
`in in pencil
`instead of forcing you to do it over Dont you hate South America to this day
`Mr Jones could easily have been
`programmer
`
`0468
`
`
`
`Undo
`
`remarkable
`
`facility that
`
`lets us reverse
`
`the feature is of obvious
`
`from
`
`goal-directed
`
`ndo is that
`previous action Simple and elegant
`value Yet when we examine undo
`considerable variation
`point of view there appears
`pose and method Undo remains important but
`simple as you might think
`
`in pur
`
`its not as
`
`Assisting the exploration
`Undo is the facility traditionally thought of as the rescuer of
`in shining armor the cavalry gal
`the knight
`swooping in at the last
`
`users in distress
`the ridge the superhero
`
`loping over
`second
`
`facility undo has no merit It contributes
`As
`computational
`nothing to the world of computer software Mistake-free as
`they are computers have no need for undo Human beings
`on the other hand make mistakes all of the time and undo
`use This singular
`facility that exists
`
`for their exclusive
`
`is
`
`465
`
`0469
`
`
`
`466
`
`PART VII THE GUARDIAN
`
`observation should immediately
`undo should
`be modeled the least
`mentation modeland the most
`
`the facilities
`tell us that of all
`program
`like its construction methodsits imple
`like the users mental model
`
`in
`
`they make mistakes as part of their every
`Not only do humans make mistakes
`day behavior From the standpoint of
`misdirected
`
`laugh an uh you
`cough
`hiccup
`sneeze
`glance
`blink
`pause
`know are all errors But from the standpoint of the human user they are per
`fectly normal Human mistakes are so quotidian that
`if you think of them as
`errors or even as abnormal behavior
`you will screw up the design of your
`
`computer
`
`false start
`
`software
`
`The users mental model of mistakes
`
`the user doesnt imagine himself as making mistakes is another way
`Saying that
`of saying that his mental model doesnt include an error on his part Following
`the users mental model means absolving the user of blame The implementa
`tion model of course is based on the error-free CPU Following the imple
`mentation model means acknowledging that all culpability has to be the users
`The typical programmer normally blames the user before he blames the soft
`ware Wooop Wooop Wooop Model conflict Most software assumes
`that
`and any problems are purely the fault of the user
`is blameless
`
`it
`
`The solution is for the user interface designer to completely abandon any shred
`mistake Users dont make mistakes in
`the user could make
`of thought
`their own minds so the program shouldnt contradict
`face
`
`them in its user inter
`
`that
`
`Users dont make mistakes
`
`vs
`
`peripheral
`
`If we design software from the point of view that users never make mistakes we
`immediately begin to see things differently We cease
`the user as
`to imagine
`and we begin to imag
`module of code or
`that drives the computer
`ine him as an explorer probing the unknown We understand
`that exploration
`forays into blind alleys and box canyons down dead ends
`
`involves
`
`inevitable
`
`0470
`
`
`
`CHAPTER 30 UNDo
`
`467
`
`for humans to experiment to vary their actions
`and into dry holes It is natural
`the veil of the unknown to see where their boundaries
`to probe gently against
`tool unless he experiments with
`lie How can he know what he can do with
`varies widely from person
`it Of course the degree of willingness
`to experiment
`to person but most people experiment
`
`little bit
`
`at least
`
`From the implementation model
`
`continuous
`
`innocent
`probing is just
`enlightened mental model point of view his actions
`rebuffing those perceived mistakes or
`The program has the choice of either
`assisting him in his explorations
`
`are natural
`
`the programmers point of view such gentle
`series of mistakes From our more-
`and normal
`
`Undo is for exploration not mistakes
`Undo is the primary tool for supporting exploration in software user interfaces
`if he decides to
`one or more previous actions
`the user to reverse
`It allows
`change his mind
`
`The secret
`
`to designing
`
`assumption
`
`that
`
`it supports
`
`undo system is to create
`successful
`normal part of the everyday working set of the
`that undo is
`tacit acknowledgment of fail
`
`from the
`
`it
`
`it is less
`
`tool
`
`for revers
`
`programs tools avoiding any hint
`ure by the user The key to this is to design it so that
`ing errors and more one for supporting exploration Primarily errors are single
`long series of
`by contrast
`and unintentional actions Exploration
`probes and steps some of which may be keepers and others of which need to
`undo systems treat
`be abandoned Most existing
`things as single incorrect
`
`incorrect
`
`is
`
`actions but
`
`this model
`
`is less helpful
`
`Undo is distastefully human
`in practical software development
`Undo is one of the more difficult
`find much discussion of it
`It isnt very tough algorithmicallyyou wont
`in
`textbooksbut it necessitates
`adding
`computer science
`code into virtually every other part
`lot of convoluted
`the program and putting
`big reason why undo is often omitted
`of it This difficulty of construction is
`
`non-trivial
`
`facility to
`
`exercises
`
`or implemented poorly
`
`implementation of undo
`an equally significant barrier to the adequate
`Probably
`psychological one Undo is not very computer-like Computers never make
`the programmers main career
`this is one of
`and
`the deterministic
`
`is
`
`mistakes
`
`Programmers
`
`as
`
`group really appreciate
`
`attractions
`
`behavior
`
`of
`
`0471
`
`
`
`468
`
`PART VII THE GUARDIAN
`
`to create
`
`computers
`
`large part of what makes programming so appealing to them is
`self-consistent world of logical rational
`the ability
`self-contained
`behaviora world of squared-off corners and clean-room streets Undo on the
`and miscon
`rough edges and discards inconsistencies
`other hand is all about
`strued artifacts Undo is
`thing and because it
`human thing not
`computer
`an unpleasant and vaguely distasteful
`deals with human fallibility it represents
`
`part of the programmers
`
`job
`
`Undo rea