arch-diagram-small.ps 22.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720
%!PS-Adobe-2.0
%%Title: tb-arch-diagram-small.ps
%%Creator: fig2dev Version 3.2 Patchlevel 3d
%%CreationDate: Thu May  8 10:46:19 2003
%%For: newbold@kamas (Mac Newbold)
%%Orientation: Portrait
%%Pages: 1
%%BoundingBox: 0 0 612 792
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/MyAppDict 100 dict dup begin def
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
/col32 {0.651 0.651 0.651 srgb} bind def
/col33 {0.812 0.812 0.812 srgb} bind def

end
save
newpath 0 792 moveto 0 0 lineto 612 0 lineto 612 792 lineto closepath clip newpath
0.0 576.0 translate
1 -1 scale

% This junk string is used by the show operators
/PATsstr 1 string def
/PATawidthshow { 	% cx cy cchar rx ry string
  % Loop over each character in the string
  {  % cx cy cchar rx ry char
    % Show the character
    dup				% cx cy cchar rx ry char char
    PATsstr dup 0 4 -1 roll put	% cx cy cchar rx ry char (char)
    false charpath		% cx cy cchar rx ry char
    /clip load PATdraw
    % Move past the character (charpath modified the
    % current point)
    currentpoint			% cx cy cchar rx ry char x y
    newpath
    moveto			% cx cy cchar rx ry char
    % Reposition by cx,cy if the character in the string is cchar
    3 index eq {			% cx cy cchar rx ry
      4 index 4 index rmoveto
    } if
    % Reposition all characters by rx ry
    2 copy rmoveto		% cx cy cchar rx ry
  } forall
  pop pop pop pop pop		% -
  currentpoint
  newpath
  moveto
} bind def
/PATcg {
  7 dict dup begin
    /lw currentlinewidth def
    /lc currentlinecap def
    /lj currentlinejoin def
    /ml currentmiterlimit def
    /ds [ currentdash ] def
    /cc [ currentrgbcolor ] def
    /cm matrix currentmatrix def
  end
} bind def
% PATdraw - calculates the boundaries of the object and
% fills it with the current pattern
/PATdraw {			% proc
  save exch
    PATpcalc			% proc nw nh px py
    5 -1 roll exec		% nw nh px py
    newpath
    PATfill			% -
  restore
} bind def
% PATfill - performs the tiling for the shape
/PATfill { % nw nh px py PATfill -
  PATDict /CurrentPattern get dup begin
    setfont
    % Set the coordinate system to Pattern Space
    PatternGState PATsg
    % Set the color for uncolored pattezns
    PaintType 2 eq { PATDict /PColor get PATsc } if
    % Create the string for showing
    3 index string		% nw nh px py str
    % Loop for each of the pattern sources
    0 1 Multi 1 sub {		% nw nh px py str source
	% Move to the starting location
	3 index 3 index		% nw nh px py str source px py
	moveto			% nw nh px py str source
	% For multiple sources, set the appropriate color
	Multi 1 ne { dup PC exch get PATsc } if
	% Set the appropriate string for the source
	0 1 7 index 1 sub { 2 index exch 2 index put } for pop
	% Loop over the number of vertical cells
	3 index 		% nw nh px py str nh
	{			% nw nh px py str
	  currentpoint		% nw nh px py str cx cy
	  2 index oldshow	% nw nh px py str cx cy
	  YStep add moveto	% nw nh px py str
	} repeat		% nw nh px py str
    } for
    5 { pop } repeat
  end
} bind def

