FREELANCE ']BG47fGlobal Trends in Flow Analysist.5@ѿ4HField1Field2Field3Field4Field5Field6Field7Field8\g ^"} H ~a"Page 1~~~~~~~~~~~~~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL~~~~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL~~ LDL.DD  LLJD@@L L D/DD@ @LLJD@gLLVDDD@D@@DDDDDDDDDDDDDDDDDDDDDD@ L KL K DVDKK KDKDDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDLDDKKDDVDDKKKKKDDDDDDDDDDDDDDDDDDDDDDKDDDLDLDLLDLDLWD D D D~D~D~D~DD@@DDD@DDDD@@DD@DDDD@@DDKKDDDDKDDD DDKKD DKKDDDKKDD  K KKDD KDDD@ K@DD@DDDDDDDDDDDDKDD KDDD D D DKDDDKD DDD D DDKD~D~D~D~D~D~D~D~D~D~D~D~D~DD@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D@D~DDDDDDDDDDDDDDDDDDDDDDDDDDD"DDDDD~D~@~D~@~D~@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD@g@@@Q@@@ @O@@@@O@@@@@@@@@@@@@@@@@@@@@OR@@@@@ OO \ `@@ @@@@~O@OO@@@@@@@@@@O@@@@  ~~~~~~~~~~~~c4`* u)>j>jc:\lotus\Smasters\flg\elegance.mas}K(I$$dn   ????X!Welegance.PALhh:Z];~\mt;hJhhO\ma:Lp^othXelegance.BW//Oo/OooooO_?P_~|wdʌnɀzum]igٮحҡɭ222h t)r@@4::c:|,nx(\`$d4lFFF% FZZQPPmL<G,tDZZZXpppllbT22@cLnnn$o|c@@Nc 0}xSTHh ;-PmЌytdH yck,$y80N[Nz(8v`jppr$@`iی}~d̮ٚmtsfn=?l?r ??,fs=240,fe=0,fc=7,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=0,bu=,bs=1,pr=0,ll=100,ts=462<0L|,bc=7,bz=100,f2=7,b2=7,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=Arial,fs=401,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=Arial,fs=381,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=Arial,fs=356,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=Arial,fs=331,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=Arial,fs=306,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=Arial,fs=304,fe=0,fc=283,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=0,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=23,bz=100,f2=283,b2=23,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=Arial,fs=284,fe=0,fc=283,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=0,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=23,bz=100,f2=283,b2=23,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=351,fe=0,fc=282,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=292,fe=0,fc=282,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=234,fe=0,fc=282,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=205,fe=0,fc=282,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=175,fe=0,fc=282,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=468,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=414,ip=0,pl=15,bu=\16,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=126,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=468,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=787,ip=0,pl=15,bu=\1,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=110,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=801,fe=32,fc=280,hy=NO,hc=3,qm=1,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=0,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=643,fe=32,fc=280,hy=NO,hc=3,qm=1,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=497,fe=32,fc=280,hy=NO,hc=3,qm=1,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=424,fe=32,fc=280,hy=NO,hc=3,qm=1,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=351,fe=32,fc=280,hy=NO,hc=3,qm=1,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=0,sw=0,sc=0,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=549,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=395,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=321,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=248,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=280,bz=100,f2=281,b2=280,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=175,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=280,bz=100,f2=281,b2=280,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=651,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=497,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=424,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=502,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=502,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=N1N18,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=468,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=882,ip=0,pl=15,bu=N1N19,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0fn=News Gothic,fs=468,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1345,ip=0,pl=15,bu=N1N17,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0 fn=News Gothic,fs=424,fe=0,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1849,ip=0,pl=15,bu=N1N20,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0!fn=News Gothic,fs=424,fe=0,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=2353,ip=0,pl=15,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0"fn=News Gothic,fs=424,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1159,ip=0,pl=15,bu=\2,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0#fn=News Gothic,fs=424,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1512,ip=0,pl=15,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=87,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0$fn=News Gothic,fs=351,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0%fn=News Gothic,fs=278,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0&fn=News Gothic,fs=250,fe=0,fc=284,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0'fn=News Gothic,fs=119,fe=0,fc=284,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0(fn=News Gothic,fs=206,fe=0,fc=284,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0)fn=News Gothic,fs=652,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0*fn=News Gothic,fs=496,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0+fn=News Gothic,fs=324,fe=0,fc=311,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=311,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0,fn=News Gothic,fs=303,fe=0,fc=311,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=311,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0-fn=News Gothic,fs=281,fe=0,fc=311,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=311,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0.fn=News Gothic,fs=260,fe=0,fc=311,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=311,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0/fn=News Gothic,fs=341,fe=0,fc=312,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=312,b2=286,bl=0,fx=0,sd=1,sw=1,sc=307,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=00fn=News Gothic,fs=206,fe=0,fc=307,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=01fn=News Gothic,fs=250,fe=0,fc=307,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=02fn=News Gothic,fs=427,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=03fn=News Gothic,fs=398,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=414,ip=0,pl=15,bu=\16,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=126,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=04fn=News Gothic,fs=398,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=787,ip=0,pl=15,bu=\1,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=110,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=05fn=News Gothic,fs=360,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1159,ip=0,pl=15,bu=\2,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=06fn=News Gothic,fs=360,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1512,ip=0,pl=15,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=87,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=07fn=Arial,fs=250,fe=0,fc=284,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=08fn=News Gothic,fs=553,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=09fn=News Gothic,fs=422,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0:fn=News Gothic,fs=360,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=286,bz=100,f2=280,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0;fn=News Gothic,fs=298,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0<fn=News Gothic,fs=236,fe=32,fc=280,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=90,ts=462<0L|,bc=281,bz=100,f2=280,b2=281,bl=0,fx=0,sd=1,sw=1,sc=303,ud=0,uw=0,uc=0,bn=1,ca=,cc=0,ce=0=fn=Arial,fs=341,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0>fn=Arial,fs=324,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0?fn=Arial,fs=303,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0@fn=Arial,fs=281,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Afn=Arial,fs=260,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Bfn=News Gothic,fs=363,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Cfn=News Gothic,fs=338,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=414,ip=0,pl=15,bu=\16,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=126,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Dfn=News Gothic,fs=338,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=787,ip=0,pl=15,bu=\1,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=110,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Efn=News Gothic,fs=306,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1159,ip=0,pl=15,bu=\2,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Ffn=News Gothic,fs=306,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1512,ip=0,pl=15,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=87,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Gfn=News Gothic,fs=341,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Hfn=News Gothic,fs=324,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Ifn=News Gothic,fs=303,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Jfn=News Gothic,fs=281,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Kfn=News Gothic,fs=260,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Lfn=Arial,fs=341,fe=0,fc=307,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Mfn=Arial,fs=324,fe=0,fc=307,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Nfn=Arial,fs=303,fe=0,fc=307,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Ofn=Arial,fs=281,fe=0,fc=307,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Pfn=Arial,fs=260,fe=0,fc=307,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=307,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Qfn=News Gothic,fs=250,fe=0,fc=304,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=304,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Rfn=News Gothic,fs=364,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Sfn=News Gothic,fs=532,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Tfn=News Gothic,fs=532,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Ufn=News Gothic,fs=532,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Vfn=News Gothic,fs=532,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Wfn=News Gothic,fs=532,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Xfn=News Gothic,fs=290,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Yfn=News Gothic,fs=275,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0Zfn=News Gothic,fs=258,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0[fn=News Gothic,fs=239,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0\fn=News Gothic,fs=221,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0]fn=Arial,fs=234,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0^fn=Arial,fs=223,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0_fn=Arial,fs=208,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0`fn=Arial,fs=193,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0afn=Arial,fs=179,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0bfn=Arial,fs=172,fe=0,fc=284,hy=NO,hc=3,qm=2,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0cfn=Arial,fs=250,fe=0,fc=284,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=284,b2=286,bl=0,fx=0,sd=0,sw=0,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0dfn=News Gothic,fs=366,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0efn=News Gothic,fs=210,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0ffn=News Gothic,fs=199,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=302,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0gfn=News Gothic,fs=186,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=605,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0hfn=News Gothic,fs=173,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=906,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0ifn=News Gothic,fs=160,fe=0,fc=282,hy=NO,hc=3,qm=0,sh=25,st=25,if=1208,ip=0,pl=15,bu=\0,bs=1,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=282,b2=286,bl=0,fx=0,sd=0,sw=1,sc=303,ud=0,uw=1,uc=303,bn=1,ca=,cc=0,ce=0jfn=News Gothic,fs=366,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=100,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0kfn=News Gothic,fs=338,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=787,ip=0,pl=100,bu=\1,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=110,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0lfn=News Gothic,fs=306,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1159,ip=0,pl=100,bu=\2,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0mfn=News Gothic,fs=306,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1512,ip=0,pl=100,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=87,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0nfn=News Gothic,fs=309,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=0,ip=0,pl=15,bu=\23,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=74,f2=281,b2=286,bl=100,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0ofn=News Gothic,fs=287,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=414,ip=0,pl=15,bu=\16,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=126,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0pfn=News Gothic,fs=287,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=787,ip=0,pl=15,bu=\1,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=110,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0qfn=News Gothic,fs=260,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1159,ip=0,pl=15,bu=\2,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=100,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0rfn=News Gothic,fs=260,fe=32,fc=281,hy=NO,hc=3,qm=0,sh=25,st=25,if=1512,ip=0,pl=15,bu=\12,bs=0,pr=0,ll=100,ts=462<0L|,bc=286,bz=87,f2=281,b2=286,bl=0,fx=0,sd=1,sw=1,sc=303,ud=1,uw=1,uc=303,bn=1,ca=,cc=0,ce=0ue$$`Default objects4"#$?2"dY X XX?6"#$d2XdRX2@[<>0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o A"#$_f$$`Background Images_p$$`NamedStyle objects@Y~ ~ ~~~<>0000897{name=,r=8}{name=Level2,r=9}{name=Level3,r=10}{name=Level4,r=11}{name=Level5,r=12}o  Label text@ %[(&(&(&<>0000910{name=,r=20}{name=Level2,r=21}{name=Level3,r=22}{name=Level4,r=23}{name=Level5,r=24}o Presentation subtitle@'[((--(<>0000910{name=,r=15}{name=Level2,r=16}{name=Level3,r=17}{name=Level4,r=18}{name=Level5,r=19}o Presentation title@&[;&;&UUU<>0000910{name=,r=29}{name=Level2,r=30}{name=Level3,r=31}{name=Level4,r=32}{name=Level5,r=33}o Numbered list@&[;&;&UUU<>0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text@$[X 2% 2%XX <>0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title_S$$`BAS PAGE;?.s$dWDL!WW?.sB$d8DtW88?.sR$d!L~! !?.s"$dTD~T T4$ZZhh _%$`Presentation Backdrop4&&'{"0"0{@@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title 4"&&==_%$`Title4&&')u1)u1nn@@''[((--(<>Click here to type presentation title0000910{name=,r=15}{name=Level2,r=16}{name=Level3,r=17}{name=Level4,r=18}{name=Level5,r=19}o Presentation titleNAME=TextPlacementBlock1;@@ %[(&(&(&<>Click here to type subtitle0000910{name=,r=20}{name=Level2,r=21}{name=Level3,r=22}{name=Level4,r=23}{name=Level5,r=24}o Presentation subtitleNAME=TextPlacementBlock2;e@@ V"'')")"{<>Click here to add clip art0000864{name=,r=7}{name=Level2,r=7}{name=Level3,r=7}{name=Level4,r=7}{name=Level5,r=7}o NAME=SymbolPlacementBlock1;_%$` Bulleted ListaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titleNAME=TextPlacementBlock1;A@&"[&&UUU<>Click here to type bulleted text0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted textNAME=TextPlacementBlock2;_%$`2-Column BulletsaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titleA@"[UUU<>Click here to type bulleted text0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted textA@"[&&UUU<>Click here to type bulleted text0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_%$`1 ChartaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee A@&V&&UU <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`2 ChartsaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee A@VUU <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o f A@V&&UU <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`4 ChartsaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee A@Vk k UU<>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o f A@Vk &k &UU<>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o g A@V <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o h A@V&&   <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`Bullets & ChartaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titleA@"[UUU<>Click here to type bulleted text0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted texte A@V&&UU <>Click here to create chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`Bullets & Clip ArtaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titleA@"[UUU<>Click here to type bulleted text0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted texteA@V&&UU <>Click here to add clip art0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`Organization ChartaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee!A@&)V&&UU <>Click here to create organization chart0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`TableaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee"A@&V&&UU <>Click here to create table0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _%$`DiagramaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page titlee&A@&V&&UU <>Click here to create diagram0000864{name=,r=6}{name=Level2,r=6}{name=Level3,r=6}{name=Level4,r=6}{name=Level5,r=6}o _$$` Basic LayoutaPresentation BackdropH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title_d$$`Page 1aTitlekeH@ V"'')")"{<>Click here to add clip art0000864{name=,r=7}{name=Level2,r=7}{name=Level3,r=7}{name=Level4,r=7}{name=Level5,r=7}o NAME=SymbolPlacementBlock1;@' [((--(<>Global Trends in Flow Analysis0000910{name=,r=15}{name=Level2,r=16}{name=Level3,r=17}{name=Level4,r=18}{name=Level5,r=19}o Presentation title@ %+[(&(&(&<>25 Years of POPL and SSA Based Algorithms0000910{name=,r=20}{name=Level2,r=21}{name=Level3,r=22}{name=Level4,r=23}{name=Level5,r=24}o Presentation subtitle_d$$`Page 51aTitlekeH@ V"'')")"{<>Click here to add clip art0000864{name=,r=7}{name=Level2,r=7}{name=Level3,r=7}{name=Level4,r=7}{name=Level5,r=7}o NAME=SymbolPlacementBlock1;@'[((--(<>A Thread in Flow Analysis0000910{name=,r=15}{name=Level2,r=16}{name=Level3,r=17}{name=Level4,r=18}{name=Level5,r=19}o Presentation title@ %J[(&(&(&<>25 Years of POPL and The SSA Based Algorithms that I'm most familar with0000910{name=,r=20}{name=Level2,r=21}{name=Level3,r=22}{name=Level4,r=23}{name=Level5,r=24}o Presentation subtitle_d$$`Page 2a Bulleted Listk@&[|&|&22<>Presentation Goals0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@#&[P&P&UUU<>Look at the State of Compiler Optimization<=Examine how SSA has contributed<=Discuss the role of this conference in their evolution<=Both Tutorial and Historic perspective<=Suggest areas for future work0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_d$$`Page 3a Bulleted Listk@&/[|&|&<>State of Practice of Optimization Before POPL0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&[3&3&UUU<>Anecdotally compiled code ran within factor of 2 of hand code<=<Level2>Maybe 2-3 times faster than non-optimized<=<>Optimizing and Debugging compilers often differ significantly in semantics (sometimes in parser/lexer)<=Languages (e.g., FORTRAN) designed to allow optimizer to produce good code<=Application code is most of the cycles executed<=Most machines simple, very sequential0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 4a Bulleted Listk@&'[|&|&<>State of Practice of Optimization Now0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@'[&&UUU<>Anecdotally code may be within factor of 20-30% of best possible code<=<Level2>Java VM compiled without optimization 20x off?<=<>Compilers vary slightly in execution of optimized vs non-optimized code -- often order of evaluation<=Languages introduce new problems in the production of good code<=Library, system and utilities code is most of the cycles executed<=Machines complex, some parallelism0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 5aDiagramk@&/[|&|&\\<> Compiler Design <=(stolen from Muchnick '97)0000910{name=,r=41}{name=Level2,r=42}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B}B[O  OO`<>Scalar replacement of array references<=Data-Cache optimizations0000910{name=,r=39}{name=Level2,r=39}{name=Level3,r=39}{name=Level4,r=39}{name=Level5,r=39}o NAME=Text Shape2;e#$@y#B[NK K NN<+fs=119>Procedure integration<=Tail-call optimizations, including tail-recursion elimination<=scalar replacement of aggregates<=sparse conditional constant propagation<=procedure specialization and cloning<=sparse conditional constant propagation0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;#$@#B[ ~ ~ (([ <+fs=119>Global value numbering<=Local and Global copy propagation<=Sparse conditional constant propagation<=Dead-code elimination0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@#$@;#B>X[p. p. pn<+fs=119>Local and Global common-subexpression elimination<=loop-invarient code motion<>0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape4;@#$@#B'[ ;;x x <+fs=119>Partial-redundency elimination0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape5;@#$@7#B[~AAH~H~q<+fs=119>Dead-code elimination<=Code hoisting<=Induction-variable strength reduction<=Linear-function test replacement<=Induction-variable removal<=Unnecessary bounds-checking elimination<=Control-flow optimization0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape6;@ O  NAME=Connector1;| w NAME=Connector2; NAME=Connector3;1 NAME=Connector4;#$@a#B[Y %& %&YY<+fs=119>In-line expansion<=Leaf-routine optimization<=Shrink wrapping<=Machine idioms<=Tail merging<=Branch optimizations and conditional moves<=Dead-code elimination<=Software pipelining, with loop unrolling, variable expansion, register renaming, and hierarchical reduction<=Basic-block and branch scheduling 1<=Register allocation by graph coloring<=Basic-block and branch scheduling 2<=Intraprocedural I-cache optimization<=Instruction prefetching<=Data prefetching<=Branch Prediction<=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape7;@  ! NAME=Connector5;; NAME=Group1;@#$@#B[Y Y "" <+fs=99>Constant folding0000910{name=,r=40}{name=Level2,r=40}{name=Level3,r=40}{name=Level4,r=40}{name=Level5,r=40}o NAME=Text Shape8;#$@#Bh:['V V &'&' <+fs=99>Algebraic simplifications, including reassociation0000910{name=,r=40}{name=Level2,r=40}{name=Level3,r=40}{name=Level4,r=40}{name=Level5,r=40}o  V NAME=Connector6;  NAME=Connector7; NAME=Connector8;#$@u#Bu[I%%II<+fs=119>Interprocedural register allocation<=Aggregation of global references<=Interprocedural I-cache optimizations0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape8;@  !! _d$$`Page 57a Basic Layoutk@&[|&|&22<> 0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&[|&|&<>Contributions to Optimizers0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@9#B}W[O  OO`<+fc=152+f2=152+f2=152>Scalar replacement of array references<=Data-Cache optimizations0000910{name=,r=39}{name=Level2,r=39}{name=Level3,r=39}{name=Level4,r=39}{name=Level5,r=39}o NAME=Text Shape2;e#$@#B[NK K NN<+fs=119+fc=312+f2=312+f2=312>Procedure integration<=Tail-call optimizations, including tail-recursion elimination<=scalar replacement of aggregates<+fs=119><=<+fs=119+fc=132+f2=132+f2=132>sparse conditional constant propagation<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>procedure specialization and cloning<+fs=119><=<+fs=119+fc=132+f2=132+f2=132>sparse conditional constant propagation0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;#$@#B [ ~ ~ (([ <+fs=119+fc=132+f2=132+f2=132>Global value numbering<+fs=119><=<+fs=119+fc=307+f2=307+f2=307>Local and Global copy propagation<+fs=119><=<+fs=119+fc=132+f2=132+f2=132>Sparse conditional constant propagation<+fs=119><=<+fs=119+fc=307+f2=307+f2=307>Dead-code elimination0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@#$@#B>[p. p. pn<+fs=119+fc=307+f2=307+f2=307>Local and Global common-subexpression elimination<+fs=119><=<+fs=119+fc=307+f2=307+f2=307>loop-invarient code motion<>0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape4;@#$@#B<[ ;;x x <+fs=119+fc=307+f2=307+f2=307>Partial-redundency elimination0000910{name=,r=49}{name=Level2,r=49}{name=Level3,r=49}{name=Level4,r=49}{name=Level5,r=49}o NAME=Text Shape5;@#$@K#B`[~AAH~H~q<+fs=119+fc=307+f2=307+f2=307>Dead-code elimination<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>Code hoisting<=Induction-variable strength reduction<=Linear-function test replacement<=Induction-variable removal<+fs=119><=<+fs=119+fc=307+f2=307+f2=307>Unnecessary bounds-checking elimination<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>Control-flow optimization0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape6;@ O  NAME=Connector1;| w NAME=Connector2; NAME=Connector3;1 NAME=Connector4;#$@q#B[Y %& %&YY<+fs=119+fc=312+f2=312+f2=312>In-line expansion<+fs=119><=<+fs=119+fc=152+f2=152+f2=152>Leaf-routine optimization<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>Shrink wrapping<=Machine idioms<=Tail merging<=Branch optimizations and conditional moves<+fs=119><=<+fs=119+fc=307+f2=307+f2=307>Dead-code elimination<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>Software pipelining, with loop unrolling, variable expansion, register renaming, and hierarchical reduction<=Basic-block and branch scheduling 1<+fs=119><=<+fs=119+fc=152+f2=152+f2=152>Register allocation by graph coloring<+fs=119><=<+fs=119+fc=312+f2=312+f2=312>Basic-block and branch scheduling 2<=Intraprocedural I-cache optimization<=Instruction prefetching<=Data prefetching<=Branch Prediction<+fs=119><=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape7;@  ! NAME=Connector5;#$@#B[Y Y "" <+fs=99>Constant folding0000910{name=,r=48}{name=Level2,r=48}{name=Level3,r=48}{name=Level4,r=48}{name=Level5,r=48}o NAME=Text Shape8;#$@)#BhO['V V &'&' <+fs=99+fc=312+f2=312+f2=312>Algebraic simplifications, including reassociation0000910{name=,r=48}{name=Level2,r=48}{name=Level3,r=48}{name=Level4,r=48}{name=Level5,r=48}o V NAME=Connector6;  NAME=Connector7; NAME=Connector8;#$@#B[I%%II<+fs=119+fc=152+f2=152+f2=152>Interprocedural register allocation<=Aggregation of global references<=Interprocedural I-cache optimizations0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape8;@  !! NAME=Connector9;@[44<+fc=132+f2=132+f2=132+sd=0+sc=315>SSA fundamental<><=<+fc=307+f2=307+f2=307+sd=0>SSA might as well<><=<+fc=168+f2=168+f2=168+sd=0+sc=311>New since 730000910{name=,r=47}{name=Level2,r=43}{name=Level3,r=44}{name=Level4,r=45}{name=Level5,r=46}o _d$$`Page 8a Bulleted Listk@&[|&|&22<>Issues in Optimization0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@[&h[ & &UUU<>Types of Information and accuracy<=Which Transformations done<=Order of optimizations performed<=Speed0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_d$$`Page 9a Basic Layoutk@&'[|&|&<>High-end Analyses and Transformations0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@)#B O[ F<>Constant Propagation<=Type Propagation<=Available Expressions<=Alias Analysis0000910{name=,r=99}{name=Level2,r=99}{name=Level3,r=99}{name=Level4,r=99}{name=Level5,r=99}o NAME=Text Shape1;@Vx7 7 x~<>Forward Analyses0000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;#$@#B #[>  W >W ><>Live-Dead<=Redundency Elimination0000910{name=,r=99}{name=Level2,r=99}{name=Level3,r=99}{name=Level4,r=99}{name=Level5,r=99}o NAME=Text Shape2;@V, , <>Backward Analyses0000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@VbQ, Q, &b&h <>Other Analyses0000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;#$@#B [[ [ ::<>Global Value Numbering0000910{name=,r=99}{name=Level2,r=99}{name=Level3,r=99}{name=Level4,r=99}{name=Level5,r=99}o NAME=Text Shape3;#$@#Bl 9[[ # #[[<>Code simplification<=<=Common Subexpression elimination0000910{name=,r=99}{name=Level2,r=99}{name=Level3,r=99}{name=Level4,r=99}{name=Level5,r=99}o NAME=Text Shape4;@V4'4']]W<>Simple Transformations0000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o #$@#B 1[i$$DiDi<>Code Motion<=Code Distinction<=Structure fusion0000910{name=,r=99}{name=Level2,r=99}{name=Level3,r=99}{name=Level4,r=99}{name=Level5,r=99}o @VOmu&mu&6 O6 U0 <>Flow Transformations0000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o _d$$`Page 10a Bulleted Listk@&[|&|&22<>Before POPL 1:0000910{name=,r=56}{name=Level2,r=57}{name=Level3,r=58}{name=Level4,r=59}{name=Level5,r=60}o  Page title@Q&c[4&4&<>Catalog of Optimizations (Allen & Cocke '71)<=Interval Analysis (Allen & Cocke and also Schwartz)<=<Level2>constant prop, avail exp, live-dead, use-def<=Principally bit-vector based<=Known and Used before Iterative Methods<=<>Reducible graphs -- single entry loops<=Many directed graph and tree algorithms<=Lots known but little formalized and published0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 7a Bulleted Listk@&![|&|&22<>What is Global Flow Analysis?<|0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&3[^&^&UUU<>A weak theorem proving techniques for programs<=Used to prove theorems about what can happen at a particular program statement so its code can be specialized by an optimizer<=Can also give information to a programmer<=One proof technique can uncover information used by another, often by specializing code0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 54a Basic Layoutk@&2[|&|&\\<>Fundamental GFA Principles<=and Notation<+fe=33>0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[umwmw#u#u<>x=50000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@#$@#B[  E E - <>y=6?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@A A NAME=Connector1;#$@#B [=@!@! = =<>z=70000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o @NAME=Text Shape3; NAME=Connector2;@[ a a X X R<>F0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text2;@[8 9 9. 8. >( <>G0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text3;@*[V}a&}a&$V$\<>F(S) = S <+fn=Arial>- <>{x=6...} U {x=5}0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text4;@[-C!-C!<>G(S) = S U {y=6}0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text5;@[ aaN N&H<>Yes0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text6;#$@#B [G\J\JGG*<>0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape4;@A I  NAME=Connector3;I NAME=Connector4;_d$$`Page 13a Bulleted Listk@&=[|&|&\\<>Fundamental GFA Principles<=and Notation<+fe=33>(continued)0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;@&[&&<>Functions on Edges Transform a Representation of the State of the Machine<=There is an initial state, and any path has a state that is the initial state composed with all functions on the path0000910{name=,r=66}{name=Level2,r=67}{name=Level3,r=68}{name=Level4,r=69}{name=Level5,r=70}o Bulleted text NAME=Text2;_d$$`Page 55a Basic Layoutk@& [|&|&UU<>Lattices0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;@ [     <+fn=Math B>S0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text2;;?&"d   @![  JJD<>p & q <+fn=News Gothic>& not(P)0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"d*8. G~ ?&"d8 GN @[2  ~ 2~ 8x <>p & q0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o @ [m m    <>q & not(p)0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"d  *?&"d l  b @[<>q0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"d* # :F P@ [ 0v0v <+fn=Math B>z0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"d \ ;U|@[ - {- { <>x>50000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"d& V 2  @[<>x>40000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?&"dT2p @F'`))|||<>Representations are in Lattice Elements with Top being more information about the state Bottom being no information<=<=If Lattice Element A is higher than B then A usually implies B<=<=Example a lattice element representing a containing set of possible values is weaker than the smaller set <=0000965{name=,r=101}{name=Level2,r=102}{name=Level3,r=103}{name=Level4,r=104}{name=Level5,r=105}o _d$$`Page 37a Bulleted Listk@&0[|&|&<>Fundamental GFA Principles<+fe=33> (continued)0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&#_&&UUU<>Meet of two Lattice Elements yields something which is true on both paths<=Algorithm Should Determine Less than or equal to Meet of All Paths Solution<=MOAP can be reached by going from Bottom up, or Top down<=<Level2>Top down can yield a more precise answer<=Called optimistic analysis<|0000954{name=,r=106}{name=Level2,r=67}{name=Level3,r=107}{name=Level4,r=108}{name=Level5,r=109}o Bulleted text>ddddd_d$$`Page 56a Bulleted Listk@&0[|&|&<>Fundamental GFA Principles<+fe=33> (continued)0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@@&\&&UUU<>Using a cross product of two lattices in one analysis can yield better answers than running the separate analyses on the individual components multiple times<=<Level2>Particularly if Analysis is Optimistic<=Requires that something from one lattice implies something in another<=<Level3>e.g. if x=5 after y=x+5... or executability and constant propagation<=<>Sparseness can speed up the algorithm, only use components of the product lattice at the points they are relevant 0000921{name=,r=100}{name=Level2,r=67}{name=Level3,r=68}{name=Level4,r=69}{name=Level5,r=70}o Bulleted text_d$$`Page 15a Bulleted Listk@&1[|&|&ee<>Walk in the Woods -- With Zadeck<=(Summer? '84)0000910{name=,r=56}{name=Level2,r=57}{name=Level3,r=58}{name=Level4,r=59}{name=Level5,r=60}o  Page title@-&Q[&&UUU<>Put an executable flag on each node<=<Level2>Start node starts being executable all others not<=<>Use Use-Def Chain<=<Level2>If a node is executable propagate its assignments to other uses (being careful with evaluating expressions)<=<>If a node is executable and its successors can be branched to, make them executable<=Use a worklist0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 16a Basic Layoutk@& [/|%|%//|<>Example0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B [ ..  <>Y=Sqr(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[` ee*` *` G<>Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V p NAME=Connector4;@.q  NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[  ' '% %<>Not executable, x=top, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;' Object 2@[6$6$<>Not executable, x=top, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[O. O*. O*OU<>Not executable, x=top, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  <>Not executable, x=top, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;_d$$`Page 17a Basic Layoutk@& [/|%|%//|<>Example0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B [ ..  <>Y=Sqr(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[` ee*` *` G<>Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V p NAME=Connector4;@.q  NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[ a"a"% %<>executable, x=2, y=40000910{name=,r=76}{name=Level2,r=77}{name=Level3,r=78}{name=Level4,r=79}{name=Level5,r=80}o  NAME=Text3;' Object 2@5[<{#<{#<>Not executable, <+fc=307+f2=307+f2=307>x=2<>, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@5[O. 2). 2)OU<>Not executable, <+fc=307+f2=307+f2=307>x=2<>, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@5[  <>Not executable, <+fc=307+f2=307+f2=307>x=2<>, y=top0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;_d$$`Page 18a Basic Layoutk@& [/|%|%//|<>Example0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B [ ..  <>Y=Sqr(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[c gg,c ,c I<>Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V p NAME=Connector4;@.q  NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[ a"a"% %<>executable, x=2, y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;' Object 2@1[3_"3_"<>Not executable, x=2, <+fc=307+f2=307+f2=307>y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@3[O( 3)( 3)OU<>Not executable, x=top, <+fc=307+f2=307+f2=307>y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@D[   <+fc=307+f2=307+f2=307>executable<>, x=2, <+fc=307+f2=307+f2=307>y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;_d$$`Page 19a Basic Layoutk@& [/|%|%//|<>Example0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B [ ..  <>Y=Sqr(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[` ee*` *` G<>Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V p NAME=Connector4;@.q  NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[ a"a"% %<>executable, x=2, y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;' Object 2@I[0"0"<+fc=307+f2=307+f2=307>executable<>, x=2, y=4, <+fc=307+f2=307+f2=307>z=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[O. (. (OU<>Not executable, x=2, y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[    <>executable, x=2, y=40000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;_d$$`Page 20a Basic Layoutk@&[/|%|%//|<>Problem we missed on Walk0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B$[ ))  <>Y=<+fc=315+f2=315+f2=315>Cube<>(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[` ee*` *` G<>Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V p NAME=Connector4;@.q  NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[ a"a"% %<>executable, x=2, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;' Object 2@4[6i#6i#<>executable, x=<+fc=307+f2=307+f2=307>Bottom<>, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[O. %. %OU<>executable, x=7, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[    <>executable, x=2, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;?.4d   vk?.4dC   }s ?.4dA6 7, %?.4d ld h  _d$$`Page 21a Basic Layoutk@&[/|%|%//|<>Example -- First Hack0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[ %%  <>X=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;@#$@#B [ ))  <>Y=Cube(X)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[{   { { <>X=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B [7 7 7 <>X=X<=Z=2*X0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5;@*I* NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V  NAME=Connector4;@.q B5 NAME=Connector5;@V t%!t%!= =7<+sc=307>executable, x=20000864{name=,r=1}{name=Level2,r=2}{name=Level3,r=3}{name=Level4,r=4}{name=Level5,r=5}o  NAME=Text2;@[ a"a"% %<>executable, x=2, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;' Object 2@/[:M!M!:@<>executable, x=<+fc=307+f2=307+f2=307>7<>, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[O. %. %OU<>executable, x=7, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[    <>executable, x=2, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4;#$@#B[)) <+fn=Arial>X=X0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape6;#$@#B[` ++` ` <+fn=Arial>X=X0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape6;@7[t t kke<+fe=32+fc=307+f2=307+f2=307>not<> executable, x=2, y=80000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text5;@/[2#2#<>executable, x=<+fc=307+f2=307+f2=307>7<>, y=80000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text3;?.4d hcCN vj @-[XxxX^<+fn=Arial+fc=308+f2=308+f2=308>Use-Def chain0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ?.4d  5N    ?.4d    ?.4d5?9_d$$`Page 23a Bulleted Listk@&[|&|&22<>Remarks -- A Linear Algorithm0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@{&[z&z&UUU<>Combined two analyses optimistically<=<Level2>Example would require constant prop, dead code then constant prop again<=Can be more precise on loops<=<>Solved transfer function problems sparsely<=<Level2>This was done, at least partially, but not published<=<>Propagation in time linear in hacked program<=BUT, found join-points in non-sparse or not time-bounded way<=<Level2>Schapiro and Saint join point concept<=<>Extra identity assignments felt like a hack<=Earlier work Kildall, Wegbreit, and Reif 0000910{name=,r=66}{name=Level2,r=67}{name=Level3,r=68}{name=Level4,r=69}{name=Level5,r=70}o Bulleted text_d$$`Page 22a Basic Layoutk@&[/|%|%//|<>Example -- SSA0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;;#$@#B[ %%  <>X<+fx=2>1<>=2;0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape1;#$@#B.[ ))  <>Y=<+fc=315+f2=315+f2=315>Cube<>(X<+fx=2>1<>)0000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape2;@#$@#B[   <>Y>50000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape3;@#$@#BE[     <>X<+fx=2>2<>=70000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape4;@#$@#B[` ` ` <>X<+fx=2>3<+fx=0>=<+fn=Math A+fx=0>F<+fn=Arial+fx=0>(X<+fn=Arial+fx=2>1<+fn=Arial+fx=0>,X<+fn=Arial+fx=2>2<+fn=Arial+fx=0>)<=<>Z=2*X<+fx=2>30000910{name=,r=55}{name=Level2,r=55}{name=Level3,r=55}{name=Level4,r=55}{name=Level5,r=55}o NAME=Text Shape5; * NAME=Connector1;*; NAME=Connector2;  NAME=Connector3;V > NAME=Connector4;. } NAME=Connector5;@[  E E ? <>yes0000910{name=,r=61}{name=Level2,r=62}{name=Level3,r=63}{name=Level4,r=64}{name=Level5,r=65}o  NAME=Text4; @=Y[Euw uw EK<>The edges coming<=into the node are<=part of the <+fn=Math A>F<+fn=News Gothic>function0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o @ @[&&<>This is a pictorial<=view, the data<=structures are<=important0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o _d$$`Page 24a Bulleted Listk@&[|&|&22<>Properties of SSA form0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&[&&UUU<>Each Variable has a unique assignment statement<=<+fn=Math A>F<+fn=News Gothic> functions are at places where values join and have the semantics that they get the value from the variable on the executed edge<=Semi-functional in nature<=<Level2+fn=News Gothic+fs=353>At a use, you know where the def is<=Transformations easier<=Some flow-sensitve algorithms become insensitive<Level2+fn=News Gothic>0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_d$$`Page 25a Basic Layoutk@!&K[|&|&<>Each assignment dominates all uses but those in <+fn=Math A>F<> functions0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;; NAME=Group1;?."#$d#  O ## NAME=Shape1;?."#$d.R.. NAME=Shape1;?."#$d,apv `,, NAME=Shape1; @[ F F}<>Y=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text2;@[. . :: 4<>X<+fx=2>1<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text3;@[%F%F   <>X<+fx=2>2<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text4;G0G5@5[<<!!<>Z=<=X<+fx=2>3<+fx=0>=<+fn=Math A+fx=0>F<+fx=0>(X,X)0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o @B[?ww?E<>A node s dominates <=t if all paths to t from<=root go through s0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o @7[ ) )llf<>The dominance relation<=can be represented by<=a tree0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o ; NAME=Group1;#$@#B[    & <>X<+fx=2>1<>=2;0000910{name=,r=98}{name=Level2,r=98}{name=Level3,r=98}{name=Level4,r=98}{name=Level5,r=98}o NAME=Text Shape1;@#$@#B$[^<>Y=<+fc=315+f2=315+f2=315>Cube<>(X)0000910{name=,r=98}{name=Level2,r=98}{name=Level3,r=98}{name=Level4,r=98}{name=Level5,r=98}o NAME=Text Shape2;@#$@#B[.3.3<>Y>50000910{name=,r=98}{name=Level2,r=98}{name=Level3,r=98}{name=Level4,r=98}{name=Level5,r=98}o NAME=Text Shape3;@#$@#B[#[&[&##<>X<+fx=2>2<>=70000910{name=,r=98}{name=Level2,r=98}{name=Level3,r=98}{name=Level4,r=98}{name=Level5,r=98}o NAME=Text Shape4;@#$@#B[UUU<>X<+fx=2>3<+fx=0>=<+fn=Math A+fx=0>F<+fn=Arial+fx=0>(X<+fn=Arial+fx=2>1<+fn=Arial+fx=0>,X<+fn=Arial+fx=2>2<+fn=Arial+fx=0>)<=<>Z=2*X<+fx=2>30000910{name=,r=98}{name=Level2,r=98}{name=Level3,r=98}{name=Level4,r=98}{name=Level5,r=98}o NAME=Text Shape5;]]G NAME=Connector1;]dU NAME=Connector2;" NAME=Connector3;Vv NAME=Connector4;G% NAME=Connector5;@~[A @!@!KA KA K<>yes0000910{name=,r=93}{name=Level2,r=94}{name=Level3,r=95}{name=Level4,r=96}{name=Level5,r=97}o  NAME=Text4; _d$$`Page 26a Basic Layoutk@&[/(%(%//(<>And then....0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;; NAME=Group1;?."#$d#  O ## NAME=Shape1;?."#$d.R.. NAME=Shape1;?."#$d,apv `,, NAME=Shape1; @[ F F}<>Y=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text2;@[. . :: 4<>X<+fx=2>1<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text3;@[%F%F   <>X<+fx=2>2<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text4;G0G5NAME=Connector1;@[77!!<>Y=<=X<+fx=2>3<+fx=0>=(X,X)0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text5;?."#$d/U // NAME=Shape1;?."#$dT%`b%sT NAME=Shape2;%5_d$$`Page 27a Bulleted Listk@&[|&|&22<>To Convert to SSA0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@&[&&UUU<>First compute dominator tree<=Number nodes in dominator tree<=<Level2>At each node compute range of nodes in its subtree<=<>Traverse upward on dominator tree computing dominance frontier<=<Level2>DF=immediate set of <Level2+fn=Math A>F <Level2>functions added if there is an assignment at this node<=DF for a node is <=<Level3>the set of leaving edges to nodes not dominated<=DF for dominated nodes to nodes not dominated <=<>More...0000910{name=,r=66}{name=Level2,r=67}{name=Level3,r=68}{name=Level4,r=69}{name=Level5,r=70}o Bulleted text_d$$`Page 28a Basic LayoutkH@&[|&|&22<>Click here to type page title0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title?."#$d6  / 66 NAME=Shape1;?."#$dI:II NAME=Shape1;?."#$dXap^ XX NAME=Shape1;@[#  #)<>Y=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text2;@[S S <>X<+fx=2>1<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text3;@[%%   <>X<+fx=2>2<>=0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text4;GVp5NAME=Connector1;@[77''!<>Y=<=X<+fx=2>3<+fx=0>=(X,X)0000910{name=,r=71}{name=Level2,r=72}{name=Level3,r=73}{name=Level4,r=74}{name=Level5,r=75}o  NAME=Text5;@?."#$d0 00 NAME=Shape1;?."#$dT%`b%sT NAME=Shape2;o=g5NAME=Connector2;_d$$`Page 29a Bulleted Listk@&[|&|&22<>To Convert to SSA0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@_&[^&^&UUU<>For each variable compute where all <+fn=Math A>F <>function assignments will be<=Traverse from root, maintain a stack for each variable, push on assignment, when a use is encountered, it is a use of the top assignment on the stack0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_d$$`Page 30a Bulleted Listk@&[|&|&22<>SSA algorithm0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@O&[&&UUU<>Linear in size of SSA form<=Empirically (with mild theoretical justification) SSA form is constant factor bigger than original<=People involved Cytron, Ferrante, Rosen, Zadeck<=Same algorithm works for PDG<=Earlier work Reif0000910{name=,r=28}{name=Level2,r=13}{name=Level3,r=14}{name=Level4,r=34}{name=Level5,r=35}o Bulleted text_d$$`Page 40a Bulleted Listk@&[|&|&22<>Social Lessons0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title@w&[1&1&888<>Sparse Conditional Constant Propagation<=<Level2>Simple<=Fast<=Precise -- over a complex lattice<=<>Important that it happened in the milieu of industrial research<=Kuhn, Structure of Scientific Revolutions<=<Level2>Use-Def chains, Sharir, Reif0000910{name=,r=50}{name=Level2,r=51}{name=Level3,r=52}{name=Level4,r=53}{name=Level5,r=54}o Bulleted text_d$$`Page 31a Basic Layoutk@ &?[|&|&] ] <>SSA Partial Redundancy Elimination and Program Transformation0000910{name=,r=56}{name=Level2,r=57}{name=Level3,r=58}{name=Level4,r=59}{name=Level5,r=60}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@#B9 [S<>X=A*B<=C=A0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@#B9[ZZZm<>Y=C*B0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@A ,G NAME=Connector2;,G _d$$`Page 32a Basic Layoutk@&[|&|&<>In SSA form plus nodes added0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@#B9 [P<>X<+fx=2>2<>=A*B<=C<+fx=2>2<>=A0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@#B9[ZZZm<>X<+fx=2>3<>=<+fn=Math A>F<>(X<+fx=2>1<>,X<+fx=2>2<>)<=C<+fx=2>3<>=<+fn=Math A>F<>(C<+fx=2>1<>,C<+fx=2>2<>)<=Y<+fx=2>1<>=C<+fx=2>3<>*B0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@u z NAME=Connector2;,G NAME=Connector3;#$@#B[j   j j <>0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o @NAME=Text Shape4; ,G _d$$`Page 33a Basic Layoutk@&[|&|&<>Move up statement0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@#B9[P<>X<+fx=2>2<>=A*B<=C<+fx=2>2<>=A<=<+fc=307+f2=307+f2=307>Y<+fc=307+f2=307+f2=307+fx=2>3<+fc=307+f2=307+f2=307>=C<+fc=307+f2=307+f2=307+fx=2>2<+fc=307+f2=307+f2=307>*B0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@Q#B9c[ZZZm<+fc=307+f2=307+f2=307>Y<+fc=307+f2=307+f2=307+fx=2>1<+fc=307+f2=307+f2=307>=<+fn=Math A+fc=307+f2=307+f2=307>F<+fc=307+f2=307+f2=307>(Y<+fc=307+f2=307+f2=307+fx=2>2<+fc=307+f2=307+f2=307>,Y<+fc=307+f2=307+f2=307+fx=2>3<+fc=307+f2=307+f2=307>)<><=X<+fx=2>3<>=<+fn=Math A>F<>(X<+fx=2>1<>,X<+fx=2>2<>)<=C<+fx=2>3<>=<+fn=Math A>F<>(C<+fx=2>1<>,C<+fx=2>2<>)<=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@u z NAME=Connector2;,G NAME=Connector3;#$@#B   i i <>Y<+fx=2>2<>=C<+fx=2>1<>*B0000910{name=,r=49}{name=Level2,r=49}{name=Level3,r=49}{name=Level4,r=49}{name=Level5,r=49}o @NAME=Text Shape4; ,G _d$$`Page 34a Basic Layoutk@&[|&|&<>Move up statement0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@s#B9t[P<>X<+fx=2>2<>=A*B<=<+fc=307+f2=307+f2=307>Y<+fc=307+f2=307+f2=307+fx=2>3<+fc=307+f2=307+f2=307>=A*B<><=C<+fx=2>2<>=A0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@#B9[ZZZm<>Y<+fx=2>1<>=<+fn=Math A>F<>(Y<+fx=2>2<>,Y<+fx=2>3<>)<=X<+fx=2>3<>=<+fn=Math A>F<>(X<+fx=2>1<>,X<+fx=2>2<>)<=C<+fx=2>3<>=<+fn=Math A>F<>(C<+fx=2>1<>,C<+fx=2>2<>)<=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@u z NAME=Connector2;,G NAME=Connector3;#$@#B   i i <>Y<+fx=2>2<>=C<+fx=2>1<>*B0000910{name=,r=81}{name=Level2,r=81}{name=Level3,r=81}{name=Level4,r=81}{name=Level5,r=81}o @NAME=Text Shape4; ,G _d$$`Page 35a Basic Layoutk@&[|&|&<>Move up statement0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@#B9[  M<>X<+fx=2>2<>=A*B<=<+fc=307+f2=307+f2=307>Y<+fc=307+f2=307+f2=307+fx=2>3<+fc=307+f2=307+f2=307>=X<+fc=307+f2=307+f2=307+fx=2>2<><=C<+fx=2>2<>=A0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@#B9[ZZZm<>Y<+fx=2>1<>=<+fn=Math A>F<>(Y<+fx=2>2<>,Y<+fx=2>3<>)<=X<+fx=2>3<>=<+fn=Math A>F<>(X<+fx=2>1<>,X<+fx=2>2<>)<=C<+fx=2>3<>=<+fn=Math A>F<>(C<+fx=2>1<>,C<+fx=2>2<>)<=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@u z NAME=Connector2;,G NAME=Connector3;#$@#B   i i <>Y<+fx=2>2<>=C<+fx=2>1<>*B0000910{name=,r=81}{name=Level2,r=81}{name=Level3,r=81}{name=Level4,r=81}{name=Level5,r=81}o @NAME=Text Shape4; ,G _d$$`Page 52a Basic Layoutk@&[|&|&<>Move up statement0000910{name=,r=25}{name=Level2,r=26}{name=Level3,r=27}{name=Level4,r=36}{name=Level5,r=37}o  Page title NAME=Text1;#$@#B[Tw Tw i<>?0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape1;@4  NAME=Connector1;#$@#B9[  M<>X<+fx=2>2<>=A*B<=<+fe=16+fc=307+f2=307+f2=307>Y<+fe=16+fc=307+f2=307+f2=307+fx=2>3<+fe=16+fc=307+f2=307+f2=307>=X<+fe=16+fc=307+f2=307+f2=307+fx=2>2<><=C<+fx=2>2<>=A0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape2;@#$@'#B9[ZZZm<>Y<+fx=2>1<>=<+fn=Math A>F<>(Y<+fx=2>2<+fc=307+f2=307+f2=307>,X<+fc=307+f2=307+f2=307+fx=2>2<>)<=X<+fx=2>3<>=<+fn=Math A>F<>(X<+fx=2>1<>,X<+fx=2>2<>)<=C<+fx=2>3<>=<+fn=Math A>F<>(C<+fx=2>1<>,C<+fx=2>2<>)<=0000910{name=,r=38}{name=Level2,r=38}{name=Level3,r=38}{name=Level4,r=38}{name=Level5,r=38}o NAME=Text Shape3;@u z NAME=Connector2;,G NAME=Connector3;#$@#B   i i <>Y<+fx=2>2<>=C<+fx=2>1<>*B0000910{name=,r=81}{name=Level2,r=81}{name=Level3,r=81}{name=Level4,r=81}{name=Level5,r=81}o @NAME=Text Shape4; ,G _d$$`Page 36a Bulleted Listk@& [|&|&22<>Partial Redundancy Elimination0000910{name=,r=56}{name=Level2,r=57}{name=Level3,r=58}{name=Level4,r=59}{name=Level5,r=60}o  Page title@ &[%%888<>Return to San Diego<=<Level2>People involved Rosen, Zadeck also Cytron, Lowry<=<>Transformations preserve SSA analysis<=Lots of issues when pushing around or through loops and when pushing control st