Aa!r|}  0 p 00 @P 0P00`P` HH $ @d HHHH̀̀̀ff@  d Footnote TableFootnote**.\t.\t/ - :;,.!?/ d! e;TOCHeading1Heading2   <EquationVariablesEUACfCCCDD#AAAADaEDNDeDAADD |36793: Lettered: d. We need to show that we can implement the wait and signal primitives using waituntil. For each condition  :X?|36793: Lettered: d. We need to show that we can implement the wait and signal primitives using waituntil. For each condition<$lastpagenum><$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear>J<$hour>:<$minute00> <$ampm> on <$dayname>, <$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear><$monthname> <$daynum>, <$year>"<$monthnum>/<$daynum>/<$shortyear> <$fullfilename> <$filename> <$paratext[Title]> <$paratext[Heading1]> <$curpagenum> <$marker1> <$marker2> (Continued)+ (Sheet <$tblsheetnum> of <$tblsheetcount>)Heading & Page <$paratext> on page<$pagenum>Pagepage<$pagenum>See Heading & Page%See <$paratext> on page<$pagenum>. Table All7Table<$paranumonly>, <$paratext>, on page<$pagenum>Table Number & Page'Table<$paranumonly> on page<$pagenum>Heading <$paratext> Number Only<$paranumonly>BHTML Headings++A33557UA<<>>@@AgABBBBB B B BBBBBBBBBB!B#B%B'B)B+B-B/B1B3B5B7B9B;B=B?BABCBEBGBHBIBKBMBOBQBSBUBWBYB[B]B^B_BaBcBeBgBiBkBmBoBqBsBuBwByB{B}BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCC C C CCCCCCCCCC!C#C%C'C)C+C-C/C1C3C5C7C9C;C=C?CACCCECGCICKCMCOCQCSCUCWCYC[C]C_CaCcCeChCjClCnCpCrCtCvCxCzC|C~CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCD%D'D)D+D-D/D1D3D5D7D9D;D=D?DADCDEDGDH$@D,CCCCC;#$CCC;/;2CAAv Answer: A@ 2.DDDDD D DDDDDDD$D_ 3.DM Answer: DQAAy5a.Az6b.A{6c.AAAAAAAAAAAAAAS&1.ADRAAA$DSDTDDD Answer: Dƀ6b.DD"DDDˀ"DDDDπ"DDDDD"D"DD׀"DD"DD"D6c.D5a.ER"D%D%D%D%D%D%D%D%D%D%D%D%D%D%D%D%D%D%E%E% ?PUdq5+HmDO6  M|DPM| =QuickDraw PICT #%vEE  1 "]#l###""###H####$###  @ +compiler  (@I+ operating + system  L dN(U virtualizing + kernel  p N(y virtualizing + kernel  +i1  LX(U2  +$63  (4(14   +$Z5  L:XD(U=6  ^h+$67  ( 8  0 =EndInset dAdA! HmRAHmRHRHRFootnote Hr@AHr@HzHz Single LineHA Footnote A  HDA HDHH Double LineHA  Double LineA A HA  Single LineA d5p7GHZA! TableFootnotedAdBl dAd1QRUX[^adgjmpsvy| %).1W,Bm }d Ad WaHTML Mapping Table }Hd BHd Wa }d Bd Wa }d Bd Wa } d B d Wa }HBH! FrameMaker PA Source Item }H B H Wa HTML Item }H B H Wa }HBH W aInclude Auto# } HB H W a Comments }HBH W a }HHB HH W aElement }HB#H W a New Topic? }HBH Wa } HB H Wa }H B $H Wa P:Date Line }HH B#%HH WaP }H B $&H WaN }H B"%'H WaN } H B$&( H Wa }EH B&')EH Wa P:Reading }HEH B((*HEH WaP }EH B*)+EH WaN }EH B,*,EH WaN } EH B.+- EH Wa }QH B0,.QH WaP:Title }HQH B2-/HQH WaH* }QH B4.0QH WaN }QH B6/1QH WaN } QH B802 QH Wa }]H B:13]H WaP:Body }H]H B<24H]H W aP }]H B>35]H W!aN }]H B@46]H W"aN } ]H BB57 ]H W#a }iH(BD68iH( W$a P:Numbered1 }HiH(BF79HiH((%aLI &a Parent = OL Q'a Depth = 0 }iH(BJ8:iH( W(aN }iH(BL9;iH( W)aY } iH(BN:< iH( W*a }H BP;=H  W+a P:Heading1 }HH BR<>HH  W,aH* }H BT=?H  W-aN }H BV>@H  W.aN } H BX?A H  W/a }H(BZ@BH(  W0a P:Numbered }HH(B\ACHH(( 1aP 2a Parent = OL Q3a Depth = 0 }H(B`BDH(  W4aN }H(BbCEH(  W5aY } H(BdDF H(  W6a }H BfEGH  W7a P:CellBody }HH BhFHHH  W8aP }H BjGIH  W9aN }H BlHJH  W:aN } H BnIK H  W;a }H BpJLH  W<aP:CellHeading }HH BrKMHH  W=aP }H BtLNH  W>aN }H BvMOH  W?aN } H BxNP H  W@a }H BzOQH  WAa P:Footnote }HH B|PRHH  WBaP }H B~QSH  WCaN }H BRTH  WDaN } H BSU H  WEa }H(BTVH( WFa P:Bulleted }HH(BUWHH((GaLI Ha Parent = UL QIa Depth = 0 }H(BVXH( WJaN }H(BWYH( WKaN } H(BXZ H( WLa }H BY[H WMa P:Heading2 }HH BZ\HH WNaH* }H B[]H WOaN }H B\^H WPaN } H B]_ H WQa }HB^`HR! P:HeadingRuPAnIn }HHB_aHH WSaP }HB`bH WTaN }HBacH WUaN } HBbd H WVa }7H Bce7H WWa P:Indented }H7H BdfH7H WXaP }7H Beg7H WYaN }7H Bfh7H WZaN } 7H Bgi 7H W[a }CHBhjCH\! P:TableFootPAnote }HCHBikHCH W]aP }CHBjlCH W^aN }CHBkmCH W_aN } CHBln CH W`a }]H(Bmo]H( Waa P:TableTitle }H]H(BnpH]H((baLI ca Parent = OL Qda Depth = 0 }]H(Boq]H( WeaN }]H(Bpr]H( WfaN } ]H(Bqs ]H( Wga }H BrtH Wha P:BodySpaced }HH BsuHH WiaP }H BtvH WjaN }H BuwH WkaN } H Bvx H Wla }H BwyH WmaP:Date }HH BxzHH WnaP }H By{H WoaN }H Bz|H WpaN } H B{} H Wqa }H(B|~H(r! P:NumberedPASpaced }HH(B}HH((saP ta Parent = OL Qua Depth = 0 }H(B~H( WvaN }H(BH( WwaY } H(B H( Wxa }H BH WyaP:DateProject }HH BHH WzaP }H BH W{aN }H BH W|aN } H B H W}a }H BH W~a C:BoldItalic }HH B HH WaSTRONG }H B H WaN }H B H WaN } H B H Wa }HB H! C:EquationPA Variables }HHB HH WaEM }HB H WaN }HBH WaN } HC H Wa }H CH Wa C:Italic }HH CHH W aEM }H CH W aN }H CH W aN } H C  H W a }H C H W aC:Bold }HH CHH WaSTRONG }H CH WaN }H CH WaN } H C H Wa }HCH! X:Heading & PAPage }HHCHH Wa See Also }HCH WaN }HCH WaN } HC H Wa })H C !)H WaX:Page }H)H C" "H)H Wa See Also })H C$!#)H WaN })H C&"$)H WaN } )H C(#% )H Wa }5HC*$&5H! X:See HeadPA ing & Page }H5HC,%'H5H Wa See Also }5HC.&(5H WaN }5HC0')5H WaN } 5HC2(* 5H W a }OH C4)+OH W!a X:Table All }HOH C6*,HOH W"a See Also }OH C8+-OH W#aN }OH C:,.OH W$aN } OH C<-/ OH W%a }[HC>.0[H &! X:Table NumPA ber & Page }H[HC@/1H[H  W'a See Also }[HCB02[H  W(aN }[HCD13[H  W)aN } [HCF24 [H  W*a }uHCH35uH !W+a X:Heading }HuHCJ46HuH!,! USE XREF PAFMT }uHCL57uH !W-aN }uHCN68uH !W.aN } uHCP79 uH !W/a }HCR8:H "W0a P:Header }HHCT9;HH"1!THROW PAAWAY }HCV:<H "W2aN }HCX;=H "W3aN } HCZ<> H "W4a }©H C\=?©H #W5a }H©H C^>@H©H #W6a }©H C`?A©H #W7a }©H Cb@B©H #W8a } ©H CdAC ©H #W9a }»d CgBF»d $W:aHTML Options Table }D»d CiD»d $W;a }»d Ck»d $W<a }D CmCGD %W=a }DH CoFHDH %W>a }H CqGIH %W?a }D CsHJD &W@a Image Format }DH CuIKDH &WAaIMAGGIF }H CwJLH &WBa }D CyKMD 'WCaBanners }DH C{LNDH 'WDaN }H C}MOH 'WEa }DCNPD(F! Banner ReferPA ence Frame }DHCOQDH (WGa }HCPH (WHa }D(C:SD((C)I! Copy Files  Imported by PA Rerefernce }DH(C:RTDH( C)WJa }H(C:SUH( C)WKa }DD C:TVDD C*WLa }DDH C:UWDDH C*WMa }DH C:VXDH C*WNa }Vd C:W[Vd C+WOaSystem Macros }?Vd C:?Vd C+WPa }Vd C:Vd C+WQa }f? C:X\f? C,WRa Macro Name }?fH C:[]?fH C,WSa Replace With }fH C:\^fH C,WTa Comments }r? C:]_r? C-WUa StartOfDoc }?rH C:^`?rH C-WVa }rH C:_arH C-WWa }~? C:`b~? C.WXa EndOfDoc }?~H C:ac?~H C.WYa }~H C:bd~H C.WZa }?C:ce?C/[! StartOfSubPADoc }?HC:df?H C/W\a }HC:egH C/W]a }?C:fh?C0^! EndOfSubPADoc }?HC:gi?H C0W_a }HC:hjH C0W`a }?C:ik?C1a! StartOfFirstPASubDoc }?HC:jl?H C1Wba }HC:kmH C1Wca }?C:ln?C2d! EndOfFirstPASubDoc }?HC:mo?H C2Wea }HC:npH C2Wfa }?C:oq?C3g! StartOfLastPASubDoc }?HC:pr?H C3Wha }HC:qsH C3Wia } ?C:rt ?C4j! EndOfLastPASubDoc }? HC:su? H C4Wka } HC:tv H C4Wla }&? C:uw&? C5Wma }?&H C:vx?&H C5Wna }&H C:wy&H C5Woa }8d C:x|8d C6WpaCross-Reference Macros }?8d C:?8d C6Wqa }8d C:8d C6Wra }H? C:y}H? C7Wsa Macro Name }?HH C:|~?HH C7Wta Replace With }HH C:}HH C7Wua Comments }T?C:~T? C8Wva See Also }?THC:?THC8w! See Also: PA <$paratext> }THC:TH C8Wxa }n? C:n? C9Wya }?nH C:?nH C9Wza }nH C:nH C9W{a }d C: d C:WaGeneral Macros }?d C:?d C:Wa }d C:d C:Wa }d C:d C:Wa }? C:"? C;Wa Macro Name dD  dD! d l dD" do  WBm }d D$ d  <W|aHeadings Table }Hd D& Hd  <W}a }d D( d  <W~a }HD* H =!Paragraph ForPAmat }HHD, HH  =WaHeading Level }HD. H  =Wa Comments }HD0 H >W aTitle }HHD2 HH  >Wa }HD4 H  >Wa }KH D6 KH  ?Wa Heading1 }HKH D8 HKH  ?Wa }KH D: KH  ?Wa }WH D< WH  @Wa Heading2 }HWH D> HWH  @W a }WH D@ WH  @W a }cH DB cH  AW a }HcH DD HcH  AW a }cH DF cH  AW a dDWDD HHˆDXHHˆ„ ""EeD<`quit =` p3:S4; >`p4:join c6, p5; ?`quit @`p5:S6 B`quit  H"h,The precedence graph is the following:  I oFor the precedence graph to be properly nested, it must have a sequential or parallel innermost block. If it ohas a sequential innermost block, there will be some subgraph with an edge connecting two vertices. The source 0URpvertex will have one outgoing edge, and the destination vertex will have one incoming edge. No such subgraph of "Hwthe above precedence graph exists. If the graph has a parallel innermost block, there will be some subgraph like: JsUP kIn this subgraph, the vertices corresponding to B and C must have exactly one incoming edge (from the same UOnsource) and one outgoing edge (to the same destination). Checking the above precedence graph, we see there is 0rno subgraph with this format. Hence the subgraph is that of a program that is not properly nested. Thus the origi@inal program is not properly nested and so cannot be written using  parbegin   parend . -UL ( 20 points ) Synchronization within monitors uses condition variables and two special operators,  wait  and  signal . UKwA more general form of synchronization would be to have a single primitive,  waituntil , that had an arbitrary 0UFCBoolean predicate as parameter. Thus, one could say, for example, V waituntil   x  < 0  or   y  +  z  <  n @:The  signal  primitive would no longer be needed. 1UG`CUse this more general form to solve the producer-consumer problem. 2UF`}Is this construct more, less, or as, powerful as using  wait  and  signal  (in Hoares version of monitors)? 3U5`-Why do you think it is not used in practice? K ` c`?This solution is based on the monitor solution given in class. e"`#1 buffer : monitor ; f`X2 var  slots :  array  [0.. n -1]  of  item; g`<3 count ,  in ,  out : integer; i`P4 procedure   entry   deposit ( data : item); j!` 5 begin k"`86 waituntil   count  <>  n ; m#`: 7 slots [ in ] :=  data ; n"`@8 in  :=  in  + 1  mod   n ; Ao`,9 count  :=  count  + 1; EGxRAEGxREPwEPw TableFootnote}?H C: #?H C;Wa Replace With }H C:"$H C;WaHead }H C:#%H C;Wa Comments }? C:$&? CBWa }?H D:%'?H CBW a }H D:&(H CBW!a }H D:')H CBW"a }d D:(.d CCW#aCharacter Macros HHˆ;"HHˆ+We HHˆ;$3HHˆ**l}?d D :?d CCW$a }d D :d CCW%a }? D :)/? CDW&a Macro Name }?H D:.0?H CDW'a Replace With }H D:/1H CDW(a Comments }? D:08? CEW)a HUV ;.HUV 3We HUV ;05+HUV 22l H$ ;1H$ 5We H$ ;33H$ 44l HHˆ;4HHˆ€**7  `Answers to Homework #1  `5Due Date : January 16, 2000 Points : 60 A@ x( 20 points ) In the example of virtual machines, with a compiler above an operating system above two levels of 0Lrvirtualizing kernel, how many privileged instructions would be executed at each level if the instruction executed @`by the compiler can be emulated without use of privileged instructions by the operating system? #.  mThe critical observation is that even if the layer needs no privileged instruction to emulate an instruction @tin the next upper layer, it needs to return control to that layer, and this returning is a privileged instruction. / h@Given that, the following diagram summarizes what happens:  C qWhen the compiler tries to execute an instruction, it traps; this trap is acted upon by the lower virtual kernel 0x(1). It determines that the instruction was not privileged, and returns control to the upper virtual kernel (2). That talso determines the instruction is not privileged and tries to return control to the operating system; that being a vprivileged instruction, it traps to the lower virtual kernel (3). The lower virtual kernel updates the upper virtual tkernel to make it appear that that layer successfully executed the privileged instruction, and then returns control wto that layer. In doing so, control actually passes to the next upper layer, which is the operating system (4). This wdetermines the instruction is to be emulated, and does so. No privileged instructions are involved. It then tries to @Sreturn control to the compiler, and in doing so executes a privileged instruction. !G lThe operating system therefore causes a trap to the lowermost virtual kernel (5), which determines that the rinstruction was privileged; then the lower virtual kernel updates the upper virtual kernel to make it appear that wthat layer successfully trapped the privileged instruction (that is, the operating system trapped to the upper, rather wthan the lower, virtual kernel), and then returns control to that layer (6). That layer determines that the operating ssystem tried to return control to the compiler, and updates the operating system to make it appear that the operatsing system had done so. It then tries to return control to the operating system (and hence to the compiler); but tthis traps to the lower virtual kernel, as the instruction is privileged (7). The lower virtual kernel updates the tupper virtual kernel to make it appear that that program had correctly executed the privileged instruction; it then rreturns control to the upper virtual kernel, which has caused control to be passed to the operating system, which @5has caused control to be passed to the compiler (8). !H nThat means the lower virtual kernel executes 4 return control instructions, the upper virtual kernel 2, and uthe operating system 1. (In the diagram, each line following a short straight line represents an attempt to execute @a privileged call.)  }( 20 points ) Is the following program properly nested? Please either show that it is by rewriting the program using  @nparbegin   parend , or prove that it is not properly nested. (The S i  are statements.) ` c4 := 2; :` c6 := 2; ;`S1; ` fork p1; 0`S3; 4` fork p2; 5`S5; 6` goto p4; 7` p1:S2; 8` goto p2; A9`p2:join c4, p3; HHˆ;6GHHˆD66 l}?H D:19?H CEW*a }H D:8H CEW+a dDBBdA<@H$ A;>H$ == l H$ A;H$ <WDlHAnswers to Homework #1 ECS 251 Winter 2001Page  1  HUV A;<@HUV ?? l HUV A;HUV >WElBLast modified at 4:46 pm on Tuesday, February 13, 2001 HHˆA;>HHˆAA l HHˆA;HHˆ@WFe dD:dCC l dD:dR9BRUX[^adgjmpsvy| %).1HHˆDZHHˆ7U lHD`eFn  DcEH  ~dDd7~d~m~m UV DeEFJUV UV@UV@S1dDyUU iUU)DgEHKiUU) k DhEJLk k@k@S25DkEKM5 DlELN @@S3UULUVDoEMOUULUV תP DpENPתP תVGתVGS5dUVDsEOQdUV h DtEPRh nGnGS4UVUWDwEQSUVUW  DxER\ HHS6 HHˆDzIHHˆ&8**Uq"`10 end ; r`_11 procedure   entry   extract ( var   data : item); s`12 begin t`/13 waituntil   count  <> 0; v#`< 14 data  :=  slots [ out ]; w"`C15 out  :=  out  + 1  mod   n ; x`-16 count  :=  count  1; z`17 end ; {`18 begin |`B19 count  := 0;  in  := 0;  out  := 0; }`20 end . #d {The idea is the same; the only difference is that the monitor checks whether the buffer is full in  deposit  (line 6), or empty in  extract  (line 13), by looking at the value of the  count  variable directly instead of waiting for @Fsignals to indicate that the appropriate condition is satisfied.  !L( We need to show that we can implement the  wait  and  signal  primitives using  waituntil . For each condition @Fvariable  x , we make two new variables local to the monitor. M$`Zvar   x_waiting :  integer ,  x_signaled :  boolean ; NѪ`!They are initialized as follows. O%ݪ`x_waiting  := 0; P誗`x_signaled  := false; QQU7`?Each occurrence of  x . wait  is replaced with R%`+x_waiting  :=  x_waiting  + 1; S$ `%waituntil   x_signaled ; T%`x_signaled  := false; U`AEach occurrence of  x . signal  is replaced with V$,`:if   x_waiting  > 0  then   begin W7`2 x_waiting  :=  x_waiting  - 1; XpU`  x_signaled  := true; Y$` end ; Z`DThus,  waituntil  is at least as general as Hoare's scheme. [d`Conversely, we can implement  waituntil  using  wait  and  signal  as follows: for each statement of the form \$t`waituntil   expr ]*{ *where  expr  is a boolean expression of variables  x 1 ,  x 2 , ...,  x n , we make a new condition variable  x . We UU@/replace the  waituntil  statement with ^$`Pif   not   expr   then   x . wait ; _d`After every statement in the monitor that assigns one of the variables  x 1 ,  x 2 , ...,  x n , we insert `$UU`Dif   expr   then   x . signal ; a uThus,  waituntil  is equivalent to Hoare's scheme, not more general, since each can be expressed in terms of @ the other. qbKJ,The implementation of  waituntil  in terms of  wait  and  signal  given in part (b) shows what the problem is. iThere could be a tremendous amount of time spent in rechecking the boolean expression after every assign@rment statement that could affect its value. Thus,  waituntil  is far less efficient than Hoare's scheme. HHˆD|IHHˆDTT l pVDES]pVppxD E\^xxD E]_UUD E^`UUUUMUVqUUD E_aqUUqUUfEUVUVD E`bEUVUVUUEUVdBUUD EacBUUBRUUsUVUVD EbdUUsUVUVUUsUVUU\$D EcnUU\$UU\UUHaPDEgs UUD ejlUUUUUUUZUUUYDehUUUYDegiDehjDeifUZUUD elmUZUUUZUYD efkUYUYUUD ekoUU D Ed UWUW UUVD emqUUVUUUUA $D eor$EU[EU[D yD eqsyB Ī$D erĪ$ĪU[ĪU[C dLeftd;Rightd ReferenceddHTMLd:HTMLd Headingsd dI@@ =Mapping Table Title. @@ =Body. @@ =Footer. f@T = TableTitleT:Table : . $f@ = Answer. f@N = 6Numbered N:.< =1>. f@ >   Answer1ItalicAnswer: . f@ >  Answer1ItalicAnswer: . f@N = 6~Numbered N:.< =1>. f@N = 6Numbered N:.< =1>. f@  $.6.Z.~..CodeC. @@ =Header Double Line. f@ = CellFooting. f@ = CellHeading. f@ = CellBody. @@ =Mapping Table Cell. $$@@   $ H l      D h  ManCode. @@Mapping Table Cell. @@ Mapping Table Cell. @@ =Mapping Table Cell. HH@@   H l      D h  ManCode.  f@P=TitleBody. $f@ =$. LetteredNone. $f@ =$. LetteredNone. f@ =Body. $f@   6.H.l..... .D.h.CodeN. f@NE = Numbered1 N:.Numbered. f@ =Body. f@ = BodySpaced. f@ =. BodySpaced Single Line. f@ = Bulleted\t. f@ =...Date. mf@ =l. DateProject. @@ =Header Double Line. f@  $.6.Z.~..CodeC. f@T =Heading1Body. $f@L =$. Lettereda L:.. $f@L =$. LetteredL:.. $f@ = Answer. f@ = NumberedSpaced. f@ =.Reading.  f@P=TitleBody. f@$=.Line Single Line. f@ =CellBody. f@ = CellHeading. f@ = Footnote. f@T =Heading2Body. f@T = HeadingRunInBody. f@ = Indented. f@ = TableFootnote. f@T = TableTitleT:Table : . f@NE = Numbered1 N:.Numbered. $f@L =$. Lettereda L:.. $f@L =$. LetteredL:.. 6$f@R =6. Romani R:.. 6$f@R =6. RomanR:.. f@ = BodyIndent. f@  $.6.Z.u..CodeASM. Hf@ =H.. CodeComment.  = = =  = ڝ== >  =Italic  = ڝ= =  =Emphasis = =      Subscript=EquationVariables   BoldItalic =Italic =Bold9 Symbol   Computer  Computer  Computer   Computer           = Subscript = Subscript = =ZZdZZdThinMediumDoubleThick@ Very Thin HHHHHFormat AH Mapping Table HHHHHFormat BH$$$ Mapping Tableh*|#HHHHHf$*DHH+5?HH&69?HH :B?HHH CE?HH*6 ? @ h( A B C D E h  F G H I J h  K L M N O h  P Q R S T h( UVWXYh Z[\]^h_`abc7h defghChijklm]h(nopqrh stuvwh xyz{|h(}~h h    h  h h h)h  !"#$5h%&'()Oh  *+,-.[h!/ 0 1 2 3 uh "4!5!6!7!8!h!#9":";"<"="©h ">#?#@#A#B#»d %C$D$E$ $&F%G%H% %'I&J&K& &(L'M'N'')O(P(Q(((*CR)S)T)D )CU*V*W*Vd ,CX+Y+Z+f +-C[,\,],r ,.C^-_-`-~ -/Ca.b.c..0Cd/e/f//1Cg0h0i002Cj1k1l113Cm2n2o224Cp3q3r3 35Cs4t4u4& 4Cv5w5x58d 7Cy6z6{6H 68C|7}7~7T79C888n 8C999d ;C:::: :BC ;";#;$;d =  <<<<> ====? >>>K >@ ???W ?A @@@c @ AAA ;C%B&B'B(Bd DC)C,C-C CEC.D/D0D DC1E8E9EComment A ADAd BlackT!WhiteddARedddGreendd BluedCyandMagentad YellowHeader/Footer $1Header/Footer $1Header/Footer $2Header/Footer $2IndexIndexCommentCommentSubjectSubjectAuthorAuthorGlossaryGlossaryEquationEquation Hypertext Hypertext  Cross-Ref Cross-Ref Conditional TextConditional TextPositionFMPrivatePositionFMPrivateRangeEndFMPrivateRangeEndFMPrivate HTML Macro HTML Macro M.Times.P Times-Roman FrameRoman M.Times.B Times-Bold FrameRomanM.Times New Roman.PTimesNewRomanPSMT FrameRoman M.Courier.PCourier FrameRoman M.Helvetica.BHelvetica-Bold FrameRoman M.Times.I Times-Italic FrameRomanM.Helvetica.BIHelvetica-BoldOblique FrameRoman FrameRoman FrameRoman M.Courier.B Courier-Bold FrameRoman M.Courier.ICourier-Oblique FrameRomanJCourier Helvetica8Symbol<Times=Times New Roman#Regular#Roman MediumBoldRegular ObliqueItalictcG]΀w\laHu "FQim7@"Q֓IqdPmdXu$s#R6)d>=xq0lx ɼl]$J 3kK`L~d18w?**m;wĹlً~w'5 W6h-5%ʒq>ò(N[_t