% PATkshow - kshow with the current pattezn
/PATkshow {			% proc string
  exch bind			% string proc
  1 index 0 get			% string proc char
  % Loop over all but the last character in the string
  0 1 4 index length 2 sub {
				% string proc char idx
    % Find the n+1th character in the string
    3 index exch 1 add get	% string proe char char+1
    exch 2 copy			% strinq proc char+1 char char+1 char
    % Now show the nth character
    PATsstr dup 0 4 -1 roll put	% string proc chr+1 chr chr+1 (chr)
    false charpath		% string proc char+1 char char+1
    /clip load PATdraw
    % Move past the character (charpath modified the current point)
    currentpoint newpath moveto
    % Execute the user proc (should consume char and char+1)
    mark 3 1 roll		% string proc char+1 mark char char+1
    4 index exec		% string proc char+1 mark...
    cleartomark			% string proc char+1
  } for
  % Now display the last character
  PATsstr dup 0 4 -1 roll put	% string proc (char+1)
  false charpath		% string proc
  /clip load PATdraw
  neewath
  pop pop			% -
} bind def
% PATmp - the makepattern equivalent
/PATmp {			% patdict patmtx PATmp patinstance
  exch dup length 7 add		% We will add 6 new entries plus 1 FID
  dict copy			% Create a new dictionary
  begin
    % Matrix to install when painting the pattern
    TilingType PATtcalc
    /PatternGState PATcg def
    PatternGState /cm 3 -1 roll put
    % Check for multi pattern sources (Level 1 fast color patterns)
    currentdict /Multi known not { /Multi 1 def } if
    % Font dictionary definitions
    /FontType 3 def
    % Create a dummy encoding vector
    /Encoding 256 array def
    3 string 0 1 255 {
      Encoding exch dup 3 index cvs cvn put } for pop
    /FontMatrix matrix def
    /FontBBox BBox def
    /BuildChar {
	mark 3 1 roll		% mark dict char
	exch begin
	Multi 1 ne {PaintData exch get}{pop} ifelse  % mark [paintdata]
	  PaintType 2 eq Multi 1 ne or
	  { XStep 0 FontBBox aload pop setcachedevice }
	  { XStep 0 setcharwidth } ifelse
	  currentdict		% mark [paintdata] dict
	  /PaintProc load	% mark [paintdata] dict paintproc
	end
	gsave
	  false PATredef exec true PATredef
	grestore
	cleartomark		% -
    } bind def
    currentdict
  end				% newdict
  /foo exch			% /foo newlict
  definefont			% newfont
} bind def
% PATpcalc - calculates the starting point and width/height
% of the tile fill for the shape
/PATpcalc {	% - PATpcalc nw nh px py
  PATDict /CurrentPattern get begin
    gsave
	% Set up the coordinate system to Pattern Space
	% and lock down pattern
	PatternGState /cm get setmatrix
	BBox aload pop pop pop translate
	% Determine the bounding box of the shape
	pathbbox			% llx lly urx ury
    grestore
    % Determine (nw, nh) the # of cells to paint width and height
    PatHeight div ceiling		% llx lly urx qh
    4 1 roll				% qh llx lly urx
    PatWidth div ceiling		% qh llx lly qw
    4 1 roll				% qw qh llx lly
    PatHeight div floor			% qw qh llx ph
    4 1 roll				% ph qw qh llx
    PatWidth div floor			% ph qw qh pw
    4 1 roll				% pw ph qw qh
    2 index sub cvi abs			% pw ph qs qh-ph
    exch 3 index sub cvi abs exch	% pw ph nw=qw-pw nh=qh-ph
    % Determine the starting point of the pattern fill
    %(px, py)
    4 2 roll				% nw nh pw ph
    PatHeight mul			% nw nh pw py
    exch				% nw nh py pw
    PatWidth mul exch			% nw nh px py
  end
} bind def

% Save the original routines so that we can use them later on
/oldfill	/fill load def
/oldeofill	/eofill load def
/oldstroke	/stroke load def
/oldshow	/show load def
/oldashow	/ashow load def
/oldwidthshow	/widthshow load def
/oldawidthshow	/awidthshow load def
/oldkshow	/kshow load def

% These defs are necessary so that subsequent procs don't bind in
% the originals
/fill	   { oldfill } bind def
/eofill	   { oldeofill } bind def
/stroke	   { oldstroke } bind def
/show	   { oldshow } bind def
/ashow	   { oldashow } bind def
/widthshow { oldwidthshow } bind def
/awidthshow { oldawidthshow } bind def
/kshow 	   { oldkshow } bind def
/PATredef {
  MyAppDict begin
    {
    /fill { /clip load PATdraw newpath } bind def
    /eofill { /eoclip load PATdraw newpath } bind def
    /stroke { PATstroke } bind def
    /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
    /ashow { 0 0 null 6 3 roll PATawidthshow }
    bind def
    /widthshow { 0 0 3 -1 roll PATawidthshow }
    bind def
    /awidthshow { PATawidthshow } bind def
    /kshow { PATkshow } bind def
  } {
    /fill   { oldfill } bind def
    /eofill { oldeofill } bind def
    /stroke { oldstroke } bind def
    /show   { oldshow } bind def
    /ashow  { oldashow } bind def
    /widthshow { oldwidthshow } bind def
    /awidthshow { oldawidthshow } bind def
    /kshow  { oldkshow } bind def
    } ifelse
  end
} bind def
false PATredef
% Conditionally define setcmykcolor if not available
/setcmykcolor where { pop } {
  /setcmykcolor {
    1 sub 4 1 roll
    3 {
	3 index add neg dup 0 lt { pop 0 } if 3 1 roll
    } repeat
    setrgbcolor - pop
  } bind def
} ifelse
/PATsc {		% colorarray
  aload length		% c1 ... cn length
    dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
  } ifelse } ifelse
} bind def
/PATsg {		% dict
  begin
    lw setlinewidth
    lc setlinecap
    lj setlinejoin
    ml setmiterlimit
    ds aload pop setdash
    cc aload pop setrgbcolor
    cm setmatrix
  end
} bind def

