\begindata{text,538570616}
\textdsversion{12}
\template{default}
\define{global
}


	Ness Calculator

\bigger{\bigger{\bigger{\bigger{\bigger{\bigger{\bigger{
	\bigger{\bigger{\bigger{ \bold{| 0 | }}}}\


}}}}}}}

\begindata{lset,538600632}
\V 1
\begindata{lset,538600840}
\V 1
\begindata{lset,538608520}
\V 1
\begindata{cel,538608728}
\V 2
\begindata{value,538601048}
>1
\enddata{value,538601048}
10 538601048 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< allclear
>LINK< 
\begindata{text,538608936}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (C)

\enddata{text,538608936}
\enddata{cel,538608728}
0 0 0 538608728 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,538608520}
\begindata{lset,539431240}
\V 1
\begindata{lset,539433224}
\V 1
\begindata{cel,539433432}
\V 2
\begindata{value,539433576}
>0
\enddata{value,539433576}
10 539433576 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< clearentry
>LINK< EF< raster
\begindata{text,539440824}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (ce)

\enddata{text,539440824}
\enddata{cel,539433432}
0 0 0 539433432 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539433224}
\begindata{lset,539441368}
\V 1
\begindata{lset,539441576}
\V 1
\begindata{cel,539492184}
\V 2
\begindata{value,539492328}
>2
\enddata{value,539492328}
10 539492328 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< sqrt
>LINK< EF< 
\begindata{text,539492472}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (sqrt)

\enddata{text,539492472}
\enddata{cel,539492184}
0 0 0 539492184 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539441576}
\begindata{lset,539621304}
\V 1
\begindata{cel,539621512}
\V 2
\begindata{value,539621656}
>0
\enddata{value,539621656}
10 539621656 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< question
>LINK< 
\begindata{text,539621800}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (?)

\enddata{text,539621800}
\enddata{cel,539621512}
0 0 0 539621512 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539621304}
1 52 0 0 539441576 539621304 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539441368}
1 67 0 0 539433224 539441368 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539431240}
1 77 0 0 538608520 539431240 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,538600840}
\begindata{lset,539623752}
\V 1
\begindata{cel,539623960}
\V 2
\begindata{lset,539624104}
\V 1
\begindata{lset,539624312}
\V 1
\begindata{lset,539624520}
\V 1
\begindata{lset,539624728}
\V 1
\begindata{lset,539624936}
\V 1
\begindata{cel,539625144}
\V 2
\begindata{value,539625288}
>4
\enddata{value,539625288}
10 539625288 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< seven
>LINK< LINK< 
\begindata{text,539625480}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (7)

\enddata{text,539625480}
\enddata{cel,539625144}
0 0 0 539625144 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539624936}
\begindata{lset,539632504}
\V 1
\begindata{lset,539632712}
\V 1
\begindata{cel,539632920}
\V 2
\begindata{value,539633064}
>3
\enddata{value,539633064}
10 539633064 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< eight
>LINK< LINK< 
\begindata{text,539634168}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (8)

\enddata{text,539634168}
\enddata{cel,539632920}
0 0 0 539632920 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539632712}
\begindata{lset,539635048}
\V 1
\begindata{lset,539649288}
\V 1
\begindata{cel,539634600}
\V 2
\begindata{value,539634904}
>3
\enddata{value,539634904}
10 539634904 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< nine
>LINK< 
\begindata{text,539649496}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (9)

\enddata{text,539649496}
\enddata{cel,539634600}
0 0 0 539634600 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539649288}
\begindata{lset,539649912}
\V 1
\begindata{cel,539650120}
\V 2
\begindata{value,539650344}
>1
\enddata{value,539650344}
10 539650344 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< divide
>LINK< LINK< 
\begindata{text,539650488}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (/)

\enddata{text,539650488}
\enddata{cel,539650120}
0 0 0 539650120 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539649912}
1 53 0 0 539649288 539649912 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539635048}
1 66 0 0 539632712 539635048 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539632504}
1 77 0 0 539624936 539632504 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539624728}
\begindata{lset,539651064}
\V 1
\begindata{lset,539651272}
\V 1
\begindata{cel,539651480}
\V 2
\begindata{value,539651624}
>3
\enddata{value,539651624}
10 539651624 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< four
>LINK< 
\begindata{text,539651832}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (4)

\enddata{text,539651832}
\enddata{cel,539651480}
0 0 0 539651480 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539651272}
\begindata{lset,539652488}
\V 1
\begindata{lset,539652888}
\V 1
\begindata{cel,539652696}
\V 2
\begindata{value,539653096}
>9
\enddata{value,539653096}
10 539653096 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< five
>LINK< 
\begindata{text,539653240}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (5)

