diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.eps b/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.eps new file mode 100644 index 0000000..38257ed --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.eps @@ -0,0 +1,1162 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner +%%Title: AdvLogo.eps +%%CreationDate: Sun Sep 30 10:24:44 2007 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 156 95 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228346456694 14.173228346456694 translate +% Translate to begin of first scanline +0 80.660649126176295 translate +141.63625888227384 -80.660649126176295 scale +% Image geometry +295 168 8 +% Transformation matrix +[ 295 0 0 168 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 295 string def +/gstr 295 string def +/bstr 295 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 62554 ASCII Bytes +colorimage +JcEC_!WE#orrp?=s8VlaqYpcbRK*@*L#3r>\s7tFJp\t +JcEC_!WE#orrpi_s8VoeqYpcgZ2ajtjo##U#4KA"s8(dTp\t +JcEC_s8Mlp"l%0!s8)Kdrs&&0s8Vl[rVQU!o$-n.qs"+SrrW2kqUY[s~> +JcEC_!PQ\Mrro!#s8VTTqYpc)*TmCohZ!EP#4$1%s8D<]qu6`q`TGbOJ,~> +JcEC_!R03irrof_s8V`\qYpc;;XFGWjo5/W#4RcOs8DKcqu6`re*PZcJ,~> +JcEC_!S-*$rrp<0s8VfaqYpcGF79/(lMg\\#4eVfs8MWfqu6`rg[E_nJ,~> +JcE^h!R'O"rs@iRs8QDZs8W&rrr3;\YQ+Gj3pltCp\t1!lGNJuEX^%ho[a!@"mGscf0%U[rrr8t +s8%u7gAc[~> +JcE^h!SH]6rsA#[s8R_Gs8W)trr3;d_>jCSB^u-"qYpL$n'V%4PXa4'pYYrL"mu +JcE^h!T3>ArsA/bs8SRqs8W)trr3;ic2[^&L@kNCqu6U%o%O$AW+k)fpuVJS"nDTlk(i'prrr?" +s89RpgAc[~> +JcF'r!r;-ZqYp_HcMumSeGB1\7W8=^7 +JcF'r!rMHbqYp_ggAgE/hYR6fEKU:^EKg8!lh(5Wqg3Vej&B":s6f=SrtD2-h#2.N[K$$frVuo] +Z1%_;FQrZ%"nhfns3L)hs*t~> +JcF'r!rMQeqYp`%iW&;MjneumN2HX>N2ZXRn+Zk^qim9Bk]M"0s7,[ZrtDe_j8FjA_uKT%rVuoa +_=IWWO6ufD"o/#qs4Hhts*t~> +JcF'r#2k$ss7=S5qu6kp!.Os_>d"&*,Q7Y7!!(f\,!auanbW+^[K$E?__3RZs7Z0`s7\&EL]:L% +XS`#%Wu]jmaFE1Frrp='s8CdCir=N~> +JcF'r#3VTHs7Y1Dqu6l1/Y)jdK#.Ec,Q@_M.QHP/ +JcF'r#4/Vcs7bLLqu6l? +JcFC&"j*G;s8;cns%N7Hq>YsFRfD-4k5YJR[d*lG!%7*B@$L]kmsCW#=9&>VX!'XSs7DGDs).l; +GeGX^`;fkbZ1[Vg!)rN)1UR2^r:0^bEr`*;hk]];rs&A1huEZLroX62~> +JcFC&"kL-^s8Dlps%N=Rqu<3KZ2`mkm/R+[a7'%7*E)FLKrtCToUdf9@&_tWdZ-?o3DA&\KJrUp-hP9@I:k.1'[rs&DCkPtPWroX62~> +JcFC&"l7,ss8Murs%N@Xqu>2dbB8R"s7j4Cs.N%X +VUp3Eg].<6ch[9<:QkOKJ^OMtrV-9jVb5&1lGrPors&GMli6t]roX62~> +JcF^/!Ti)4rs@>ms86[nirA0$rr5Z^,-:Ge!*8p2OOaC2K+;)B$ig[NZXfa-s/d:nX"s_UGH!u2 +i;^87'"'h%!(s@C43% +JcF^/!UJhCrs@Z0s8A!ll2U,8rr5[! +JcF^/!Uo:Lrs@l@s8AaHmJl\Drr5[/GK]f/2b+V1I=K:/Q];[]&Wos6[hus.WB0s7tpVrr30#rr;Q1p#c:)~> +JcF^/"fIpks08Bss&S;8!6NhK)70A'd/3jq('#hW$32%"\pU(FlN@2#D@$:EPbWA4e*T!m!)"C6 +!(`f6>.X`'!!"kf!!#:&@V4!eck?CuK`D*[r1T2As8ToWg])m5\GQ:1r:'Xark&!ks*t~> +JcF^/"h_2As22GFs&SPg1=kAn:W<@ug\h*27kIiQ5qYsob+#d8n3/`tOZb?WY.0dShXP)20Q^#G +13'gqJBIn42Do#82_SpoLPjjdgd``SU+7[FrO8cus8UH2jStl?anu)BrUp-hrlb3(s*t~> +JcF^/"j+X]s3Ja_s&SZ6=l&4kE7"XQir&i>C/oMtA6!U5eZQdeo4)')gM*RFM7q>[)_n>uug9StP*Cj(_DfZVsbkrPc>@s8UcPl2S)&e,0.LrV$3irm^i1s*t~> +JcG'9#5<_is8Vlmrr<#n.0%R*%HunT@d*jl`5)D2!!$0&+qfS/m;FtuN;rqc6j`oThUG@CP_oA> +/e8-d!Kbi""DaSA!!!$%!!$`O56+7&)?9aF%fcSqhkY7js*k"K:P/cMD#`harr31U!4i-37,%P< +"od0Ps81^@s*t~> +JcG'9#5Fk@s8Vrprr67"q>]254RVNaL[P3Be'J&k/gGSV<_B(cnr[S0V_pIrEC)*fk2(A^Y+dO3 +3(5bV331qU5)lpA3BTGb.Pct2Cc-:i:c^I"7P?9/k.-Yfs.(_mG+goJO8n_9rr31q3m%E +JcG'9#5YX\s8Vuqrr67#qZ#Pb@e&oRSala[g=ZG7<_\_#G&4MboV[Ao\6NBKN+Gn?lf=7O]X1^K +?"dJA?G#?YA#$qX?=@;M;H]aKM-Q)$EF<$_Bi\/hlc5pFs0,O'OgACpV#U&Urr32.@+5/"Ms1$; +"R#a`r9NbMJ,~> +JcGBB!qjD"qu82Ghs^Tg&omsA`8CUppMX(3BE/$gbs>@as2Hi/UbMiL(2aE\BE,^M"uAIB!!O;P +!@I$0q>^^+#6>%9dM2QY$3C;0!-R?k!&83orW!KP!s2s2Z6q`[C]FH$Yn@27rr3<%rVq9GXoI_2 +q"t'mq82mos*t~> +JcGBB!r((6qu:=.kO\`+8s95HdcUT0q3$1+N$g!Kfku6!s3tOO\m[9L8!$)%MuV'f6"=R`4>p#, +4^%0c2*3o\3]oGi5s7NRh+K^i4$#Jb3^,Y^Q0N?G@?!Q64?-;(4bs$T>%u]O0edC]8j9fbrsAW& +s-t[Vs7"\;qu6`odJ<51J,~> +JcGBB!r:OCqu:=.lh1;8CoIC-g["n>qPKSYU/=api/3ias4`'@a*q)oC8GNPU&W_UAV#P<@9dhf +@X.Ca>@:lH?t!GTAR]5ujDA12?smDN?XdGIWpYgMJ"gL]@:"%b@\3VHHA1=Q='(1'Ch(KarsAZ' +s0#GHs7>1Gqu6`pg%t.:J,~> +JcG]K!W)6\rsA.Lh>c;GbQ%V3rr4"^*-_F%!%Hm`LV!NcL&_4%0E;)9X(G/2s%rar#lXf.$s#b! +>1AcMg(m;-7^s8V/co`'sebl@M(r9=63~> +JcG]K!W2HarsA:ljo=J'fDkmCrr4\(;3q6E-X5fsUrr`;U+n3i?o'QQ^km"?\\>=?64?/iu0V78,^!Yk2N`4?PVc3^.IW=/l5D=^Jgu0e[M:NecNl +s6@Pss//$5s829`l2Q8~> +JcG]K!W;WersAA+lMp.EhuE`Lrr4\0F/o8;:j_Qp[FG6VZrg;2ITfp0bFk$Cs-$_oARAhOB9nHd +Q2Ism@: +LAq;Rr;-EthO+?Cn`0TFs!OZDO8kCaHN4$:iqrO=!""iL!!TCYLfgb=*rl9C$31'-c!CB<_&)tK +![+=7g].Bt>n?Z0&0PmP&siQj!W[pn!!$4&ahIcS#2,^ +LAq;RrVHNuk-4mco]cAPs"V,0VuNksRK*<\l2:Ho-9\ME/3CW.Uk$5E;`?g"4tJ:8fn;8'cqQP` +4>ScO<4[<6q`Fm:2tf?73&^Im# +L&V/PqYpcc^]4?-mf*+`1!!%us1EBRs8Vl]rVVCG@_ICn@*IoDQcnckVS2?X@/KFIHrOr*^:I=^G6KVM/m$s28ATZ_pPnQN,gnrr32d`:X)` +I-g+tJ,~> +LAq;-^\[sXr:g6kC]N&df>R4Zs7E\kg`uk;_efd.s8RTnBnQWi!$E9^$(^u]qZ$g%!s&BtbW5M" +!!14B&1k21;ksAJ!!$Q0"otP#o^`"]"lPR4s4#-Vs*t~> +LAq;7cMIPurV6EmN@s/hi6q;us7aM-j\[?qdZ?kbs8SZlN1r?o1fI:56F?]02`s/^4?GSf4Z%H; +BK,iO!]W8%gcPWt2ECLo'K\611gS(cHas*O.jp4h5WZOWp\"Oc"m;rXs52Ans*t~> +LAq;;fD>M)rVHQoU/pFVk1]S0s7t(f[8gSAJ`s8T?JU9e36>B=jmB#4G'?"%,J@:3JQ@U##R +KO+La!af>BggL7j>[R25'4"gHIF+sX`W*AG:nYsA?c`9Bp\t0rm(;rjjk];'J,~> +O8f7?nbW7lkhuL@SpgD6q"=Xd*LK^ref4[=s-J2ds7odt:OiTK!/+W;DYroI!#$"E!!40!"nhor +!PnaJ!=8`+IJ^N_GO'n^!-[-e5M#`3"ilu.s7u3Ss*t~> +O8f7Eo_SRomH=NL[@@!lq=jmg,dDXgi(bSgs0%sNs8%6qGb-uV2PGb8OSn]N1J(2!4#TiG5Wej* +"Znh/4$5P"49.Ib4:jh;1n=KcLR7M'1+ngPEGXS1rrpoVrVu`dnGe"~> +O8f7JpA4dqnEg2T_lrt;qY:'i,f#W=k&=)!s1Y]!s8/3_P-JD$?*g#RV>U%1>&8"]?sIZ'A75:C +!+>e7!FfC3@/s]W@1['V>He"TSu_Ih>#hQdN/6Wnrrq2mrr;lhnGe"~> +O8fBuf`2!Eq"k";@kIW<75E1!g`=N#dR/d4=j-a83q4Rii!!*'"#]a>U&%[@n!"]N.'/-lq +k#>"0U]:CIs15]9rrL]JnGe"~> +O8fC/irB&QqYL4CKj=T@EFRc(qtp/O4d1Ua8B[Yc4?YY\481i< +4$(/>'086:7<2%/aoC^TG364V.%gO_aSPo;i4JLYJ,~> +O8fC8kPtSXqtg=DS9t5&N.C!hqu$BlgM9TZ_,aE[m_G@%qnurN@:3/>@],c,C=KOq@:EPI@/"(1 +?sg`Y'OY9V?tbO:Iae>cQ&k7L92W"peC49o!TqJms*t~> +O8o7Y#QOK_GQ7-'^&@sAr;W>g!0"H#*5qm!?"`J4rW!-Y!!".]\e+T9!I&.R!"_iE96TS"ku0b, +c4(E3s8)KhrrN&mnGe"~> +O8fObrr;b2QiHWac2IYhrVs;K.&b9[;:>KqKT#>P/NYt&3]U3hb"+NT3]oMd3A`]UQ\mf)4;9h7 +2_K:'G*_RrmX&^8g-8!Zs82WkrrN&nnGe"~> +O8fObrr;hPWrMb0fDY^hrr9o/;7Y1mEngWNS"]GDud!AOK.mOnW\dsiF?N[s8;`mrrN)qnGe"~> +Q2^pRCWu\U,Q,*qs.B?1n]#j +Q2^pVNnF7/,lPm;s0j1Co[B51o)J'/G0!uE0R/aH7^E&p3\l=]3BK>r4?<-u!Aud64;'VL8MVlh +rP@7fs6=iPli2Wsp$D^/~> +Q2^pYUYktK,lQ6Ms2@ZIp=l[]p&FKLOj\VZ=H]RnC;Bk]?Wik8?=@8Z@UJk +T)Sl`des"B-h2Z6s._-7s6@bss8TV86/X[%!1gu+@,L`F!!!uE!!!^:,61jC2jOFY7uRHK!*r\, +(XW3^p[S:Z,sq8(g=>ZlJ,~> +T)Slch#7-M/G,Igs1)IBs6nS4s8U5.DWk[W.CRWPL$/;M1HA;n3&aK]<]P^.AN)_63'*Ql(-$?4 +4?4p@J2pBZs8Vofs8#f5p]'71n,In~> +T)Sldir/cS/G?:-s2BE's7+t>s8US]MX5si;T%1QSEp'0>$c5W?n,In~> +T)T#HCA.\dZh4.p)Ku0po0<:LoARU"r9H* +T)T#QNqr_=`V03/,a9.%p2)O-p?9oJrU=,G.rJ$92Ls7o2gr\=3BT>[2E4`u:HFk*%5b*^FZ!C2 +;_]Z,eqUF.rsAPqs8Rn8s8W&roDa=~> +T)T#WUAFoWd.mM<,cF,&pkW"5q!HedrUYG<;i,Bp>aX9'?'irV?=@2F>[DWMEF5)A%9pFAO'?qI +FBD>Th4D@[rsASts8S[cs8W)toDa=~> +VuHpqSH&Wcqtg=;FTB5VTk)(@s5K1(\,u^DLFiKJj69J\BP[hP!!3B*!*ZiCN;sM; +VuHq1ZiC(&qtg= +VuHq?_Z0Z6r;-F=V+0&8`Lklas6[GfdpZEp[X1tqmdZN]U8)4+@:3SM>aj,W?i4=6?sI*+@1cjl +Q>pQcs/'(HjI]@[kPsW8rr3/em/R+?h"1Pr~> +Yl=aim/$_geC4Hk>ZLS!ki)O@&B8DQ^^C-/g2B3as6`)O?uGrD#"'RG)S=E+qZ$X""c*-f@'Nj\ +mJhP6,6"#2=T83t!U/e>s*t~> +YlFamqYplYh>d8&IJX!2kl1T+du3kF4<\J"O_i)]0ZDH9>*bM5NH4?GSd4$>if4:sV/ +3&ZK/J=?$.Rl=CIYrdI7qu?]aoDa=~> +YlFapqYpl_j8\qDQ2CUOmJd,0gnOMq@7uC>VMNY"oS?_AV-ID5M0<]Te`(7L@: +])Mj2nc&Cb"k(m"r40rHru1Gr.K73p%`&+eb4YeY(][HE!!!A@HlZDjO88hW.lW"Zrr +\c2^'rqcWugtr)0ajp:g,kZ+\rm=5+ci;VKp]&o>+F8l#0L=!Q;M+qJ3BK>^2*!R"AiffO!BN6" +4;9k>4>f&`1fW--k1&i!U*XRPp9ioJs*t~> +\c2^(rqcWuj5g7=e(sp$,km4Drn2"#g&Kpdq>]Aj8s>lM=Cp*eF.*'>?XR;J>@(Q^K4+Rb!FT5j +@1c^LAm9B8s6JG0s0GITrV4:omf.e~> +])N!4Y4;Pko_SIb#4!O?s6bl;rr<#c(]U$+!0WED!.t-nDKt&D!!!$?!!!@S=FgJH!!+?"rW!I` +DCgSBs73;?s3^n"s8Mues*t~> +])N!5_Y*s/pA=ae#4YB5s73+qrr<#g)?7)p0WV6/0qnR!OI53_00D +])N!5c1_2;q#($h#4uess7Nn=rr<#j)?7TQ=M27J=L.n`V6'!O=(,NW>$Y[BQXF5!@K0Yb@233p +IU-;g[&/5Yrr;`;j8\(.YQ+V$nc++~> +_uBc6Xnr&)rp0F\k!-`_rV$0gru'MHs-j!%fsrtCjo=R[F59(]!%C_Y*,kk1JH5-=(+.q]"TU8u +#65Orihl8Gs8'Rms6smRo)F4~> +_uBc7_>4*;nGE7PCsi:]q#13l*TH5]ZlD0eb%6+hs6kr3k%$/(=aEb=OT2"74$5M%49@H!4+TNj +4;TnYk1;jX@?ii(8E]6Lp&G'hcg(Q&OPKF,J,~> +_uBc8c2%AGo)/OWLtVh-qYgEn*U)hh_FJ%udt3tUs72q`l@E#AGa!#cV>ml/?t!@?@0'Y +_uBr=e,TI2SacOV,P%&Rs-E_0s5UuZs8U.e5MeX*!/@=3:ZDCR!!"_^!!!BX$@r3F!">ic&Q%]2 +&HFK?-idlUrrq0Gs8Te-pA]X~> +_uBr>hZ*WC[.O7q,PA2"s0+MMs6@tts8UVPD!#L].\aLgGj56V0f3?)2Dm[)6i&nF4+TNh4:XG4 +]r+GImF4WQ@HC]MMYd>VjR`EOc2./6J,~> +_uBr>jT#8L_Y3m,,PSn9s1Vj?s6eS0s8Uo"M!Bam;R=DuOmW17=B^5c>[1ceBDQ$:@"Db\@1?Pc +[qq5sghBT7l?ZX-qYp``p&G'CqtC&?~> +aSu; +aSu;=q>1*qhfS)^e +aSu;>qYL3rjcAd.goBZ:ru\UCV>?$DJai'Mchd[#<`bN$>[*&sIUA`/E*cs\?=8=mmpQf7AQrJ\ +mdd?^iqdFgOoNIekPG2ZeGAn=J,~> +aSuFIJcGcHp\t16rql`qIK6&@LbYM$s6Rl!`tJFQKJrlQcIcMOLR\bL!!6Q!$%W*A!#6L_!!!7/ +.NjuUs2gS`s'Yo*s8)Benc++~> +aSuF\T)\igq>UCBrqufrQlEI5Uggb3s7+\6eO;2EU1QGbg#7WgUU*?L4?#)R2heV+3e9E[4;L"W +6971iJR)9Ys8UZQk5TuZ]`7m&rpg#=~> +aSuFgZ2ak%qYpLCrr)lsX%(#,[=?*os7>+Bh.TniZ[uS,i9-VU[DHQ`@9m&@?(JiE?\)YP@2<6m +Amf%TR +dJj6^_YX9[o^)VV=UXd"h9Z*#s5]dBckug?`(qJQs7/Yh;Hs2%!@nNZ"e=0RJH4[0(*r+"!!"&r +!!"1acI)Ifs6.Q"s-tn5nc++~> +dJj6md/*bqp@/+]Imir/k1]h7s6?uage&i!dWea(s7LD$I"F7:2dAa65dTE=3BTDc4?GScJNW6\ +(H#=^UcU>.@50H3f%JjUs8VN;qu=!4oC;j2~> +dJj7!g%t_%p[eFaQtZ3nlJ_aBs6ml"ibV>;gQH^$s7_LdPaYlb?$g3nA]!VE?X[AN@:3GMJRRkQ +(L).S[:!-WIoofmhVmMls8VWFr;XWbp$r'4~> +g]%?SoDACa#-YQ:rL]Y[r;R`8KM;Ep+TS59SWiRCn2^PW;?-\)TNN[Vr1=#e!!+#WJH4X/&/pL? +"B*p/!!#BL"TY.orr2os"kp?^s5(0Us*t~> +gA_3Ir;-Et_TDiV[^?&3s!7T:G5pAt1qns*t~> +gA_3Kr;-EtcI;gm`5;NNs!+k3s5S6+`W*ffpAai?:7[VP?"_*CHD:AV@:3MM?X[5YEF49*j'`O* +EO_ZPPj#PW/ld>A)J,~> +g]%KU`UX!-p&"Xd)Y?<^s5R41s8W&qr;X)-!.g.1!+#9-HER3RrW!*,!!!pc4FmLb!<3*"!"E96 +enB$aU&Y1Vs%-D`qu6]`eb&ll~> +g]%KVe+Nb?p\apg-22+hs65'(s8W)srVshu-(h.l/qiu@R_euW1H76U0JcOqC-+NU49@Z*2h=*M +4:s_:0f4R_i/Efa\2Gk=s)inbqu6]eht6r!~> +g]%KVg@kRGq#($h,Pd+Ms6c8Xs8W)srr:>Q:9hB5$bHC='BUILAPB\@U<>k@GtW, +@U +gA_KVrr;72ZiBmWnG`G.qt^8O!#XP34_jHcmtc,T;#gS.7fWQgn!*keF:Wp&cN"Ll@LX'es8%t9 +p"]Wii;_p&n,In~> +gA_KWs8VOk`W,hso`"k7r;-Gm)F*?4CQ7rco;%]DFY5UAF#lF1o<(/JPXRVq3]B!K4P2b14$#J_ +98>u1cN!dDV"j%4:?_`EmI1(*~> +gA_KWs8VY8d/X%/pAY(9rVQW*7Ut`X +SnW)ps89R +i;Wl=UA"Ka-hO@ts1K+js7!tbs8UkJFRVBm!1]`XD!M%^!s)O8!!!9P#QQdJ2LtkS!"_R?!!$9d +KrG%OrNs9 +i;WlD\G5t$./1C>s343's7=\&s8V/'Q1JT>/$cX/Npm"K4ZJ!X3]]N04Y^R;AiP?(dQA.'1N?)H +1kG"f^&S-3`m+P`JrB*tJ,~> +i;WlH`VKE2./D!Ps4;+gs7P+4s8V>FWV1sE;o$A7U[nGs@U>F5?XI;g@p"BSJmO":dU)dE* +>++leb5_M@dFS?tR\B3MJ,~> +l2Le[o_SRlgR8!>gn+08ru00FP5f:u399D*`;fj +!.TCs#06cArVm&NfDkm#earfk~> +l2Le]pA4dnjK\X_jgFj[s!6<5XoFADBC#'$dJs5q1cLdj0._OQ=\?:*CH+F<2EO#]<_>H)4OZD% +4%6+?F>G_ERNsoDs8Dor"lA2;s5)Z)s*t~> +l2Le]q"k!pl+m8tlGNGps!6QY]`4a9KC8>@"=E<`GBsG\kG#LL"=r>[UuHG&1Q;@FJWo +?td+EN`oVkY"`6Xs8Mus"m"hGs5`;5s*t~> +l2Lq4U&Y/bnG<.kQ3kn;^iA-/qtC$h(.\EC^c2<,d.!`%X4e*b!!*-$!(OUdJH3^j%%[C$ +l2Lq@\,ZL&o_SRoY=%%DcB@8gr:p9k(MjsWd:YC0g[hms^>haF4?>JZ20-oX3;Yf=2EHCOeN=F( +3'98b[/RpkV>$`A7,@'HR/6g`hV[r)J,~> +l2LqG`W,u5p%n[p^1ZI*f;Im5r;-Em(PkLnfn`@3i?Me.3>[N%jeR9%s +?=@5N_u@oH\+m=7B]JH +jo5LP;Z$Lnp\t12ma(q*1&u4lGsJ_9s1r* +jo5LhHMmgBq#::TJn*Qu0hBs3QJ1f0MDYM-qrCgt5:]4?P\f4?,&TJNV1>(-+l^4?PK/ +Ldlm_s7 +jo5M"Pl1R]qYpL>p#5rGHUst4X,54's4Np^hdp,%T79mij54`]@: +mf*=DlMCMeft%(]B/&-@q>($i&8qlU[K?LKiab0,s6:F$#W)G[!YuXTJH3Ug"p(@0"TT$+rW!A' +h0[cRs7WP8s8"j>mf.e~> +mf*=Ln,!%jil_6"MIGTGqtpBm(6Cr!a"f5@lA02Ms6i`G6XVZ32G6h/JNUn6(HO^ebWn3ZF=oF, +]B,L>s8Vl/ec5M\Wp]n;~> +mf*=Qo(r@mkLBM2TRZ8,r;?Qo(8b`fdTKRgm@K'?s71,;Aq*rl>]"IiJRQN+(LLXiemr0'N`K@e +aQfqks8VodD-]'fTK~> +mf*Hpci=$kfD>Lb@OTq!1^^>ahT5*abS:+.@fQKCVgT"4bFsIe]`8LWQl[`hcjBab[5S(OnbiCk +rl +mf*I.gAh3-iVNQrLK`^0A4+04k10#%fh3etLb^PQ]:26#f=3Y"4?#/[JNUk5%Pj'L;d@N#4t&e= +ALMEfr;R!#eE6f0ht6L>J,~> +mf*I9iW&r;k5,*!SpKVoJS34,le_:6i,)A;T3500af] +lMh#^EW?$IdJj.`rp]s4#68ne('&CTg3.8d:B1@r"TSN2S9TSb\c<0\j8Yc`WVf0b;#\U8bPV;@ +rn-`2s*t~> +lMh$3P5kO&h#@ +lMh$MW;lkFj8T&srq6uITVDdB=Akc:KCO^)=)@U*2P_5ggl@D?4_?X?uAFRK1ITZ[4k9TfA3 +Pi)B +oD\iogA:gfjQup)"$cDTWk/61rd%/eGlRgpI1R0^s/,tr!!*9)JH3Fb!Wj&OrW!M18M7+Es5p +oD\j.j8/c^lgb#=4_j]h^<6HT'q07&Pq+ReRn6>Zs1CNW4?>Sf3'K3N4MNuo5"nL*4"S'e?bl^A +m(M`bXrb%Orq??Ys*t~> +oD\j9kkb;cmdpJF@YaaWbLHOk's3PZWDco?YA8'ls2ebY@:*GO?=R2j@D?4d@W#se@9(F0I`qck +nB15"^.H9CrqQK[s*t~> +oD]!Ln,N9MdJNqZq-AgVNW946n#*Vfs2Z)a5pcR3-YaoX!4DkC5PL6D!'FQg!$V +oD]!ToDe`kh#%*fqh([DW&-`to=W0>s4'q4DH/DG=,p?Dq`Fm>4+TN04;Ttoq5Q\6CP"Dt;uYCe +rr<#kg%YO6OSA/BJ,~> +oD]!Yp&G!(j88imqjY"n\Q`S+ouPSWs4hU+MKN$(GGB@iqdBJ3JRQ<%(LDsp\n"ouRTij8rnc!# +s8ViOq#Bi[q +q>UKpoD8Ikpd;@efk/>&rsahc"ijpL!1i;+ +q>UKppA4dnq/F:Pj,;Ibrt;.Y3Ri^10XU5@ICniN2Ea&X3Is<)4;'_74$5Q"k,Dg_m_Uk8KBQ/] +[/9k)qW\"Hs*t~> +q>UKpq"k!pqhrf#kFgZ.rt;b>?eh/K=2XO6QH/H@>[^uE?\)Xs@1cgR@:+!=\q%*Vcm;c(@ +qu6`pmJcMQJ,~> +q>UZjO8o7Zqu6Tp)>3k+V>u2IZ9"TWs7E8!k;iSC?VLM&FRi@]!4DkC#=B1*!!kai!.+\CYG_-U +.KHUNTmlh$s*t~> +q>UZmWW3"tr;Q]q)u0@2\K.1>`G)a[s7a1Im:.atIX!;$Q1]J^4+TN)4;U(FDbE&L4Dd#9RK*6& +]_Uht4M_!+SGVOMJ,~> +q>UWn])Vg0r;HX6qY^B58$;m=KuX7P#5PbpQ]!7@CT_^?tG44?kl6/~> +q>V]=p&G':6K8%En,<:dm\fCD6i\Y+Y@4C0s+hOCG9?kc![@eu!4DkF9E/Q+&6q!k!'/D!<8mlW +kM#t9E'3dmp$qAJJ,~> +q>V]=p](9GDX%3#oD\dio"=JeC)p1F_M5`'s.iFrQV]S$3*&7p4M!Wq4$5V]FoR=a8V:D.0O +q>V]=q#CBPMXCHCp&>!koZ6Y#LIcI\cCN)Ws0ZfmX)VEP?$Be0@Cfkf?t!JHO8kk_CRT]V=+'"g +Q0nVOnEBoPVM=mGq"O+SJ,~> +rr3#[cMIPIiKWm4W@c!erp]pe&VCC,efk(rb-k\lk4(5-!"8p[!4;e +rr3#agA:gUkcOLW^0]1drq-3i&tq[Ri(kjbf>iT)m.FmF2FKSfJNUP,'fS-84>gE;BM5K-YVe;A +Zn`u*s5WMGrrr#Ys8U!>li2J~> +rr3#eiVNQ\m(E&lb'htCrq??k'!l2Gk&=:,hpS$in+VB:>\IMQJRQ0!'jY0S@9e2cKPnL'^KXsW +_HB^Es60"Prrr)_s8UBXli2J~> +rr3/[aT);7o_SS+OT<8uBbm0;s7>%Gdi8>hEu"`_Z)ohgMjt$'!4i.G +rr3/bec5[FpA4e.X#n].N(pVXs7PIQhG5X^Q:`\o`5#nMVmJ`OJNUV.(csd+VF!6u5WLSRSc@<\ +g],i(!Uf+9s*t~> +rr3/gh#IENq"k"0]3s=lU2IgIs7bdXjDe+*WGPUGccq#Q\&)]aJRQ6#s'QV.[qB#NA6rD?YQ*M, +iW%bVG2`"*QMULY!V,LAs*t~> +qYp_qM#[MGkl1T#rqQNd0E>J[IP[l$s,]C4GQ7^E%KQP0QJE1)!4i.JO6nq?9o&iN!-3)[2Wk&> +rqZTY+DUfRWm9c,J,~> +qYp`1V#UJfmJd,)rqcZi:JNU_1*]lDF4#*c*BM*KF3Ai4I +PWECBs8W)qs6`mHr;XLbk5Tr~> +qYp`>[f?C%nc&P-rql`lG +qYpllp&G%t4S\s[EcY[Gf1#65q.G[A2ckVE2c2#[IU*>a8,^&S08$2so92^n_XkPp/I5MeI% +!79nRZi9t.qYC0d?_?K\J,~> +qYplpp](8HCARtsjo58q_hHk(3&4J!R"WfcmUInNA2l\1:ej$t49.J94T@M-4T@M949.I@4;Kt< +6T[CeA6UirmJihOD +qYplqq#CA`LAV#>lMgf!c^a"W?!2==XIIlBnUO\aJmMkkEc>C4@/s^-@/s^"@K0a.@/s]5@2<6X +Amf%NJU1LJnc,n2M!KIj<8d8Hci3qJr;6NkS\sUiJ,~> +s8W,\qYqG!JH#Hs,MW7qr;Zfh0E>LS!!"_.GnaQP\,H@-!OMh-!s8/r!BVrVm&mq>^Juhs15l~> +s8N,dlh^W&YFb^k?!$+er;HZqp0fn6[OWb3jI&Yno>ijN4?,:H49@Q(3rV5A48V,E4#o>`4?GY$ +49[o03]oJcqE+pE5 +s8W,fqYqVNYl=TJGNo/*rVuomIpJV_;c.r,XDXL!dTp0f??t!JNojIl.@)?=R?X-q8@2`Khe\P[$D/EEb +s8W,;"98A_nb`>)qCNQ +s8N8Odf9@6p&"b1qd*%Xp2*R\s7kU-rOFC-@>?Hj@HYI-;SIuC3ANSY497E"p,iC81->Cr#<>AI +Ai_h'3VtoD4f+#q2)7-QrB( +s8N8WgAh3Bp\Xt3r-WJIpk`tMs8(p;rPh`5J"BYCJ*bC&Em((X?p0e#.>%%8:#@;2N +K3qkb?Me.8@^_t:>?P;1@0^1IXj(Td='YW2(L!E]CL1=Y?X[AN@:KF>gLZCL"a7E;e!@N>^HGFlMCJZk)I7Xj`J<7rrMrnlMlA~> +r;R!!M7rrhf'WJ:*Tl2X`W-":ge1&`s6kA=^i9>S*CBr01&n?U'2BG0!!*ldp&G.A7gAhj"td\] +!%r4FqZ$g(g495SLeddH"`_'[(4U2t!#&sp&I"8h'*&">!rr!^=%paoDGX!W)j$ +5kglQ(.TbO!"^dc!&jfJKj(P0!rsJ>E=AH9rs%S![/^*\nE'\#~> +r;R!"V9Ju>i:6gH+me=jdjZu_j`POus7;b3c]0P8:iA3K@fO5+8p=&j4?GUt4T@M?49diA>rau. +3r;$24'HVe4$,Ga4>gKnE\q-d?Sso)3]oJgj.A89Uj+j[2E*`[23Q'L9q78&3&WTU4>Vhc8O'8b +82W4h5!1f([S\l+]id2E:[u!'C$>!Au_-497B%r]C0BqE,u` +9056t3]oM]D>CV)9la;m4>gA$2.cd\U4L)<3A=D/P=DtWrs%eK`rH&!oB$"&~> +r;R!"\(CZ[k4JZQ+n+^rgJV.plApkas7NR_fVDJPEf41,J,d`$D38dD@:3L:@K0a4@0U+YHsU2g +?i"2%HAu?@?s[5L>CP:b>CEDt>@:cF@:<^1Z!DabP$MF#?"%,FVpoBuYbYN1>[(WF>+`$8A@ocr +>?bWJ@:")oEa+[KH!Xc^@/OF?>_gap?!LTA@:?^`/!F9(3@/s^3@3],r?t!GM +@:C0UZK)YPOREOc#=EFD +r;S;Hk4/K1,]s(dp\t3mpPa.mLB%T!"d?RF>@HLrW!`R#64b- +oiW8@U_Wq1$O$M1Aar1j +qu8;8p&F5WQ2gm\rr<#oVj.4U+N&uO&n>Qr45$R5XROo3]d.#I6L"c3'95^ +4?PX(l!cS:<'*0&2`s/XN;e2c6847#^1c[I$4uI6Xhc2peF#,^6=$SQ5fDh(E +MNokQ1f$+k4i6rD;M;SR1,MB\2D^3^E'A]Y9/JC`4$5B=mYErH]Q#_b3&s)`4$,P_=N>hM2)[Mm +4@1upW]3!u3]fGc4$5SeTYa8Z2`s)_4#oDc0o5!t3^H>#4$#We?ost[^-t&+D`0O>aF%L6s8TZd +dIq2tJH,&]r;6Kqr5n-`s*t~> +qu8;]G6922&VZEWfte8SrlGZnN]Uj$0ur5`>UA7o7X?sie>E+[_#DU]-KbAp@ck?=@\W>`Sj4CM/69>$bH^@p=ijj`Y3uN`o[oG@XlmhuBX* +TVtst>B+"V@F"\9F.:0d=BfEG>[!fpN+/*jDd-@N?t!;tnt0[1\6 +@00`:])H"u?XR;N?t!GOZH[/j?"%)K@:*GO=J+r,?Y+"^?smN?IpfM\b%Y4FMd0OudZoC-s8U-3 +g@p7oR/c^-r;6KqrR1#ns*t~> +!rgX8qu6upM7rr/%9if2q#::7\I]1VNW9'%q4!?,s)J)>,:*GE!s:@q!!!8),SRolR2H)u1B7D!Z7H!Cs6iSn?AJL[(8P[K +HN3PI%7c?f!!%^:!$^G&M(UlNrW!`l3<0&As-uDCCEENV0J8H7]/qZ$T8K'!#p +(si'Y!WE#Zs*t~> +!rh!Fqu6usUs8qg7Y1U>qYpLHb"+t@W&6;qqQm*fs-,8i<`_+:;8%cJC>-Ni1c7KY4?>Pd3EFVX +9J8=i4?RpMCP=c6\,:D)2c2Ls0Qs9^9"Fn`5<`UH3'0F@=%gg[TTOK`B"fp]jD*+u`B.kl65r:N,k)t,2s2.Jk +Mo-ehD#`bbqu?]GTBlNX:>5RE!WE#Zs*t~> +!rh6Pqu6ut[b(Q7Bpo#$qYpLHe8&dG\6E(8qnfi4s/9("G'@+qElt"_L>gBf>$GNF@:3JO?Zt2Y +DH:(S@:=IhLRhd_`;G^!?#j4[=-'e)CrZFOA7L1(?!q3dGAYq2^i3eDJ6ZAtd!]?;s7MIiS?bss +;obVDXoJ-gBoKQ3>#qqa??Y`9[XNqA>[:EYKj@ops2'YNUi'46I",O0S,^lVG-$C!>ZtQE>(6+e +@st;<;dG:%q@[P;T?!1`F@9eB3Lge*aK2tumAQrJglDBfms3>Ii +U!?A1M#Zo1r;ZfPZL@h*E8p`o!WE#Zs*t~> +#5k[^s8V9Uqu8Y"-#EV06&,C=s2i@^IfKIsK)bmqs4;%?c;O]C'Ij(_0Bfek-CA]O!!WQ+!!Us$ +7QQfq"TSTIrW%#+m=SB7aqOgY4W4;#On=WPX7p6,!+87r!*9-7GdI4<"TVtS!!#Ug^nemJdP;,/ +^(p\imG48?nb$-2:rE>6"gH*VR/d,(&0l`\!!$5U2fSNkQn'Yh-3+#oU)4cEs4g3qD))(k.:`V_ +IfJ8++C7D6!!t1_!$17M-Qd5'rW"GZ'*&9Ki&hWpQNmKj$j?V2GQ3daEm$3TF-rs%5[nc.1(pu)1&~> +#5uF%s8VK]qu6lQ=c`UWVI[I*])Ul7>EE8O2-Gbr +2P'm1IoM)>2ENd$68ha.gfd[>GrIfD7R]+!b3*M3Q*3D32aKPc2O=BDAWmk]@59WHHn@+ +#5uj5s8VTbqu6lXGbkB"M7!9^s4o@.YZOf)Z;t&-s5p)`iKIDLBR3icIdka1H,$4Y>[h2N?tABY +N.o!V?X6oZ?=.&D^\"jta51T6?AEE([*Qpf[)KH +?X0f7l^)a`MHjOnHY-N(nDee9V3>1m?>4(VA^p(%D5k6Z?J6?**PZ:kcs6e%V +s5mukYQ'8of_b[Qkfic#jh1KKs*t~> +rVm)r@cIFep&+ghFliH!RK,JAlYjT=s7(Sbl"'hpiD:]N]A8,tO5s7+Xus*Oe[]dWp]a7lIHm/MqC$B.sb!+#8@Cs)dZ$it*6! +!"7iANI'qgGT%/8,rVuHpe'%p$FI9/5uNJ.pb(6(#f1=#:k0;!!#9$(+-s!YWbh.:&k9-^DT5is +8V#pqYDfEZi?2Fq"t'ml+?]Js*t~> +rVm)tL["j.A]Nn46G76QZF +/Mg;ZM.aa+j(1/rE\]U;RW(K.p[M]W??Rn^.Xktn9BcDE6!]pL1brj.9j,jC_eXMNFtP;'c;8<; +s8V90qtj_\`W*!8qYU9om`YFas*t~> +rVm)uSaHIVq>L[=bd?>\q$-TVDgC(:cA.SAOB,;Rf5QN0 +s8VH>r;:tMd/UbeqtpBpn^[Kos*t~> +rVpL/nbrLR-Fj*Tq>L?nn!tiFT6GDh#IEKf(]2T!*fGq!1s2i>hnTD=U?eNK`Eq/s7Osus,-j[U6P]YU]9Gldf5C/ +!.9=t!,h_=Q-0-N(B?d\!!"%e[T]7%dNnlB$0'G6r(9ZTs7>X3s*t~> +rVpL/p&>!\=ip^Cqu6WqoW?I>THd)+o=j:eYQtLpAZW)JTs7tdAs0l6D`kGPS`rGJZj8Z\u +?EUP9=Jc#B^#&eHE*eI0:g.l!d[@uPj*+dUQ=+'#`kmbKs8T9s*t~> +!6"a6#5b=Us4/s[F"RluZ'9E7HUs7QBks3l@qs-IfIMoci=%>_ +!7L`D#5l*rs57A1qu8D!AsiUq*anaBqtU$faA#:LRk6AAs5hS^s2nD7WOXN6GQ6mQirA%H8=S=* +,(T^bjo59*Z>-94F=(i$s7lTns4s0Ys0*JHs8M'Vs8Vi"Z2F8P +!8@;L#5lR.s5nj_qu8D*Juep\8q$L7qt^-hdr0'OY#STWs681qs4)@0\].QMOoOe#kl9gpCTcW4 +9UPkQlMgf/_1oDqN_bK/s7uZos5U9)s1_'Ms8M6\s8Vo3_#hIIs8UTorQ85C +^=6+c`rH"janj^t:km>1;2b85[__(hFA[29@p3RKT_%>GEUN`( +"nD']s2i=8s*t~> +"M+R4r:^!e#1tKCs4Dqgrr3;sq#@Jt8H6XLG5hLrjP9ck!".2t%6jOds5qu6bmsf7n1u!0s8VTB +s6`&NOoJeqa8c2=o`+rm3Muhk+N"$U#3(res4nicqYp`2`;f[6JGT9PhTu0#Cf^T9rqucq$0U%@ +s(Nb9s8DoqrsA;9lMm4OT`=l^rr6-j_rUiX!)*@`S)=8Gr6*Xj])Vigs,ElTs8KF.s0_n-OmtV' +huE`$TB46.!)(NQ%'9L/eXPOh)ZV/C9`SZ&s7=:`s(MI$qh5#[rVuoqr;Z(VG5D)HIJWsEkNpq& +J,~> +"Ng]Dr:p-g#2rn7s5BU=rr30QM^T9S,3-cm-ra/ +J,~> +"OmDNrV?&?UBnuQbs6o1Oi+cW0p475Cs8VfV +s7M.Q]DnC6h#@<[q#CBd$1$UMs.l"]s8MurrsA5[ +rr8[:li6t`rr3 +rr3/\Z2FY$rVca&rVlhj&C:CHf),IH(>nldWW5K_opXS6s80ggs/5o.p%3^;rr3;\bl?cZ(!?Qf +\GlLEn_=*DE\5lBcCt.8s8Muss3*mUs88D_qu6ldPg07#Yikl_"kDE.s0h=krrq0*s8TBsqYpc\ +d/3j_QMgX[#5$F=s1Tl9qu8nCT@j1c!20Alo_eahq5D(.dhNYus5s:[s7WOis2#'F]Dp71rVunn +D;<;7!.Y$8H0YG0e;rGO2#o]9_J7R!rs@3Ls*"HLs5.kArr3<(rVu@iGlRfji77jX~> +rr3/c_u9W7rVccrrWiJ48D=+:i;ETS(?YGm^+XI%pp/oZs8:C*s1B[Eq"L;qrr3;df`18H9\9?s2X[+rrqH=s8U$GqYpcc +g\h*#Y5S7t#5@!Ms34a.qu8nI[Gh/9/[k]Zp\k-lqRk,Rh`j[3s6Tabs7j@>s3WMRc2ZPXrr<#/ +O6"qK,+JV9R.((ThPoT+>8LfKd>cu]rs@QXs-GHns5oNurr<#t#QOCGQiI*@kLKT_~> +rr3/gcMdeBrr)lsrWiJBCuPEgjo,2Y(@(brb#aQ!q7u1ns8:[8s2e&JqY78>rr3;ihuE.qDVtKD +e,K@Sp#uGUW.!h.iPk`orsAZ(s5/dns8Bh3qu6ll^#8qccLC]1"m"qJs3gQ9rrqWHs8UE_qYpcf +iVif2^&@j.#5I9Ts4;S]qu8nL`970VL?nqo[Rkj^W*+s7$$fs7smZs4UOTfDjjnrr<#< +V +qYpWOZi'_##4U(=s.0tIqu6loX4IUBuqXaae +UIb+Qrrr=^o)JRVqYpWgUZ2"I!P%Rks8UIGrrLU"qYp`Wb5VFk^&%a5m'69alB(Q5rs&.nj8\%' +`r#c?qjs\bl7%VfrsAF^Q2'qk)!1esrr3?&SpfbZ,QOhDkh5t8(UnS%s%`W?s6[;es8VGhkl7U^ +N;rqGqtg +qYpWX`r5f7#5$^Ls0P;Iqu6lq^u57D)N4Lm$MCLCs5,qFs8V`frr3;bgAh1n=n;Uhqu6U"qtC'i +\T@Q?rrr>#p&Fp]qYpWj\`rhf!Qjp+rrq04s8Up5qYp`_f)G^,bkh>DnAG&$n#H'Xrs&51l2Tpa +e,0.Lr3X*9mou[drsAM$Y57lb7I:'Rrr3?'[@?OH:FX!WmGe-F(W_rgs*,BCs74;*s8VT*mJjmC +U]:Abr;-EoXNf;qJ,~> +qYpW]dJ`tB#57*Us2&O-qu6lrbiSl]7\T_Z$MM-^s5d^[H9f)#CNo?R13o"4Vmrs&;?mJlO1 +h#%*Ur56VUnp7eBrsAP6^&.SAB^l'$rr3?'_lrRrEDjsZn`]uP(Xf>8s,odIs7Fe8s8V]9nc-d* +[K$:"r;-Eo][t^6J,~> +qYp`hir8u?`;9K +qYp`kl2L_Lde`tJiOAIZfkosMrs&)&huE"hc27MFr7Ks-rbo":rrqZFrr9="qYp`qpAb0PX7lPp +n]q-hrrM$9pAY0\iqEBVn[S>nqW[nSrs%tpkPtRtrVQU!q3oA(p3jpWrs&@rV#11MGl.LGr2PkE +s(YTqqu6l@M:V^00>RJb#56R +qYp`mmJd.Tg\UpSkJ[)oi/-jurs&28jo=b5f),IOrSZi#\oZ$_,qs=7Xrs&&,li7"/rVQU!qQ80Fpm9A)rs&D/[J^&uOSf%_rOSio +s+Y^]qu6lJTABO\=3URA#5?pGs5/Ulbl<1~> +pAYd +p%SIjq2"J=r9XCZrs&16]`7uYnbW7hDI!5A[B06)#&$p#s.su5qu6l?<7_)tB^GWr#4J8Ss7a5# +d/SU~> +pAY<_df9@?mJ?hehj!a4m`#&"rs&.hf)PZ]n,*+hrk-tbrmU0/rrMogpAY0kp%JCdrqjD/!pmeu +p\tHpV"4Q`nbr@b#5F8's8LgHqYp_\K)bkj_#"'8N-k'o\sW6hrs$r"huDJinGE4io=+>kq98Z] +s*t~> +pAY +o)AaI_Y4!5eqj)#rpopc!rAGJp\tqYp`H +CZ5 +o)AaQd.[JCi2$2Krq6-f!rTFkp\t +o)AaVg%PFLk-b'crqQ?i!rTq'p\t +o)ApnrVuoEXo8"o!VMJ(s7-*iq>Bsd"n_]ls,c%4s8VWhrrnLPs8W&rrr3;so)J`<>Q=a#qYL3q +l?<+*rVOb;J,~> +o)ApnrVuoP_>X-.!V`ODs7-*iqY^'e"nqlos/P/VrsAAjs8T+(s8W&rrr3 +o)Jahs8N/[c2RJ;!Vs9Ws7-*ir;H?h"o/#qs17Iks8Vfmrrp!Ls8W)trr3<"p](8sRK*J,~> +mf*=`p@eLerq1jBi;WuNqZ$B5n,!(apAb-n_ThrWs7lWo!O8'hrrrDrs8V'"b5Zt~> +mf*=aq"F^grqD!Di;WuRr;ZZFo(r@ip\=dgdFnBr"oA&ps2;2=rrrDts8V<5b5Zt~> +mf*=bq=aghrqM'Ei;WuTrVucOp%n[lq>1-kg#2`,"oJ/rs3JLWrrrDus8VKCb5Zt~> +JcE@^!rBq$pAY +JcE@^!rLI7pAY<[mJm4;o_SRkkMZC?i77](!Vu?0s*t~> +JcE@^!rUjDpAY<`nGiOEpA4dmlfS6Ik2#n6!W)K3s*t~> +JcD_L!Q4f#~> +JcD_L!RgQ4rrMQN_>f#~> +JcD_L!S[2>rrMZV_>f#~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC]/!WDloo`Fpcrn%1#~> +JcC]/!WDopp]C +JcC]/!WN#rq#UBkf)L7~> +o`#0fUQC_)NjJWOrrLNapqm6Oa4K>GnG`O7_Yh:P^[(Ol!Tq,o_Z@O?p&>62Ng,ckRcj,=!S,$c +_ZI]srU^$ilG!26!Q!=`rrVr>_ +o`#0i\Z2d6WQ"f(rrLp%psB5keD]ZfnG`OCd/;8lcLCK+!US)/d/hP_p&>6AW3*2'ZL.)[!T;?( +d/q\Grq$-jn'1dX!RTa$rrW#KcfrgXc0Y<,!U7r.d/hS]n,Empikq(&>XLkF;eL]Ycg0uu!Sa^T +XT>E^p&BO~> +o`#0k`k/pt\^:l(h<42%nG`OJg&0P)fCSY7!V"_=g&]gtp&>6K\\5\h_=6mm!Ti#6 +g&fsarU^$io%3fn!SQT3rrW&Tg$.2kfC8Y:!U\P;g&]mtn,Emqkfp,eHY6u'FG-*kfC/,,!TLck +]`G_/p&BO~> +o`"rm"8r3#&(9tI!WFtM!!WQ>-VJZkp%/1`;u-IoC\7W,G5;1=e+WeBkpH<.!.sY=!(Qkd!^Menc&^dY?hk7!!4Hcd-pu7:&Ftk>P8#H~> +o`#033&!-E014RarrHRZpb2q+2,%1sQcJjlrrIBpr%J.!M=gfKOs9iY!\ZLhpAYBd<\?0a1+o3e +rrI'hr\+C+19U6K!Oj3L0EE\Aqu6`Y;(1Z_!?\9:rrJT8r%J."Zgn&#qSInX0f1gLr]:?F3&WNL +=d%S/rrI +o`#0?>uk*2]+hKX3pb7rrJ<]r)WnpT_/6bVG-qi!`iRepAYBgG#_[J=B2Zp +rrJ$Vr`9/$=hXG,!Q7V. +o`"o!qZ$VSn,EANnGiXs15P8hrrBY,!!*]"pAY0T+8Z$=<;ZCh!4D\(!C6;Grr>jl!!*@so`"og +q>^Lhqu6]R.-CR1PktC[K_bZKU%83b]0QMg!!$R!rrLC]qu?a,k4\h*~> +o`"rH0`=*70r=@=!Ga[h4:"#.2DHmNA#8\frrL7ur&b$A8b2TT!p`fFrB(-&Ve49IZ&-Ah6l +!np7)r]C6C8+$$MJ,~> +o`"r^=8cP.=LR\u!JatT@0g7I>Zb$;J@5"ArrLVQr*]Y7C\7?#!q15;rF#b2Pl:=U!RY0N@00Pe +q="=aP$S#p!aT9Ro`"s5k8C@LrsJ,~> +p&>'E'`.k21&:>=!'T`M![aoBp\t9X.f',FWV6>l[e]t(TCr3a;>U=o"2++&!)NFk!=ZU5rrAqm +!!#^irrLt)k5YLHqYpPKq>^Mho`"s]Ep`o-BCPp$Jbf?HLA(Xt~> +p&>*P8iZc3!]XWbnG`N)3:]083A`Zu^&.R(!ps5Nr&b!=^%VI,`\[NT!A_+VrrIF(rB(-A50WKq +!I-R$49@E-bOtl9].NqC!B53!rrV=e2 +p&>*VD-m0L!a^ESnG`NE?1MD-?<^]\b5D#6!qCVBr*]V3anG`8d9?HV!EmA6rrJNoPs<5&/.!OGo+@0'TOo`#'fW*ih9nmMQ"TCDj^YutK5 +@0'Z@pA]X~> +p&>#\q>^Ns]C>h#4m`4N!bC]mrr@4&=!2fSm +!)3:i!T#6f!!&8[rr@`K!!&_crrMCSm/R-?nc&XW3r/gW48ejQJ,~> +p&>&t0`4$74$(RSrrHmpmlU\22MgqurrJK?r&b!9?m21!P9r]497Baqu6`[>;bY-!A(ALrrJfJr&b!:\+Tb'mrL6Fn2p_&U%/-anRjZU49@?R +rV->B~> +p&>'.=SlM-@+FcH!JatL@09e?TChmX!N]B#@0'VppAY/^?2\15>^#?)rrVFu?Mn44=JYEc!Kpac +@00_Of(T+EaAr.H!F:ibrrVM4>NoPs<5&/.!OGo+@0'TOp&>-bNET`Z@0'?6nc&[^K3J1]!aCBW +p]#a~> +pAY0j0)5JI=n)Fk4mN(K5j\:G!OrF4!!*tlq#:BY'`.k1>P8!rGPM4>(@(Dh!)N@i!@-7krrAqm +!!#^irrLq'k5YLHqYpPKq>^MhpAY0[5jSINM"1KF^%hX/$F]^/J,~> +pAY3l?T@pF!B#DsrrHmpmQ:S412cUVrrU;/3;kr@2bW3+rrVR\3W2&@07rls!gbc+r&b$A:%.TO +!I-R"49@<=iV3?Q].NqC!B53!rrV:`0`!^.3Vki<48Co<.]rRI!MM7G497:JpAY6bD)49L49di+ +2DmBO3rV5B/>Vh9!mEPar&b$?6HAj#J,~> +pAY3mIU;n[!F2#]rrIm\mU63)=c2hGrrUY]?N":6?#Aj$rrV\,?N":5K-=9"7q=O@/448?s[)B +>[Ce:@0'?8nc&[A?"!S=!a]Kep]#a~> +pAY0/"8Mot*S^,a!'TTI!CQ;NrrM^Lq>^MXq#:>YqZ$X#WV6>mo/cXH!1iWZ!)N=h!A34(rrAqm +!!#^irrV.=$MtJ<'Fk06!!&8[rr@`K!!&_errN$ip&G9t%icu;&Hht3!2B#`!+5L$!,2-,J,~> +pAY3>4?NF&!]Em9nc&W*3;blC3\`#@jS/MoIJ\FKS"K/ +pAY3G@:8t@!aKd1nc&WF?2S+8?W^B2=^,8/@09n?MY-`E!r%=NrF#b8?G$"4!khrKra>k8A'4NF +!r.CNqI'D0_XRR+P$Rll!aL-=q#:B9 +pAY,&pAb2Wnc&SPqZ$g5;dWj'1(!XS!,MB0!.=VC!DE:brr>gk!!+88pAY,spAb1TnG`Jap&G+[ +m.pY]VYU8m9`+hkps@"W`raSK#l=T',b(\.UB-k:qYpPKq>^Mhp\t5FpAbX5@%"d\ld`nOG<,a) +W:Krhk6q%b!?Bnis*t~> +pAY/K2YoN;4#X21rrHmprB(BH8pc5DFCINk3;P`=4#;olrrSZK48h8C0Q[-errI@"rB(->UK-/c7^32g5)u!rC["qpY`%W^8`E49IKDZb-+F!OLe^rrJfJ +r&b!:\+fn(TJ\e-4:aM17tn4oi:,XO]pECh2SJ\]!prE +pAY/b>l%k1?sLA7rrIm\rF$">Cm:HZO+:eE?M\(3?s9?#rrT?/@/XL8=,m.RrrJ9crF#b5G5(_1 +!mY4]qI'D1L@G3DP$Rik!aCNRq>UK:fuX;!q9l2qI'G2F6WK"J,~> +p\t9S-2.B?8G)KQ!'U2Z#VtTCs7PU*RkXU;!jf!!,g]qYpPmq>^Lhnc&X%$i9o)55FaK!/11K!292f!R2,M!!<@7g&(UF"7Wfu](5k$NV3>P +U%nY<~> +p\t<[=#Ke9!\eQeo)A`+3;krI1h,hOs7l$=ZXPjOq`Fp?3lLjo!o?=+rB(-@7Fq>8!nU+(rB(*= +O7iMRM(n`f!]`Tnnc&W72u#K;4#(sLqYpT./c7^32g4`k!m="mrB(-:C\mT$!MM7G497:Jq#:EK +6T4g("?/H"ir&WP"8'Z]b4>Q5V`=H6!A_.Zs*t~> +p\t<_G$FcN!`t9To)A`G?2\1>>Cc5Cs7u3H^jfWpqdBP4@*eZK!omp#rF#b6C#8^d!o@g"rF#_3 +V=jihTNCqt!a]Kknc&WQ?2%b/=HN1OrrL2@r*]V3On&GQeS&:f@00Seqsj[eZWR-6!F*Pl.q4?=BMirV?Hqp=#8Uo)Aa"?2.h/=iL19J,~> +p\t5Zo`,!-o)A\QqZ$XPkPP8\qi_]h!!,%Qq>UF^q>^MXqYpPYq>^N>pAY0P%e]l&DXm`,:\4Ve +AbuE,VYU8m9_&,`\-i*5!BKcArr@`K!!&_frr?X+!!*S.o`"skrUTsg3;*=Q5lLNYJ,~> +p\t;t2*1Oq!]rHgo)A`+3;kr@1h,hKrr`2#8i?K.!]FTbq>UJ62uGc=0<4mK!j"(;rB(*@g%PFI +kXIT.49@T"OR`>OGW5@Z!]r#lqYpT./c7^32g4`k!m*hjrB(-;BD1lq!MM7G497:Jq#:AN1Aa08 +2atFPs8W)hrrH^gpcJU:D>j;1J,~> +p\t[[A9!aoBfo)A`G?2\15>Cc5?rr`54D-QmG!aC6Pq>UJR?2S+3=1\8.!P;G2@0'`npAY3\ +C1$aE!El;irrJ9gpL+,2B3tOF!a13Nnc&Wr=SuS.>K-C;!M3Hk@00_J +an5W5rpp'iK3S+Z!aUW]q>Ys~> +q#:Be8bE&`DY!f-4o53[1$8<3!Queb!!'1trrA_g!!+qKr;Qfk9D\\i1%Y,=!1WW]!ANX+rr>jd +!!%!8rrAqm!!#^_rrKV:qZ$XWoC;h\K_bZKU&"]hi=,P_! +q#:EiE\[MT!BE4>4977!o)A`+3;kr@1h,hIrrUhT2u>]<2o5=i!OX]\49@KPp\b$mpiJ=j49@KN +p@eLeZ8DMB!BW=?49@?Hlgk&VGW5:X!Aor9rrK_`r&b!=G4GS6a[A/f49@Ys~> +q#:EjNEH-f!FK75@0'Q-o)A`G?2\15>Cc5=rrV)%?2J%2?-N-E!Q/(<@00_cq#(-nq2SYW@00_b +q"F^g^g$bG!FT74@00V\n+-JZP$R`h!F)GurrL2@r*]V3On&GQdq<"c@00Sbp[S7aZWR-6!F*P= +rrVS%@/OF7?t.C@rrUS[?N+@6?s`e?!aoHpq>Ys~> +q#:?q>^Liq>UKS)>X=5ci!eCdJe!)N.c!0$jU!2fSm!)2q_!OrL6!!,+Onc&TBq>^Mhq>UGVq#CDIir9!lqu?d1/ctqN!,ME1 +J,~> +q#:EJ4$*@'"#jCY3W;,B3_o8;rrHmprB(-<@dNmi!mCrrHLer]C9D87+=T49@T#]CPt&GW5L^!'C*@!]i3:r;Qf0/c7^32g4`k!m*hjrB(-;BD1lq +!MM7G497:Jq>UJq2u>]<1S<\,!K8]249IW:?U"EN!B,r5s*t~> +q#:EQ?srtB"'p1k?iFI8?Z>]0rrIm\rF#b3JFN@6!n:jhr*]V2Ono"Ylu?A0@0'cpr;QiX@:9%B +!EQ`'rrIUTra>n:C49If@00h?aR]?3P$R`h!af0Ar;Qf=UK+?2J%2>-d/f!MWWo@09kPI:E.`!F2Dqs*t~> +q#:>:qu?d&Ps"pD!1rf^!'U2Z!AWa2rr@'8!!+5+q>UG(q>^M7r;QbOqZ$X+a7fN6]*\B8!G$l\ +!!,smoD\edqZ-Wtq>^NtP5YC\VYU8m9_&,`\-i*5!BKcArr@`K!!&_grr>Xe!!+J/j8T/9,5_EB +6^S)U!!+P6qYu'~> +q#:A[1]BK>3C0f]2#TN;348AX!Ga[n49@?Km.^M\Otlks!]F!Fq>UJM0`4$62j+%4uk\%49@K(XSr/"].NqC!B52lrrU;13W2&A1M?FO +rrJfJr&b!:\,$%)F>j%Z!]F3Jj8T2B<&X_<">ar#5!/a+!]=0MqYu'~> +q#:Ao>5hq5?Y-s)>Q%t2?GlC7!JatZ@00Y`nFuq`Vc`k*!aKg:q>UJc=8ZJ-?)IQ"!OQ&/@00bL +h"LaLeRW%d@09i.Z<$p4!a:cboD\iS?2S+4@pWO?@00bC]D_a1aAr.H!F:iXrrUY^?N":6=bQP> +rrKH.r*]V1`VKN7Na2Kj!aL!>j8T2GF^4oS"'UPsA,Tg;>C#f9s*t~> +q>UKe*;fd<-i%NS!!#7Trr>4Z!!+h:p\t95'`.k2$b6$4!35kq!@.:9rr=eN!!#mhrr?a0!!0jF +qZ$X%g%54D:\t+n%TsA>!!*>(rr2tqq>^Lhnc&X"$Msf(3V2e@!/11K!298h!VIc8!!%]3rrA\g +!!7]E'`.k1SGN89~> +q>UNi;*"V<">s9XN&LVs!B"]brrHmprB(-<@dNjh!n0e$rB(-A7*,3(!kgZVrB(->=8;ao!F[td +497*Zp&>)O1ct\!"?"KH4?oW=4#*GgrrKP`rB(39T(ku?r]C6C3OAS^J,~> +q>UNkF'noT"C$*JU0RY*!F(BOrrIm\rF#b3JFN=5!o.WurF#b6B[ceW!m4nXrF#b4GPM.:!InGS +@0'Glp&>&e>Q%t5>h@G5?iFI8?tJQnrrJ9grF#h9C7&U?r*]Y6ABOoO!Q\:=@0'Yrnc&[>B3tOF +!a13Nnc&Wr=SuS.>K-I=!r-tEr*]V.Zf:uc`**%I"BVl(D.!9N!af9MqYu'~> +q>UGfqZ$_/s1nj9!!*_No`"nSqZ$XOk4\fT5l(H\R/-a_jX^3.!=,e,rrKnAqZ$VVpAY0M-i^MhqYpT?'`.k2$Ff'q +!W"tW!! +q>UN)3BR4&"ZD2:cTXGi49@H3de*P?CH28T!]4BQpAY/11As?83WQD[rrVLk2#TN<3C(F[rrUM2 +3rV5C3]F&3rrV=`2#]T@3*>kLBJTNK!B$;:rrI@'rB(6C6dqnh48_2F2b2$js19l\497Banc&[4 +6ok3.!]+K_nc&W`1&O-71q3>]!n^.)rB(-@6ce +q>UN7?=5_k2?Y%C[rrUh_ +?iFI8?s^D;rrVM0>5hq6??l5AKN\7^!F2_trrJ9grF#k9BA9n!@/OF;?#%jgs2\4<@0'Yrnc&[> +B3tOF!a13Nnc&Wr=SuS.>K-I=!oIj#rF#b6B@>i?!rRgZra>t9C=rQX>5_k2=-W[\s*t~> +q>UFfqu?j$^]40\qZ$V?o`"nSqZ$XOk4\fTAGQ9+GPM1sP8B_qc1(u4ib!1`od"*OYD +F8Gq<-MR04!)NIl!slaC;#((n,1lk'q>^Lhnc&X"$Msf(3V2e@!/11K!298h!PJs>!!+D%j8T/- +"8i-$49,>eqZ$X*eGK8r~> +q>UJ<2#]TA4$:ggr*28\497+%o`"r-3;kr@1h,hFrrIs5r&b!5Qh^R^N\ros497-srr3"W2#TN< +2biE-rrTM`48q>H0pM_D3CVg%s*t~> +q>UJW>Q/%8?t%^frHhlL@0'H1o`"rI?2\15>Cc5:rrJ`rr*]V-X8)\qUKdY)!EZ,srrJfsrF#b5 +DX-rq!lA/Lra?"5W;lmr>@@G=!aU'Io`"rT?2\18?=qmjP?Ril#$H*2s3b:^rF#_4On&GQdq<"c +@00Sbp[S7aZWR-6!F*P>rrUbc?N":6>BoGnrrV4i@/aR=>)!"Vd9L)Y@00eLjSSt-~> +qYpT;(&S%7/c#GHK)5NK/*$=&!'U2Z!AWa1rr@qZ$aRjo=g-qZ$UlpAY0f:Ab(q +"hjs9b74@L!jl!!ESAs5l?;!!>:S`sV\D!)2q_!OrL6!!,+Onc&TBq>^MhqYpT1%f65, +1\0T+!,q`7"G?aSk:ui6!/UOPJ,~> +qYpWI9/li4#!$#ds8S]HrB(-=>j:q]!Ga[n49@?Km.UG\Qo@,*497!qq#:E@5W\j+"uKcSs7BbV +rB(*=GkV.=q0"Rn49ml3bl@^p6TP-.!]`K[o`"r:2uPiC3CD'kltA6Q49[KNpXDSjrB(*>G4GS6 +a[A/f49@ +qYpWQD-d-L#$u`Ts8T?,rF#b3HgUM+!JatZ@00Y`nFlk`X'K-3@0'?)q#:EIA7,:D#$QNFs7UtG +rF#_3OnSeVqN+kZ@0^.Mf)Pd,B4(XH!afH\o`"rT?2\19?=qghn:b*D@0KbaptTOhrF#_4On&GQ +dq<"c@00Sbp[S7aZWR-6!F*P>rrUed?N":6>(H>,rrK!&ra?%>?F0\3nUOjB@0'K;qu;0~> +qYpPBqZ$VHrr3#F#5\B#YP%nq4o53[1$830!."D@!-%`5!WFJC!!Bh4ZNL()!3Z%q!Rq/J!!,1M +rr2sVqZ$V$o`"neqZ$d*^An5d+Sc!=A%iBK!!#^_rrKV:qZ$XWoC;h\K_bZKU&+ci^(1#?!Aa0* +rrMC2qu?a(j8T&YD>O;6+Sks8J,~> +qYpSb0`=*717eFE!noq$rB(*;_Y*p0CH28T!]4BQpAY2]2`pt#!A'?-rrW1&3;krD3]P:^`'-3[ +497FWpAY3N4?NO)!]"E[rr3"22uPi>0SB#t!I-R%49ml6c2[h'<&OS9"[+VqbsaVj497Banc&[4 +6ok3.!]+K_nc&W`1&O-71q3>]!mO1orB(-<@e8[\!q08Lr]C6C6L"LL!KSi249@NBqY^AD~> +qYpSu=8cP.=g.i)!o[]trF#_1c1V);LL'je!aC3EpAY2q?"!V>!E>rkrrW1F?N"::?s_@_cspG] +@0'ZXpAY3T@UT1D!a10Krr3"O?2\14=ISm^!Kpae@0^+NfDkm7F^+cP"_(W*f4eRi@0'Yrnc&[> +B3tOF!a13Nnc&Wr=SuS.>K-I=!nV-mrF#b2JG&"'!qLS@ra>k9B'oTt!Mi`o@00eYqu$JE~> +qu6]^2>dFT#L<>K!VT4a!!-'tpAY+UqZ$XOk4\fTD#+,3G5)":M>@2RI/eir!!+#*pAY,7qZ$V@ +rVlk[qZ$X6cLq2;:\k%kXoA>$a;+OO!XCb!qZ$Uinc&X"$Msf(3V2e@!/11K!298h!PAj +qu6`d@l+*H!]`R"rr3&qF>3YU!]>B)pAY//3;kr@1h,hFrrS3<48h8B0:)A4!MhOL49R@,s.CtB +49@Q?o(N(aPViA%!]r3*rVlnu1]9E;2GMourrI@'rB(-C28K4k"4]n!4oIJG3^%.K3W2&@2g4`k +!m*hjrB(-;BD1lq!MM7G497:JqYpW@7QC?/!]=-DjSo:f3BI.%!B,-"rrU,)3W;/@3rm7ts*t~> +qu6`gJQi%]!afNtrr3&rN`c6g!aCrhpAY/K?2\15>Cc5:rrJp#r*]V,WqZMo[9EK:"B_f+YuUa2 +!afs>pAY/m>Q/%4?s9W0rrK]7rF#b4DW19g!Kpae@00hAbl7VEh.p5(rF#h:@YJZ+rF#_4On&GQ +dq<"c@00Sbp[S7aZWR-6!F*P>rrUbc?N":6>C#PqrrU&E?iFI7>`o!b!mbFaraGh7!71TCJ,~> +qu6Z(qZ$Xnq>LF_!!&/UrrLLMqZ$[Xkt([O!-Ir7!V%-,!!*ea +rVloY'Dhb0O7iMQ:\k%kU&FulW=e\$!)2q_!OrL6!!,+Onc&TBq>^MhqYpT>'Dhb1$bGF!!*]7" +!3H+u!'9uW!)rgqJ,~> +qu6]:2>oW=0mWZprrTMc3rV5C4%/*%rrHmprB(-<@dNgg!GsRi49@Q'X7uVqgcmju49RTVmW15` +4971$pAY3d:cSG:!]Wm2rVlra90)r5!ACJGrrI@'r&b!2[f-4-^-jmW49@T(48_2A2g4`k!m*hj +rB(-;BD1lq!MM7G497:JqYpWL9/lf3!]WWljSo710E"!62S]1i!GF=g497 +qu6]E>Q%t3=H`R[rrU&C@/aR9?tectrrIm\rF#b3JFN:4!JsqW@00hC]D)=,j()Qr@0BkhnVp`N +@0'K.pAY3fEaJ`R!a]a*rVlreD.!6M!EZl*rrJ9gr*]V*`;T];b@k2Y@0'\Br*]V3On&GQdq<"c +@00Sbp[S7aZWR-6!F*P>rrV(p?2\15?>.jLrrJHerF#_3bl%JAKj4La!F(fds*t~> +qu6Y"qZ$XPF8fqVE)R#=!!%B>rr>4Z!!+h:p\t9?)Z'L8$FKR-!V]=c!!3M7%/U#)]_;@+TE>#k +!=s#GCBA?d*;]^:3V2tE!)NFk!29>j!M0Db!!#^_rrKV:qZ$XWoC;h\K_bZKU&+cim3;B,!.j83 +!R;&M!!3:,DuOMQF=6qc!?0Dbs*t~> +qu6\I2>oW=2I_pMNWYGk69>'-!B6G?rrHmprB(-<@dNjh!npI/rB(-A6cSm#!r6snrB(3E7)hYV +r]C6C43[Eu!k(3Pr]C6C8<?497Banc&[46ok3. +!]+K_nc&W`1&O-71q3>]!qK>Lr&b!5TB6(Sfg@e!49IZ0JW]ql!gQqLrB(->9\o[IJ,~> +qu6\a>Q%t3>_&dPUB@EZARGCE!F2c#rrIm\rF#b3JFN=5!o\-(rF#b6B@6JR!rA!\r*]\@d:m"f +@00eDf(T+F`*d!P@00eNV#I+kUnMg9rF#b4K_Y9@!Kpad@0'BIr;Qi9?sWG6!F:iXrrUY^?N":6 +=bQP>rrKH.r*]V1`VTT9oQ=F:@0'E6jo5D@B3tRG"(5W,VZ*=lWHhhK@00\Oj8K".~> +r;QfY#jhTm0)bPE!'U2Z!AWa2rr@HC!!+/%pAY,UqZ$X!7Jd&c3plY@!)i.`!5S=.!)NFk!29;i +!/0qD!)2q_!OrL6!!,+Onc&TBq>^Mhq>UF\q>^ONlK8*HL\h&O!W)is!VucrMZ*R*~> +r;Qia69G*-!':$:!'0p=!]46^p\t803;kr@1h,hGrrJTDr&b$=;![iT!j"+1Aj6748_#;3;P`<2p_3t!I-R$497%Cqu6_k3]css!B52lrrU;13W2&A1M?FOrrJfJr&b!: +\,$%)DDh>S!]=ETk5PIV1&F'53;b]848_2B4#3Z2s*t~> +r;QieARPFE!+>_1!+,P2!aC*Pp\t8L?2\15>Cc5;rrK9)r*]Y3EUNQ#!k_WCrF#b:N*cHk!a1-I +pAY/X=o2Y)?2@t1?.elN!Kpad@0'BIqu6`(?sr\:!F:iXrrUY^?N":6=bQP>rrKH.r*]V1`VKN7 +M-Kmd!aC0Fk5PIg=SlM,?Mn(/@/OF7?s0r:s*t~> +r;QbPli7%hWV?Dm4o53[1$892!Q>ZI!!#R_rrL[nqZ$TsqZ$VBpAY07($ko#>k\0t:\k%kU&+ch +Gk:t99_&,`\-i*5!BKcArr@`K!!&_grr@lN!!%H1rrMd +r;Qhn3BQ[l!]`KYp\t803;kr@1h,hHrrUY@3W(u?2KSQk!oHs8r&asBrB(-C1n"(;!nBt'mQ:M/ +K(f3FGW5O_!A1eWrrSQD481i<2g4`k!m*hjrB(-;BD1lq!MM7G497:Jq>UJk3;Yf=24Wk0!r#bV +mQ:P+DY=#/J,~> +r;Qi+?XW>2!afH[p\t8L?2\15>Cc5`JFV!p+N/r*]S7rF#b8>HRW!!o7^!mU6-% +ReHa^P$Ruo!EI,8rrT9*@/"(1?'4[W!n1dgrF#b1K_P$:!OGo+@0'TOq>UK'?Me.3>H[/h!r7%I +mU60"M>.#LJ,~> +rVlop1[>#@?haR#4o53[1$8<3!SAt!!!&tirr>ph!!*\PpAY,ElMpr%iV3?P:\k%kU&+cipgWmr +!)2q_!OrL6!!,+Onc&TBq>^Mhq>UKK#l4N%"/P/\!Oi*q!!'h6s*t~> +rVlrs@l3R8!AB-#rrHmprB(-<@dNpj"6!KA4o@DC2SA\^!I?O!49.JA49@K3eFrnCTJ,[p!]Ws= +p\t8=2uGc=/[tTV"8R^/3qtf<2g4`k!m*hjrB(-;BD1lq!MM7G497:Jq>UNU69G*-!]iNUkl1\( +3:/g04#bLbs*t~> +rVlrsJ6M>K!EP]arrIm\rF#b3JFNC7"6Y#8@f0X8>fcR;!L$[a@/s^6@00bMh=gjLYu^7#!aTa2 +p\t8W?2S+3UN[AmkOF!afEVkl1\3 +?L;/&?sVFas*t~> +rVlo$"mZ-h(Y/<\!'U2Z!AWa6rrW2$*;KR8.eNB5!N-%n!!#.TrrML@l2UgGp\t4hq>^Mhq>UKm +>P8$s9_&,`\-i*5!BKcArr@`K!!&_grrN+,q#CF'Sb)j^r;QNl!)`"]!+u61J,~> +rVlr84ur!m!]Nj2q#:A13;kr@1h,hKrr`89;)A)3!]F6Vo`#!*4?E7"!B+]drrV^u2=3L-3]X57 +rrI@'r&b!3\,$%*r.$Ns497Banc&[46ok3.!]+K_nc&W`1&O-71q38[!JE9+49@H.[IaD!rVlWm +!I6Qh4976prr7K~> +rVlrC@p\P2!aT^*q#:AM?2\15>Cc5?rr`8EEa&?K!aU-Io`#!6@:8k=!F1BQrrVhA>jYr$?s^G= +rrJ9gr*]V+`VKN8r0UU]@0'Yrnc&[>B3tOF!a13Nnc&Wr=SuS.>K-F +rVlk4kl:^Nq#:=WqZ$XRkl(M`fptk=p](;koD\j`)>4%1O7rSR\ENto8,N)]!)NFk!292f!UE,I +!!#^_rrKV:qZ$XWoC;h\K_bZKU%nWga:S.I!X2rZp\t?ZLQ;?0rrLRdl2Uo#li7!8~> +rVlnY0Dmp42u#622EUh!!ACYOrrHmprB(-M\)"7Dq_rVHNqh+Td+49.J;2#oW649R]=nGiN=~> +rVlnnQA./@00MfrV6BnP$Ruo!EI,6rrVeL>5;S-?'4[W!n1dgrF#b1K_P$:!OGo+@0'TOq#:EO +BjLUE"(#K.jS/ZVn[,k*qYpWWDdE9LpKR])r*]_8DY*o.J,~> +rr3#R*;]^:7;D[2!btdCqZ$XRq>($j4o53a'Obri5rBYapAb2%nc&T-pAb3tiV*9O;YpFq,\gug +AcZQdqZ$X!]D2C+:\k%kU%eQflTk4F!)2q_!OrL6!!,+Onc&TBq>^Mhp\t5CpAbX;8WhElp@mjp +Rp76>IJNmCM#./R"_23AAcZd/q>^S[s8RT~> +rr3&\;)eG9!]G"WqMGB7ImQ3p49@KQqYC-lCH28T$9:b6P)!pc;E$#WH8b^a"#a2>Mu&;4N)Me949@N,bP;)0U4Z@c:.Pkk=\UbY%249@T0M"uo0OCpQO49R`*X8i3M~> +rr3&aEaAWP!aLYYqOdqbQY0_)@00beqt^6mLL'je$=7V@VOiWrF'VmUqdBP6UN(=^_5;!aoQ1q4IecKO4Rb"(&S=s*t~> +rr2tjqZ$X'chRM@qc3Ln!4I!!,.Nnc&U+pAb4pr:g3liXu%f!.ahD!1s#e!.+G?!)NFk +!29,d!RrRo!!#^_rrKV:qZ$XWoC;h\K_bZKU%eQfnjN-N"U,2>$4-k6!!%fNrrMOOqZ$V!p\t9,% +f65-4obP4~> +rr3#-1&X393C;HprrW.F0E"$53rmV&rrHmpr&b3G2`EWM1H%;i49@0Ko^Vq^d5C_^!]5?(p\t +rr3#:=oDb1?Y89lrrW._[[A9!`t'Knc&XC>PV\/>*]'\rrVS' +?N+@7?sBl0rrKu>r*]V-X8)\qP$Ruo!EI,4rr_A.=^q;;!F:iXrrUY^?N":6=bQP>rrKH.r*]V1 +`V9B6pPW,K@09e>?Y'.K#%h@Q>[(+6qYpWiLKXRa!F1ucrrU_a?N":7>)3.XJ,~> +s8N,s2#@7R;Z$4g!1Wfb!*f:!!'TWJ!ArO"rrMIBp](;kpAY,IqZ$X1e+`kCitM:i!?CA"rr>jk +!!&_crrLLoq>^Lhnc&X"$Msf(3V2e@!/11K!29,d!STBs!!&SdrrBe0!!'4rrr>(V!!3S=s*t~> +s8N/u@lXEL!\eotp\t<#2`gn"!B,N)rrHmpmQ:S51h5S8rrV_$2YoN:1:m2Z!hq\:r]C6A8`'4A +!pWB*K=#KnF.qYpWB3]d4%!AhUdrrHdirB(0A7*5IZ~> +s8N0!JR8:`!`tTap\t<2?"!V>!F2&grrIm\mU63*>Cl&.rrVeC>l%k0=i^79!ju?Bra>k7CZG0h +!q'o4rF#b7F7T/,!Kpad@0'BIp&>*RG?k&S!F:iXrrUY^?N":6=bQP>rrKH.r*]V1`V0<5l$lk2 +@JO:5@:3BXqYpWK?srqA!Em\@rrIgXrF#e7B[d!3~> +s8N,B"T&0!OnSeUh^&(!!?pJ!rr>4K!!--cmf*9>q#CFEhY7$NofDsM!(-AY!+Yj*!2]Mk!)NFk +!29&b!PT3D!!#^_rrKV:qZ$XWoC;h\K_bZKU%SEdgcFj'!<]G"rr?X-!!+G,pAY,Mq>^P;s*t~> +s8N/P4ZiX*!]r9?pAY3W<]0h-TBeh[< +49@N,_#"'3Lbnul!]=*FpAY/i3;bl?/sZHe~> +s8N/W@:9(C!ao6EpAY3[G$FoR!aKj7qYpSO?1;8*?s?m&na?DXZ;pd1!aBs9p\tQ%t2?'4[W!n1dgrF#b1K_P$:!OGo+@0'TOp&>-YL07jQ +@00eGbkh>?T3D2%!aL! +s8N(6qZ$X@i:[*M?hsa&PktC[4mi:O)4CBhrrKqHq>^M+pAY0$"T&0!WV-8kYPJ5!55G3Y:\k%k +U%A9b[0lg3!)2q_!OrL6!!,+Onc&TBq>^Mho`#!]@0Z3$!>EHLrrMI#qZ$V9p&>'R$i9o)-/j@~> +s8N+Y2Z5`>2,WT1rrIg2rB(-B2QciU!Ga[c49[f'1Jk@SmJd777lU?.!AKE)rrU2(3W2&@28/\_ +!l?rYrB(*=C\du2GW5O_!A1ePrrU2,2uYo?2g4`k!m*hjrB(-;BD1lq!MM7G497:Jo`#$bLHI?_ +49@H6dej%GnOkqA497+!p&>*Y76:B0!]='CJ,~> +s8N+p>lA(4>B9-(rrJWorF#b8?+p+7!JatO@0L%B=`M7UmJd7@C0gaG!EYoerrUSX?N":5>KZX= +!mP(ZrF#_4M#%&OP$Ruo!EI,1rrUS\?2e75?'4[W!n1dgrF#b1K_P$:!OGo+@0'TOo`#$dSmbdm +@00_OgACmOo57q6@0'E,p&>*]BOLdI!aKs9J,~> +!rq:,qZ$V!o`"s*"T&0"9)&8`!WG7O!!4Qph!4n>6Mg``#I!k$!-7r:!>OekrrMICqZ$X/d/*bB +:AOqjU%83aR0*^Mho)A`l1[tGG( +"97Xc2#TK:1k5/t!mEegrAt'7Er#V4!GXRc3s@W$1g6=/lMgm'1As<:3C1RVrrJ66rAt'@9CDKQ +!qB_TrAt'>7bmk?!I$I"3rpk@o)Ap!4?>Se2g4`k!m*ehrAt'9BD1lq!MM4F3rq.Ho)Am/A26)* +481i>4#BLZqu6]!2uPf>2ab[YrrIU+r&Xp7\:=~> +"97e3>5_h0>F>'_!nCaerEo\.NV`PP!JaqP?j0k@>C!@8lMgmB=oDb1?Y.OVrrJusrEo\5D=[B" +!qUnErEo\4C#]!h!Kp^c?ia3Eo)Ap1@:*GO?'4[W!n1aerEo\/KD4p9!O>f)?iaHMo)Am:JQZ8d +@.n"1>AN*mrrKc +!WSPa!!*,-o`"si.Jj)G"NUH?!WG7V!!`T/":$St\`r>X!/C@N!@7O9rrM'mqZ$V3oD\f2q>^M8 +qYpOjq>^Mhnc&WQ"TAB$8b)f][gN!4!BKcArr@`K!!&__rr_Yk56pi]!Y9hQr;Qfr2>[@S2#6eD +!4)G$!()2~> +"95S`3W;)A3]tFSrrW.'3;ko?3BksirrHjnpcA^E5W:0ie,FrrVCW3;ko> +161u+!g>E$r]:0B16_S7!I$I"3rpk@nc&co4>\uPF7K83a?qrc3s%0Mp@8.`TeQC+!Ah4Trt=k= +CdC*>1Gq'L2Dm?I2EFC#pAFplradqb3s%3KqXjdh`&9[T3rq6WJ,~> +"96,@?iFF7?X_=RrrW.F?2\.4?=VdfrrIjZpg=>9@q0)"V:5#!rrTN2>lJ"1=EXQ9rrVS)?2\.3 +=JPKf!iK4/ra5e7=Ju#q!KgXb?ia3Enc&d*@9[#?Nq*,Ndq2na?ijG_p[S7aZ<-s3!F!J4rt=tK +Lh:!u>$G6;>[(E8>[VP?ijJ_qt0micWjiU?iaMiJ,~> +!rpE(rKmYQS,;gW!Q(-"QiW>uqu6]%QMHmOQ+G)[m/?&G!p4N;rbDOISbE'amZIF7!Kc./rrV&G +Qi39QOg=u`rrKWpr0RMHg%#(Grg.)0B:&/g!oof:rKmYMYPReh!R6f*QiWH)mf*aLOB"%a*YBA? +.QV+5kPG2[p7mlNQiWJjoD\m[T9fDB!1/3~> +!rpiNrNH@,ZMa=o!RRtHYQ:f\qu6]7Y5,:*Y0,;GnbqSL!pl,1rf.#;[.aM#nuM\m!NP8QrrV;f +YPk[,X2P#7rrL3Dr3-4%ipcsNY_S6sYjq_pl*ISlYQCoCr:0dfg8t4V!NkDMrsdtfI:?AZ8lAhs +BSa+aqYpWl\ZPh7!NslBrrVc"Y5>GR~> +!rq,gr4i?Mr:Bphg:mL#!PIIirrLH\q7m0JeD9!QroO.]n#)oZUB.%)pAY0c]_oPG]B]"f!pd\; +rP/KIci3hA!S"j]^]D(2nG`X*Sti!nnc&[X_S?&b!klnWnc&XK^&5YH^?G"b%Hk^6qrrW#:^AYhJ^=r2Y!qaFGr4i +JcC]/#Q!iA`7F8CrR_("~> +JcC]/#Q+&OdbsWdrn%1#~> +JcC]/#Q42Wg?.u!rn%1#~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +JcC<$gAc[~> +N;j":]Y3[arri>M]#+1#rr^c`]C_p!J,~> +N;j"EeC=*Brri>\e(FKUrr_<2e+fa=J,~> +N;j"Ki8F@^rri>dhrFUnrr_WGi;08LJ,~> +qu6`hpAXU^"o.?DjmW)`rrVQDrU'UeX&rQPf`)*OOAooVir9+G=]XVWrrrDpoCDSR[Jta~> +qu6]kq=+Cfqsj.Cp&)],!qY^VmJd:0P*=hVrri8.O.>_!rr]fpOm_oB"8MWbq6^0P~> +qu6]mqsaUhr:T^Sq#/)0!qu-_mJd:AZa8oKrri;EZ+BSerr^TRZLdbh"8_ihqR$9Q~> +r;Ql_Jr&[_rs@emM/R*AHB>c1`W$&(Ea#g:rr]<(>0u7."1a\^hYdBVqiFcjkMlLDQ!%/Kq#:Zt +c(9T>J:sN9q7$BS~> +r;QlgXg.EfrsA/=ZD!h[W4(1L`W$&1UQj'krr^?+Pi1O#"4=]klMUYbr3qcYnDaHM\s& +r;Qlk`Q7`DrsA>Qah>9s_T^p6`W$&5^9cV^rr^r\Zg$HK"5hDLnGN:hrQMOXo]#lQca0qKq#:[! +kgIJi`Q-Ehr3u]V~> +r;Qks;c(*ursHbajmJd9h=^083rr\-S:W`P7"T+9\C$4LU".!+ljSAf_ +lAo:L;G^.c9ksR7s*t~> +r;Ql=OH%`]rsIJROH,B`OcGB[h8TBrhi3VumJd:0PEb"arr]TdN8+:1"T5`jSabY="1j\ZmeQkc +n[=aCNrG">Mk9jUs*t~> +r;QlNYcm!WrsIl$Z*:I;Z*:C6kJdH'l*%;1mJd:AZa8oTrr^EHY3,Z^"T?QL](G"^"4+ +rVm&rH<4:"r:^-u]3JH=@Y()?KkjlF`W$&;WdWgmrr]<)>L;@/"-Hbibl%JDqiFflkMlLDQTaJ,~> +rVm&uW03@FrV$7!e!6)XR'"- +rVm'!_QpPerq?@"i3]ep\&HeDa1J\F`W$&=fYd4Grr^r\Zg$HK"3n0YkPY>_rQMOXo]#lQca0qK +qYpoo^p12N^;\.1\&5ZSJ,~> +rVm&>?!LZ?ebB(Jh.U"qJC=DqrrV2mmed"bp@n%U!VZKjrrMilqYpWnoDA:^!VH9Nrs#N,>LEKI +o_JLgrq6*Urr\Be=j6gD"T+9\C$5Bn!VZ*Ors&/qs-?hijSSrbqMeKYB!U_$s8(-dr;QitnbMqZ +!r_lmrVlomqtU0lqY9md!r2?cp\t9erU^&>~> +rVm&SQ'@Q!jS/ZYka[m$XPs-WrrVN8o_\Xhq>0R[!Vu`nrrMroqYpWop\adc!VlTSrs$Q.Pi;Z? +q"Xjiq"sO["1OJXhYdBVr3qcYnGE4dq=j:V#5S8u]9AEGqu7'$[#gK@c1:l6qr-B/rrW2nqtL*l +rqZQlrrMupq#:Bmqt^6nqtL*arrMrpoDa=~> +rVm&^['[6Jm.^Man@>p4`9R@$rrVcLp\Xskqu#p_!W2lprrN#rqYpWqq>L'f!W)cVrs%/_Zg.Sh +qY:'kqYfm_"3n0YkPY>_rQMOXo_\Xhqt]XZ#5eH#d'L%Lqu7'&bH\Cag\(UHrT`SCrrMrnp\tUKnq=aggqssc;~> +rr33%P>bgt=I8d^"I3"jII?e.+460pG`9Z@s7s0oWStI"J,~> +rr33%\;uuEP.UJg"M0_ZWq>ua+5s],VmP1Ws813Xa6V0S^@o[`g"N^.Wlk8%\>Q=:mJd,/gU4#X +WPe?-s7j^Of\Wm0WPeH0s7O1DfDkmKd'9^Zb4bi7&G"&LY-Gn1s2^Chf#"A_Zet`]&cLChVPpo_ +s8W&F^!6&iX2Fl5rr]`oPMZ6;"T5`jSacXY%K+YYVkpfVrr;c5^>VleVNf[HSrS+`[V5hK* +s8W)D^YIPHVQ.Q*s7F@Fdes+E!nG*&J,~> +rVm&HYdV$HchIGBc`sgop\"P.lHI)\b2rX&r8,iRn__73q:X3WjiG6Ug&:<__8=Igrr4/(bJM'3 +ebB+DqUsUC*p=mX,aOTh\fsA'EeAB#Cl2CVoroD2:_TV9F +s8Cj%h"BC=ec#FG"3n0YkPY>_rQMOXo`"k"rSY`4^WP^I9P%cu*hq>^HQahYgA`3ciA +qu6f^ZEq(&p\tHieA]2>d-go52tY\Jl/0Fq`T7$YaMGgHq#CBXce@d8_SXO[rr<#tjibNU`7=V^ +s8Lj&k2jY!_q"J\pXmmOrVlfuimZD-~> +rr35_AQk%L;K(aorrhe4='ElAs)4`@<(fk_>,hPqJl--0>>0\CBi]+W9i+kmK4ReP;c[l"s6sPo +8kVu]GNo.oCfbC[9M\YgHhIF";cT%]s-$S`8PE%=s8UPe=]A-l9oo=V=^G]<9N,"s_#OH2QWm?\ +92f62s8%CCEd_(bPPtFZ"-Hbibl%JgqiFflkPtSNKih;L:K:V^pA]VA?fh=fnnM-Rs7)"N +rr35iRZk(_NhZ%=rri"kOd"Yps)5iBO,AdSPfNh"Y)SpPQ&Dg@SWKM0Mi4 +M3""Ps89$XUT9T:\GlF+"1OJXhYdC$r3qcYnGiO\Y`b'+N0':6q>[OWQgXnRpRdMIs7N^^Oc>9\ +QBm^%qu6c6OHR9Ns%)"?P)bK\Od=5ks5]T0SXE'TSeS_ +NKU40s88jXTp:OpOccR;s/_3JmJm4\S<'h'~> +rr35n\?j?"YJ'T(rri)2ZErcfs)6GrYcOq1[+PEU`ilqk[&qCG]!8oTXfet8`ji1RYd(q7s7j+, +XK8V2_=dj%] +rr35'rS)>cs1297CoXUT='XDUKi_P`<_B4gBj=hXR#Gs8I.mXKd@]<2fiaE*HI[Q&T0V=h+Lm='CpifjS$+Y+L.4s5%Ko=_EPF>b_8!=^>6bS8qh: +FoVKB<*OLHVeB4Bkl$9;>Zauu]DMU1O]ko3r;S/AOB$#Xs8.[P>%Wt]A6N$*s2S8EX8i4<>#rQ@ +RoNX$MO/3a??H?GI9^&]AsJNg>ZK&KWDQr'H^fIf +>?erDs*]9pZ@uF^T)\\;>?YX)P$VEt])THK +rr35DOI#1WOHRrcrrhPWOJqdMrrM]RrTJ7ss3d'oT?#'IP*G,-Y`b98OG_$WSX#D3]X3rhP*`Sj +U6UnYs8SptaipoPON.=mTp1b4]![ojPL9EuP*pS:O-HK_`LW3\nG]\TQ'.5de,0.I\!*$4r;S/B[ud0Ms893aPao:oR?N`Js4W["aT):mPEFMt +^6"PGZb)opQBL\6rri5%P*au!s%2[OP*2WSYEb<9g]-?)P`i)_Wg&d4S%?+sP`ai&a,ZFJWP5Es +Q'Bl"s/E$>c*3Co^]486P`qTK\<`GFdf7g^ONmh*c]jRFJ,~> +rr35UZ*j)VYd3*\rrhf&Z,-/5rrMi]rU4b's51,g]\(oNZF'#ua0N+ZZ)lOV]!SfVd)iZ&ZaIs& +^9k2qs8TmRg"XKQYh/pL]sG&VcHEZ'ZetfSZEqmWm^BI;g=+"9s7!Y,Zan/t[+,-/ZaI0[dCuuo +_#OGeZ*V6uf=J;to_un9['Hsr;S/Cbd"bOs8C'DZan?*\?iHgs5pYnf`2!3Za&Qj +dBKsdaj.Q*[BfE%rri8>ZF8ojrs&,-Za.?m`r<>0kPsnZ['ITt_mHhX\B`=,['Joqf<;Tg_U6<. +['\lns22b+gW-Y+df99b['R +s8NE!DcqPhjD[tLpA4dlh.or?o)AZ5VdjCSC2;]%GZ88!s8TrB<2fPG='BFRfB3*I>@-"_qN4rb +SGrQ4='0nNs6KI[s4V6bO8nZf=D#kYs/&anUAs:U>*f3-?WNTos7cNmO]5J9iV<-&i;]i\>*&IY +h.]u,n+:BuCZ#0lZW^J?reFNXGKA8"qu6b\>$9)Is!R]*'p5JlM(>YgLO6;s8.:L?d&KLWE35ss7Br-GQ%Pn;KV8U~> +s8NE$U6DVWm\5]Eq>1*ol(=$=p\t2:`gWHhSt>6EW0!M*s8U]:O2h%#P*;NfjR<,>Pa:J3r3hfR +^Ae/gP*2jFs76'es6#u5[f?#oP+1A/s2C([_uK.fPIgeIQBAl[s8)cq\;uiUm/$PBlMnqhPd^Jh +l(+!0o_>#AT'H@UcBFFA;SrfK.r1T:KqZ!d^ +UAF2EOdk)(s7!.TP4&8J"SnmXS*]qM8\pINYjh\hacr!es5]]4Vss`YU6Cbns8U!$Oim^ENKUsK +s7sEoPH"Q]nbW:ckaIR:s8B$_Qeh]Aa,uS&s7`%IVZ-UuNhl5r~> +s8NE&]sGZWo=_?IqtgUDk#gp=aJSYJBm_~> +s8NDD>Z[]cl[W#@f)#CLh.ou=nG`G'T2Slr=^0e=BN\nuK7\P[;k3Q9s/&q' +\c;]g<`j\Js89p1O*tM:O8nZf"JU&X1T>*f3H@p35d](Q*fF&Zl1qu7S8=^&-2s7qUQ +D",bZ>A8eCK6^d'Yl9DV?d\ZK"-Hbibl%JIqiFflkPqJ`=g@r*&Z&Q*^&P$/?HqA=:o+-1;-07c +rr\Qj=60;Z"SdFK@F"]K"SRLHB\37`#l/gMA+/&_;5!pg%Xh>jkl:[p>Zmg$WD?jBrr48=F]r89 +s81':NI>58M#[@%=_7L1s4:1PUAt7c +s8NDYQ'0&TnuRt=jSJlZl(=$;p&=sl^lSGX&F/JLP+/SVY,dnM^\P*rPgfX33W>S5VY^>m`KHJ6 +s8VDIP,SE\rS#)rWgSpVs7N(JU@nQdhj9;aHEWfWe@s8UQ5P/@7>N0`8us!7K +r8,B"WgJmQs8B$_S,EVCs8TlsQK@.pNQ;'L~> +s8NDd['J6Tp;O>Em/$_bn%5gBq#:9oe$/eW&Ff/"Zae#q`l,r;R*%bd"bOs4=T`g\q-aeZu@:s4=K_kjZ*cf)Og7ZI/XN +"44B[oDJUkr5>qMkkY5]qo>nNm/I"jr55kNp[,Mpe,K@W_m-fGs8V#aZIJp+Y.!Nms!7NWZa]Q+ +rohqV`4*"ms8BpC\GcI-mBEqIs8UQQ[I*=iYLif)~> +s8NC^='TKUCLpgSPktC_m;uB;g]%3gh8@6h>$p=4?!LW6;c?XnB\N99<+t"bs#L$l=a^&Fs.ie% +\,ZKe<`j_Kp5W-P:fCV!O8nZf*f3g[9cm; +s8ND2P*MW2Ssu%/\bc=/o;%M9kl1Shl.F^qPEtUkQ'IU4NsC]9kkhTFS`g"P3W>S5Wr)hr`06G4 +s8VDIP,\KW[ZQZ2O-Pg8s7N(JU%JBbi0]J?s6c&6])VfVQB@AmWV#YRNN`0Trsm,6PKa(,qm;EV +p>D='Pl6XJNi):DZ&PULq#:H*PEXl$rsAV4OIbn@[Zcp7rVmJWP`Elck*_:EaH2bHs2g@ebPhGC +\s&>rVn+TP*tY4[uQN/ +O-Yp5s8B$_S,EVCs8V5HP.\krS)jU"~> +s8N/BZF'VC"1bhFcMIPDpV3uAn,E=pnDr`RZaK>d[C!TSqu7/ZZa8Eds8:$D +]D1X"[']e9#Htr7rl;4Xp%\Ohc*Ob>r;R*%bd"bOs3.gUlM^_pi3]]As6dA#dFke5lMoPB[+kQZ +"4+UTl_QUiPrVm,MZ+0Dn\ZaH\rslrN^%VL+hmB]>s4=E^kPbE*d'C.Mr62CM +YHYC=aT)4XZafu6s6[%sec5[;[Be04YIX$"J,~> +%0+sm>$Y?9>$G3:Aa]Ep"Hc\cN;WVR';el=i7MXBFLo9#]Y!,%on?@XfDbe#rFoD]q>^Jj=^/B8 +s5@!\HiLWW=Gk>CD,HDpmr2YRq,f(Qg/NgFQ`Q$)QR"EZ2ak"N)XW` +cXBq+^q[Oo^$>XoLJW0Xq#:GY>$9/KrsARaBN'`eqgVa[qu?]J;d,srs7V.GAoCY%s8RT~> +"TRVRPEl-2"I,1:S+QRW"LjMUZi0h%'?--#lfO\!UsdiCe'dO]q6,jLjo591rgf7Pqu?]7PEaGo +s6Gf1WW1A-P-a$!TT-D[oq@MAo`+sLR#Jo^mZNdFrr3>f^7(=J]CDVVV""9])T\,+bl@_?[#^jQ +hj9M-f%&6ueFES:Z&PULq#:H*PEXo%rsAV4OIbqA_ip;8rVmJPP)[ois0drYSrU&Ss4*-m_u9T; +]9AEGqu6fUP*26kqYp]kX,`n?rr39%Y`bFEk+%FHrr3J.OJ)1Es3['o_uIc9QehZ@,lFa-RJ"sg +P-3]rS<'rTrN)3Pr;ZfYO-@K]s7rjZS"YqIs8RT~> +%0,_*ZaI0HZa@*I\G,k""O+-Vb5V>='@sIsnF!il^Ye&/i8=))qo>qOmJd,9rjoGRr;ZfIZaATh +s7*A"_Z/MuZc_Im]W]NYpqndC6Nfch5#V^\%F'&D=Crg]. +%0*;*?_,-L^;,b2>-@`%'&I2'=dA.Js8W"c=^TtWFB)klrr36&oD\H;<+jh^s%iT-=aTuEs.ie% +\,ZKe<`j_KMG[j;s4hBdOoOlh*f3Il2Ue@?^Kho`(sp>-\,- +q2A9hmd"IgC"N@a#Q=8oqM.mikkP/[O]ko3r;S/AO&]lRs2S2FII[@;i,i"-e,TH]>Zt?9[/^0W +?WM@1s8VnJ>$'e^rt+m\AsPmB2P<#rsjHVDX.9%\Qi73s/Ae" +]`.pK`Ec\hs-HJpg&L#B;i(JNIp$@[s8U\L>,2)s#Imi?>[+f>s*t~> +%0+A/QG;,'e^h*jPKNb%''YjKPIg2]s8W&2P*Y>-Ul_)"rr36&p\sulO.>>2s%iWbPH"HZs2:+c +d/X.3Ocl^DZ]:I;s6-)7\Gu5qOeMFIs599'_Z0%ePIge[nGiOSQBJ*EZB13dqu?]mq#AF!PKa(, +qm;EVo^\N9SE0\L#Q=Dsr3;6XnG*"c\!*$4r;RN0[?-pGs4WX#X7lSnl_T]0j8]//Q2[!XcN!q* +QBA'3s8Vu#PEPA2rt,"3OHZ3dp\t3lo^2[kO-.H]rs7DFPbJ-`rsl&jT^r-_d?Kg3s2U(` +e,K@bg6Inus1=5\k5Xb9O0S``XHT.Os8V2APJdD"#LS[!Q'B_ss*t~> +%0+ta[F4-piSr%dZeG9U'(EE;Zd/1As8W&FZaK9!^Tk<1rVm)urqja?\aBCr:]@r3_u0Q7e[)X> +s8VVoZGQX`YIF!#n%5dIs7j:4^%_R,l*dbEs7^Kb^Tk65s8V&cZa@*qs8VGo +Z,#r1s89pDZLdtn&GsSRZb#2mrr;ulo)I(@ZI]$T#j/M$^&RK1YLNapAb0M['J6^f<2O? +rr3ks['[UJc`XkIs7*V'aT)4XZafu6s6[%sec,RLhm36g!oO%XJ,~> +"RL5/F70#,"PmBbI/<^>*5Gob=D3r'Y*3O(?.f1^5`/$QcMrg4:`n=*E_RIg0#C$Yg! +qh\6TF0E<8?!UOmqYqMpFB2XJI$C(bG+ATc@T[!#]Vf:D,2)s#O?A4>\`m1s*t~> +"S/@LU\+Nb"R257Wr)Ym*7gF>P+B/-bIO..QKA.kOd)9HeBtn?q>7@VSE9bM>5k(VWVc_q`06G4 +s8VDIP,\JrOd=/NZ]^KKoCnr@U%JBbi0]J?s6c&6])U0Q_:Z\lP,nW?Q^!`>b/q!Cs2^Cfbl@_? +[#^jMs20q_R_RG!\A/"@Z&PULq#:K+PEiAcrk&iTotHNQ^%_B'Ocuflbb^Ja[f6:?pnO%;T(;p] +r3MHJUs%;pQ'IO#qYqN$Ulgn)Wk,mTV8*&mR?ElGe&Il@OjO-hS;k>`s!t+2T^r-_d?Kg3s2U.a +S]'*pRZrr^s2'b^`8S+ePGIdLXHT.Os8V2APJdD"#P+XQQ(IaMs*t~> +"STX8^A%U+"Rrh(_u0B2*9+B3ZF\<7g5l+>_u0Q7e[)X> +s8VVoZGQXhZ*iEFZ/5NI\ZaH\s!u!k^%VL+hmB]>s4=H\ +]@Goh\$WEss4"6\f':GaZbQ56`O!)Qs8VJjZdo'T#PPm;[(H/6s*t~> +"1h0(TD\]lpOu:A_tjH8"K\?:Jm5RbZID7:KC]=s8Tf@=&;O\lTs8%::DWgfp",g&X;#O'"8++Ar<*[oPhJuXo:ejnjIHg_1".WOtPPtLgiH&$u +:Jjqm<_qcOru1*Z>?F`u:/4K\s8TQ;<_u[h<*5Xfs3tCHRf<=;G"cQ5s8TK+:nI]d;.!F!;GL1m +RJ[$8AlD`6;I +"4E*f_#438qQGd=f_POdgRjXjN/NUQOHZC,s8Ts"OGf0ZK=([TX,<8(rr61$R#Rs>s8TloO3R_) +l\ph"s6,l4PE_,oP)mKOSrB63s8Ur>LVNlVN/kCIh3*PSN00@Ys8UW9Oc>3ROP^#VNfM6]s80$X +S+6OT[?6Q/OGeh0s89!ST^V[U"14)NN;\VGL\0;]O-S`)l(aB#NJig[X7?/g"2C%`\c)O8m%f`( +N/`d\Oc8]'rrhhuP`h(+N"V&gs8UH5Oc>B[OHR?Vs5TH%^&J$^VM^o6s8UE+NPGM6NgGoeNf9'_ +^&7okRuWVqNg>ih^AFmiQMgd_jGJu5rVlu2P**Z]s*t~> +"5g5ae,94Kqo>eDjSAfpk.@q'Y-"h/Z*V+8s8LNRZ)t75Voo&:`2pE6rr61$[][FDs8UQNYh]9Y +nZAt/s6dA#Za?sEZEVmR\uiO:s8V;gWm^qYHQXZs89s> +\Fon!bHeCTZ)t"Ts8Bm9]_)"!"3RgPY5PI7X7t_[YdNfsn@l02YHG+9`:a*/"4FN]cMdbMn\;?5 +Y-5%9Z**Znrri#;['Hn7XqIkgs8UrbZ*1C7Yd;dVs6I(nd/O%q^oY*>s8UoZY1!@%YI:a=YcY.8 +d/F"2\Zi?FYI1[?d/:eb[Jg.*m&[D>rVluFZEi$[s*t~> +"/pa'g&(dOa*`3Bq#:ZiX+>A-CNP$(li-nnr5"#*BQ/=4s7i=9MrF[81]E>`Rem'a\q#CRs8V;3 +J"$E;`dDK9P0&$(lLg9gOn&JOg4jm_s6G/cY5e0oHusO_`Vof\gQHi*G*;.j^OUmQs8VtoI#mar +s7s-PDeF*%8qT;]j)r;Ql-PEb/+rsA5,V4OHpcEF>? +q#:Wuiju+dV5Ufgrr3GeZD3qaXOd=Ls6?qhci3qY^8e[8s8UlWXO7'gNL@)ST:r:4r;Q^0go-g8 +\_X9gnGg;+Zi0q(l`.)7rVlu-Od5,/s*t~> +"4tK2med"djhnslq#:Zqfu:_<]>);9p&=t#ro1r3]"Pu>s8:B`amoB11]GP8dJa+Fho*Lrs8V`/ +`6ePajhn[Ac/um`p&!"ObkV5E4rr;QlCZaB)srsAAE^q7>-gr@;+ +q#:X!lHdA`^qn4brr3GmahG=!`T$jrs7+4Ih#@rVlg1k/+aA +cKE*bo`*@Xao28>n\W6%rVluCZF0-"s*t~> +kl1hbmb?RcrqZQrl.P;"j8T>YhWb(?n+#fF!rDHZq>UNknb2GO"T@H8lhffD!T`_Irr`#Oi:m-K +"O:FSMY[,K!qb==nG`UfnaZ>Lrr_]AkPjfI#H1F*bQ$SarVQU!q;164s6oIJrrgMR;2kANs*t~> +kl1hbo]YQ4rqZQrn`TE@j8T>\lL=iRp%@_P!rVceq>UNmp\F:X"T@cOo).VL!UfUXrr`)]m/$VZ +"Q,T-ZhsV!!r2$RnG`Uhp@nCZrrViTnEU#Ya,HA@s6T4Rqu6ltlL+ZOp%ItV"PoE(Zi'h&J,~> +kl1ebq![\Gq#:Ehme,T>#5mu`s8VlhmJd7dq"jgd!rVlkn,EOio^;JPjo5AQq#(-or:'7Rqu6f_ +\$4!PqYpWnnG2SR"9&&kqtgrs%)X[cmb^o_SRlrUBFYs7lE\rrhMnYKHhCs*t~> +JcEso"R:83?dZ[h"/o"&b2WF(j)J%-e,B;s~> +JcEso"S/LQQf5a["36@dguA>:m%]Z1ir/n-~> +JcEso"SKX:[ctU-"4s]akMlLEo"MB +JcF$q"ng8f=Atm-rr]2q?cqI0"ng5_=B26rs*t~> +JcF$q"o7,TOcR>nrr^<#QJCR$"o7)PP*!Z\s*t~> +JcF$q"oIT$ZEVinrr^lU[cc`O"o@N!ZE`!Ys*t~> +JcF$q"lNol=,lmfrr]2q?cqI0"k[9c +JcF$q"m_Y?P-t,#rr^<#QJCR$"m227OLk>es*t~> +JcF$q"nB+.ZHN*Zrr^lU[cc`O"mre)Z-W@Gs*t~> +JcF!p"2\TNq7ck2W)$dCjSoA^Zsp<;qu;0~> +JcF!p"4s!aqnE(4a,H>>jSoA^cC)oSqu;0~> +JcF!p"6-iEr4`15f<2RFjSoA^h7)/;qu;0~> +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.png new file mode 100644 index 0000000..fb745d4 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/AdvLogo.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/EnquiryStateDiagram.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/EnquiryStateDiagram.png new file mode 100644 index 0000000..f2e1c81 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/EnquiryStateDiagram.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.pdf b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.pdf new file mode 100644 index 0000000..608aef7 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.pdf differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.tex new file mode 100644 index 0000000..c4cd8f3 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX2.tex @@ -0,0 +1,21 @@ +\documentclass{book} + +\usepackage{multicol} + +\begin{document} + +\begin{multicols}{2}{ +Department of English\\ +P.O. Box 117310\\ +University of Florida\\ +Gainesville, FL, 32611-7310\\ +(352) 392-6650 + +111 My Home address\\ +Gainesville, FL 32611\\ +(352) 555-1111 (H)\\ +(352) 555-2222 (M) +} +\end{multicols} + +\end{document} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.pdf b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.pdf new file mode 100644 index 0000000..0729f43 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.pdf differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.tex new file mode 100644 index 0000000..7bf6e44 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/LaTeX3.tex @@ -0,0 +1,19 @@ +\documentclass[a4paper,twoside]{article} + +%\usepackage[style=long,cols=3,border=plain]{glossary} +\usepackage{makeglos} +\makeglossary + +\begin{document} +\printglossary + +\begin{description} +\item [This is the item] The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. +\item [This is the other item] The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. +\end{description} + +\glossary{This it the item:The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long. The description for this item can be very long.} + +\glossary{glossary:item} + +\end{document} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide1.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide1.png new file mode 100644 index 0000000..cb2e110 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide1.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide2.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide2.png new file mode 100644 index 0000000..09a3186 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide2.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide3.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide3.png new file mode 100644 index 0000000..3497944 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuestionnaireFlowchartFromFlipChartSlide3.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/QuotationStateDiagram.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuotationStateDiagram.png new file mode 100644 index 0000000..546b47a Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/QuotationStateDiagram.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/SequenceDiagram1.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/SequenceDiagram1.png new file mode 100644 index 0000000..b8afa98 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/SequenceDiagram1.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/TitleImage.jpg b/Documentation/SupportingDocumentation/WEBMIP_TEX/TitleImage.jpg new file mode 100644 index 0000000..e6ac74e Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/TitleImage.jpg differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.bb b/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.bb new file mode 100644 index 0000000..eb81dd7 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.bb @@ -0,0 +1,5 @@ +%%Title: ./UseCases1.png +%%Creator: ebb Version 0.5.2 +%%BoundingBox: 0 0 659 450 +%%CreationDate: Sun Sep 30 10:48:51 2007 + diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.png new file mode 100644 index 0000000..8226a89 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/UseCases1.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/andy.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/andy.tex new file mode 100644 index 0000000..b58a12e --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/andy.tex @@ -0,0 +1,85 @@ +\documentclass{book} +\usepackage{graphicx} +\usepackage{booktabs} + +\newsavebox{\titleimage} +\sbox{\titleimage}{\includegraphics[width=15.98cm]{TitleImage}} + +\newcommand\version{Version unknown} +\newcommand{\setversion}[1]{\renewcommand{\version}{Version #1}} + +\newcommand\restriction{} +\newcommand{\setrestriction}[1]{\renewcommand{\restriction}{#1}} + +\newcommand\restrictedto{Unrestricted} +\newcommand{\setrestrictedto}[1]{\renewcommand{\restrictedto}{Restricted to #1}} + +\newcommand\ouraddress{ +Advantica \newline +Holywell Park \newline +Ashby Road \newline +Loughborough \newline +Leicestershire \newline +LE11 3GR \newline +United Kingdom +} +\newcommand{\setouraddress}[1]{\renewcommand{\ouraddress}{#1}} + +\newcommand\customeraddress{Customer address not set} +\newcommand{\setcustomeraddress}[1]{\renewcommand{\customeraddress}{#1}} + +\newcommand\customer{Customer not set} +\newcommand{\setcustomer}[1]{\renewcommand{\customer}{#1}} + +\makeatletter +\def\maketitle{% + \null + \thispagestyle{empty}% + + \usebox{\titleimage} + +\begin{flushright} + + \begin{tabular}{ p{4.25cm} p{6.75cm} } + \version & \@date + \\ + \midrule + \multicolumn{2}{c}{ + \Huge{\@title} + } + \\ + \midrule + \restriction & \restrictedto + \\ + \end{tabular} + +\end{flushright} + + \vfill + \begin{tabular} { p{5.97cm} p{9.47cm}} + Prepared for: & Prepared by: + \\ + \customer & \@author + \\ + \customeraddress & \ouraddress + \\ + \end{tabular} + \null + \clearpage + } +\makeatother +\author{Isidore Ducasse, Comte de Lautréamont} +\author{Lautréamont} +\title{Les Chants de Maldoror} +\date{\today} +\author{jamie priest} +\setversion{0.4} +\setcustomer{Martin Hansford} +\setcustomeraddress{ +Somewhere \newline +Sometown \newline +Here +} +\begin{document} +\maketitle +\end{document} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.cmd b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.cmd new file mode 100644 index 0000000..46cf5ec --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.cmd @@ -0,0 +1,3 @@ +REM $Id:$ +set ORACLE_SID=webmip +sqlplus /nolog @applylog \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.sql b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.sql new file mode 100644 index 0000000..b941a94 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog.sql @@ -0,0 +1,8 @@ +REM $Id$ +set echo on +spool s:\orabackup\webmip\scripts\applylog.log +connect sys/fmdidgad as sysdba +alter database recover automatic standby database until cancel; +alter database recover cancel; +spool off; +exit diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog_status.sql b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog_status.sql new file mode 100644 index 0000000..b3ffda3 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/applylog_status.sql @@ -0,0 +1,4 @@ +alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS' +/ +SELECT FIRST_TIME, FIRST_CHANGE#, NEXT_CHANGE#, SEQUENCE# FROM V$LOG_HISTORY +/ \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/archivelog.sql b/Documentation/SupportingDocumentation/WEBMIP_TEX/archivelog.sql new file mode 100644 index 0000000..def0dfd --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/archivelog.sql @@ -0,0 +1,14 @@ +REM $Id$ +conn &&user/&&password as sysdba; +shutdown immediate; +conn &&user/&&password as sysdba; +startup mount; +alter database force logging; +alter system set log_archive_dest_1='location=s:\orabackup\webmip\archivelogs\' scope=both; +/* +set the time by which archive logs +should lag the redo in seconds +*/ +alter system set archive_lag_target=2700; +alter database archivelog; +alter database open; diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job.png new file mode 100644 index 0000000..9c2ffad Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job1.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job1.png new file mode 100644 index 0000000..8617790 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job1.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job2.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job2.png new file mode 100644 index 0000000..af774b2 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job2.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job3.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job3.png new file mode 100644 index 0000000..fcbc8c3 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/bespoke_or_standard_job3.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/development.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/development.tex new file mode 100644 index 0000000..3b4b63a --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/development.tex @@ -0,0 +1,35 @@ +% File: development.tex +% Created: Mon Oct 01 11:00 PM 2007 B +% Last Change: Mon Oct 01 11:00 PM 2007 B +% +\documentclass[a4paper]{article} +\date{21 September 2007} +\begin{document} +\title{Increasing Scout Membership} +\maketitle +\abstract{ +A discussion was held with the Scouts to look at ways of increasing the size of the membership. The conclusions reached were: +\begin{enumerate} + \item Scouting is not widely \textit{known} in the area; + \item The program could be made more \textit{accessible} to the community; +\end{enumerate} + +Therefore, the decision was made to attack this through advertising and through changes to the program. +} +\section{Advertising} +It was decided that advertising would be performed through the use of leaflets and posters - these were felt to be a good way of getting a consisted \textit{picture} of Scouting across to the target audience without intimidating either the giver or receiver of the information. + +The posters were designed to be simple and uncluttered to make them clearly visible, contain the corporate Scouting logo and make reference to the Scouting centenary. In the background there were pictures showing activities undertaken by the group and a contrasting box with contact details and meeting times was placed in the corner. The posters were placed in the local schools. + +The leaflets were smaller and contained more examples of activites undertaken, including pictures, and a brief look at the background of Scouting from the points of view of the World, UK and the local community. Leaflets were left at the local schools and with Scouts so that they could hand them out to friends. + +\section{Program} +The Scouts thought that the program could be opened out to allow non-members to take part in some fun activities - this would be allow young people to take part in a relaxed environment and so introduced them to Scouting in a non-threatening way. If the activities took place in public areas, then they could also act as a form of advertising. + +The activities that were thought to be most suitable involved pioneering and camping - both activities being 'fun' and not usually available to young people in our area. We have been invited to make use of a camping area on the outskirts of the village and intend to hold a small camp/sleep-over during the spring and to invite young people from the local schools to take part. We will demonstrate all the activites that Scouts enjoy on such camps such as cooking on open fires, playing wide-games, etc. + +Scouts take part in trips to various places during the year e.g. swimming, caving, theme parks, etc. It would be possible to invite young people along to these events. Again, this would demonstrate the fun activities that Scouts take part in. + +Finally, following on the from the advertising, the Scouts thought that it would be easier for them to 'Bring a friend' to an evening. It was decided that a number of evenings over the next two terms would be put aside as 'invitation' nights - normal Scouting activities would take place but their would be no reliance on having attended before for example, there would be no badge work. +\end{document} + diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_administration.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_administration.tex new file mode 100644 index 0000000..24d79b2 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_administration.tex @@ -0,0 +1,53 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{System Administration} +The webMIP system holds data used in the process of providing quotations +for Supplier agents. This data requires administrative functions to +keep it correct and up{}-to{}-date. The system also manages the users +and provides a method for producing system reports. + +\subsection{System data} +The webMIP administrator role is able to administer system data to +ensure that values, descriptions and other details are correct and +up{}-to{}-date. The role can also create, read, update and delete the +system data. + +The data administered includes the following: + +\begin{enumerate} +\item Meter Modules. See Appendix \ref{sec:AppendixMeterModules} for details; +\item Housing. See Appendix \ref{sec:AppendixHousing} for details; +\item Base. See Appendix \ref{sec:AppendixBase} for details; +\item Pricing data. See Appendix \ref{sec:AppendixPricingData} for details; +\item Users. See section \ref{sec:UserSecurity} ; +\item Caveats. +\item Postcodes. See Appendix \ref{sec:AppendixPostcodes} for details; +\item Drawings; +\item Reporting. The system allows the webMIP administrator role to run +the system data reports. The webMIP administrator role selects the +system data sources and exports them as CSV files. +\end{enumerate} + +\subsection{Bulk Upload} +The webMIP system provides a bulk upload function for the uploading of +system data. This function is only available to the webMIP +Administrator user role. \ The bulk upload function will accept a CSV +file containing data described in Appendix . When the bulk upload +routine is completed the entire system data set will be replaced by the +data provided in the uploaded CSV file. \ If the uploaded file does not +pass the webMIP bulk upload validation routine then the bulk upload +will fail and the exist system data will remain in place. + +\subsubsection{User acceptance} +A process out side of the scope for webMIP will allow I\&C to attempt a +bulk upload run, on a user acceptance version of webMIP to confirm that +the upload is successful. This way the bulk upload can be tested +without impacting on the live system. diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_data_items.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_data_items.tex new file mode 100644 index 0000000..207db14 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_data_items.tex @@ -0,0 +1,805 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{Data Items} +\label{sec:AppendixDataItems} + + +\subsection{Gas Supplier} + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Gas Supplier ID (A0064) +& +A required 10 Character alphabetical code +\\ +Gas Supplier Name +& +A required alphanumerical field of 40 characters in length +\\ +Gas Supplier Location +& +A required address for the gas supplier, including the traditional items +associated with an address +\\ +Cust Code +& +A required 3 digit numerical code, that describes the customer supplier. +\\ +Contract Reference +& +The provision and maintenance contract a required alphanumerical code. +Limited to 35 characters. +\\ +\bottomrule +\end{longtable} + +\subsection{Supplier Agent} + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Company Name +& +A required 40 character data item to record the agents company name +\\ +Title (A0088) +& +A required 6 character item to collect the individual agents title, e.g. +Dr, Mr, Miss +\\ +Initials (A0089) +& +A required 2 character item to collect the individual agents initials +\\ +Contact Name (A0090) +& +A required 10 character data item to hold the individual agents name +\\ +Address (A0049,A0106) +& +A required address for the individual agent, including the traditional +items associated with an address +\\ +Telephone1(A0049,A0106) +& +A required initial telephone number to contact the individual, a 30 char +limit. +\\ +Telephone2(A0049,A0106) +& +An optional data item for an alternative telephone number to contact the +individual, a 30 char limit. +\\ +Fax(A0049,A0106) +& +An optional item that allows the agent to specify a fax number, a 30 +char limit. +\\ +Email(A0049,A0106) +& +An mandatory alphanumerical item to accept the individual agents email +address, the value must be a valid email address. A 241 char limit. +\\ +\bottomrule +\end{longtable} + +\subsection{Job Site Details} + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Transaction Reference(A0055) +& +An optional 35 character alphanumerical code that the agent can use to +reference to the job enquiry. This value does not have to be unique +within the system, if the user searches for the transaction reference +then multiple enquiries/quotes may be returned. +\\ +Agent +& +Only available to the I\&C user and mandatory for the I\&C user. A +list of Agents held within the webMIP system. The user must select +one. +\\ +\bottomrule +\end{longtable} + +\subsection{Address} + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Sub{}-Building Name/Number (A0004) +& +A 40 character alphanumeric item that must contain a data entry if +Building Name/Number is omitted. +\\ +Building Name/Number (A0006) +& +A 40 character alphanumeric item that must contain a data entry if +Sub{}-Building Name/Number is omitted. +\\ +Thoroughfare(Road) (A0008) +& +A 60 character alphabetical data item that must be entered. +\\ +Post Town(Town) (A0011) +& +A 40 character alphabetical data item that must be entered. +\\ +Post Code (A0013) +& +A 10 character alphanumerical data item that must be entered. +\\ +Title (A0088) +& +A required 6 character item to collect the individual agents title, e.g. +Dr, Mr, Miss to be selected from a list. +\\ +Initials (A0089) +& +A required 4 character item to collect the individual consumer contacts +initials +\\ +Contact Name (A0090) +& +A required 30 character data item to hold the individual consumer +contacts name +\\ +Telephone1(A0049,A0106) +& +A required initial telephone number to contact the consumer, a 30 char +limit. +\\ +Telephone2(A0049,A0106) +& +An optional data item for an alternative telephone number to contact the +consumer, a 30 char limit. +\\ +Fax(A0049,A0106) +& +An optional item that allows the agent to specify a fax number, a 30 +char limit. +\\ +Email(A0049,A0106) +& +An optional item to accept the individual agents email address, a 241 +char limit. +\\ +\bottomrule +\end{longtable} + +\subsection{Contact Address} + +\begin{longtable}[c]{ p{0.4\textwidth} p{0.4\textwidth} } +\toprule +Sub{}-Building Name/Number (A0004) +& +(only required if job address different to contact address)A 40 +character alphanumeric item that must contain a data entry if Building +Name/Number is omitted. +\\ +Building Name/Number (A0006) +& +(only required if job address different to contact address)\textmd{A 40 +character alphanumeric item that must contain a data entry if +Sub{}-Building Name/Number is omitted.} +\\ +Thoroughfare(Road) (A0008) +& +(only required if job address different to contact address)A 40 +character alphabetical data item that must be entered. +\\ +Post Town(Town) (A0011) +& +(only required if job address different to contact address)A 40 +character alphabetical data item that must be entered. +\\ +Post Code (A0013) +& +(only required if job address different to contact address)A 7 character +alphanumerical data item that must be entered. +\\ +Second Contact +& +A boolean entry that allows the user to specify if there is a second +contact for the site. +\\ +Title (A0088) +& +(only required if second contact specified) A required 6 +character item to collect the individual agents title, e.g. Dr, Mr, +Miss to be selected from a list. +\\ +Initials (A0089) +& +(only required if second contact specified)A required 4 +character item to collect the individual consumer contacts initials +\\ +Contact Name (A0090) +& +(only required if second contact specified)A required 30 character data +item to hold the individual consumer contacts name +\\ +Telephone1(A0049,A0106) +& +(only required if second contact specified) A required initial +telephone number to contact the consumer. +\\ +Telephone2(A0049,A0106) +& +(only required if second contact specified) An optional data +item for an alternative telephone number to contact the consumer. +\\ +Fax(A0049,A0106) +& +(only required if second contact specified)An optional item +that allows the agent to specify a fax number. +\\ +Email(A0049,A0106) +& +(only required if second contact specified)An optional item to accept +the individual agents email address. +\\ +\bottomrule +\end{longtable} + +\subsection{Second Contact Address} + +Second Contact address is the same as job address/first contact. It is +only required if second contact specified. A selection entry allows the +user to specify whether the address is the same as the site of the +intended works or the first contact. + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Sub{}-Building Name/Number (A0004) +& +(only required if job address and first contact address different)A 40 +character alphanumeric item that must contain a data entry if Building +Name/Number is omitted. +\\ +Building Name/Number (A0006) +& +(only required if job address and first contact address +different)A 40 character alphanumeric item that must contain a +data entry if Sub{}-Building Name/Number is omitted. +\\ +Thoroughfare(Road) (A0008) +& +(only required if job address and first contact address different)A 40 +character alphabetical data item that must be entered. +\\ +Post Town(Town) (A0011) +& +(only required if job address and first contact address different)A 40 +character alphabetical data item that must be entered. +\\ +Post Code (A0013) +& +Only required if job address and first contact address different)A 7 +character alphanumerical data item that must be entered. +\\ +\bottomrule +\end{longtable} + +\subsection{Site Detail} + +\begin{longtable}[c]{p{0.4\textwidth} p{0.4\textwidth}} +\toprule +Asset Location Code (A0059) +& +A 10 character alphanumerical data item that must be entered, it will be +one value from a list of the following specified entries: + +\begin{description} +\item[00] Unknown +\item[01] Cellar +\item[02] Under Stairs +\item[03] Hall +\item[04] Kitchen +\item[05] Bathroom +\item[06] Garage +\item[07] Canteen +\item[08] Cloakroom +\end{description} +\\ +& +\begin{description} +\item[09] Cupboard +\item[10] Domestic Science +\item[11] Front Door +\item[12] Hall Cupboard +\item[13] Kitchen Cupboard +\item[14] Kitchen under sink +\item[15] Landing +\item[16] Office +\item[17] Office Cupboard +\item[18] Outside WC +\item[19] Pantry +\item[20] Porch +\item[21] Public Bar +\item[22] Rear of Shop +\item[23] Saloon Bar +\item[24] Shed +\end{description} +\\ +& +\begin{description} +\item[25] Shop Front +\item[26] Shop Window +\item[27] Staff Room +\item[28] Store Room +\item[29] Toilet +\item[30] Under Counter +\item[31] Waiting Room +\item[32] Meter box Outside +\item[98] Other +\item[99] Outside +\end{description} +\\ +Care category +& +An optional 2 character numerical data type for all job types the user +can select from the following list: + +03 SEUC Unclassified + +04 Aged 60+ + +05 Blind + +06 Braille User + +07 Poor Sight + +08 Deaf + +09 Poor Hearing + +10 Poor Speech + +11 Poor Sense of Smell + +12 Arthritic Hands + +13 Arthritic All + +14 Poor Walking + +15 Wheelchair + +16 Bedridden + +17 Mental Handicap + +18 Confused + +19 Serious Illness + +20 Other + +21 Heart Condition + +22 Breathing Difficulty +\\ +Asset Location notes (A0158) +& +Mechanism for delivering Location notes.\newline +A optional selectable list of values including Post, Fax, Email and +Upload. \ Depending on the selected option the system will provide +either the Coventry Address for I\&C, the I\&C fax number, A mailto +link to the I\&C mailbox or a file upload option. +\\ +Attach files +& +(only required if Mechanism for delivering Location notes is set to +Upload)An optional data item that allows users to attach a number of +photos,drawings,plans etc. to the enquiry, the file size limit will be +10 megabytes in total with individual files being restricted to 3 +megabytes. +\\ +Access Instructions (A0075) +& +An optional data item of 210 alphanumerical characters. +\\ +Access Password +& +An optional 30 character alphanumerical data item. +\\ +MPRN (A0072) +& +An optional 30 digit numerical data item. \ The MPRN is optional, but +ideally I\&C would like to collect the number. \ New installs do not +require the number to be entered because the number may not have been +generated at the time of the enquiry. \ However for all other jobs this +should normally be entered, but sometimes it is unavailable. \ The user +must enter additional information in these instances. +\\ +Additional Information, including UIP reference +& +Required only if MPRN is left blank and the job type is not a new +install. A 250 character alphanumerical data item. +\\ +\bottomrule +\end{longtable} + +\paragraph{Job Information} + +The job information section records data relating to the job +requirements including meter requirements and the meters environment. +Like the job site details, once the job information details are +submitted they are stored by the system so that the agent or I\&C users +can then refer back to them. Each enquiry must have just one +associated set of job information. + +\begin{longtable}[c]{p{0.5\columnwidth} p{0.5\columnwidth}} +\toprule +Job Type (Q5) +& +A list of possible jobs (Install, Exchange, Removal, Alteration, OFMAT, +EMS, AMR, Capacity Change, Adversarial, Standard Install, Standard +Exchange, Standard Removal, Other), if the user selects +{\textquotesingle}Other{\textquotesingle} then they must provide some +data for the Other Type data item. The Job Type can be changed on the +enquiry until the enquiry is submitted for quotation. + +The Standard job types are categorised differently by webMIP, they show +the users intention to create a standard quotation for an automatic +quote. Standard job types exempt the user from entering certain +questions in the enquiry questionnaire. +\\ +Other Type +& +Required only when the user selects +{\textquotesingle}Other{\textquotesingle} from the Job Type list. An +alphanumerical data item of 30 characters. +\\ +Internal Job Type Reference +& +A hidden field automatically generated by the webMIP system. Only when +the questionnaire has been successfully completed will webMIP attempt +to generate the Job Type Reference. The Job Type Reference is an +alphanumerical field of 40 characters in length. The webMIP system will +use the Job Type and Service pressure data items on the questionnaire +to determine the Job Reference Code, the result will be one of the +following values :- + +\begin{description} +\item [FIX QO LP] +Install Low Pressure Meter Module +\item [FIX QO MP] +Install Medium Pressure Meter Module +\item [EXC QO LP] +Exchange Low Pressure Meter Module +\item [EXC QO MP] +Exchange Medium Pressure Meter Module +\item [EXC QI MP] +Pressure Increase of Medium Pressure Meter Module +\item [REM QO LP] +Removal of Low Pressure Meter Module +\item [REM QO MP] +Removal of Medium Pressure Meter Module +\end{description} + +If webMIP is unable to determine a Job Reference Code then the value +will remain blank(null). +\\ +Gas Act Owner(GAO) +& +A drop-down list of: +\begin{itemize} +\item Supplier, +\item GT, +\item Consumer. +\end{itemize} +will be presented to the end-user as guidance. + +Required if the Job Type is of Exchange, Removal, Standard Exchange or +Standard Removal, otherwise it should be optional. A 1 character +alphabetical data item. +\\ +Supplier +& +Required if the Job Type is of Exchange, Removal, Standard Exchange or +Standard Removal otherwise it should be optional. A 210 character +alphanumerical data item. +\\ +Consumer +& +Required if the Job Type is of Exchange, Removal, Standard Exchange or +Standard Removal otherwise it should be optional. A 40 character +alphanumerical data item. +\\ +Appointment preference +& +Only relevant to the Standard job types that will be automatically +quoted. An optional data item that allows the user to specify an +preferred time in the day for the visit. The default value will be +8am-8pm. Users can select one value from a list of the following +options: + +\begin{enumerate} +\item 8am-1pm, +\item 12pm-8pm, +\item 8am-8pm. +\end{enumerate} + +\\ +Service Pressure (Q6) +& +User will be able +to select one option from a list of the following items, LP, MP35, +MP65, MP105, MP180, MP270, IP. The service pressure is not needed for +Standard (automatically quoted)Job Types as an assumed pressure +category is taken. Only one Service Pressure can be associated with an enquiry. +\\ +IP details +& +Required if the service pressure is IP. A 250 character alphanumerical +data item. The default value is blank(null). +\\ +IP mbar +& +Optional, available when service pressure is set to IP. A Numerical +data item that allows up to 3 decimal places. The values that are +accepted must be between 2000 and 7000. The default value is +blank(null). +\\ +Required Meter Pressure (A0164) (Q7) +& +A required numerical data item for jobs, except all standard jobs, which will default to 21mbar. Allows numbers between 0 and 7000 and 3 decimal places are permitted. The value to be stored will be in mbar. If the service pressure is 'LP' then the default for meter pressure will also be 21. The following service pressures also place further constraints on the accepted meter pressure values: + +\begin{enumerate} + +\item MP35 +\begin{enumerate} +\item Calculaton for Constraint 0.8 x 35 +\item Constraint \textless= 28 +\end{enumerate} + +\item MP65 +\begin{enumerate} +\item Calculation for Constraint 0.8 x 65 +\item Constraint \textless=84 +\end{enumerate} + +\item MP180 +\begin{enumerate} +\item Calculation for Constraint 0.8 x 180 +\item Constraint \textless=144 +\end{enumerate} + +\item MP70 +\begin{enumerate} +\item Calculation for Constraint 0.8 x 270 +\item Constraint \textless=216 +\end{enumerate} + +\end{enumerate} + +\\ +Annual Quantity (AQ) (Q8) +& +A Required numerical data item for all jobs . The value for annual +quantity will be recorded as KWh. The default value for is +blank(null). If the field contains a value over 732,000 the enquiry +will be not be automatically quoted. +\\ +Specific conversion factor +& +A 1 Character hidden field that is used to determine if a conversion +factor is required. This will typically be associated to jobs that +require a large capacity. The user will not interact with this field +as webMIP will determine the value. The default value is +{\textquotesingle}N{\textquotesingle} if the Annual Quantity field is +greater than 732,000 KWh then the value will be +{\textquotesingle}Y{\textquotesingle} +\\ +Booster/Compressor (Q9) +& +A boolean data entry with a default status of null. The user will +specify a {\textquotesingle}Y{\textquotesingle} or +{\textquotesingle}N{\textquotesingle} value. A value is required for +all job types, however booster/compressor is not needed for Standard +Job Types. If the user answers {\textquotesingle}Y{\textquotesingle} +the enquiry will become bespoke and a manual quotation will need to be +provided. +\\ +Indicative Substantial Completion Date(A0138) (Q10) +& +A date format data item, dates will be entered in the format dd/mm/yy, +e.g. 21/10/07. This is an optional item for all job types. The date +will be stored in webMIP in the format +{\textquotesingle}YYYYMMDD{\textquotesingle} the value will be 8 +characters in length. +\\ +Other Related Jobs(Project Reference) (Q11) +& +An optional alphanumerical data item of 40 characters. +\\ +Additional Services (Q12) +& +A list of options that the user has to request or decline. All of the +additional services require a mandatory response. Each option requires +the user to select {\textquotesingle}Y{\textquotesingle} or +{\textquotesingle}N{\textquotesingle}, by default the options will be +blank(null). \ The options that will be available are as follows : + +\begin{enumerate} +\item Housing - If {\textquotesingle}N{\textquotesingle} is selected +the user must fill in an associated alphanumerical data item of 250 +characters +\item Base +\item Converter. If a Converter exists and the enquiry is not Removal/ Std Removal/ Adversarial Removal, then a manual quote is required. If a Converter exists and the enquiry is Removal/Std Removal/Adversarial Removal, then an automatic quote is required. +\item Logger. If a logger is attached and the enquiry type is an Exchange, then a manual quote is required. If a logger is attached and the enquiry type is not an Exchange, then a standard caveat is attached to the quote. +\item AMR. The AMR option will only be available for Tripartite users. +\item EMS +\item By-pass. One of the following +data items must be selected +\begin{enumerate} +\item Not Required +\item Essential (Hospital, prison, etc.) +\item Institution (School, college, etc.) +\item Animal welfare +\item Manufacturing process requirement +\item Complicated pipework system +\item Other. If {\textquotesingle}Other{\textquotesingle} is selected +then the user must fill in an associated alphanumerical data item of 40 +characters, to describe the reason. +\end{enumerate} +\item Twin stream. +\end{enumerate} +\\ +Logger/Converter +& +A 1 character alphabetical data item that is hidden from the user. The +webMIP system will select the value for this field. If Logger is +selected from the additional services data item then webMIP will store +a {\textquotesingle}L{\textquotesingle} if Converter is selected then +webMIP will record a {\textquotesingle}C{\textquotesingle}. The +default value will be blank (null). +\\ +Job Description/Special Instructions (Q9a) +& +An optional 500 character alphanumerical data item that the user can +specify any job specific requirements. If the user has entered data +in the job description/special instructions data item then an automatic +quote will not be possible, the users should be warned of this prior to +submitting their data. +\\ +Measuring Capacity QMAX (A0112) (Q13) +& +A mandatory numeric data item that accepts numbers between the range of +0 to 999,999.999, up to 3 decimal places are allowed. Should not be available for standard jobs. The default +value will be blank(null). The value stored will be measured in KWh. +\\ +Measuring Capacity QMIN (A0112) (Q13) +& +An optional numerical data item that accepts numbers between the range +of 0 to 999,999.999, up to 3 decimal places are allowed. The default +value for QMIN is blank(null). The value stored will be measured in +KWh. + +A warning message will pop up to the end user if they select a design with a Qmin that is higher than the Qmin indicated on the enquiry. It will say: + +\begin{quote} +Please note! The module you have selected has a minimum flow rate that is greater than the requirement input on the enquiry screen. +\end{quote} +\\ +Load Control Type (Q13a) +& +Mandatory for all install and exchange job types(including standard), +optional for all other job types. The default value will be +blank(null). The user will be able to select one item from the +following list: + +\begin{enumerate} +\item Constant +\item On/Off +\item Modulating +\end{enumerate} +\\ +Meter Size (Q14) +& +Only relevant for the Standard Install Job Type, an optional data item. +If Qmax is empty then Meter Size must have a value selected. The +user can select one item from the following list: + +\begin{enumerate} +\item U16 +\item U25 +\item U40 +\item U65 +\item U100 +\item U160 +\item Other +\end{enumerate} +\\ +Meter Type Existing(A0025) (Q15) +& +Mandatory for all job types except for Standard Install, Install, EMS, +AMR, Other job types, optional for all other job types. The user is +able to select one item from the following list: + +\begin{description} +\item [D] Diaphragm (unknown material) +\item [L] Leather +\item [S] Synthetic +\item [U] Ultrasonic +\item [Z] Unknown +\item [R] Rotary +\item [T] Turbine +\end{description} +The data item will be restricted to 8 characters in length. +\\ +Existing Meter Size (Q15) +& +Mandatory for all job types except for Standard Install, Install, EMS, +AMR, Other job types, optional for all other job types. The user needs +to select one from the following list: + +\begin{enumerate} +\item U16 +\item U25 +\item U40 +\item U65 +\item U100 +\item U160 +\item Rotary/Turbine 2'' +\item Rotary/Turbine 3'' +\item Rotary/Turbine 4'' +\item Rotary/Turbine 6'' +\item Other +\end{enumerate} +If other is selected then the job will be bespoke. +\\ +Existing Pressure Category(Q15) +& +Mandatory for all job types except for Standard Install, Install, EMS, AMR, Other job types, optional for all other job types. The user needs to select one from the following list: +\begin{enumerate} +\item LP +\item MP +\item IP +\item HP +\end{enumerate} +\\ +Existing Asset Serial Number (A0022) +& +A 30 character alphanumerical data item that is Mandatory for the +following job types: Exchange, Standard Exchange, Removal, Standard +Removal, OFMAT, Alteration, EMS and AMR. The default value will be +blank(null) +\\ +Existing Model Code/Number(A0083) +& +A 20 character alphanumerical data item that is optional for all data +types, however it is not relevant to the +{\textquotesingle}install{\textquotesingle} or +{\textquotesingle}Standard Install{\textquotesingle} job types. +\\ +Market Sector Code(A0161) +& +An optional data item for all job types, defaulting to the value +{\textquotesingle}I{\textquotesingle}. The user can select one item +from the following list: + +\begin{description} +\item [I] Industrial and Commercial +\item [D] Domestic +\end{description} + +\\ +Other Information +& +A 250 character alphanumerical data item that is optional for all job +types. In addition the facility to add relevant files to the enquiry +will also be made available. +\\ +\bottomrule +\end{longtable} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_security_checklist.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_security_checklist.tex new file mode 100644 index 0000000..3ecc28c --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_security_checklist.tex @@ -0,0 +1,1442 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{Security Check{}-lists} +\label{sec:SecurityChecklists} + +\subsection{Physical Environment} +\label{sec:AppendixPhysicalEnvironment} + +\begin{longtable}[c]{ p{0.1\textwidth} p{0.5\textwidth} p{0.1\textwidth} p{0.2\textwidth}} +\toprule +\multicolumn{4}{l}{High level information security questionnaire} +\\ +& +Question +& +Y or N +& +Additional comment or supporting evidence +\\ +\midrule +\endhead +\multicolumn{4}{l}{1. Security Governance +}\\ +a +& +Is there an Information Security Policy ? +& +& +\\ +b +& +Is this aligned with ISO 17799? +& +& +\\ +c +& +Is there a documented risk assessment methodology deployed to assess +security risks associated with new developments/infrastructure changes? +& +& + +\\ +d +& +Are measures in place to provide user awareness of the policy and +controls for staff working in the Data Centre? +& +& +\\ +e +& +Are regular security audits or penetration tests undertaken? +& +& +\\ +f +& +Are these internal or external? If external, give details as to type of +test, third party who carried out testing, summary of results? +& +& +\\ +\multicolumn{4}{l}{2.1 Physical {}- sit +}\\ +a +& +Does the site appear to meet security requirements given the importance +of the site (consider gates, fences, site access, etc.)? +& +& +\\ +b +& +Is the site located away from obvious hazards, such as flooding, air +strip or chemical plant? +& +& +\\ +c +& +Are facilities used for National Grid segregated in a separate area? IF +so, how is access controlled? +& +& +\\ +\multicolumn{4}{l}{2.2 Physical security {}- computer room +}\\ +a +& +Is the network equipment stored within a separate computer room? +& +& +\\ +b +& +Is the computer room located away from water sources? +& +& +\\ +c +& +Is the computer room located in a difficult to get to location (ie. +above ground floor and away from the site perimeter)? +& +& +\\ +d +& +Are measures in place to prevent equipment being visible form outside of +the room. +& +& +\\ +\multicolumn{4}{l}{2.3 Physical {}- computer room access +}\\ +a +& +Does the room have a locked door? +& +& +\\ +b +& +Is there adequate control over the allocation and circulation of keys, +swipe cards or other access tokens? Describe. +& +& +\\ +c +& +Are only certain and authorised people allowed to approve distribution +of keys or swipe cards? +& +& +\\ +d +& +Is the list of personnel with keys or swipe cards formally reviewed on a +regular basis? If so, how regularly? +& + + +& + + +\\ +e +& +Are cleaning staff restricted from access to the room, and supervised? +& + + +& + + +\\ +\multicolumn{4}{l}{2.4 Physical {}- computer room envirnment +}\\ +a +& +Does the room have a fire detection system? +& + + +& + + +\\ +b +& +Does the room have a fire suppression system? +& + + +& + + +\\ +c +& +Does the room have a flood detection system? +& + + +& + + +\\ +d +& +Does the room have a raised floor? +& + + +& + + +\\ +e +& +Does the room have a temperature and humidity monitoring system? +& + + +& + + +\\ +f +& +Does the room have air conditioning? +& + + +& + + +\\ +g +& +Does the room have CCTV? +& + + +& + + +\\ +h +& +Are materials that may be a fire hazard or contain hazardous material +not stored inside of the computer room? +& + + +& + + +\\ +i +& +Are the environmental measurements monitored? +& + + +& + + +\\ +\multicolumn{4}{l}{2.5 Physical {}- power supply +}\\ +a +& +Does the room have power a single computer from dual, independent +panels? +& + + +& + + +\\ +b +& +Does the room/computer have a UPS? If so, for how long? +& + + +& + + +\\ +c +& +Does the room have a backup power generator? If so, for how long? +& + + +& + + +\\ +d +& +Does the computer room have an emergency power cut off? +& + + +& + + +\\ +e +& +Is the site supplied by power from different sub{}-stations? +& + + +& + + +\\ +\multicolumn{4}{l}{2.6 Physical {}- comms and cabling +}\\ +a +& +Are there multiple physical telecommunication lines into the computer +room that are in separate ducts? +& + + +& + + +\\ +b +& +Are only approved wireless LANs or other wireless devices in use at the +site? +& + + +& + + +\\ +c +& +Is all communication equipment housed in a suitable case or cabinet? +& + + +& + + +\\ +d +& +Is all cabling housed in a protective covering? +& + + +& + + +\\ +e +& +Is all cabling cleared labelled, with appropriate hazard and warning +signs? +& + + +& + + +\\ +\multicolumn{4}{l}{2.8 Management +}\\ +a +& +Are maintenance schedules on key parts of the infrastructure adhered to +(consider fire suppressions system, electrical and UPS batteries, +cooling equipment)? +& + + +& + + +\\ +b +& +Is the standard change control process used to cover changes to the +infrastrcuture and configuration of firewalls, routers, etc? +& + + +& + + +\\ +c +& +Is all equipment monitored for faults centrally? +& + + +& + + +\\ +\multicolumn{4}{l}{3. Personnel +}\\ +a +& +Are there clear guidelines for staff on use of IT systems as part of +their T\&Cs, confidentiality agreements, and a disciplinary process for +breach of these? +& + + +& + + +\\ +b +& +Is Screening of staff part of the recruitment process? If so, who does +the background check? +& + + +& + + +\\ +c +& +Are users trained in security requirements and procedures? +& + + +& + + +\\ +d +& +Are there procedures for reporting security issues, risks and incidents? +& + + +& + + +\\ +e +& +Are the same security controls applied to contractors and consultants? +& + + +& + + +\\ +\multicolumn{4}{l}{4. Change management +}\\ +a +& +How is the change control processed managed? +& + + +& + + +\\ +b +& +What are the configuration management procedures for control of software +versions through the build, test, and release process? +& + + +& + + +\\ +c +& +Procedures are in place for the control of source libraries, development +tools, and developed products? +& + + +& + + +\\ +\multicolumn{4}{l}{5. Operational management +}\\ +a +& +Detailed documented operating procedures exists? +& + + +& + + +\\ +b +& +Is there a documented security incident response and escalation +procedure? +& + + +& + + +\\ +c +& +Are operator duties segregated for security purposes? +& + + +& + + +\\ +d +& +Are any external management services or facilities employed? +& + + +& + + +\\ +e +& +Are software licenses recorded and controlled? +& + + +& + + +\\ +f +& +Up to date anti virus software is applied to all servers, desktops and +laptops, and at the perimeter? If so, provide details. +& + + +& + + +\\ +g +& +What data and application back{}-up and restoration procedures exist? +& + + +& + + +\\ +h +& +Are system and security logs regularly reviewed? +& + + +& + + +\\ +i +& +What equipment disposal procedures exist? +& + + +& + + +\\ +j +& +Are servers and other devices patched in a timely and regular manner? If +so, what tools are used? +& + + +& + + +\\ +k +& +What are the out{}-of{}-hours support arrangements? +& + + +& + + +\\ +\multicolumn{4}{l}{6. Logical access controls +}\\ +a +& +Is there a general policy or procedure governing network and server +access rights? +& + + +& + + +\\ +b +& +Are there procedures in place governing the use of privileged accounts, +and are records maintained of privileged users? +& + + +& + + +\\ +c +& +Are there procedures in place for the authorisation of users, +maintenance of user records and deletion of user accounts? +& + + +& + + +\\ +d +& +Is there a password policy and procedure? If so, does the policy meet up +with at least three of the following: +& + + +& + + +\\ + + +& +Password minimum length of 8 characters +& + + +& + + +\\ + + +& +Password should be a mix of alpha and numeric characters +& + + +& + + +\\ + + +& +Password should be a mix of upper and lower case +& + + +& + + +\\ + + +& +Password should include a special symbol +& + + +& + + +\\ +e +& +Passwords expire every 30 days +& + + +& + + +\\ +f +& +All system users shall have a unique user identifier. +& + + +& + + +\\ +g +& +User identifiers shall not provide any indication of the likely access +facilities available to that user. +& + + +& + + +\\ +h +& +Following 60 days of inactivity, the access rights of any user shall be +disabled. +& + + +& + + +\\ +i +& +Are there controls in place for access to different networks and network +services? +& + + +& + + +\\ +j +& +Are there any user authentication techniques employed other than +Passwords and IDs (eg. Token based access) +& + + +& + + +\\ +k +& +Is any use made of encryption or digital signatures? +& + + +& + + +\\ +l +& +Are staff allowed work out of the office/Data Centre e.g., from home? If +so, how is remote connections made? +& + + +& + + +\\ +m +& +What are the controls on permitted network protocols and connection +types? +& + + +& + + +\\ +n +& +What controls are in place governing access to software applications? +& + + +& + + +\\ +o +& +What are the controls to prevent unauthorised access to the network (eg. +3rd party laptop)? +& + + +& + + +\\ +p +& +Automatically generated system logs shall be maintained to record +security incidents. +& + + +& + + +\\ +q +& +Event logs shall be protected from unauthorised review of their +contents. +& + + +& + + +\\ +r +& +Event logs shall include unauthorised access attempts, all privileged +user activities, access to sensitive information such as password +files. +& + + +& + + +\\ +\multicolumn{4}{l}{7. Network management +}\\ +a +& +Is the Data Centre{\textquotesingle}s network physically separate from +the main company{\textquotesingle}s network? +& + + +& + + +\\ +b +& +If not, is there some logical separation such as firewall? If so, please +give as much detail as you can? +& + + +& + + +\\ +c +& +From b, is there a formal firewall rule and change management process? +& + + +& + + +\\ +d +& +From b, is there regular review of firewall rules? +& + + +& + + +\\ +e +& +From b, is there regular penetration tests of these firewalls? +& + + +& + + +\\ +f +& +Access by third parties shall only be authorised provided a business +need has been identified. +& + + +& + + +\\ +g +& +Security controls will be agreed and defined in the contract with the +third party. +& + + +& + + +\\ +h +& +Are Intruder Detection Systems (IDS) installed, and if so how are these +monitored? +& + + +& + + +\\ +\multicolumn{4}{p{16.799cm}}{8. Development and maintenance +}\\ +a +& +Is a standard project planning \& development methodology used on the +National Grid account? +& + + +& + + +\\ +b +& +Duties are suitably segregated to ensure that the opportunity for +unauthorised activities is reduced. +& + + +& + + +\\ +c +& +Data entry, system administration, systems development/maintenance, +change management and security administration are segregated. +& + + +& + + +\\ +d +& +Are there procedures in place to include hardware and software security +requirements in specification documents? +& + + +& + + +\\ +e +& +Does system testing include security requirements {}- eg \ data +validation, firewall functions and resilience? +& + + +& + + +\\ +f +& +Access to program source libraries shall be controlled in a manner that +is consistent with the business risks. +& + + +& + + +\\ +g +& +Are there software change control processes for applications, operating +systems and layered products on servers and network devices? +& + + +& + + +\\ +h +& +What quality records are maintained of the overall development \& +maintenance processes? +& + + +& + + +\\ +\multicolumn{4}{l}{9. Business continuity and DR +}\\ +a +& +Has an assessment of business continuity and disaster risks been +undertaken? +& + + +& + + +\\ +b +& +Do business continuity plans and DR procedures exist? If so, can we have +details. +& + + +& + + +\\ +c +& +Business continuity and DR procedures are exercised regularly? If so, +how often? +& + + +& + + +\\ +\end{longtable} +\subsection{Application Development} +\label{sec:AppendixApplicationDevelopment} + +\begin{longtable}[l]{p{0.1\textwidth} p{0.7\textwidth} *{3}{p{0.05\textwidth}} } + +\multicolumn{5}{l}{PROJECT:} +\\ +\multicolumn{5}{l}{Information Security {}- technical checklist {}- controls for web +applications} +\\ +& +& +R +& +A +& +G +\\ +\endhead +\multicolumn{5}{l}{Administration} +\\ +1.1 +& +Appropriate user and password procedures are in place for Helpdesk +& +& +& +\\ +1.2 +& +The system does not allow for password retrieval (i.e. passwords have to +be reset) +& +& +& +\\ +1.3 +& +The system require some form of verification before resetting a password +& +& +& +\\ +1.4 +& +Users are educated on how to protect their account information +& +& +& +\\ +1.5 +& +Navigation around the application is easy +& +& +& +\\ +1.6 +& +Source code do not reveal inappropriate information +& +& +& +\\ +1.7 +& +Adequate system documentation around authenticationauthorisation and +auditing are in place +& +\ +& +& +\\ +\multicolumn{5}{l}{Authentication {--} ``who can get in?''} +\\ +2.1 +& +The system requires both a username and password +& +& +& +\\ +2.2 +& +The system allows for, encourage, or enforce strong passwords (e.g. +minimum 6{}-8 characters) +& +& +& +\\ +2.3 +& +The system allows for password aging and enforce a password history +(e.g.change every 30{}-90 dayshistory of 12) +& +& +& +\\ +2.4 +& +The system does not permit easily{}-guessed usernames and passwords +(e.g.password cannot equal user id) +& +& +& +\\ +2.5 +& +The system does not allow the harvesting of usernames through the +application +& +& +& +\\ +2.6 +& +Error messages do not provide too much information about usernames or +passwords +& +& +& +\\ +2.7 +& +The system does not provide the last username that logged on i.e.the +user has to re{}-type username +& +& +& +\\ +2.8 +& +Controls exists to prevent brute{}-force guessing of usernames or +password +& +& +& +\\ +2.9 +& +The source code does not contain any hard{}-coded username or password +checks +& +& +& +\\ +2.10 +& +Users cannot change their username +& +& +& +\\ +2.11 +& +Users can easily change their own passwords \ +& +& +& +\\ +2.12 +& +Users required to re{}-authenticate before changing a password +& +& +& +\\ +2.13 +& +The system assigns temporary initial passwords that are unique and not +easy to guess +& +& +& +\\ +2.14 +& +There is no sharing of administrative user accounts and passwords \ +& +& +& +\\ +2.15 +& +There is no sharing of other accounts and passwords \ +& +& +& +\\ +2.16 +& +The system transmits user credentials over a secure channel +& +& +& +\\ +2.17 +& +Passwords are stored using a strong hashing algorithm +& +& +& +\\ +2.18 +& +Users cannot bypass authentication by accessing a module directly +& +& +& +\\ +2.19 +& +The system does not allow authentication to the Web +server{\textquotesingle}s operating system or network +& +& +& +\\ +2.20 +& +The system prevent account hopping (e.g. via URL) +& +& +& +\\ +2.21 +& +A third party cannot trick users into authenticating to fake login pages +& +& +& +\\ +2.22 +& +Users cannot customise their security options +& +& +& +\\ +2.23 +& +Users cannot revoke or delete accounts +& +& +& +\\ +2.24 +& +A hijacked cookie will not allow a user logon +& +& +& +\\ +2.25 +& +Sensitive information such as passwords is not stored in cookies +& +& +& +\\ +2.26 +& +Cookies have a reasonable expiration date +& +& +& +\\ +2.27 +& +Input field validation checks have been built in \ +& +& +& +\\ +\multicolumn{5}{l}{Authorisation {--} ``what can they do?'' +}\\ +3.1 +& +Users have the option to log out of their session in a controlled manner +& +& +& +\\ +3.2 +& +The system destroy session tokens upon logging out or timing out +& +& +& +\\ +3.3 +& +Session expiration mechanisms are in place +& +& +& +\\ +3.4 +& +Users are grouped and have specific and restricted rights privileges +& +& +& +\\ +3.5 +& +Users assignment of groups and their roles have been formally documented +and approved +& +& +& +\\ +3.6 +& +There are restrictions to the ``back'' and ``forward'' web buttons +& +& +& +\\ +3.7 +& +The ``right click'' functionality of the web browser is disabled +& +& +& +\\ +\multicolumn{5}{l}{Auditing {--} ``what have they done?'' +}\\ +4.1 +& +Users get to see their account history \ +& +& +& +\\ +4.2 +& +Users can easily report security incidents \ +& +& +& +\\ +4.3 +& +All user activity is logged +& +& +& +\\ +4.4 +& +All key changes to system parameters and users are logged +& +& +& +\\ +4.5 +& +The above key changes and any unusual events are reviewed and followed +up +& +& +& +\\ +\multicolumn{5}{l}{Availability} +\\ +5.1 +& +Number of concurrent logins is restricted +& +& +& +\\ +5.2 +& +Reports queries or processes are properly queued and prioritised and +assigned appropriate resources \ +& +& +& +\\ +\bottomrule +\end{longtable} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_system_data.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_system_data.tex new file mode 100644 index 0000000..c9e63da --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_appendix_system_data.tex @@ -0,0 +1,339 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4b +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{System Data} +\label{sec:AppendixSystemData} + +The system data descriptions provided in this appendix determine the +information stored within webMIP for Meter Modules, Housing, Base and +pricing elements. These elements will be controlled through the +administration functions provided by webMIP. + +\subsection{Meter Modules} +\label{sec:AppendixMeterModules} + +A meter module is the logical grouping of: + +\begin{enumerate} +\item a meter to measure the flow of gas to a property; +\item a relief valve to protect the meter; +\item a slamshut valve to protect the property; +\item a regulator controlling the pressure of the gas flowing through +the meter; +\item a filter to remove contaminants from the gas; +\item pipework connected to the inlet of the meter; +\item pipework connected to the outlet of the meter. +\end{enumerate} + +A meter module has the following attributes: + +\begin{itemize} +\item module reference {}- the {\textquotesingle}name{\textquotesingle} +by which the module is referred to; +\item service pressure {}- the pressure at which the gas arrives at the +inlet of the module. This is often described as ranges (and subranges) +of pressure: + +\begin{itemize} +\item LP {}- Low pressure; +\item MP {}- Medium pressure; +\item IP {}- Intermediate pressure; +\item HP {}- High pressure. +\end{itemize} + +\item inlet connection {}- the connection made with the the service +pipe. This is described using the following attributes: + +\begin{itemize} +\item orientation {}- the lie of the connection e.g. +{\textquotesingle}horizontal left{\textquotesingle}; +\item connection {}- a standard description of the connector used e.g. +{\textquotesingle}(mm) PN16{\textquotesingle}; +\item height {}- the position above the base at which the connection +will be found; +\item size {}- the diameter of the connection; +\end{itemize} + +\item outlet connection {}- the connection made with the property. This +is described using the following attributes: + +\begin{itemize} +\item orientation {}- the lie of the connection e.g. +{\textquotesingle}horizontal left{\textquotesingle}; +\item connection {}- a standard description of the connector used e.g. +{\textquotesingle}(mm) PN16{\textquotesingle}; +\item height {}- the position above the base at which the connection +will be found; +\item size {}- the diameter of the connection; +\end{itemize} + +\item dimensions {}- describing the physical size and positioning of the +module using standard attributes of +{\textquotesingle}A{\textquotesingle} to +{\textquotesingle}H{\textquotesingle}; +\item weight {}- the weight of the module in kilograms; +\item relief valve type {}- describes general characteristics of a +relief valve; +\item slamshut type {}- describes general characteristics of a slamshut +valve; +\item filter type {}- describes general characteristics of a filter; +\item regulator type {}- describes general characteristics of a +regulator; +\end{itemize} + +A module can be requested with the following additional items: + +\begin{itemize} +\item base {}- each module is associated with a single base; +\item housing {}- each module is associated with a single housing; +\item standard add{}-ons: + +\begin{itemize} +\item AMR {}- automatic meter reading device; +\item EMS {}- energy management system; +\item convertor {}- to display a live conversion on the module; +\item bypass {}- additional pipework that allows maintenance, +replacement, etc. to take place on the meter without disrupting the +flow of gas to the property. +\end{itemize} + +\end{itemize} + +A module can be associated with: + +\begin{itemize} +\item a drawing {}- a graphical representation of the module; +\item costs {}- the costs of buying and selling the module. This is +described using the following attributes: + +\begin{itemize} +\item selling price {}- the price at which the module is sold; +\item delivery cost {}- the cost of delivery to the buyer; +\item region {}- the geographical region in which the costs are valid +(different regions may have different pricing structures). +\end{itemize} + +\end{itemize} + +\subsection{Meter} + +A meter is a component of the module used to measure the flow of gas to +a property. + +A meter has the following attributes: + +\begin{itemize} +\item meter reference {}- the {\textquotesingle}name{\textquotesingle} +by which the meter is referred to; +\item measuring capacity. This is described using the following +attribute: + +\begin{itemize} +\item Qmax {}- the maximum volume of gas that can be passed through the +meter per hour; +\end{itemize} + +\item dimensions {}- describing the physical size and positioning of the +meter using standard attributes of +{\textquotesingle}A{\textquotesingle} to +{\textquotesingle}C{\textquotesingle} and +{\textquotesingle}Centres{\textquotesingle}; +\item weight {}- the weight of the meter in kilograms; +\item connection type {}- a standard description of the type of the +connector used e.g. {\textquotesingle}PN16{\textquotesingle}; +\item meter type {}- a standard description of the method that the meter +uses to measure flow e.g. {\textquotesingle}Rotary{\textquotesingle}. +\end{itemize} + +A meter can be associated with: + +\begin{itemize} +\item a drawing {}- a graphical representation of the meter; +\item costs {}- the costs of buying and selling the meter. This is +described using the following attributes: + +\begin{itemize} +\item cost price {}- the price at which the meter is obtained; +\item delivery cost {}- the cost of delivery\footnote{\label{fnt:ftn1}Is +this the cost of delivery to NG Metering or cost of delivery to the +Supplier?}; +\end{itemize} +\item a manufacturer {}- the organisation that constructed the meter. +\end{itemize} + +\subsection{Housing } +\label{sec:AppendixHousing} + +A housing encases a module. It is an optionally requested item on an +enquiry. + +A housing has the following attributes: + +\begin{itemize} +\item housing reference {}- the {\textquotesingle}name{\textquotesingle} +by which the housing is referred to; +\item dimensions {}- describing the physical characteristics of the +housing: + +\begin{itemize} +\item length; +\item width; +\item height; +\item weight; +\end{itemize} +\item doors {}- the number of doors in the housing; +\end{itemize} + +A housing can be associated with: + +\begin{itemize} +\item a module {}- each module may be associated with a single housing; +\item a drawing {}- a graphical representation of the housing; +\item a manufacturer {}- the organisation that constructed the housing. +\item costs {}- the costs of buying and selling the housing. This is +described using the following attributes: +\item cost price {}- the price at which the housing is obtained; + +\begin{itemize} +\item selling price {}- the price at which the housing is sold to the +customer; +\item labour cost {--} the cost of installing the housing (fixed at 10\% +of the selling price); +\item delivery cost {}- the cost of +delivery\textsuperscript{\ref{fnt:ftn1}}; +\end{itemize} +\end{itemize} + +\subsection{Base} +\label{sec:AppendixBase} + +A module is situated on a base (often a concrete slab\}. It is an +optionally requested item on an enquiry. + +A base has the following attributes: + +\begin{itemize} +\item base reference {}- the {\textquotesingle}name{\textquotesingle} by +which the base is referred to; +\item dimensions {}- describing the physical characteristics of the +base: + +\begin{itemize} +\item length; +\item width; +\item depth; +\end{itemize} +\item standard dimensions {\textquotesingle}A{\textquotesingle} to +{\textquotesingle}I{\textquotesingle}\footnote{Why are there two sets +of dimensions? } +\end{itemize} + +A base can be associated with: + +\begin{itemize} +\item a module {}- each module may be associated with a single base; +\item a drawing {}- a graphical representation of the base; +\item costs {}- the costs of buying and selling the housing. This is +described using the following attributes: + +\begin{itemize} +\item cost price {}- the price at which the housing is obtained; +\item selling price {}- the price at which the housing is sold to the +customer; +\item delivery cost {}- the cost of +delivery\textsuperscript{\pageref{fnt:ftn1}}; +\end{itemize} +\end{itemize} +\subsection{Drawing } + +A drawing is a graphical representation of a physical object. The system +stores drawings so that they may be displayed as part of a reporting +object. + +The system associates drawings with the following: + +\begin{itemize} +\item module; +\item meter; +\item housing; +\item base. +\end{itemize} + +\subsection{Standard add{}-ons} +\label{sec:AppendixStandardAddOns} + +A number of standard (non{}-meter module specific) items may be +requested to be included with a meter module: + +\begin{itemize} +\item AMR {}- automatic meter reading device; +\item EMS {}- energy management system; +\item Converter {}- to display a live conversion on the module; +\item bypass {}- additional pipework that allows maintenance, +replacement, etc. to take place on the meter without disrupting the +flow of gas to the property. +\end{itemize} + +The system does not record the attributes of these items other than the +fixed costs for the AMR, EMS and convertor items. + +\subsection{Pricing Data} +\label{sec:AppendixPricingData} + +With the exception of Standard add{}-ons (see Appendix \ref{sec:AppendixStandardAddOns} ) all +cost/pricing information may be regional i.e. the price for an item may +differ according to the region in which the installation will take +place. Regions are based on post{}-codes\footnote{Composition of +postcode to region still unknown.}. Where there are no applicable +regional costs associated with an item, a non{}-regional price will be +used for that item. + +Where the system selects a meter module or associated item and a +required supplier price is missing, the system is unable to produce a +quotation. The enquiry is treated as a request for a Manual Quote that +requires completion by D\&Q. + +Where the system selects a meter module or associated item and a +required network price is missing, the system will produce a quotation +but there will be a manual process during +{\textquotesingle}job{\textquotesingle} entry onto SAP to determine the +relevant network costs. + +Bypass pricing is handled off{}-line. + +\subsection{Tripartite Agreement} +\label{sec:TripartiteAgreement} + +The Tripartite Agreement prevents quotations being produced for +specified combinations of Suppliers, job types and postcodes. +The system will identify which Network the site address relates to by the supplied postcodes. When a supplier admin is set up by the webMIP administrator, the tripartite flag will either be {\textquotesingle}yes{\textquotesingle} or {\textquotesingle}no{\textquotesingle}. When a non - tripartite supplier code attempts to submit an enquiry for quotation of an install or exchange in a Tripartite only region - the system will reject and indicate that the customer will need to contact the regions asset owner for metering services. + +The system will record the Tripartite Agreement attributes as: +\begin{itemize} +\item Supplier {--} a reference to a Supplier that has not signed up to +the Tripartite Agreement; +\item Job Type {--} the Job Type(s) that the Supplier cannot be quoted +for, one of: + +\begin{itemize} +\item Installation of new meters; +\item Request for OFGEM Meter Accuracy Test (OFMAT); +\item Exchange of meters; +\item Removal of meters, including +{\textquotesingle}Adversarial{\textquotesingle} removal of meters; +\end{itemize} + +\item Installation PostCode {--} the postcode where the installation is +to take place. +\end{itemize} + +\subsection{Postcodes} +\label{sec:AppendixPostcodes} +The Post Codes will be loaded into the system as they currently relate to each network as they appear in the SAP Rainbow system at the time of go-live. In the eventuality that an individual post-code changes to relate to a different network it will be manually updated in system by the System Administrator. \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_communication.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_communication.tex new file mode 100644 index 0000000..6891a2d --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_communication.tex @@ -0,0 +1,80 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{System Communication} +\label{sec:SystemCommunication} +The webMIP system communicates with the users through their web browser +and Email. Screens are provided for the administration, enquiry and +quotation process. In addition to these screens webMIP is able to email +users at key points during the on{}-line quotation life cycle. Where +the third{}-party requires communications to be via telephone, fax or +the post this is performed manually by I\&C staff. + +\subsection{Web Browser} +The system uses a web browser user interface for all functions +associated with the user viewing or entering data. The system screens +and contents will be discussed in detail during the design stage of the +project. \ The screens representing the webMIP system will provide an +interface for the users to enter the data described in Appendix \ref{sec:AppendixSystemData}. + +\subsection{Email} +The webMIP system uses email to communicate with the I\&C team and +Agents. + +When webMIP delivers an email, the +{\textquotesingle}From{\textquotesingle} part of the email refers to a +mailbox within I\&C. This allows I\&C to check email failures (bounced +or returned email) and ensures that user responses to system generated +emails are received by I\&C. + +The email aspects of the webMIP system are used at specific points +within the quotation life cycle. There are two key points at which +email is employed; the request for quotation and the quotation +acceptance. + +\subsubsection{Request for Quotation} +During the quotation stage (request for quote submitted) the system +communicates either directly to the agent user and/or the I\&C team. +The method depends on the type of quote: \ + +\paragraph{Automatic Quotes} +Enquiries that can be automatically quoted for are presented to the user +once their on{}-line request has been submitted. If the user has +specified email as a preference for communication the system will email +the quote details to the user. If an I\&C user enters the details of +the enquiry on behalf of the agent then the communication preference +set on the agents profile will be used. If any other communication +option is selected as a preference, the system sends an email to the +I\&C team; the I\&C team then performs the communication manually. + +\paragraph{Manual Quotes} +Where the system has been unable to produce an automatic quote, the +system emails the I\&C team requesting that a manual quote be produced. +The system also sends an email to the user stating that a manual quote +will be provided. + +\subsubsection{Quotation Accepted} +\label{sec:CommunicationQuotationAccepted} +When a quote is accepted the system can send up to three types of email +depending on the type of quote and the agent users communication +preference settings: + +\paragraph{I\&C} +If the enquiry produces an automatic quote, the e-mail contains: all data entry for the job, including the selected design; details that may be used for planning/scheduling and procurement; internal cost details that NGM have to pay the networks for enquiries. In all cases (automatic or manual) the e-mail contains the Quote Reference No. The e-mail for Manual quotes will include all data entry fields within Web MIP to allow the I\&C user to print the output without having to access the Web MIP system unnecessarily. If the enquiry produced an automatic quote, the email contains: a link to the PDF of the accepted quote; cost reconciliation information for SAP Blueprint; details that may be used for planning/scheduling and procurement; internal cost details that National Grid Metering have to pay the networks for enquiries. In all cases the email contains the Quote Reference number. Manual and automatic quote emails are sent to different mail boxes. + +\paragraph{Agent} +If the agent accepting the quote has specified email as their +communication preference, webMIP sends an email to their specified +email address. If the quote is an automatic quote the email will +contain a PDF of the final detailed quote, otherwise the email will +contain the quote file uploaded by the I\&C user. The email also +contains a link to the quote held within webMIP, a list of reminder +items and details on what to do next.\footnote{(***Question 21,I\&C to +specify what the user is reminded about)} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_introduction.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_introduction.tex new file mode 100644 index 0000000..2ae0db4 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_introduction.tex @@ -0,0 +1,36 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section*{Executive Summary} + +National Grid Metering produces meter related works and services +quotations for their customers: Gas Suppliers and their Agents. The +quotations are produced manually by the Industrial and Commercial +(I\&C) department in response to enquiries raised by customers. An +estimated 8,000 quote enquiries are handled this way each year. The +proposed webMIP on{}-line quotation system will enable I\&C to provide +automatic quotations for the majority of their customers enquiries +without the need for manual intervention. The new system is expected to +reduce the number of enquiries handled by the I\&C team by 90\%, +leaving the I\&C staff to deal with the more complex bespoke or unusual +quotation requests. + +WebMIP is a tactical solution, with an expected lifespan of around 18 +months. The system will initially operate without reference to any +other system. It will then run in conjunction with the back{}-end +functions of {\textquotesingle}SAP Blueprint{\textquotesingle}. The +system will eventually be replaced by SAP Blueprint and its web portal +interface. + +This document details the functional requirements of the webMIP system. +It describes the operations and processes required to complete the +system and fulfil I\&C{\textquotesingle}s business requirements for +handling quotes via an on{}-line internet based solution. It also +describes the administration and scope aspects of the webMIP system. \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_process.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_process.tex new file mode 100644 index 0000000..a778109 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_process.tex @@ -0,0 +1,469 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{System Process} +This section of the document describes the processes and tasks performed +by the webMIP system. It details the processes from the initiation of +an enquiry to the final quotation and briefly describes some of the +processes required to administer the system. The limitations and +constraints placed upon these tasks and processes are described +previously in the System Scope section of this document. + +The quotation process is driven by the supplier agents. There are three +main stages to the quote process: + +\begin{enumerate} +\item Enquiry. The user fills in a questionnaire, providing data +relating to the meter, the meter site, and environment; +\item Quote generation. If the enquiry is submitted for quotation, +quotes are generated detailing the costs of suitable meter modules; +\item Quote acceptance or rejection. If a quote is accepted by the user +then the quote turns into a Job, (at this point the job is outside the +scope of webMIP functionality). +\end{enumerate} + +The webMIP system provides a quick and easy interface for agents to +request a quotation on{}-line. Agents may also phone, fax, email or +post a request for a quote; in these cases the enquiry is entered into +webMIP by an I\&C User on behalf of the agent. The webMIP system will +record the I\&C User and the supplier information on such enquiries. + +The user logs into the system using a user name and password. If the +user has the role of I\&C User, the user selects the user name of the +Supplier Agent on whose behalf they are entering the enquiry +information. + +Figures \ref{fig:UseCaseDiagram} and \ref{fig:SequenceDiagram} show the main processes +and objects of the system. + +\begin{figure} +\includegraphics[width=\textwidth]{UseCases1} +\caption{Use Case Diagram} +\label{fig:UseCaseDiagram} +\end{figure} + +\subsection{Enquiry} +\label{sec:Enquiry} + +\begin{figure} +\includegraphics[width=\textwidth]{SequenceDiagram1} +\caption{Sequence Diagram} +\label{fig:SequenceDiagram} +\end{figure} + +The system allows the user to perform the following primary functions: + +\begin{enumerate} +\item Create a new enquiry; +\item Amend an existing enquiry; +\item Save an enquiry; +\item Copy an existing enquiry to create a new enquiry; +\item Submit an enquiry for quotation. +\end{enumerate} + +The complete list of enquiry data items are described in Appendix \ref{sec:AppendixDataItems}. + +\subsubsection{Create a new enquiry} + +The system generates and records a unique enquiry reference for the new +enquiry. The system records supplier{}-related information against the +new enquiry by referring to the user agent details to find the supplier +on whose behalf the user performs work. The system records the user +details against the enquiry. + +The user enters site location information and then fills in the +questionnaire. + +The questionnaire is presented as a series of questions (either grouped +or singular) on a succession of screens. The system saves the answers +to questions when the user completes a screen. The system alters the +{\textquotesingle}flow{\textquotesingle} of questions depending on the +answers given to previous questions. Each has +{\textquotesingle}help{\textquotesingle} associated with it that is +presented to the user on request. The user is able to exit from the +questionnaire before all the questions have been answered: the user may +choose to amend or complete the enquiry at a later date. + +When the questionnaire is completed, the user is able to request a +quote. + +\subsubsection{Amend an existing enquiry} + +The user searches for existing enquiries using the unique enquiry +reference, transaction reference, post code or MPRN of an enquiry. The +system limits the enquiries that can be queried to those associated +with the supplier on whose behalf the user performs work: the queried +enquiries may have been created by other users. If the enquiry has not +been marked as {\textquotesingle}quoted for{\textquotesingle}, the user +is able to amend the enquiry. + +The user may amend the site location information, completed questions +from the questionnaire or complete unanswered questions. + +When the questionnaire is completed, the user is able to request a +quote. + +\subsubsection{Copy an existing enquiry to create a new enquiry} +The user searches for existing enquiries using the unique enquiry +reference, transaction reference, post code or MPRN of an enquiry. The +system limits the enquiries that can be queried to those associated +with the supplier on whose behalf the user performs work: the queried +enquiries may have been created by other users. + +The system allows Agents and I\&C users to create a new enquiry by +selecting an existing enquiry and copying the details of that enquiry. +The system generates and records a unique enquiry reference for the new +enquiry. The system amends the new enquiry by applying the current +Agents details and removing any files associated with the original +enquiry. + +The user is able to amend the new enquiry. + +\subsubsection{Enquiry State} +The state diagram (Figure \ref{fig:EnquiryStateDiagram}) demonstrates the behaviour of the enquiry +through the use cases described in Figure \ref{fig:UseCaseDiagram}. + +\begin{figure} +\includegraphics[width=\textwidth]{EnquiryStateDiagram} +\caption{Enquiry State Diagram} +\label{fig:EnquiryStateDiagram} +\end{figure} + +\subsection{Questionnaire Flow Chart} +In order for the user to receive a quote, a short questionnaire needs to +be completed. The webMIP system prompts the user to answer the +questions. Some questions within the questionnaire are dependent on +answers from other questions. Figures \ref{fig:QuestionaireFlowChartSlide1}, \ref{fig:QuestionaireFlowChartSlide2} and \ref{fig:QuestionaireFlowChartSlide3} +describe the overall flow of the enquiry questions. + +\begin{figure} +\includegraphics[width=\textwidth]{QuestionnaireFlowchartFromFlipChartSlide1.png} +\caption{Questionnaire Flow Chart - Slide 1} +\label{fig:QuestionaireFlowChartSlide1} +\end{figure} + +\begin{figure} +\includegraphics[width=\textwidth]{QuestionnaireFlowchartFromFlipChartSlide2.png} +\caption{Questionnaire Flow Chart - Slide 2} +\label{fig:QuestionaireFlowChartSlide2} +\end{figure} + + +\begin{figure} +\includegraphics[width=\textwidth]{QuestionnaireFlowchartFromFlipChartSlide3.png} +\caption{Questionnaire Flow Chart - Slide 3} +\label{fig:QuestionaireFlowChartSlide3} +\end{figure} + +\subsection{Quote generation} +The system generates quote(s) on request against enquiries that have not +already been marked as {\textquotesingle}quoted for{\textquotesingle}. +There are two methods of quote generation: + +\begin{enumerate} +\item Automatic quotation. The system produces PDF letters for all submitted quotes with all relevant details (and caveats where appropriate) without manual intervention; +\item Manual quotation. The system is unable to automatically produce a +quote and relies on a manual process to produce the quotation off line +and then upload the quotation into webMIP. +\end{enumerate} +The rules in Figures \ref{fig:AutomaticOrManualFlowChart1}, \ref{fig:AutomaticOrManualFlowChart2} and \ref{fig:AutomaticOrManualFlowChart3} show whether an enquiry results in an automatic or +manual quotation. If the meter size is not provided by the user, the +system converts the Qmax value into the appropriate U category e.g. U16 +and this conversion is used in place of the meter size. + +The system is able to produce automatic quotations for adversarial +works, however an additional caveat is placed on the automatic quote +stating that any purging requirements will be addressed as a variation +on the job at a later date. + +In addition to the inability of the system to produce an automatic +quotation, the requirement for a site survey causes the need for a +manual quotation (see \ref{sec:SiteSurvey}). + + +\begin{figure} +\includegraphics[width=\textwidth]{bespoke_or_standard_job1.png} +\caption{Automatic or Manual Quotation Flow Chart 1} +\label{fig:AutomaticOrManualFlowChart1} +\end{figure} + + +\begin{figure} +\includegraphics[width=\textwidth]{bespoke_or_standard_job2.png} +\caption{Automatic or Manual Quotation Flow Chart 2} +\label{fig:AutomaticOrManualFlowChart2} +\end{figure} + +\begin{figure} +\includegraphics[width=\textwidth]{bespoke_or_standard_job3.png} +\caption{Automatic or Manual Quotation Flow Chart 3} +\label{fig:AutomaticOrManualFlowChart3} +\end{figure} + +\subsubsection{Automatic quotation} +The system produces quotations for new meter modules and for standard work items. + +\paragraph{Meter Module} +Quotations are based on the system{\textquotesingle}s ability to select +meter modules that match the enquiry requirements. + +\subparagraph{Meter module selection} +The webMIP system identifies and selects Meter Modules that are suitable +for quotation. Meter modules are selected using the following enquiry +details: + +\begin{enumerate} +\item Inlet Pressure; +\item Outlet Pressure(Required Meter Pressure); +\item Qmax; +\end{enumerate} +Each meter module is associated with a single housing and this is +selected if the enquiry requests it. + +Each meter module is associated with a single base and this is selected +if the enquiry requests it. + +For Adversarial removal jobs, a caveat is placed in the automated quote +stating that any purging costs will be transferred back to the customer +after the job is completed in the form of a variation. + +For enquiries without a housing option selected, the minimum housing +dimension requirements are provided. + +\subparagraph{Meter module speculative quote} +The system produces a quote for each selected meter module. Users can +select each of the quotes provided and accept one. The following items +of data are provided with each of the meter modules listed: + +\begin{enumerate} +\item Meter module name {--} The name/description of the meter module +\item Total cost {--} The total cost of the module and the chosen +add{}-ons +\item Contract Lead time {--} The number of days that the job must be +completed within (after quote acceptance) +\item Qmax {--} The Qmax value requested by the enquiry, in KWh +\item Inlet orientation {--} The orientation of the inlet pipework +\item Outlet orientation {--} The orientation of the outlet pipework +\item List of Add-ons +\end{enumerate} +\subparagraph{Meter module accepted quote document} +Once a quote is accepted the system produces a more detailed quote +document containing a description of the module and the appropriate +add{}-ons. The accepted quote document contains the following data +items: + +\begin{enumerate} +\item Module name {--} The name of the module +\item Qmax {--} The Qmax value requested by the enquiry, in KWh +\item Qmin {--} The Qmin value for the module, in kWh +\item Service Pressure {--} The service pressure category for the module +(eg. LP) +\item Required meter pressure {--}The required meter pressure requested by the enquiry, in mbar +\item Job completion date {--} The number of days that the job must be +completed within (after quote acceptance) +\item Dimensions {--} The width, depth and height of the module, in mm +\item Weight {--} The weight of the module, in kg +\item Inlet {--} The inlet orientation configuration +\item Outlet {--} The outlet orientation configuration +\item Module Cost {--} The cost of the module +\item Caveats {--} A list of caveats relating to the job +\end{enumerate} +An additional list of selected module add{}-ons is provided with the +following data items displayed for each add{}-on: +\begin{enumerate} +\item Accessory {--} The name of the add{}-on +\item Cost {--} The cost of the add{}-on +\item Lead time {--} The lead time (if appropriate) for +delivering/fitting the add{}-on +\item Dimensions {--} The width, depth and height of the add{}-on +\item Weight {--} The weight of the add{}-on in kg +\end{enumerate} +There is an additional total line for the list of add{}-ons, that totals +the collective costs of the add{}-ons. + +The system generates costs for the module dependant on the installation +address. The regional structure will be based on postcode data provided +by National Grid Metering I\&C. See Appendix \ref{sec:AppendixPricingData} +for further information. +\paragraph{Standard work items} +Quotations for standard work items apply standard/fixed prices for each item requested. Such items include: +\begin{enumerate} +\item Request for OFGEM Meter Accuracy Test (OFMAT). +If the existing meter is a Diaphragm and within U-16 to U-160 then an automatic quote will be attempted otherwise the quote will be manual; +\item Removal of meters, including 'Adversarial' removal of meters; +Relocation of meters; +\item Purchase Energy Management System (EMS) for an existing meter module. +\end{enumerate} +The generated quotation refers to the work item(s) and the price charged. + +\subsubsection{Manual quote generation} +Where the system is unable to automatically produce a quotation, the +system supports a manual process of uploading a quotation document +generated off{}-line and making it available to the user. The system +has no knowledge of the contents of the manual quotation. + +\subsection{Quote acceptance and rejection} +The user searches for existing enquiries using the unique enquiry +reference, transaction reference, post code or MPRN of an enquiry. The +system limits the enquiries that can be queried to those associated +with the supplier on whose behalf the user performs work: the queried +enquiries may have been created by other users. The user is able to +view the quote(s) associated with an enquiry where either the enquiry +has been marked as {\textquotesingle}quoted for{\textquotesingle} and +the quotes have not lapsed (greater than 90 days) or the enquiry has +been marked as {\textquotesingle}complete{\textquotesingle}. + +The user is able to select a quote and view the accepted quote document. + +The user rejects quotes by selecting from the list and choosing the +{\textquotesingle}reject{\textquotesingle} option. The user is asked to +enter a reason for the rejection. The user is given the opportunity to +fill in a free text field of 250 characters and select from a list of +the following reasons: + +\begin{enumerate} +\item Too expensive +\item Lead time too long +\item Used competitor +\item No longer required +\item Speculative enquiry +\item Customer changed supplier +\end{enumerate} +A rejected quote cannot be subsequently accepted + +The user accepts a quote by selecting from the list and choosing the +{\textquotesingle}accept{\textquotesingle} option. The system records +the details of the user against the enquiry. The system marks the +quotation as {\textquotesingle}Accepted{\textquotesingle} and all other +quotations related to the enquiry as +{\textquotesingle}Rejected{\textquotesingle}. An accepted quote cannot +be subsequently rejected. An enquiry cannot have more than one accepted +quote. The system uses email to contact the I\&C department with +details of the accepted quote (see section \ref{sec:CommunicationQuotationAccepted} for further information). The system also +provides the user with details of the manual process to be followed +from this point. The system will also inform the user that the actual +job SLA starts after all drawings and documents required to complete +the job have been uploaded or delivered to I\&C. + +Quotes that have not been accepted or rejected lapse after 90 days. +Quotes that have lapsed cannot be viewed by the user. The system marks +the quote as {\textquotesingle}Lapsed{\textquotesingle}. + +\subsubsection{Quotation State} +The state diagram in Figure \ref{fig:QuotationStateDiagram} demonstrates the behaviour of the quotation +through the use cases described in Figure \ref{fig:UseCaseDiagram}. + +\begin{figure} +\includegraphics[width=\textwidth]{QuotationStateDiagram.png} +\caption{Quotation State Diagram} +\label{fig:QuotationStateDiagram} +\end{figure} + +\clearpage + +\subsection{System Process Map} +Figures \ref{fig:SystemProcessMapSlide1}, \ref{fig:SystemProcessMapSlide2}, \ref{fig:SystemProcessMapSlide3} and \ref{fig:SystemProcessMapSlide4} show the overall flow of the Quotation Processes. + +\begin{figure} +\includegraphics[width=\textwidth]{system_process_mapSlide1.png} +\caption{System Process Map {}- Slide 1} +\label{fig:SystemProcessMapSlide1} +\end{figure} + +\begin{figure} +\includegraphics[width=\textwidth]{system_process_mapSlide2.png} +\caption{System Process Map {}- Slide 2} +\label{fig:SystemProcessMapSlide2} +\end{figure} + +\begin{figure} +\includegraphics[width=\textwidth]{system_process_mapSlide3.png} +\caption{System Process Map {}- Slide 3} +\label{fig:SystemProcessMapSlide3} +\end{figure} + +\begin{figure} +\includegraphics[width=1\textwidth]{system_process_mapSlide4.png} +\caption{System Process Map {}- Slide 4} +\label{fig:SystemProcessMapSlide4} +\end{figure} + +\clearpage + +\subsection{Business Rules} +The following business rules are applied during the above processes. + +\subsubsection{Pricing Data} +With the exception of ''Standard Add-Ons'' (see Appendix \ref{sec:AppendixStandardAddOns}) all cost/pricing information may +be regional i.e. the price for an item may differ according to the +region in which the installation will take place. Regions are based on +post{}-codes\footnote{Composition of postcode to region still +unknown.}. Where there are no applicable regional costs associated with +an item, a non{}-regional price will be used for that item. + +Where the system selects a meter module or associated item and a +required supplier price is missing, the system is unable to produce a +quotation. The enquiry is treated as a request for a Manual Quote that +requires completion by D\&Q. + +Where the system selects a meter module or associated item and a +required network price is missing, the system will produce a quotation +but there will be a manual process during +{\textquotesingle}job{\textquotesingle} entry onto SAP to determine the +relevant network costs. + +Bypass pricing is handled off{}-line. + +\subsubsection{Tripartite Agreement} +Where suppliers have not signed up to an agreement with National Grid, +known as the Tripartite Agreement, the system is prevented from +producing quotations (both automatic and manual) for specified job +types where the consumer postcode is within a specified set of +postcodes. Where a request for quotation is made and is prevented by the +absence of a Tripartite Agreement, the user will be informed. + +%\begin{quote} +%Non{}-tripartite customers will not be able to generate +%quotations for certain job types in certain postcodes (postcodes to be +%supplied in the design and build phase). These jobs would drop out of +%scope. +% +% +%I think it simply needs a field in your {\textquotesingle}Supplier +%Details{\textquotesingle} table (perhaps down to Contract Reference +%granularity) which nominates it as being a Tripartite supplier (T) or +%Non{}-Tripartite one (N). The Users Log{}-in would associate them to +%the Specific Supplier. +% +%You then need a couple of lines of code which upon entry of Job{}-Type +%and Post{}-Code do a look up to see if this is a valid request. In +%Scottish and Southern (Scotia) IDN Network Areas only a very limited +%set of job types can be entertained for +%{\textquotesingle}Type{}-N{\textquotesingle} Suppliers. Where we are +%unable to Quote (legally/commercially) an Error Message should be +%displayed directing the User to the {\textquotesingle}Relevant +%Network{\textquotesingle}. +%\end{quote} + +\subsubsection{Site Survey} +\label{sec:SiteSurvey} +The following enquiries require a site survey: + +\begin{enumerate} +\item LP or MP relocation; +\item Exchange; UNLESS +\begin{enumerate} +\item the service pressure is LP and the existing meter is a Diaphragm; OR +\item the service pressure is MP and the existing meter is a Diaphragm and the upgrade is within one +{\textquotesingle}U{\textquotesingle} size e.g. from U16 to U40. +\end{enumerate} +\end{enumerate} + +An enquiry that requires a site survey prevents the creation of an automatic quote. \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_reporting.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_reporting.tex new file mode 100644 index 0000000..615fd34 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_reporting.tex @@ -0,0 +1,129 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section[Reporting]{\index{Reporting}Reporting} +The webMIP system contains reporting options for all users of the +system. Most of the reports take the form of lists of data from which +decisions and choices are made. I\&C build their own reports using the +data export function of webMIP. + +The following is a list of the purpose built reports that are included +within the webMIP system. + +\subsection{Data Export} +The system provides the webMIP administrator user with the ability to +export all data in the webMIP system. The data is categorised by the +logical groupings in which it is held within webMIP. The data is +exported in CSV format and then used by I\&C. + +\subsection{Automatic Quotes} +The system generates quotes on request. The system initially generates a +speculative quote document for each meter module that matches the enquiry +requirements. When a quote is accepted, the system generates an accepted +quote document containing a description of the module, appropriate +add{}-ons and detailed drawings. The quote is generated as a PDF file. +All quotes are generated with National Grid Metering headers and +footers. + +Quotes without a housing option selected supply the minimum housing +dimension details but no costing details are provided. + +\subsubsection{Speculative Quote} +A speculative quote is a quote automatically generated by webMIP after the +user has submitted their enquiry for quotation. The quote +contains the following data: + +\begin{enumerate} +\item Base dimensions and generic diagram; +\item Housing dimensions and generic diagram; +\item Module dimensions and generic diagram; +\item Module technical specifications; +\item The Agent/supplier address details; +\item Break down of costs and items (each line with an item and +associated costs). +\end{enumerate} +\subsubsection{Accepted Quote} +The accepted quote is provided to the user after accepting a Speculative +quote. The quote contains further refinement and detail +than the speculative quote. The quote contains the following +data: + +\begin{enumerate} +\item Base details and dimensions with detailed diagram; +\item Housing details and dimensions with detailed diagram; +\item Module details and dimensions with detailed diagram; +\item Module technical specifications; +\item The Agent/supplier address details; +\item Break down of costs and items (each line with an item and +associated costs). +\end{enumerate} +\subsection{User specific Reports} +\subsubsection{View of Accepted Quotes} +The system provides a list of accepted quotes displayed in date accepted +ascending order. The report is available to the webMIP administrator, +I\&C User and I\&C Customer Services users. The fields displayed for +each quote is as follows: + +\begin{enumerate} +\item Quote reference number; +\item Supplier Name; +\item Agent name; +\item Date quote accepted. +\end{enumerate} +\subsubsection{View of quotes pending manual quote} +The system provides a view of all quotations with a status of +\ {\textquotesingle}In Progress{\textquotesingle}. \ The quotes are +displayed in date{}-submitted ascending order. The report is available +to the webMIP administrator, I\&C User and I\&C Customer Services +users. The following fields are displayed for each quote: + +\begin{enumerate} +\item Quote reference number; +\item Supplier Name; +\item Agent name; +\item Date submitted for quotation. +\end{enumerate} +\subsubsection{Supplier Administrator} +The Supplier Agent role will have a view of all related Supplier Agents. + +\subsubsection{Supplier Agent} +The Supplier Agent role has following data views available: + +\begin{enumerate} +\item Enquiries that they have created or have been created by other +agents associated with the same supplier; +\item Quotes that they have created or have been created by other agents +associated with the same supplier, these will be viewable for up to 90 +days from generation. +\end{enumerate} +\subsubsection{I \& C Customer Services} +The I \& C Customer Services role has the following data views +available: + +\begin{enumerate} +\item All enquiries that \ have been created within the system; +\item All quotes that \ have been created, these will be viewable for up +to 90 days from generation. +\end{enumerate} +\subsubsection{I \& C User} +The I \& C User role will has the following data views available: + +\begin{enumerate} +\item All enquiries that \ have been created within the system; +\item All quotes that \ have been created, these will be viewable for up +to 90 days from generation. +\end{enumerate} +\subsubsection{The webMIP Administrator} +The webMIP Administrator role has the following data views available: + +\begin{enumerate} +\item All enquiries that \ have been created within the system; +\item All quotes that \ have been created. +\end{enumerate} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_scope.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_scope.tex new file mode 100644 index 0000000..67e0416 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_scope.tex @@ -0,0 +1,116 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{System Scope} +The primary objective of the system is to allow Agents to submit +enquiries for meter related works and services without the involvement +of I\&C staff. The secondary objective is to produce one or more meter +work quotations to satisfy each submitted enquiry, again without the +involvement of I\&C staff, and make these quotations available to the +Agents for acceptance. + +The scope boundary for the system can be defined via the work +flow required. The scope starts once an enquiry is initiated and ends +once the provided quote has been accepted, rejected or lapsed (after 90 +days). + +\subsection{Within Scope} +The following stated requirements are listed as in scope and will +facilitate the functions and operation of the webMIP system. + +\begin{enumerate} +\item Collect enquiry details for meter related works in the form of a +questionnaire completed by a registered webMIP user (see Appendix \ref{sec:AppendixDataItems}). +The meter related works details collected are limited to the +following job types: + +\begin{enumerate} +\item Installation of new meters; +\item Request for OFGEM Meter Accuracy Test (OFMAT); +\item Exchange of meters; +\item Removal of meters, including +{\textquotesingle}Adversarial{\textquotesingle} removal of meters; +\item Relocation of meters; +\item Purchase of Automatic Meter Reader (AMR) and/or Energy Management System (EMS) for an existing meter module. +\end{enumerate} + +\item Facility to upload documents relating to an enquiry. Maximum +size of file 3 megabytes, maximum size of files relating to an enquiry +10 megabytes. +\item The facility to download files stored within the system. +\item A bulk upload process with simple validation that will allow users +to upload system data items into webMIP. +\item The ability to provide an automatic quotation for enquiries that +meet the correct requirements (see Automatic quotation scope below). +\item Provide the facility for specific I\&C users to upload a manual +quotation for enquiries that webMIP is unable to produce and automatic +quotation. +\item To provide the facility for users to accept/reject manually +uploaded and automatically created quotations via a web browser. +\item To scan uploaded files for viruses and malicious content and +remove offending files +\end{enumerate} + +\subsubsection{Automatic quotation scope} +The rules in Figure \ref{fig:AutomaticOrManualFlowChart1} (page \pageref{fig:AutomaticOrManualFlowChart1}) show the +scope for the production of automatic or manual quotations. In addition +to these rules, works where there are no meter modules, housings, etc. +known to the system that meet the requirements of the submitted enquiry +will result in a manual quotation. + +\subsubsection{Manual quotation scope} +Where the system is unable to produce a quotation, the system provides +automatic emails to I\&C and appropriate agent users, informing them +that this is the case. The system supports a manual process of +uploading a quotation document generated off{}-line and making it +available to the third{}-party. The system has no knowledge of the +contents of the manual quotation. + +\subsubsection{Communication scope} +The system will provide communication in the form of email and web +page requests. The system will send email to users of the system, +these emails may where appropriate include system generated +attachments. The system will be capable of emailing quotes to users +where appropriate. + +\subsection{Out of Scope} +The system will not provide the following functions or requirements that +are deemed to be beyond the scope of the system at this point in time. + +\begin{enumerate} +\item Where the third{}-party requires communications to be via +telephone, fax or the post this is performed manually by I\&C staff and +not by the webMIP system; +\item Managing Procurement, Planning Scheduling and Despatch activities +for the I\&C value chain; +\item Any changes to off{}-line systems required to accommodate +on{}-line quotations; +\item Any changes required to SAP Blueprint in order to accommodate +on{}-line quotations solution; +\item Automated interface to any of the existing systems/off{}-line +databases; +\item Tracking of the processes used to generate manual quotations; +\item Production of {\textquotesingle}ad{}-hoc{\textquotesingle} +management information reports; +\item Management of customer queries and complaints; +\item Management of any variations that occur on accepted quotations; +\item Supplier specific end customer uplifts for quotation pricing; +\item Supplier specific, end customer customised quotations with letter +heads; +\item Manage supplier acceptance of quotations where the method of acceptance occurs outside of the system e.g. through telephone, email, fax, etc.; +\item Manage quotation preparation for jobs handled manually; +\item Quotation generation for jobs received via supplier sent bulk .CSV +files; +\item Automatic generation of quotations deemed as bespoke or +non{}-standard; +\item Facility to validate quotation details and pricing provided by SAP +Blueprint. + +\end{enumerate} diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_titlepage.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_titlepage.tex new file mode 100644 index 0000000..fcd5ffe --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_titlepage.tex @@ -0,0 +1,36 @@ +\begin{titlepage} +\includegraphics[width=0.9\textwidth]{TitleImage} + +\begin{tabular}[c]{l r} +\toprule +& \today +\\ +\midrule +\multicolumn{2}{c}{ +\newline +\Huge{webMIP Functional Specification} +\newline +} +\\ +\midrule +\theversion &Restricted to National Grid Metering \& Advantica +\\ +\bottomrule +\end{tabular} + +\begin{tabular}[c]{l l} +\textbf{Prepared for:} & \textbf{Prepared by:} \\ +Martin Hansford & Jamie Priest \& Andy Hardy \\ +National Grid Metering & Advantica \\ +4 Abbotts Lane & Ashby Road \\ +Coventry & Loughborough \\ +Warwickshire & Leicestershire \\ +CV1 4AY & LE11 3GR \\ +& United Kingdom \\ +& Tel: +44 (0)1509 282802 \\ +& Fax: +44 (0)1509 283135 \\ +& Email: jamie.priest@advanticagroup.com \\ +& Website: www.advanticagroup.com \\ +Customer Reference: 2520000817 & \\ +\end{tabular} +\end{titlepage} diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_usersandsecurity.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_usersandsecurity.tex new file mode 100644 index 0000000..e501edf --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/fs_usersandsecurity.tex @@ -0,0 +1,493 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info + +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} + +\section{Security} +\label{sec:Security} +\subsection{User Security} +\label{sec:UserSecurity} +User security is provided through: + +\begin{enumerate} +\item User Accounts {--} to control access to the system to authorised +users only; +\item User Roles {}- to control user access to system functionality; +\end{enumerate} +\subsubsection{\label{sec:UserAccounts}User Accounts} +The user provides a valid user name and password to access their system +account. Each user name is unique within the system. Each account is +associated with a single User Role (see User Roles, below) and, +optionally, a single Supplier that the account user works on behalf of. +A user may have multiple user accounts: this allows the user to +represent more than one Supplier or have multiple roles. For example, +Peter Smith may have user name PSMITHMETHANE when representing one +Supplier and user name PSMITHBIO when representing a second Supplier. + +Advantica retains access to the system for support purposes. + +\paragraph{Password Complexity} +Passwords held within the webMIP system conform to the following rules: + +\begin{enumerate} +\item Minimum length of 8 characters +\item Contain a non{}-alphanumeric character e.g. \% +\item Contain upper case and lower case characters +\item Contain alpha and numeric characters +\end{enumerate} + +\paragraph{Password expiry} +Passwords expire after 30 days. After this time user is able to log in +to the system but is forced to enter a new password before they can +gain access to system. After 60 days the user is unable to access the +system and the account is locked. The account is unlocked either by the +webMIP administrator or, where the account is for a Supplier Agent, the +associated Supplier Administrator. + +\paragraph{Forgotten passwords} +Forgotten passwords are reset by users with the role of webMIP +Administrator or Supplier Administrator. The Supplier Administrator +role can only reset the passwords of accounts associated with the same +Supplier as that represented by the Supplier Administrator. The webMIP +Administrator role is able to reset all account passwords. + +\paragraph{File Uploads} +Files that are uploaded to the webMIP system are scanned for viruses or +malicious content. However, it is the responsibility of users to have +adequate virus protection before they upload or download files to or +from the system. Files identified as containing \ a virus or malicious +content are removed from the system and the associated enquiry is +marked with warning text stating that the file has been removed for +security reasons. + +Further security details will be defined in the design phase of the +project. + +\subsubsection{User Roles} +\label{sec:userroles} +The different users of the system can be defined within five separate +roles: + +\begin{enumerate} +\item webMIP Administrator; +\item I\&C User; +\item I\&C Customer Services; +\item Supplier Administrator; +\item Supplier Agent. +\end{enumerate} + +These different roles fall into the hierarchy described in Figure \ref{fig:UserRoleHierarchy}: + +\begin{figure} +\includegraphics[width=\textwidth]{userhierachy} +\caption{User Role Hierarchy} +\label{fig:UserRoleHierarchy} +\end{figure} + +\paragraph{webMIP Administrator} +The webMIP Administrator role is able to control the overall system e.g. +editing module and add-on data, running system reports, etc. + +The role is able to create, view, update and delete users with the roles +of Supplier Administrator, Supplier Agent, I\&C User and I\&C Customer +Services. The webMIP Administrator can also perform all of the +functions available to the I\&C User and the I\&C Customer Services +roles. When creating or editing the Supplier Agent, the webMIP +Administrator, will be forced to associate the Supplier Agent with an +existing Supplier Administrator. + +The Administration section of this document has further information on +the administrative functions that can be performed by the webMIP +Administrator role. + +\paragraph{I\&C User} +The I\&C User role is able to complete all of the main day{}-to{}-day +tasks required within the webMIP system. The I\&C User role is able to: + +\begin{enumerate} +\item Create and enter enquiries on behalf of any Supplier Agent listed +in the webMIP system; +\item Accept and reject quotes on behalf of a Supplier Agent; +\item Upload a manual bespoke quote to the webMIP system; +\item View all enquiries and quotes within the system enabling I\&C +users to to provide support for the Supplier Agents in populating +enquiry details and resolving their queries. +\end{enumerate} +Where a user with I\&C User role performs work on behalf of a Supplier +Agent, they are subject to the same restrictions as the account on +whose behalf they are working. For example, they can only create +enquiries or accept quotes for the Supplier represented by the Supplier +Agent account. The system records activities performed by the I\&C User +role on behalf of Supplier Agents. + +Where a user with I\&C User role accepts a quote on behalf of a Supplier Agent, the user records evidence of supplier approval (e.g. reference to email, document, etc.) against the acceptance. +\paragraph{I\&C Customer Services} +The I\&C Customer Services role is able to view all enquiries and quotes +within the webMIP system, but is unable to edit or update any data. The +role allows the customer services team within I\&C to provide support +for the Supplier Agents. + +\paragraph{Supplier Administrator} +The role of Supplier Administrator is able to maintain data relating to +the supplier to which the user is associated. + +The Supplier Administrator role is also able to create, view, edit and +delete users with the role of Supplier Agent. Each user created in this +way is associated with the supplier represented by the Supplier +Administrator. + +\paragraph{Supplier Agent} +A user may have the role of Supplier Agent for multiple suppliers. Each +instance of the Supplier Agent role requires a user account dedicated +to that supplier. + +The Supplier Agent role is able to create enquiries and view or edit +enquiries that have been created by other agents associated with the +same supplier. + +The Supplier Agent role can submit enquiries for quotation and accept or +reject quotes for their associated supplier. + +When a Supplier Agent creates a new enquiry the system will +automatically associate their related Supplier details to the enquiry. + +\paragraph{Action Matrix} +The action matrix listed below outlines some key functions of the webMIP +system and the roles that can perform them. + +\begin{longtable}[c]{ p{0.3\textwidth} *{5}{ p{0.1\textwidth} } } +\toprule +{\bfseries +Role} +\newline +{\itshape +Action} +& +{\bfseries +WebMIP Admin} +& +{\bfseries +I\&C User} +& +{\bfseries +I\&C Cust} + +{\bfseries +Services} +& +{\bfseries +Supplier} + +{\bfseries +Admin} +& +{\bfseries +Supplier} + +{\bfseries +Agent} +\\ +\midrule +\endhead +{\itshape +Create enquiry} +& +X +& +X +& +& +& +X +\\ +{\itshape +Read enquiry} +& +X +& +X +& +X +& +& +X* +\\ +{\itshape +Submit enquiry} +& +& +X +& + +& + +& +X* +\\ +{\itshape +Delete enquiry} +& +X +& +& + +& + +& + +\\ +{\itshape +Store enquiry} +& +X +& +X +& + +& + +& +X* +\\ +{\itshape +Upload files to enquiry} +& +X +& +X +& + +& + +& +X* +\\ +{\itshape +Accept quote} +& +X +& +X +& +& +& +X* +\\ +{\itshape +Reject quote} +& +X +& +X +& + +& + +& +X* +\\ +{\itshape +Delete quote} +& +X +& + +& + +& + +& + +\\ +{\itshape +Upload files to quote} +& +X +& +X +& + +& + +& + +\\ +{\itshape +Run system reports} +& +X +& + +& + +& + +& + +\\ +{\itshape +Delete files from enquiry} +& +X +& +X +& + +& + +& + +\\ +{\itshape +Create I\&C users} +& +X +& + +& + +& + +& + +\\ +{\itshape +Delete I\&C users} +& +X +& + +& + +& + +& + +\\ +{\itshape +Create Supplier Admin users} +& +X +& +& +& +& +\\ +{\itshape +Delete Supplier Admin users} +& +X +& +& +& +& +\\ +{\itshape +Create Supplier Agents} +& +X +& + +& + +& +X** +& + +\\ +{\itshape +Delete Supplier Agents} +& +X +& + +& + +& +X** +& + +\\ +{\itshape +View Supplier Agents} +& +X +& +X +& +X +& +X** +& +X* +\\ +{\itshape +Reset User Password} +& +X +& + +& + +& +X** +& + +\\ +{\itshape +Edit/Read/Delete/Create system data} +& +X +& +& +& +& +\\ +{\itshape +Perform Bulk Upload} +& +X +& +& +& +& +\\ +\midrule +\multicolumn{6}{ p{\columnwidth} }{*Only those related to the Supplier that +the Agent is associated with. +\newline +**Only those created by the same Supplier Administrator} +\\ +\bottomrule +\caption{Action Matrix} +\label{tab:ActionMatrix} +\end{longtable} + +\paragraph{Advantica administration} +Advantica use the built{}-in management tools provided by the chosen +software solution to manage, maintain and investigate issues relating +to the webMIP system. This administration function is considered +outside the scope of the webMIP system functions. + +For support purposes, an Advantica user may request the creation of +accounts with the above roles. + +\subsection{System Security} +The security requirements defined in \ref{sec:UserSecurity} show how the +system controls access to functionality. The system has two further +forms of security: + +\begin{enumerate} +\item Physical security {--} relating to the physical security of the +environment in which the system resides. There are no defined +requirements for physical security, however the check{}-list in Appendix \ref{sec:AppendixPhysicalEnvironment} will be used by the business and NG IS to confirm the suitability +of the physical environment; +\item Application development security {--} the check{}-list Appendix \ref{sec:AppendixApplicationDevelopment} +\ in describes a set of controls that were applied, where appropriate, during +development of the application. +\end{enumerate} diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/hotbackup.sql b/Documentation/SupportingDocumentation/WEBMIP_TEX/hotbackup.sql new file mode 100644 index 0000000..36d098a --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/hotbackup.sql @@ -0,0 +1,83 @@ +REM $Id$ +SET SERVEROUTPUT ON +store set set_settings.sql +set feedback off pagesize 0 heading off verify off +set linesize 100 trimspool on +DEFINE backup_dir = 's:\orabackup\webmip\files\' +REM Determine the oldest archive log to be backed up +archive log list; +alter system switch logfile; +REM +REM produce a SQL script that: +REM places each tablespace into 'backup' mode, +REM copies the contents of the tablespace to the +REM backup directory, +REM returns each tablespace from 'backup' mode +REM +PROMPT *** SPOOLING +spool do_backup.sql +WITH tsp_df AS ( +SELECT tsp.tablespace_name + ,df.file_name + ,rownum AS current_row + ,first_value(rownum) over(PARTITION BY tsp.tablespace_name) AS first_row + ,last_value(rownum) over(PARTITION BY tsp.tablespace_name) AS last_row + FROM dba_tablespaces tsp + ,dba_data_files df + WHERE tsp.contents <> 'TEMPORARY' + AND tsp.tablespace_name = df.tablespace_name +) +SELECT cmd + FROM (SELECT 'alter tablespace ' || tablespace_name || ' begin backup;' AS cmd + ,tablespace_name + ,1 AS seq + FROM tsp_df + WHERE current_row = first_row + UNION + SELECT 'host ocopy ' || file_name || ' &&backup_dir' AS cmd + ,tablespace_name + ,2 AS seq + FROM tsp_df + WHERE (current_row = first_row) + OR (current_row <> first_row AND current_row <> last_row) + OR (current_row = last_row AND last_row <> first_row) + UNION + SELECT 'alter tablespace ' || tablespace_name || ' end backup;' AS cmd + ,tablespace_name + ,3 AS seq + FROM tsp_df + WHERE current_row = last_row) + ORDER BY tablespace_name + ,seq +/ +spool off; +PROMPT *** SPOOLING COMPLETE +@set_settings +@@do_backup +REM +REM Create SQL script to add temporary files to temporary tablespaces +REM +set feedback off pagesize 0 heading off verify off +set linesize 100 trimspool on +spool create_tempfile$.sql +select 'alter tablespace '||ts.name||' add tempfile '''||df.name||''' size '|| df.bytes||' reuse;' from v$tempfile df, v$tablespace ts +where ts.ts# = df.ts# +/ +spool off +host move create_tempfile$.sql &&backupdir\create_tempfiles.sql +@set_settings +REM +REM create control file for the standby database +REM create backup control file for the primary database +REM +alter database create standby controlfile as 's:\orabackup\webmip\files\standby.ctl'; +alter database backup controlfile to 's:\orabackup\webmip\files\backup.ctl'; +REM +REM create a database initialization script for +REM the standby database +REM +create pfile='s:\orabackup\webmip\files\initstandby.ora' from spfile; +REM +REM Determine the current archive log to be backed up +archive log list; +alter system switch logfile; diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/latexsheet.pdf b/Documentation/SupportingDocumentation/WEBMIP_TEX/latexsheet.pdf new file mode 100644 index 0000000..b21b01a Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/latexsheet.pdf differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_inst.cmd b/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_inst.cmd new file mode 100644 index 0000000..04fb961 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_inst.cmd @@ -0,0 +1 @@ +oradim -NEW -SID webmip -STARTMODE manual \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_start.cmd b/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_start.cmd new file mode 100644 index 0000000..80bdaa9 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/oradim_start.cmd @@ -0,0 +1,2 @@ +REM $Id:$ +oradim -STARTUP -SID webmip -STARTTYPE srvc diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/plp.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/plp.tex new file mode 100644 index 0000000..9ec0eb7 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/plp.tex @@ -0,0 +1,34 @@ +% + +\documentclass{article} +\usepackage{times} + +\begin{document} + +\section{Module 13 Growing the Movement} + +\subsection{Development plan with Scouts to increase numbers} + +\begin{enumerate} +\item Advertising +\begin{enumerate} +\item Leaflets +\item Posters +\end{enumerate} +\item Program +\begin {enumerate} +\item Trips +\item Outdoor Activities +\item Bring a friend +\end{enumerate} +\end{enumerate} + +\section{Module 18 Practical Skills} + +Need a witness statement about instructing YP in practical skills. + +\section{Module 19 International} + +\textbf{World Membership Badge} is the symbol of the Membership of World Scouting and of The Scout Association as a part of World Scouting. It is owned by the World Scout Bureau. + +\end{document} diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/requestforquotationprocess.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/requestforquotationprocess.png new file mode 100644 index 0000000..7e4a10d Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/requestforquotationprocess.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/system_arch_diagram.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_arch_diagram.png new file mode 100644 index 0000000..49ac0fb Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_arch_diagram.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide1.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide1.png new file mode 100644 index 0000000..763df8e Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide1.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide2.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide2.png new file mode 100644 index 0000000..be68911 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide2.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide3.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide3.png new file mode 100644 index 0000000..4616940 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide3.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide4.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide4.png new file mode 100644 index 0000000..685a84a Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/system_process_mapSlide4.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/test.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/test.tex new file mode 100644 index 0000000..30e4967 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/test.tex @@ -0,0 +1,51 @@ +% LaTeX source for Contents of Jeffeys' Theory of Probability + +\documentclass{article} +\usepackage{longtable} +\usepackage{times} + +\begin{document} +\pagenumbering 0 +\begin{longtable}[c]{|p{0.25\textwidth}|p{0.75\textwidth}|} +\caption{caption for table} \\ +\hline +Note & Description \\ +\endhead +\hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +[Induction and its relation to deduction] +& +{there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age there once was an ugly duckling with feathers all messy and brown and it never really knew hos it should deal with the difficukties of modern life, complete with the stresses of living in a nuclear age} +\\ \hline +\end{longtable} + +\end{document} + +% diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/userhierachy.png b/Documentation/SupportingDocumentation/WEBMIP_TEX/userhierachy.png new file mode 100644 index 0000000..6590519 Binary files /dev/null and b/Documentation/SupportingDocumentation/WEBMIP_TEX/userhierachy.png differ diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipdatabase.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipdatabase.tex new file mode 100644 index 0000000..3d971a2 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipdatabase.tex @@ -0,0 +1,247 @@ +\documentclass[10pt,a4paper,twoside]{report} +\usepackage[latin1]{inputenc} +\usepackage{glossaries} +\usepackage{listings} +\lstloadlanguages{command.com,SQL} +\lstset{frame=tb,framesep=5pt,basicstyle=\small, +numbers=left, numberstyle=\tiny, numbersep=5pt, +showstringspaces=true, +breaklines=true +} +\lstset{escapeinside={(*@}{@*)}} +\usepackage{svn-multi} +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} +\author{Andrew Hardy} +\title{webMIP database - backup, recovery and failover procedures} +\newglossaryentry{SLA} +{name=Service Level Agreement, +first=Service Level Agreement(SLA), +description={A service level agreement (frequently SLA) is that part of a service contract where the level of service is formally defined. In practice, the term SLA is sometimes used incorrectly in the context of contracted delivery time (of the service) or performance.} +} +\newglossaryentry{DNS} +{name=Domain Name Server or Service, +first=Domain Name Server(DNS), +description={An Internet service that translates domain names into IP addresses.} +} +\newglossaryentry{COLD} +{name=Cold backup, +description={A cold backup, also called an offline backup, is a database backup when the database is offline and thus not accessible for updating.} +} +\newglossaryentry{HOT} +{name=Hot backup, +description={A hot backup, also called an online backup, is a backup performed on data even though it is actively accessible to users and may currently be in a state of being updated.} +} +\newglossaryentry{AL} +{name=ARCHIVELOG, +description={As Oracle rotates through its \gls{REDO} groups, it will eventually overwrite a group which it has already written to. The data that is being overwritten would be useless for a recovery scenario. In order to prevent that, a database can be run in archive log mode. If the database is in log archive mode, the database makes sure that online \gls{REDO}[s] are not overwritten before they have been archived.} +} +\newglossaryentry{REDO} +{name=Redo log, +description={Before Oracle changes data in a datafile it writes these changes to the redo log. If something happens to one of the datafiles, a backed up datafile can be restored and the redo that was written since that backup is applied bringing the datafile to the state it had before it became unavailable. +The same technique is used in a standby databases environment: One database (the primary database) records all changes and sends them to the standby database(s). These standby databases in turn apply the arrived redo and this keeps them synchronized with the primary database.} +} +\newglossaryentry{STDBY} +{name=standby database, +description={A standby database is a maintained duplicate of the \gls{PRIMARY}.} +} +\newglossaryentry{PRIMARY} +{name=primary database, +description={The primary database is the database accessed by users under normal conditions.} +} +\makeglossaries +\makeindex +\begin{document} +\maketitle +\abstract{This document outlines the procedures used with the webMIP database with regards to backup and recovery} +\tableofcontents +\lstlistoflistings +\chapter{Overview} +\section{Requirements} +The primary requirements for the backup and recovery of the webMIP system are: +\begin{enumerate} +\item Support the customer \gls{SLA} of having data-loss at less than 4 hours within the working-day (8am to 5pm); +\item \gls{DNS}; +\end{enumerate} + +\section{System Architecture} +\subsection{Primary and standby databases} +\subsection{Internet access} +\chapter{Backup} +\section{COLD backup} +\section{HOT backup}\label{sec:HOTBackup} +A \gls{HOT} is performed against an actively running database i.e. one in which users are connected and transactions are occurring. To use \gls{HOT}[s] you must operate the database in \gls{AL} mode (see listing \ref{lst:archivelog.sql}). Recovery from a \gls{HOT} relies on the restoration of the datafiles and the replaying of all archive logs from the point at which the original backup and onwards. + +\lstset{language=command.com} +\begin{lstlisting}[caption={Invoking SQL*Plus},label=lst:invoke,frame=tb] +REM Identify the database connection as +REM bequeath by using the database SID +REM Invoke SQL*Plus without logging in +set oracle_sid=WEBMIP +sqlplus /nolog +\end{lstlisting} + + +\lstset{language=sql,caption={Prepare for archivelog}} +\lstinputlisting[label=lst:archivelog.sql]{DatabaseScripts/archivelog.sql} + +Once in \gls{AL} mode, the datafiles and control files are made available to be backed-up at the operating system level. +The generated archive logs from the point at which the backup started are also backed up. In listing \ref{lst:hotbackup.sql}, the first `archive log list;' is used to provide details of the oldest online log sequence number at the start of the backup whilst the second `archive log list;' is used to provide the \textit{current} log sequence number at the end of the backup. +To recover the database to a state consistent with the end of the backup, you \emph{must} include all the archived log files starting from oldest sequence number to the current sequence number as part of the backup \footnote{Recovery will start from the point of the `current' log, however as a precautionary measure you should keep all archived log files starting from the \textit{oldest online log sequence} number.}. +The `alter system switch logfile;' command forces a log switch so that the \textit{current} log is archived\footnote{The creation of archive logs lags the online redo logs.} and so made available to be backed up. +You should \emph{not} backup and restore the online redo logs as this will prevent the application of the archive logs during recovery. +You \emph{cannot} backup and restore files associated with temporary tablespaces. Instead, these files are recreated using the `create\_tempfiles.sql' script generated by the hot backup script\footnote{Need to confirm this}. + +\lstset{language=sql,caption={Perform HOT backup}} +\lstinputlisting[label=lst:hotbackup.sql] {DatabaseScripts/hotbackup.sql} + +You also need a copy of the password file that allows SYSDBA access\footnote{The password file should be re-copied whenever the passwords on the primary database are altered}, +this should be located in the `database' directory of the Oracle installation e.g. `C:$\backslash$oracle$\backslash$product$\backslash$11.1.0$\backslash$db\_1$\backslash$database' as `PWDwebmip.ora'. +\lstset{language=command.com} +\begin{lstlisting}[caption={Copying the password file to the backup location}] +copy c:\oracle\product\11.1.0\db\_1\database\PWDwebmip.ora s:\orabackup\webmip\files +\end{lstlisting} + +At this point you have a set of datafiles, archive logs and control files that can be used to: +\begin{enumerate} + \item Recover the primary database (see section \ref{sec:HOTRecovery}); + \item Create a standby database (see section \ref{sec:CreateStandby}). +\end{enumerate} +These files should be stored outside of the server environment. + +\chapter{Recovery} +\section{COLD recovery} +\section{HOT recovery}\label{sec:HOTRecovery} +\chapter{Standby database} +A \gls{STDBY} is a maintained duplicate, or `standby', of the production or `primary' database for recovering from disasters at the primary site. The intention is to be able to switch over from the primary database to the standby database in the case of disaster in the least amount of time and with as little recovery as possible. +A hot standby database is a backup copy of the primary database that is maintained on a separate machine. A \gls{HOT} or \gls{COLD} is made of the primary database and copied to the standby server. The standby database is mounted but not opened. +The archive logs from the primary database are copied from the primary to the standby database and applied at regular intervals. The means that the standby database is always a few log files (at least one log file) behind the primary database and is always in `mounted but not open' stage. + +When the primary database fails, the standby database can be opened and all users switched to the standby server. After such a switch, the standby database becomes the primary database. A new standby database will then be required. +\section{Creation} +\subsection{Preparation on the primary database} +The primary database is prepared by being placed into \gls{AL} mode and a \gls{HOT} being performed (see section \ref{sec:HOTBackup} for details on this). +The `alter database create standby control file...' command in listing \ref{lst:hotbackup.sql} produces the control file that will be used by the standby database, whilst the `create pfile...' command produces a text version of the database initialization file. +\subsection{Creation of the standby database}\label{sec:CreateStandby} +The standby database is created from a \gls{HOT} of the primary database (see section \ref{sec:HOTBackup}). +The datafiles are copied to the standby server. +The standby server should have the same directory structure as the primary server in order to minimize the amount of changes to be made on the standby server (check the contents of the 'initstandby.ora' created in listing \ref{lst:hotbackup.sql} for the location of the `db\_recovery\_file\_dest' as this is generally only created when databases are created using the Oracle Database Configuration Agent). +Do not forget to copy the `PWDwebmip.ora' password file to the correct `database' location (listing \ref{lst:copy_pwd}). + +\lstset{language=command.com} +\begin{lstlisting}[caption={Copying the password file to the standby location},label=lst:copy_pwd] +copy s:\orabackup\webmip\files\PWDwebmip.ora c:\oracle\product\11.1.0\db\_1\database\PWDwebmip.ora +\end{lstlisting} + +The `oradim' command (listing \ref{lst:oradim_inst.cmd}) is used to create the Windows service instance to support the standby database. The service is created with a `manual' start mode - this means that the database instance will only become available when started manually. + +\lstset{language=command.com,caption={Creation of Windows service for standby database}} +\lstinputlisting[label=lst:oradim_inst.cmd] {DatabaseScripts/oradim_inst.cmd} + +The `Oracle Net Manager' tool is used to create a `listener' for the database and the listener restarted to reflect the changes (see listing \ref{lst:lsnrctl}). + +\lstset{language=command.com} +\begin{lstlisting}[caption={Restarting the standby listener},label=lst:lsnrctl] +lsnrctl stop +lsnrctl start +\end{lstlisting} + +Where there are differences between the configuration of the primary and standby servers, the `initstandby.ora' database initialization file generated by listing \ref{lst:hotbackup.sql} is altered. The `standby.ctl' file (also created by \ref{lst:hotbackup.sql}) is copied to the appropriate directory. +It is recommended to make multiple copies of this control file for greater resilience. Ensure that the names used for the control files are consistent with those listed in the `initstandby.ora'. + +The standby database is now physically present, but the instance is not running. The `oradim' command (see listing \ref{lst:oradim_start.cmd}) is used to start the database service, but \emph{not} the instance. The `ORACLE\_SID' environment variable is used to identify the database instance that we are about to start - again we connect to SQL*Plus with the `nolog' option due to the difficulties in creating the connection string from the Windows command line. + +\lstset{language=command.com,caption={Starting the standby service}} +\lstinputlisting[label=lst:oradim_start.cmd] {DatabaseScripts/oradim_start.cmd} + + +We can now connect to the `idle' instance and start it ready to receive archive logs from the primary server (listing \ref{lst:standby_startup.sql}\footnote{If you get a permissions error, connect with the sys password i.e. conn sys/`webmip' as sysdba}). We create the database `spfile' from the modified `initstandby.ora' file and startup the database as a physical standby, but without recovering\footnote{\gls{HOT}[s] always require recovery using the archive logs that were generated during the period of the backup.}. + +\lstset{language=SQL} +\begin{lstlisting}[caption={Starting the standby database},label=lst:standby_startup.sql] +conn / as sysdba +create spfile from pfile='s:\orabackup\webmip\files\initstandby.ora'; +startup nomount; +alter database mount standby database; +\end{lstlisting} + +At this point the standby database is ready to be `maintained' (see section \ref{sec:maintain_standby}). + +\section{Maintaining standby database}\label{sec:maintain_standby} +The standby database is physically present with the datafiles as copied from the primary database. The database has been started up, but recovery has not taken place. +Recovery requires the applying of archive logs to the database: if the archive logs generated during the original backup were applied, then the recovered database would be consistent with the state of the primary database as it was at the end of the backup period. +A standby database extends this recovery mechanism by applying not only the archive logs generate during the backup, but some or all of the archive logs generate by the primary database since the time of the backup. This is achieved by keeping the standby database unmounted and periodically attempting recovery using archive logs delivered from the primary database. +\subsection{Transfer of archive logs from primary database} +A mechanism is required to periodically transfer archive logs generated by the primary database to the archive log destination of the standby server. The VBScript `logship.vbs' (listing \ref{lst:logship.vbs}) does this by comparing the archive logs available on the primary server with those available on the standby and transferring any missing files. + +\lstset{language=VBScript,caption={Transferring archive logs}} +\lstinputlisting[label=lst:logship.vbs] {DatabaseScripts/advwb1_logship.vbs} + +Windows `Scheduled Tasks' are used to invoked this VBScript on a regular basis. The period between runs of this script largely determines the lag between the primary and standby databases in the case of a disaster. + +\subsection{Application of archive logs on standby database} +The standby database is mounted in a standby mode, users cannot access the database to perform queries, etc. +Archive logs from the primary server are applied to the standby database through the standard `recovery' mechanism - simulating the recovery of a \gls{HOT}, but \emph{without} ending the recovery cycle. +Listing \ref{lst:applylog} shows the method of placing the database into recovery mode. In this mode, the database automatically applies the archive logs shipped from the primary server. +If the database determines that it requires a missing archive log (one that has not been shipped), it will raise an error. If the database is able to apply all required archive logs, it will continue until the following line where we `cancel' the recovery - this allows recovery to continue at a later date. + +\lstset{language=SQL,caption={Applying archive logs}} +\lstinputlisting[label=lst:applylog] {DatabaseScripts/applylog.sql} + +Windows `Scheduled Tasks' are used to invoke the application of the archived logs on a regular basis through the use of a Windows command file (see listing \ref{lst:applylog.cmd}). + +\lstset{language=command.com,caption={Applying archive logs - command file}} +\lstinputlisting[label=lst:applylog.cmd]{DatabaseScripts/applylog.cmd} + +The `currency' of the application of the archive logs can be checked by reviewing the database view v\$log\_history on both the primary and standby databases (see listing \ref{lst:applylog_status.sql}). + +\lstset{language=SQL,caption={Checking the applying of the archive logs}} +\lstinputlisting[label=lst:applylog_status.sql]{DatabaseScripts/applylog_status.sql} + +\subsection{Restart of standby server}\label{sec:restart_of_standby_server} +Whenever the standby server is restarted, the following scripts should be followed: + +\lstset{language=command.com,caption={Restarting the standby service}} +\lstinputlisting[label=lst:oradim_restart.cmd] {DatabaseScripts/oradim_start.cmd} + +\lstset{language=SQL} +\begin{lstlisting}[caption={Restarting the standby database},label=lst:restart_standby.sql] +conn / as sysdba +startup nomount; +alter database mount standby database; +\end{lstlisting} + +At this point the standby database is ready to be `maintained'. + +\chapter{Failover} +\section{Activation of standby database} +\subsection{Preparation of the primary database} +\subsection{Preparation of the standby database} +\subsection{Activating the standby database} +The SQL commands in listing \ref{lst:activatestandby.sql} firstly activate the database, then shut it down cleanly prior to restarting and opening the database. +\lstset{language=SQL,caption={Activating standby database}} +\lstinputlisting[label=lst:activatestandby.sql]{DatabaseScripts/activatestandby.sql} +On completion, the database is open for read write access and is a duplicate of the primary database to the point at which the last archive log from the primary database was applied. The standby database will generate a new set of archive logs. +\section{Redirection of DNS} +\chapter{Failback} +\section{HOT failback} +\subsection{Preparation of the primary database} +\subsection{Backup of the standby database} +\subsection{Transfer of files from standby to primary databases} +\subsection{Maintaining primary database as standby} +\subsection{Re-activation of primary database} +\subsection{Redirection of DNS} +\subsection{Recreation of standby database} +\section{COLD failback} +\subsection{Preparation of the primary database} +\subsection{Backup of the standby database} +\subsection{Transfer of files from standby to primary databases} +\subsection{Re-activation of primary database} +\subsection{Redirection of DNS} +\subsection{Recreation of standby database} +\printglossary +\end{document} \ No newline at end of file diff --git a/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipfunctionalspec.tex b/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipfunctionalspec.tex new file mode 100644 index 0000000..67a5019 --- /dev/null +++ b/Documentation/SupportingDocumentation/WEBMIP_TEX/webmipfunctionalspec.tex @@ -0,0 +1,107 @@ +% This file was converted to LaTeX by Writer2LaTeX ver. 0.4 +% see http://www.hj-gym.dk/~hj/writer2latex for more info +%\documentclass[a4paper,twoside]{article} +\documentclass[a4paper,twoside]{scrartcl} +\usepackage[T1]{fontenc} +\usepackage{textcomp} +\usepackage{lmodern} +\usepackage[ascii]{inputenc} +\usepackage{color} +\usepackage{calc} +\usepackage{booktabs} +\usepackage{longtable} +\usepackage{fancyhdr,graphicx,hyperref} +\usepackage{lineno} +\usepackage{typearea} +\usepackage[nobib,twoside]{CoverPage} +\usepackage {svn-multi} +\svnidlong +{$HeadURL$} +{$LastChangedDate$} +{$LastChangedRevision$} +{$LastChangedBy$} +\svnid{$Id$} +\usepackage{ifpdf} +\ifpdf +\pdfinfo { /CreationDate (D:\svnpdfdate) } +\makeatletter +\hypersetup {% +pdfauthor ={\svnFullAuthor@star *{\svnauthor }}, +% pdfauthor ={\ svnFullAuthor@normal {\ svnauthor }}, +pdfkeywords ={ Revision \svnrev} +} +\makeatother +\fi + +\graphicspath{{./}} + +\CoverPageSetup{institute = +{Advantica Ltd\\ +Ashby Road\\Loughborough\\Leicestershire\\LE11 3GR\\ +tel: +44 (0)1509 282496\\ +web: www.advanticagroup.com} +,author={Prepared by: Jamie Priest, Andrew Hardy} +,copyright={\copyright Advantica Ltd 2008} +,title={\includegraphics[width=0.9\textwidth]{TitleImage}\\webMIP Functional Specification} +,insource={Prepared for: Martin Hansford\\National Grid Metering\\4 Abbotts Lane\\Coventry\\Warwickshire\\CV1 4AY} +} +\renewcommand{\CoverPageFooterInfo}{\parbox[b]{.5\textwidth} + {% + \tiny document created on: \today\\ + created from: \texttt{\svnkw{Filename} (Revison: \svnfilerev)} + } +} + +\renewcommand{\CoverPageHeader}{} + +\renewcommand{\headheight}{2.5cm} +%\renewcommand{\chaptername}{Section} +\renewcommand{\contentsname}{Table of Contents} + +\newcommand{\theversion}{Version 0.6} + +\newsavebox{\pagelogo} +\sbox{\pagelogo}{\includegraphics[totalheight=2.22cm]{AdvLogo}} +\pagestyle{fancyplain} + + +\begin{document} + +%% +%%\include{fs_titlepage} +%%\newpage +%% + +\fancyhead{} +\fancyhead[R]{\usebox{\pagelogo}} +\fancyhead [l]{\slshape \leftmark } + +\fancyfoot [l]{\tiny \svnkw {Filename} \\ Rev: \svnrev \ (\svnfilerev)} +\fancyfoot [r]{\tiny \svnyear-\svnmonth-\svnday \\ \svnhour:\svnminute} +\fancyfoot[C]{\thepage} + +\pagenumbering{roman} +\setcounter{tocdepth}{6} +\tableofcontents +\fancyhead[L]{\theversion} +\listoffigures +\listoftables + +\newpage + +\pagenumbering{arabic} +\linenumbers +\include{fs_introduction} +\include{fs_scope} +\include{fs_usersandsecurity} +\include{fs_process} +\include{fs_reporting} +\include{fs_administration} +\include{fs_communication} + +\appendix +\include{fs_appendix_data_items} +\include{fs_appendix_system_data} +\include{fs_appendix_security_checklist} + +\end{document}