/PATDict 3 dict def
/PATsp {
  true PATredef
  PATDict begin
    /CurrentPattern exch def
    % If it's an uncolored pattern, save the color
    CurrentPattern /PaintType get 2 eq {
      /PColor exch def
    } if
    /CColor [ currentrgbcolor ] def
  end
} bind def
% PATstroke - stroke with the current pattern
/PATstroke {
  countdictstack
  save
  mark
  {
    currentpoint strokepath moveto
    PATpcalc				% proc nw nh px py
    clip newpath PATfill
    } stopped {
	(*** PATstroke Warning: Path is too complex, stroking
	  with gray) =
    cleartomark
    restore
    countdictstack exch sub dup 0 gt
	{ { end } repeat } { pop } ifelse
    gsave 0.5 setgray oldstroke grestore
  } { pop restore pop } ifelse
  newpath
} bind def
/PATtcalc {		% modmtx tilingtype PATtcalc tilematrix
  % Note: tiling types 2 and 3 are not supported
  gsave
    exch concat					% tilingtype
    matrix currentmatrix exch			% cmtx tilingtype
    % Tiling type 1 and 3: constant spacing
    2 ne {
	% Distort the pattern so that it occupies
	% an integral number of device pixels
	dup 4 get exch dup 5 get exch		% tx ty cmtx
	XStep 0 dtransform
	round exch round exch			% tx ty cmtx dx.x dx.y
	XStep div exch XStep div exch		% tx ty cmtx a b
	0 YStep dtransform
	round exch round exch			% tx ty cmtx a b dy.x dy.y
	YStep div exch YStep div exch		% tx ty cmtx a b c d
	7 -3 roll astore			% { a b c d tx ty }
    } if
  grestore
} bind def
/PATusp {
  false PATredef
  PATDict begin
    CColor PATsc
  end
} bind def

% this is the pattern fill program from the Second edition Reference Manual
% with changes to call the above pattern fill
% left30
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
  { clippath } bind
  { 32 16 true [ 32 0 0 -16 0 16 ]
	{<c000c000300030000c000c000300030000c000c000300030
	000c000c00030003c000c000300030000c000c0003000300
	00c000c000300030000c000c00030003>}
     imagemask } bind
] def
/PaintProc {
	pop
	exec fill
} def
currentdict
end
/P1 exch def

% crosshatch45
11 dict begin
/PaintType 1 def
/PatternType 1 def
/TilingType 1 def
/BBox [0 0 1 1] def
/XStep 1 def
/YStep 1 def
/PatWidth 1 def
/PatHeight 1 def
/Multi 2 def
/PaintData [
  { clippath } bind
  { 32 32 true [ 32 0 0 -32 0 32 ]
	{<828282824444444428282828101010102828282844444444
	828282820101010182828282444444442828282810101010
	282828284444444482828282010101018282828244444444
	282828281010101028282828444444448282828201010101
	828282824444444428282828101010102828282844444444
	8282828201010101>}
     imagemask } bind
] def
/PaintProc {
	pop
	exec fill
} def
currentdict
end
/P6 exch def

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Helvetica /Helvetica-iso isovec ReEncode
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
%%Page: 1 1
%
% Fig objects follow
%
% Polyline
7.500 slw
n 3300 1500 m 4725 1500 l 4725 1950 l 3300 1950 l
 cp gs col7 0.90 shd ef gr gs col33 s gr 