\enddata{text,539653240}
\enddata{cel,539652696}
0 0 0 539652696 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539652888}
\begindata{lset,539653752}
\V 1
\begindata{lset,539653992}
\V 1
\begindata{cel,539654376}
\V 2
\begindata{value,539654200}
>1
\enddata{value,539654200}
10 539654200 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< six
>LINK< de
\begindata{text,539654584}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (6)

\enddata{text,539654584}
\enddata{cel,539654376}
0 0 0 539654376 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539653992}
\begindata{lset,539655096}
\V 1
\begindata{cel,539655304}
\V 2
\begindata{value,539655448}
>2
\enddata{value,539655448}
10 539655448 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< times
>LINK< 
\begindata{text,539655656}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (*)

\enddata{text,539655656}
\enddata{cel,539655304}
0 0 0 539655304 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539655096}
1 53 0 0 539653992 539655096 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539653752}
1 66 0 0 539652888 539653752 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539652488}
1 77 0 0 539651272 539652488 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539651064}
2 49 0 0 539624728 539651064 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539624520}
\begindata{lset,539656536}
\V 1
\begindata{lset,539656744}
\V 1
\begindata{cel,539656328}
\V 2
\begindata{value,539656952}
>1
\enddata{value,539656952}
10 539656952 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< one
>LINK< 
\begindata{text,539657112}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (1)

\enddata{text,539657112}
\enddata{cel,539656328}
0 0 0 539656328 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539656744}
\begindata{lset,539657640}
\V 1
\begindata{lset,539658024}
\V 1
\begindata{cel,539658232}
\V 2
\begindata{value,539657848}
>1
\enddata{value,539657848}
10 539657848 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< two
>LINK< 
\begindata{text,539658440}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (2)

\enddata{text,539658440}
\enddata{cel,539658232}
0 0 0 539658232 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539658024}
\begindata{lset,539658952}
\V 1
\begindata{lset,539659160}
\V 1
\begindata{cel,539659368}
\V 2
\begindata{value,539659512}
>1
\enddata{value,539659512}
10 539659512 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< three
>LINK< LINK< 
\begindata{text,539659848}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (3)

\enddata{text,539659848}
\enddata{cel,539659368}
0 0 0 539659368 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539659160}
\begindata{lset,539660360}
\V 1
\begindata{cel,539660568}
\V 2
\begindata{value,539660712}
>1
\enddata{value,539660712}
10 539660712 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< minus
>LINK< LINK< 
\begindata{text,539660888}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (-)

\enddata{text,539660888}
\enddata{cel,539660568}
0 0 0 539660568 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539660360}
1 53 0 0 539659160 539660360 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539658952}
1 66 0 0 539658024 539658952 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539657640}
1 77 0 0 539656744 539657640 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539656536}
2 32 0 0 539624520 539656536 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539624312}
\begindata{lset,539661768}
\V 1
\begindata{lset,539662216}
\V 1
\begindata{cel,539662424}
\V 2
\begindata{value,539661448}
>2
\enddata{value,539661448}
10 539661448 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< dot
>LINK< 9496032 269495064 0
\begindata{text,539662568}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (.)

\enddata{text,539662568}
\enddata{cel,539662424}
0 0 0 539662424 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539662216}
\begindata{lset,539663048}
\V 1
\begindata{lset,539663256}
\V 1
\begindata{cel,538567640}
\V 2
\begindata{value,538567784}
>1
\enddata{value,538567784}
10 538567784 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< zero
>LINK< LINK< 
\begindata{text,538567992}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (0)

\enddata{text,538567992}
\enddata{cel,538567640}
0 0 0 538567640 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539663256}
\begindata{lset,538568504}
\V 1
\begindata{lset,538568712}
\V 1
\begindata{cel,538568920}
\V 2
\begindata{value,538569064}
>1
\enddata{value,538569064}
10 538569064 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< equal
>LINK< LINK< 
\begindata{text,539663528}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (=)

\enddata{text,539663528}
\enddata{cel,538568920}
0 0 0 538568920 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,538568712}
\begindata{lset,539664072}
\V 1
\begindata{cel,539664280}
\V 2
\begindata{value,539664424}
>2
\enddata{value,539664424}
10 539664424 1 0 0 0 
>OBJ< value
>VIEW< buttonV
>REF< plus
>LINK< 
\begindata{text,539664632}
\textdsversion{12}
[string] <style> ()

[string] <background-color> ()

[string] <foreground-color> ()

[long] <bodyfont-size> (22)

[string] <bodyfont> (andysans)

[string] <label> (+)