% Polyline
n 6750 3450 m 4800 3450 l 4800 3900 l 6750 3900 l
 cp gs col0 s gr 
% Polyline
n 6750 2550 m 9000 2550 l 9000 3000 l 6750 3000 l
 cp gs col0 s gr 
% Polyline
n 6750 3000 m 9000 3000 l 9000 3450 l 6750 3450 l
 cp gs col0 s gr 
% Polyline
n 6750 3450 m 9000 3450 l 9000 3900 l 6750 3900 l
 cp gs col0 s gr 
% Polyline
n 4800 2550 m 6750 2550 l 6750 3000 l 4800 3000 l
 cp gs col0 s gr 
% Polyline
n 4800 3000 m 6750 3000 l 6750 3450 l 4800 3450 l
 cp gs col0 s gr 
% Polyline
n 4800 3225 m 3300 3225 l 3300 3900 l 4800 3900 l
 cp gs col0 s gr 
% Polyline
n 3300 2250 m 9000 2250 l 9000 2550 l 3300 2550 l
 cp gs col0 s gr 
% Polyline
n 4800 3225 m 3300 3225 l 3300 2550 l 4800 2550 l
 cp gs col0 s gr 
% Polyline
n 1200 1950 m 1425 1950 l 1425 2175 l 1200 2175 l
 cp gs col0 s gr 
% Polyline
n 1200 2175 m 1425 2175 l 1425 2400 l 1200 2400 l
 cp gs col7 0.90 shd ef gr gs col33 s gr 
% Polyline
n 1200 2175 m 1425 2175 l 1425 2400 l 1200 2400 l
 cp gs col0 s gr 
% Polyline
n 1200 3900 m 9000 3900 l 9000 4500 l 1200 4500 l
 cp gs col0 s gr 
% Polyline
n 1200 1725 m 1425 1725 l 1425 1950 l 1200 1950 l
 cp gs col0 s gr 
% Polyline
 [60] 0 sd
n 6000 1500 m 7575 1500 l 7575 1950 l 6000 1950 l
 cp gs col7 0.90 shd ef gr gs col33 s gr  [] 0 sd
/Helvetica-iso ff 165.00 scf sf
5775 3300 m
gs 1 -1 sc (Node Monitoring/Control) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
6150 2175 m
gs 1 -1 sc (Link Management) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
6150 2475 m
gs 1 -1 sc (Node Management) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
7875 3300 m
gs 1 -1 sc (Experiment Scheduling) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
7875 2850 m
gs 1 -1 sc (Resource Allocation) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
4050 3450 m
gs 1 -1 sc (Distributed) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
4050 3600 m
gs 1 -1 sc (Event) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
4050 3750 m
gs 1 -1 sc (System) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
4050 3000 m
gs 1 -1 sc (Control) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
4050 2850 m
gs 1 -1 sc (Run-Time ) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
5775 3750 m
gs 1 -1 sc (Node Self-Configuration) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1500 1650 m
gs 1 -1 sc (User Interface) col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1500 1875 m
gs 1 -1 sc (Accounts and Database) col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1500 2100 m
gs 1 -1 sc (Expt. Config./Control) col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1500 2325 m
gs 1 -1 sc (Back-ends) col0 sh gr
/Helvetica-iso ff 165.00 scf sf
7875 3750 m
gs 1 -1 sc (Experiment Configuration) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
5775 2850 m
gs 1 -1 sc (Clearing Node State) dup sw pop 2 div neg 0 rm  col0 sh gr
% Polyline
n 4725 1500 m 6000 1500 l 6000 1950 l 4725 1950 l
 cp gs col7 0.90 shd ef gr gs col33 s gr 
% Polyline
n 3300 1950 m 9000 1950 l 9000 2250 l 3300 2250 l
 cp gs col0 s gr 
% Polyline
 [60] 0 sd
n 7575 1500 m 9000 1500 l 9000 1950 l 7575 1950 l
 cp gs col7 0.90 shd ef gr gs col33 s gr  [] 0 sd
% Polyline
n 1200 3000 m 3300 3000 l 3300 3900 l 1200 3900 l
 cp gs /PC [[1.00 1.00 1.00] [0.81 0.81 0.81]] def