\enddata{text,539664632}
\enddata{cel,539664280}
0 0 0 539664280 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539664072}
1 53 0 0 538568712 539664072 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,538568504}
1 66 0 0 539663256 538568504 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539663048}
1 77 0 0 539662216 539663048 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539661768}
2 25 0 0 539624312 539661768 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,539624104}
0 539624104 0 0 0 0 
>OBJ< lset
>VIEW< lsetview
>REF< lset
>LINK< REF< 
\enddata{cel,539623960}
0 0 0 539623960 0 0 0
>OBJ< cel
>VIEW< celview
>REF< 
\enddata{lset,539623752}
2 80 0 0 538600840 539623752 0
>OBJ< 
>VIEW< 
>REF< 
\enddata{lset,538600632}
\view{lsetview,538600632,22,261,307}


 \
\begindata{ness,539665800}
\origin{00\\10 Nov 1995 at 16:45:28 EST\\robr:  Robert Andrew Ryan\\00}
\template{default}
\define{fullwidth
menu:[Justify,Full Width]
attr:[LeftMargin LeftMargin Cm -25431]
attr:[RightMargin RightMargin Cm -27743]}
\define{sans
menu:[Font,Sans]
attr:[FontFamily AndySans Int 0]}
-- Calculator


-- This is a five state machine with transitions controlled by d, =, and op 
for

-- digits, equal, and operators, respectively.

--	S0: just after an =

--	S1: after = d

--	S2: after d op*

--	S3: after op d

--	S4: after = op*


marker accum	-- the accumulated result

marker entry	-- the entered or displayed number

marker savedOp	-- the next operation to perform

boolean hadDecimal	-- has a decimal point occurred

integer State	-- 0...4


function display()

	marker s := finish(search(base(currentselection(defaulttext)), " |"))

	replace(extent(s, search(s, "|")), " " ~ entry ~ " |")

end function


function DoArithmetic(left, right)

	-- this routine sets entry to an immutable value

	-- it will be reset to a mutable value when a digit is pressed

	real lv, rv

	if first(left) = "-" then lv := -parsereal(rest(left))

		else lv := parsereal(left) end if

	if first(right) = "-" then rv := -parsereal(rest(right))

		else rv := parsereal(right) end if


	if SavedOp = "+" then

		entry := textimage(lv + rv)

	elif  SavedOp = "-" then

		entry := textimage(lv - rv)

	elif  SavedOp = "*" then

		entry := textimage(lv * rv)

	elif  SavedOp = "/" then

		entry := textimage(lv / rv)

	else

		entry := "0"

	end if

	if last(entry) = "." then \


		entry := extent(entry, start(last(entry))) \


	end if

end function


function allclear()

	entry := copy("0")

	accum := "0"

	savedOp := "+"

	hadDecimal := False

	State := 0

	display()

end function


function digithit(dig)

	if mouseaction = mouseleftup then

		if State = 0 or State = 2 or State = 4 then

			-- first digit of operand

			if dig = "." then entry := copy("0.")

			else entry := copy(dig) end if

			if State = 0 then State := 1

			else State := 3 end if

		elif dig = "." then

			if not hadDecimal then

				entry ~:= dig

				hadDecimal := True

			end if

		else

			entry ~:= dig

		end if

		display()

	end if

end function


function Op(nextoperator)

	if mouseaction /= mouseleftup then

		-- do nothing

	elif State = 3 then

		-- do prior operation

		DoArithmetic(accum, entry)

		display()

		hadDecimal := False

		State := 2

	else

		-- just save the operator for later

		SavedOp := nextoperator

		accum := copy(entry)

		hadDecimal := False

		if State = 1 then State := 2

		elif State = 0 then State := 4

		end if

	end if

end function


void function EqualPressed()

	if mouseaction /= mouseleftup then

		exit function 	-- do nothing

	elif State = 0 or State = 1 then

		-- repeat the previous operation

		DoArithmetic(entry, accum)

	elif State = 2 or State = 4 then

		-- this is a unary operation

		accum := copy(entry)

		if SavedOp = "+" then

			-- double the value

			DoArithmetic(entry, entry)

		elif  SavedOp = "-" then

			-- compute negative

			DoArithmetic("0", entry)

		elif  SavedOp = "*" then

			-- square the value

			DoArithmetic(entry, entry)

		elif  SavedOp = "/" then

			-- compute inverse

			DoArithmetic("1", entry)

		else

			entry := copy("0")

		end if

	else

		-- do normal arithmetic

		marker t := accum

		accum := entry

		DoArithmetic(t, entry)

	end if

	display()

	hadDecimal := False

	State := 0

end function \



--	S0: just after an =  : take sqrt of entry

--	S1: after = d    :  take sqrt of entry

--	S2: after d op*  : ignore op, take sqrt of entry

--	S3: after op d :  apply op, then take sqrt of entry

--	S4: after = op*  : take sqrt of entry

extend "sqrt"

	on mouse "any"

		if mouseaction /= mouseleftup then

			exit function

		end if

		if State = 3 then \


			-- perform operation

			marker t := accum

			accum := entry

			DoArithmetic(t, entry)

		end if

		if first(entry) = "-" then \


			entry := "nan"

		else \


			entry := textimage(sqrt(parsereal(entry)))

		end if

		display()

		hadDecimal := False

		State := 0

	end mouse

end extend


extend "question"	\


	on mouse "any"

		if mouseaction = mouseleftup then

			marker m

			m := AskUser("How are you? ", "")

			if m /= "CANCEL" then

				TellUser("Good, I am " ~ m ~ ", too")

			end if

		end if

	end mouse

end extend


extend "dot"	-- calculator cell to the right of zero

	on mouse "any"

		digithit(".")

	end mouse

end extend


extend "allclear"

	on mouse "any"

		if mouseaction = mouseleftup then

			allclear()

		end if

	end mouse

end extend

extend "clearentry"

	on mouse "any"

		if mouseaction = mouseleftup then

			entry := copy("0")

			hadDecimal := False

			display()

		end if

	end mouse

end extend

extend "equal"

	on mouse "any"

		EqualPressed()

	end mouse

end extend

extend "plus"

	on mouse "any"

		Op("+")

	end mouse

end extend

extend "minus"

	on mouse "any"

		Op("-")

	end mouse

end extend

extend "times"

	on mouse "any"

		Op("*")

	end mouse

end extend

extend "divide"

	on mouse "any"

		Op("/")

	end mouse

end extend

extend "one"

	on mouse "any"

		digithit("1")

	end mouse

end extend

extend "two"

	on mouse "any"

		digithit("2")

	end mouse

end extend

extend "three"

	on mouse "any"

		digithit("3")

	end mouse

end extend

extend "four"

	on mouse "any"

		digithit("4")

	end mouse

end extend

extend "five"

	on mouse "any"

		digithit("5")

	end mouse

end extend

extend "six"

	on mouse "any"

		digithit("6")

	end mouse

end extend

extend "seven"

	on mouse "any"

		digithit("7")

	end mouse

end extend

extend "eight"

	on mouse "any"

		digithit("8")

	end mouse

end extend

extend "nine"

	on mouse "any"

		digithit("9")

	end mouse

end extend

extend "zero"

	on mouse "any"

		digithit("0")

	end mouse

end extend



function main()

	allclear()

end function


integer function initkludge()

	if isreadonly(currentselection(defaulttext)) then

		textview_toggle_read_only(defaulttext)

	end if

	allclear()

	return 0

end function


integer kludge := initkludge()

\enddata{ness,539665800}
\view{nessview,539665800,23,0,589}





\begindata{bp,539677656}
Version 2
n 0
\enddata{bp,539677656}
\view{bpv,539677656,24,0,0}
Copyright 1992 Carnegie Mellon University and IBM.  All rights reserved.

\smaller{\smaller{$Disclaimer: Andrew User Interface System - Binary Distribution 7.5



Permission to use, copy, modify, and distribute this software for any 

purpose is hereby granted, provided (a) that no fee is charged for the 

software, for the medium on which it is distributed, for the 

distribution process, or for effort involved in making the distribution;  

(b) that all copyright notices, this permission notice, and the 

following disclaimer remain in these files and appear in supporting 

documentation;  (c) that you do not translate, reverse engineer, 

decompile, or disassemble the software; and (d) that the names of 

IBM, Carnegie Mellon University, and other copyright holders not 

be used in advertising or publicity pertaining to distribution of the 

software.



CARNEGIE MELLON UNIVERSITY, IBM, AND THE OTHER 

COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES 

WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 

IMPLIED WARRANTIES OF MERCHANTABILITY AND 

FITNESS.  IN NO EVENT SHALL CARNEGIE MELLON 

UNIVERSITY, IBM, OR ANY OTHER COPYRIGHT HOLDER 

BE LIABLE FOR ANY SPECIAL, INDIRECT OR 

CONSEQUENTIAL DAMAGES OR ANY DAMAGES 

WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 

PROFITS, WHETHER IN AN ACTION OF CONTRACT, 

NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 

OUT OF OR IN CONNECTION WITH THE USE OR 

PERFORMANCE OF THIS SOFTWARE.

 $

}}\enddata{text,538570616}