15.00 15.00 sc P1 [16 0 0 -8 80.00 200.00] PATmp PATsp ef gr PATusp gs col33 s gr 
% Polyline
n 1200 1500 m 1425 1500 l 1425 1725 l 1200 1725 l
 cp gs /PC [[1.00 1.00 1.00] [0.81 0.81 0.81]] def
15.00 15.00 sc P1 [16 0 0 -8 80.00 100.00] PATmp PATsp ef gr PATusp gs col33 s gr 
% Polyline
n 2250 2550 m 3300 2550 l 3300 3000 l 2250 3000 l
 cp gs /PC [[1.00 1.00 1.00] [0.81 0.81 0.81]] def
15.00 15.00 sc P1 [16 0 0 -8 150.00 170.00] PATmp PATsp ef gr PATusp gs col33 s gr 
% Polyline
n 2250 2550 m 3300 2550 l 3300 3000 l 2250 3000 l
 cp gs col0 s gr 
% Polyline
n 1200 2550 m 2250 2550 l 2250 3000 l 1200 3000 l
 cp gs /PC [[1.00 1.00 1.00] [0.81 0.81 0.81]] def
15.00 15.00 sc P1 [16 0 0 -8 80.00 170.00] PATmp PATsp ef gr PATusp gs col33 s gr 
% Polyline
n 1200 2550 m 2250 2550 l 2250 3000 l 1200 3000 l
 cp gs col0 s gr 
% Polyline
n 1200 1500 m 1425 1500 l 1425 1725 l 1200 1725 l
 cp gs col0 s gr 
% Polyline
n 1200 3000 m 3300 3000 l 3300 3900 l 1200 3900 l
 cp gs col0 s gr 
% Polyline
n 1200 3900 m 9000 3900 l 9000 4500 l 1200 4500 l
 cp gs /PC [[1.00 1.00 1.00] [0.65 0.65 0.65]] def
15.00 15.00 sc P6 [16 0 0 -16 80.00 260.00] PATmp PATsp ef gr PATusp gs col32 s gr 
% Polyline
n 1200 1725 m 1425 1725 l 1425 1950 l 1200 1950 l
 cp gs /PC [[1.00 1.00 1.00] [0.65 0.65 0.65]] def
15.00 15.00 sc P6 [16 0 0 -16 80.00 115.00] PATmp PATsp ef gr PATusp gs col32 s gr 
% Polyline
n 4725 1500 m 6000 1500 l 6000 1950 l 4725 1950 l
 cp gs col0 s gr 
% Polyline
n 3300 1500 m 4725 1500 l 4725 1950 l 3300 1950 l
 cp gs col0 s gr 
/Helvetica-iso ff 165.00 scf sf
2775 2775 m
gs 1 -1 sc (Testbed) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
2775 2970 m
gs 1 -1 sc (Admins) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
2250 3225 m
gs 1 -1 sc (User Interface) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
5400 1800 m
gs 1 -1 sc (Wide-Area) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
3975 1800 m
gs 1 -1 sc (Emulation) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
6825 1800 m
gs 1 -1 sc (Multiplexed) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
8325 1800 m
gs 1 -1 sc (Simulation) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1725 2850 m
gs 1 -1 sc (Users) dup sw pop 2 div neg 0 rm  col0 sh gr
% Polyline
 [60] 0 sd
n 7575 1500 m 9000 1500 l 9000 1950 l 7575 1950 l
 cp gs col0 s gr  [] 0 sd
/Helvetica-iso ff 165.00 scf sf
1800 3750 m
gs 1 -1 sc (Command-line) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
1800 3525 m
gs 1 -1 sc (Web Interface) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
2850 3525 m
gs 1 -1 sc (GUI) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
2850 3750 m
gs 1 -1 sc (NS Scripts) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
5100 4200 m
gs 1 -1 sc (Access Control) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
7500 4200 m
gs 1 -1 sc (Account Management) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
5100 4425 m
gs 1 -1 sc (\(Integrated in all aspects of the Emulab system\)) dup sw pop 2 div neg 0 rm  col0 sh gr
/Helvetica-iso ff 165.00 scf sf
2700 4200 m
gs 1 -1 sc (Database \(MySQL\)) dup sw pop 2 div neg 0 rm  col0 sh gr
% Polyline
 [60] 0 sd
n 6000 1500 m 7575 1500 l 7575 1950 l 6000 1950 l
 cp gs col0 s gr  [] 0 sd
$F2psEnd
rs
end
showpage