146. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/12/2018 10:19:49 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

146.1 Files compared

# Location File Last Modified
1 MSSRe Build 4.zip\ETL Packages\RegistriesETL DoDFragment_Import.dtsx Tue Apr 10 19:43:27 2018 UTC
2 MSSRe Build 4.zip\ETL Packages\RegistriesETL DoDFragment_Import.dtsx Thu Apr 12 12:56:33 2018 UTC

146.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 5 24832
Changed 4 10
Inserted 0 0
Removed 0 0

146.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

146.4 Active regular expressions

No regular expressions were active.

146.5 Comparison detail

  1   <?xml vers ion="1.0"? ><DTS:Exec utable xml ns:DTS="ww w.microsof t.com/SqlS erver/Dts"  DTS:Execu tableType= "SSIS.Pack age.2">
  2   <DTS:Prope rty DTS:Na me="Packag eFormatVer sion">3</D TS:Propert y>
  3   <DTS:Prope rty DTS:Na me="Versio nComments" ></DTS:Pro perty>
  4   <DTS:Prope rty DTS:Na me="Creato rName"> PI I
</DTS:Prop erty>
  5   <DTS:Prope rty DTS:Na me="Creato rComputerN ame"> PII </DTS:Prop erty>
  6   <DTS:Prope rty DTS:Na me="Creati onDate" DT S:DataType ="7">2/29/ 2012 8:08: 36 AM</DTS :Property>
  7   <DTS:Prope rty DTS:Na me="Packag eType">5</ DTS:Proper ty>
  8   <DTS:Prope rty DTS:Na me="Protec tionLevel" >0</DTS:Pr operty>
  9   <DTS:Prope rty DTS:Na me="MaxCon currentExe cutables"> -1</DTS:Pr operty>
  10   <DTS:Prope rty DTS:Na me="Packag ePriorityC lass">0</D TS:Propert y>
  11   <DTS:Prope rty DTS:Na me="Versio nMajor">1< /DTS:Prope rty>
  12   <DTS:Prope rty DTS:Na me="Versio nMinor">0< /DTS:Prope rty>
  13   <DTS:Prope rty DTS:Na me="Versio nBuild">86 5</DTS:Pro perty>
  14   <DTS:Prope rty DTS:Na me="Versio nGUID">{B7 C7C0FE-CB1 C-42B3-9FB 2-738BF8F6 051B}</DTS :Property>
  15   <DTS:Prope rty DTS:Na me="Enable Config">0< /DTS:Prope rty>
  16   <DTS:Prope rty DTS:Na me="Checkp ointFileNa me"></DTS: Property>
  17   <DTS:Prope rty DTS:Na me="SaveCh eckpoints" >0</DTS:Pr operty>
  18   <DTS:Prope rty DTS:Na me="Checkp ointUsage" >0</DTS:Pr operty>
  19   <DTS:Prope rty DTS:Na me="Suppre ssConfigur ationWarni ngs">0</DT S:Property >
  20   <DTS:Conne ctionManag er>
  21   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  22   <DTS:Prope rty DTS:Na me="Object Name">Book 1.xlsx</DT S:Property >
  23   <DTS:Prope rty DTS:Na me="DTSID" >{8A49D778 -3923-458F -9E05-0822 CBEBC0B6}< /DTS:Prope rty>
  24   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  25   <DTS:Prope rty DTS:Na me="Creati onName">FI LE</DTS:Pr operty><DT S:ObjectDa ta><DTS:Co nnectionMa nager>
  26   <DTS:Prope rty DTS:Na me="FileUs ageType">0 </DTS:Prop erty>
  27   <DTS:Prope rty DTS:Na me="Connec tionString ">C:\sprea dsheetsfor DoDFragmen ts\JPC\JPC .xlsx</DTS :Property> </DTS:Conn ectionMana ger></DTS: ObjectData ></DTS:Con nectionMan ager>
  28   <DTS:Conne ctionManag er>
  29   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  30   <DTS:Prope rty DTS:Na me="Object Name">CRS_ MVI_GetPat ientIdenti tyMyMostRe cent.dtsx< /DTS:Prope rty>
  31   <DTS:Prope rty DTS:Na me="DTSID" >{9515AD17 -6DF3-4F26 -A57A-D4AE 96D2B049}< /DTS:Prope rty>
  32   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  33   <DTS:Prope rty DTS:Na me="Creati onName">FI LE</DTS:Pr operty><DT S:ObjectDa ta><DTS:Co nnectionMa nager>
  34   <DTS:Prope rty DTS:Na me="FileUs ageType">0 </DTS:Prop erty>
  35   <DTS:Prope rty DTS:Na me="Connec tionString ">C:\Users \vaaitcwhi tea\Docume nts\Visual  Studio 20 08\Project s\DoDFragm entImport\ DoDFragmen tImport\CR S_MVI_GetP atientIden tityMyMost Recent.dts x</DTS:Pro perty></DT S:Connecti onManager> </DTS:Obje ctData></D TS:Connect ionManager >
  36   <DTS:Conne ctionManag er>
  37   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  38   <DTS:Prope rty DTS:Na me="Object Name">Exce l Connecti on Manager </DTS:Prop erty>
  39   <DTS:Prope rty DTS:Na me="DTSID" >{D72ADC7E -DAE8-49EA -BA1B-83B3 2EE324C2}< /DTS:Prope rty>
  40   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  41   <DTS:Prope rty DTS:Na me="Creati onName">EX CEL</DTS:P roperty><D TS:ObjectD ata><DTS:C onnectionM anager>
  42   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  43   <DTS:Prope rty DTS:Na me="Connec tionString ">Provider =Microsoft .ACE.OLEDB .12.0;Data  Source=D: \ETL_DATA\ JPC.xlsx;E xtended Pr operties=" EXCEL 12.0 ;HDR=YES"; </DTS:Prop erty></DTS :Connectio nManager>< /DTS:Objec tData></DT S:Connecti onManager>
  44   <DTS:Conne ctionManag er>
  45   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  46   <DTS:Prope rty DTS:Na me="Object Name">Exce l File typ e #1</DTS: Property>
  47   <DTS:Prope rty DTS:Na me="DTSID" >{3792883A -F92F-4E75 -89A8-83D4 591B5FD8}< /DTS:Prope rty>
  48   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  49   <DTS:Prope rty DTS:Na me="Creati onName">EX CEL</DTS:P roperty><D TS:Propert yExpressio n DTS:Name ="ExcelFil ePath">@[U ser::fileN ame]</DTS: PropertyEx pression>< DTS:Object Data><DTS: Connection Manager>
  50   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  51   <DTS:Prope rty DTS:Na me="Connec tionString ">Provider =Microsoft .ACE.OLEDB .12.0;Data  Source=\\ vacrssql40 \nds_etl2$ \preProduc tion\DoDFr agment_Imp ort\*.xlsx ;Extended  Properties ="EXCEL 12 .0;HDR=YES ";</DTS:Pr operty></D TS:Connect ionManager ></DTS:Obj ectData></ DTS:Connec tionManage r>
  52   <DTS:Conne ctionManag er>
  53   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  54   <DTS:Prope rty DTS:Na me="Object Name">Exce l file typ e #2</DTS: Property>
  55   <DTS:Prope rty DTS:Na me="DTSID" >{f0da72c9 -ba75-4dc3 -ae14-642b 2b6363ac}< /DTS:Prope rty>
  56   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  57   <DTS:Prope rty DTS:Na me="Creati onName">EX CEL</DTS:P roperty><D TS:Propert yExpressio n DTS:Name ="ExcelFil ePath">@[U ser::fileN ame2]</DTS :PropertyE xpression> <DTS:Objec tData><DTS :Connectio nManager>
  58   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  59   <DTS:Prope rty DTS:Na me="Connec tionString ">Provider =Microsoft .ACE.OLEDB .12.0;Data  Source=\\ vacrssql40 \nds_etl2$ \preProduc tion\DoDFr agment_Imp ort\*.xlsx ;Extended  Properties ="EXCEL 12 .0;HDR=YES ";</DTS:Pr operty></D TS:Connect ionManager ></DTS:Obj ectData></ DTS:Connec tionManage r>
  60   <DTS:Conne ctionManag er>
  61   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  62   <DTS:Prope rty DTS:Na me="Object Name">Logg ing</DTS:P roperty>
  63   <DTS:Prope rty DTS:Na me="DTSID" >{89847F46 -E6DC-4CA1 -9936-7405 D1665722}< /DTS:Prope rty>
  64   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  65   <DTS:Prope rty DTS:Na me="Creati onName">OL EDB</DTS:P roperty><D TS:Propert yExpressio n DTS:Name ="InitialC atalog">@[ User::Logg ingDatabas e]</DTS:Pr opertyExpr ession><DT S:Property Expression  DTS:Name= "ServerNam e">@[User: :LoggingSe rver]</DTS :PropertyE xpression> <DTS:Objec tData><DTS :Connectio nManager>
  66   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  67   <DTS:Prope rty DTS:Na me="Connec tionString ">Data Sou rce=vacrss ql40;Initi al Catalog =PreProdRe gistryStag ing;Provid er=SQLNCLI 10.1;Integ rated Secu rity=SSPI; Auto Trans late=False ;Applicati on Name=SS IS-Package -{89847F46 -E6DC-4CA1 -9936-7405 D1665722}p atriot-reg dev.Regist ryStaging_ Test;</DTS :Property> </DTS:Conn ectionMana ger></DTS: ObjectData ></DTS:Con nectionMan ager>
  68   <DTS:Conne ctionManag er>
  69   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  70   <DTS:Prope rty DTS:Na me="Object Name">Regi stry</DTS: Property>
  71   <DTS:Prope rty DTS:Na me="DTSID" >{0FB7D2FF -2145-4DDE -84EB-BD10 F9218E70}< /DTS:Prope rty>
  72   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  73   <DTS:Prope rty DTS:Na me="Creati onName">OL EDB</DTS:P roperty><D TS:Propert yExpressio n DTS:Name ="InitialC atalog">@[ User::Regi stryDataba se]</DTS:P ropertyExp ression><D TS:Propert yExpressio n DTS:Name ="ServerNa me">@[User ::Registry Server]</D TS:Propert yExpressio n><DTS:Obj ectData><D TS:Connect ionManager >
  74   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  75   <DTS:Prope rty DTS:Na me="Connec tionString ">Data Sou rce=vacrss ql40;Initi al Catalog =RegistryQ A;Provider =SQLNCLI10 .1;Integra ted Securi ty=SSPI;Au to Transla te=False;A pplication  Name=SSIS -Package-{ 0FB7D2FF-2 145-4DDE-8 4EB-BD10F9 218E70}Pat riot-regde v.Registry ;</DTS:Pro perty></DT S:Connecti onManager> </DTS:Obje ctData></D TS:Connect ionManager >
  76   <DTS:Conne ctionManag er>
  77   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  78   <DTS:Prope rty DTS:Na me="Object Name">Regi stryStagin g</DTS:Pro perty>
  79   <DTS:Prope rty DTS:Na me="DTSID" >{813D3C09 -0407-425C -8131-F954 90FA76BC}< /DTS:Prope rty>
  80   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  81   <DTS:Prope rty DTS:Na me="Creati onName">OL EDB</DTS:P roperty><D TS:Propert yExpressio n DTS:Name ="InitialC atalog">@[ User::Regi stryStagin gDatabase] </DTS:Prop ertyExpres sion><DTS: PropertyEx pression D TS:Name="S erverName" >@[User::R egistrySta gingServer ]</DTS:Pro pertyExpre ssion><DTS :ObjectDat a><DTS:Con nectionMan ager>
  82   <DTS:Prope rty DTS:Na me="Retain ">0</DTS:P roperty>
  83   <DTS:Prope rty DTS:Na me="Connec tionString ">Data Sou rce=vacrss ql40;Initi al Catalog =PreProdRe gistryStag ing;Provid er=SQLNCLI 10.1;Integ rated Secu rity=SSPI; Auto Trans late=False ;Applicati on Name=SS IS-Package -{813D3C09 -0407-425C -8131-F954 90FA76BC}p atriot-reg dev.Regist ryStaging_ Test;</DTS :Property> </DTS:Conn ectionMana ger></DTS: ObjectData ></DTS:Con nectionMan ager>
  84   <DTS:Conne ctionManag er>
  85   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  86   <DTS:Prope rty DTS:Na me="Object Name">SMTP  Connectio n Manager< /DTS:Prope rty>
  87   <DTS:Prope rty DTS:Na me="DTSID" >{FEEAB110 -A4EE-4071 -A8C0-8BEB EEF94DFD}< /DTS:Prope rty>
  88   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  89   <DTS:Prope rty DTS:Na me="Creati onName">SM TP</DTS:Pr operty><DT S:ObjectDa ta><SmtpCo nnectionMa nager Conn ectionStri ng="SmtpSe rver= DNS          ;UseWindow sAuthentic ation=Fals e;EnableSs l=False;"/ ></DTS:Obj ectData></ DTS:Connec tionManage r>
  90   <DTS:Confi guration>
  91   <DTS:Prope rty DTS:Na me="Config urationTyp e">1</DTS: Property>
  92   <DTS:Prope rty DTS:Na me="Config urationStr ing">C:\Do cuments an d Settings \vhaiswhas sed\My Doc uments\Dep loymentSol ution\Depl oymentSolu tion\DoDFr agment_Imp ort.dtsCon fig</DTS:P roperty>
  93   <DTS:Prope rty DTS:Na me="Config urationVar iable"></D TS:Propert y>
  94   <DTS:Prope rty DTS:Na me="Object Name">Conf iguration  1</DTS:Pro perty>
  95   <DTS:Prope rty DTS:Na me="DTSID" >{9C6CEBC7 -019F-404E -8B68-34CB 619D0789}< /DTS:Prope rty>
  96   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  97   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:C onfigurati on>
  98   <DTS:Prope rty DTS:Na me="LastMo difiedProd uctVersion ">10.50.16 00.1</DTS: Property>
  99   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  100   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  101   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  102   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  103   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  104   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  105   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  106   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  107   <DTS:Prope rty DTS:Na me="Locale ID">1033</ DTS:Proper ty>
  108   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  109   <DTS:Prope rty DTS:Na me="DelayV alidation" >-1</DTS:P roperty>
  110   <DTS:Varia ble>
  111   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  112   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  113   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  114   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  115   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  116   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_Im port\Archi ve\</DTS:V ariableVal ue>
  117   <DTS:Prope rty DTS:Na me="Object Name">Arch iveDirecto ry</DTS:Pr operty>
  118   <DTS:Prope rty DTS:Na me="DTSID" >{E2036FB9 -80F5-4793 -84F7-CBAD BDCE2D3E}< /DTS:Prope rty>
  119   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  120   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  121   <DTS:Varia ble>
  122   <DTS:Prope rty DTS:Na me="Expres sion">@[Us er::Archiv eDirectory ] +  (DT_W STR,4)Date Part("yyyy ", GetDate ()) + RIGH T("0" + (D T_WSTR,2)D atePart("m m", GetDat e()), 2) +  RIGHT("0"  + (DT_WST R,2)DatePa rt("dd", G etDate()),  2) + RIGH T("0" + (D T_WSTR,2)D atePart("h h", GetDat e()), 2) +  RIGHT("0"  + (DT_WST R,2)DatePa rt("mi", G etDate()),  2) + "_"  + @[User:: SourceFile Name] 
  123  
  124   </DTS:Prop erty>
  125   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">-1</ DTS:Proper ty>
  126   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  127   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  128   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  129   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_Im port\Archi ve\2015060 21643_</DT S:Variable Value>
  130   <DTS:Prope rty DTS:Na me="Object Name">Dest ination</D TS:Propert y>
  131   <DTS:Prope rty DTS:Na me="DTSID" >{32004A8E -E6ED-4452 -BE91-89B5 E7A2CB7C}< /DTS:Prope rty>
  132   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  133   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  134   <DTS:Varia ble>
  135   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  136   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  137   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  138   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  139   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  140   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_im port\</DTS :VariableV alue>
  141   <DTS:Prope rty DTS:Na me="Object Name">Dire ctory1</DT S:Property >
  142   <DTS:Prope rty DTS:Na me="DTSID" >{66E17E18 -97B1-4D23 -AD47-B0C3 30130F5A}< /DTS:Prope rty>
  143   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  144   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  145   <DTS:Varia ble>
  146   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  147   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  148   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  149   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  150   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  151   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_Im port</DTS: VariableVa lue>
  152   <DTS:Prope rty DTS:Na me="Object Name">Dire ctory2</DT S:Property >
  153   <DTS:Prope rty DTS:Na me="DTSID" >{2FC582BA -138F-47AB -819C-F972 564A3B5C}< /DTS:Prope rty>
  154   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  155   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  156   <DTS:Varia ble>
  157   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  158   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  159   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  160   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  161   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  162   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">6789</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="11"> 0</DTS:Var iableValue >
  163   <DTS:Prope rty DTS:Na me="Object Name">EMFF ileExists< /DTS:Prope rty>
  164   <DTS:Prope rty DTS:Na me="DTSID" >{88A1D077 -7107-44CE -9846-EF4E FB9B88EE}< /DTS:Prope rty>
  165   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  166   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  167   <DTS:Varia ble>
  168   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  169   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  170   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  171   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  172   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  173   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_Im port\*.xls x</DTS:Var iableValue >
  174   <DTS:Prope rty DTS:Na me="Object Name">file Name</DTS: Property>
  175   <DTS:Prope rty DTS:Na me="DTSID" >{D1E8E391 -6195-44D7 -8FFC-45F9 218E169E}< /DTS:Prope rty>
  176   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  177   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  178   <DTS:Varia ble>
  179   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  180   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  181   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  182   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  183   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  184   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">\ \vacrssql4 0\nds_etl2 $\preProdu ction\DoDF ragment_Im port\*.xls x</DTS:Var iableValue >
  185   <DTS:Prope rty DTS:Na me="Object Name">file Name2</DTS :Property>
  186   <DTS:Prope rty DTS:Na me="DTSID" >{92CFA8A6 -06D0-49BC -BE8E-F943 EA9BEAD6}< /DTS:Prope rty>
  187   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  188   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  189   <DTS:Varia ble>
  190   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  191   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  192   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  193   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  194   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  195   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">6789</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="3">0 </DTS:Vari ableValue>
  196   <DTS:Prope rty DTS:Na me="Object Name">iPac kageID</DT S:Property >
  197   <DTS:Prope rty DTS:Na me="DTSID" >{D83B74CD -8F21-4086 -9F01-0222 D6A8E2DA}< /DTS:Prope rty>
  198   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  199   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  200   <DTS:Varia ble>
  201   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  202   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  203   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  204   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  205   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  206   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">* .xls*</DTS :VariableV alue>
  207   <DTS:Prope rty DTS:Na me="Object Name">JPCF ile</DTS:P roperty>
  208   <DTS:Prope rty DTS:Na me="DTSID" >{266873AD -B6D3-4425 -9F36-66D4 728D93E5}< /DTS:Prope rty>
  209   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  210   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  211   <DTS:Varia ble>
  212   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  213   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  214   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  215   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  216   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  217   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">P reProdRegi stryStagin g</DTS:Var iableValue >
  218   <DTS:Prope rty DTS:Na me="Object Name">Logg ingDatabas e</DTS:Pro perty>
  219   <DTS:Prope rty DTS:Na me="DTSID" >{8F0DFBC2 -9382-4308 -8E97-4016 D7B04F39}< /DTS:Prope rty>
  220   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  221   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  222   <DTS:Varia ble>
  223   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  224   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  225   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  226   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  227   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  228   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">v acrssql40< /DTS:Varia bleValue>
  229   <DTS:Prope rty DTS:Na me="Object Name">Logg ingServer< /DTS:Prope rty>
  230   <DTS:Prope rty DTS:Na me="DTSID" >{10FFD628 -80F9-42C3 -95D0-CE08 50E590F9}< /DTS:Prope rty>
  231   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  232   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  233   <DTS:Varia ble>
  234   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  235   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  236   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  237   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  238   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  239   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">6789</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="3">1 </DTS:Vari ableValue>
  240   <DTS:Prope rty DTS:Na me="Object Name">RawD ataID</DTS :Property>
  241   <DTS:Prope rty DTS:Na me="DTSID" >{547E7D50 -0599-494B -85CA-6969 B28747F7}< /DTS:Prope rty>
  242   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  243   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  244   <DTS:Varia ble>
  245   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  246   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  247   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  248   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  249   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  250   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">R egistryQA< /DTS:Varia bleValue>
  251   <DTS:Prope rty DTS:Na me="Object Name">Regi stryDataba se</DTS:Pr operty>
  252   <DTS:Prope rty DTS:Na me="DTSID" >{DE076011 -136A-4AE5 -8767-C0A0 7954D461}< /DTS:Prope rty>
  253   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  254   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  255   <DTS:Varia ble>
  256   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  257   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  258   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  259   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  260   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  261   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">v acrssql40< /DTS:Varia bleValue>
  262   <DTS:Prope rty DTS:Na me="Object Name">Regi stryServer </DTS:Prop erty>
  263   <DTS:Prope rty DTS:Na me="DTSID" >{143EA6DA -F725-448C -9893-E2A0 2A2A1FC8}< /DTS:Prope rty>
  264   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  265   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  266   <DTS:Varia ble>
  267   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  268   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  269   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  270   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  271   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  272   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">P reProdRegi stryStagin g</DTS:Var iableValue >
  273   <DTS:Prope rty DTS:Na me="Object Name">Regi stryStagin gDatabase< /DTS:Prope rty>
  274   <DTS:Prope rty DTS:Na me="DTSID" >{AB157AE1 -F0D3-40B4 -8D18-957A 3787DE15}< /DTS:Prope rty>
  275   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  276   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  277   <DTS:Varia ble>
  278   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  279   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  280   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  281   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  282   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  283   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">v acrssql40< /DTS:Varia bleValue>
  284   <DTS:Prope rty DTS:Na me="Object Name">Regi stryStagin gServer</D TS:Propert y>
  285   <DTS:Prope rty DTS:Na me="DTSID" >{7A392EE3 -3BA9-4ACD -8FFB-70D6 D475D43B}< /DTS:Prope rty>
  286   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  287   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  288   <DTS:Varia ble>
  289   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  290   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  291   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  292   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  293   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  294   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">6789</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="3">0 </DTS:Vari ableValue>
  295   <DTS:Prope rty DTS:Na me="Object Name">RowC ount</DTS: Property>
  296   <DTS:Prope rty DTS:Na me="DTSID" >{70D774FE -D3D8-4BBD -A119-B6F3 770D9549}< /DTS:Prope rty>
  297   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  298   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  299   <DTS:Varia ble>
  300   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  301   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  302   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  303   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  304   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  305   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">< /DTS:Varia bleValue>
  306   <DTS:Prope rty DTS:Na me="Object Name">RunI dentifier< /DTS:Prope rty>
  307   <DTS:Prope rty DTS:Na me="DTSID" >{3D424339 -A276-49D8 -8607-8503 1975DD74}< /DTS:Prope rty>
  308   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  309   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  310   <DTS:Varia ble>
  311   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  312   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  313   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  314   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  315   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  316   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">< /DTS:Varia bleValue>
  317   <DTS:Prope rty DTS:Na me="Object Name">Shee tName</DTS :Property>
  318   <DTS:Prope rty DTS:Na me="DTSID" >{7349962A -3C4B-4025 -8F01-2451 9B7D65E1}< /DTS:Prope rty>
  319   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  320   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  321   <DTS:Varia ble>
  322   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  323   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  324   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  325   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  326   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  327   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8">< /DTS:Varia bleValue>
  328   <DTS:Prope rty DTS:Na me="Object Name">Sour ceFileName </DTS:Prop erty>
  329   <DTS:Prope rty DTS:Na me="DTSID" >{ACDF6BE9 -E4E1-45F3 -8BDC-11A1 FF9A2919}< /DTS:Prope rty>
  330   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  331   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  332   <DTS:Loggi ngOptions>
  333   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  334   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  335   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  336   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" DTS:Th readHint=" 0">
  337   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  338   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  339   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  340   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  341   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  342   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  343   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  344   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  345   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  346   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  347   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  348   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  349   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  350   <DTS:Prope rty DTS:Na me="DelayV alidation" >-1</DTS:P roperty>
  351   <DTS:Loggi ngOptions>
  352   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  353   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  354   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="SqlSta tementSour ce">"Exec  dbo.usp_ET L_PackageS tart 0, '"   + @[Syst em::Packag eName] + " ','" + (DT _STR, 25,  1252) @[Sy stem::Star tTime] + " ','Started ', '"+(DT_ STR, 10, 1 252) @[Sys tem::Versi onMajor]+" ."+(DT_STR , 10, 1252 ) @[System ::VersionM inor]+"."+ (DT_STR, 1 0, 1252) @ [System::V ersionBuil d]+"'"</DT S:Property Expression >
  355   <DTS:Prope rty DTS:Na me="Object Name">Log  Package  B egan</DTS: Property>
  356   <DTS:Prope rty DTS:Na me="DTSID" >{22f4c3e5 -ee67-4b59 -9f02-320e b07c2748}< /DTS:Prope rty>
  357   <DTS:Prope rty DTS:Na me="Descri ption">Exe cute SQL T ask</DTS:P roperty>
  358   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  359   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 89847F46-E 6DC-4CA1-9 936-7405D1 665722}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="Exec  dbo.usp_ET L_PackageS tart 0, 'D oDFragment _Import',' 6/2/2015 4 :38:55 PM' ,'Started' , '1.0.865 '" SQLTask :CodePage= "1252" SQL Task:Resul tType="Res ultSetType _SingleRow " xmlns:SQ LTask="www .microsoft .com/sqlse rver/dts/t asks/sqlta sk"><SQLTa sk:ResultB inding SQL Task:Resul tName="0"  SQLTask:Dt sVariableN ame="User: :iPackageI D"/></SQLT ask:SqlTas kData></DT S:ObjectDa ta></DTS:E xecutable>
  360   <DTS:Execu table DTS: Executable Type="STOC K:SEQUENCE ">
  361   <DTS:Prope rty DTS:Na me="LockNa me"></DTS: Property>
  362   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  363   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  364   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  365   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  366   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  367   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  368   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  369   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  370   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  371   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  372   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  373   <DTS:Loggi ngOptions>
  374   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  375   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  376   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  377   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" DTS:Th readHint=" 0">
  378   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  379   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  380   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  381   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  382   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  383   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  384   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  385   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  386   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  387   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  388   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  389   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  390   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  391   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  392   <DTS:Loggi ngOptions>
  393   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  394   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  395   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  396   <DTS:Prope rty DTS:Na me="Object Name">ALTE R table EF R DOD_FRAG MENT_DATA_ RECEIVELOG </DTS:Prop erty>
  397   <DTS:Prope rty DTS:Na me="DTSID" >{5F604A57 -6EB7-4CF1 -B00C-B030 75D35E54}< /DTS:Prope rty>
  398   <DTS:Prope rty DTS:Na me="Descri ption">ALT ER table E FR DOD_FRA GMENT_DATA _RECEIVELO G</DTS:Pro perty>
  399   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  400   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 0FB7D2FF-2 145-4DDE-8 4EB-BD10F9 218E70}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="if no t exists ( Select nam e from sys .columns w here name= 'Lab_Repor t_Date' an d OBJECT_N AME(object _ID)='DoD_ FRAGMENT_D ATA_RECEIV ELOG')&#xA ;begin&#xA ;alter tab le efr.DoD _FRAGMENT_ DATA_RECEI VELOG&#xA; add LAB_Re port_DATE  DATETIME N ULL&#xA;en d;&#xA;if  exists (Se lect name  from sys.c olumns whe re name='L ab_Order_D ate' and O BJECT_NAME (object_ID )='DoD_FRA GMENT_DATA _RECEIVELO G')&#xA;be gin&#xA;al ter table  efr.DoD_FR AGMENT_DAT A_RECEIVEL OG&#xA;Dro p Column L AB_Order_D ATE &#xA;e nd;&#xA;&# xA;" SQLTa sk:CodePag e="1252" S QLTask:Res ultType="R esultSetTy pe_None" x mlns:SQLTa sk="www.mi crosoft.co m/sqlserve r/dts/task s/sqltask" /></DTS:Ob jectData>< /DTS:Execu table>
  401   <DTS:Execu table DTS: Executable Type="STOC K:FOREACHL OOP">
  402   <DTS:ForEa chEnumerat or>
  403   <DTS:Prope rty DTS:Na me="Object Name">{091 406A4-FD22 -4AEF-A241 -4A195CCFB E5A}</DTS: Property>
  404   <DTS:Prope rty DTS:Na me="DTSID" >{091406A4 -FD22-4AEF -A241-4A19 5CCFBE5A}< /DTS:Prope rty>
  405   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  406   <DTS:Prope rty DTS:Na me="Creati onName">DT S.ForEachF ileEnumera tor.2</DTS :Property> <DTS:Prope rtyExpress ion DTS:Na me="Direct ory">@[Use r::Directo ry2]</DTS: PropertyEx pression>< DTS:Proper tyExpressi on DTS:Nam e="FileSpe c">@[User: :JPCFile]< /DTS:Prope rtyExpress ion><DTS:O bjectData> <ForEachFi leEnumerat orProperti es><FEFEPr operty Fol der="\\vac rssql40\nd s_etl2$\pr eProductio n\DoDFragm ent_Import "/><FEFEPr operty Fil eSpec="*.x ls*"/><FEF EProperty  FileNameRe trievalTyp e="0"/><FE FEProperty  Recurse=" 0"/></ForE achFileEnu meratorPro perties></ DTS:Object Data></DTS :ForEachEn umerator>
  407   <DTS:Prope rty DTS:Na me="MaxCon current">1 </DTS:Prop erty>
  408   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  409   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  410   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  411   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  412   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  413   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  414   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  415   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  416   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  417   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  418   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  419   <DTS:Loggi ngOptions>
  420   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  421   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  422   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  423   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Scri ptTask.Scr iptTask, M icrosoft.S qlServer.S criptTask,  Version=1 0.0.0.0, C ulture=neu tral, Publ icKeyToken =89845dcd8 080cc91" D TS:ThreadH int="0">
  424   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  425   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  426   <DTS:Prope rty DTS:Na me="TaskCo ntact"></D TS:Propert y>
  427   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  428   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  429   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  430   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  431   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  432   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  433   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  434   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  435   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  436   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  437   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  438   <DTS:Loggi ngOptions>
  439   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  440   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  441   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  442   <DTS:Prope rty DTS:Na me="Object Name">Scri pt Task -  process re cords</DTS :Property>
  443   <DTS:Prope rty DTS:Na me="DTSID" >{C6BE0400 -BE02-4059 -810C-D62C F3DED1AA}< /DTS:Prope rty>
  444   <DTS:Prope rty DTS:Na me="Descri ption">Scr ipt Task</ DTS:Proper ty>
  445   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.S criptTask,  Microsoft .SqlServer .ScriptTas k, Version =10.0.0.0,  Culture=n eutral, Pu blicKeyTok en=89845dc d8080cc91< /DTS:Prope rty>
  446   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S criptProje ct Name="S T_fce6863c d8c94187b7 bd25281306 34e1" VSTA MajorVersi on="2" VST AMinorVers ion="1" La nguage="CS harp" Entr yPoint="Ma in" ReadOn lyVariable s="User::f ileName2,U ser::Loggi ngDatabase ,User::Log gingServer ,User::Reg istryDatab ase,User:: RegistrySe rver" Read WriteVaria bles=""><P rojectItem  Name="\pr operties\a ssemblyinf o.cs">
  447   <![CDATA[u sing Syste m.Reflecti on;
  448   using Syst em.Runtime .CompilerS ervices;
  449  
  450   //
  451   // General  Informati on about a n assembly  is contro lled throu gh the fol lowing 
  452   // set of  attributes . Change t hese attri bute value s to modif y the info rmation
  453   // associa ted with a n assembly .
  454   //
  455   [assembly:  AssemblyT itle("ST_f ce6863cd8c 94187b7bd2 528130634e 1.csproj") ]
  456   [assembly:  AssemblyD escription ("")]
  457   [assembly:  AssemblyC onfigurati on("")]
  458   [assembly:  AssemblyC ompany("De partment o f Veterans  Affairs") ]
  459   [assembly:  AssemblyP roduct("ST _fce6863cd 8c94187b7b d252813063 4e1.csproj ")]
  460   [assembly:  AssemblyC opyright(" Copyright  @ Departme nt of Vete rans Affai rs 2014")]
  461   [assembly:  AssemblyT rademark(" ")]
  462   [assembly:  AssemblyC ulture("") ]
  463   //
  464   // Version  informati on for an  assembly c onsists of  the follo wing four  values:
  465   //
  466   //      Ma jor Versio n
  467   //      Mi nor Versio
  468   //      Bu ild Number
  469   //      Re vision
  470   //
  471   // You can  specify a ll the val ues or you  can defau lt the Rev ision and  Build Numb ers 
  472   // by usin g the '*'  as shown b elow:
  473  
  474   [assembly:  AssemblyV ersion("1. 0.*")]]]>< /ProjectIt em><Projec tItem Name ="\excelwo rkbook.cs" >
  475   <![CDATA[/
  476    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  477    * 
  478    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  479    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  480    * 
  481    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  482    * mailto: dr.john.tu nnicliffe@ btinternet .com
  483    * All rig hts reserv ed.
  484    * 
  485    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  486    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  487    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  488    * 
  489    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  490    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  491    * 
  492    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  493    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  494    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  495    * 
  496    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  497    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  498    */
  499  
  500   /*
  501    * Code ch ange notes :
  502    * 
  503    * Author                                                             Change                                               Date
  504    * ******* ********** ********** ********** ********** ********** ********** ********** *
  505    * John Tu nnicliffe               Initial  Release          01-J an-2007
  506    * ******* ********** ********** ********** ********** ********** ********** ********** *
  507    */
  508   using Syst em;
  509   using Syst em.Xml;
  510   using Syst em.IO;
  511   using Syst em.IO.Pack aging;
  512  
  513   namespace  OfficeOpen Xml
  514   {
  515       #regio n Public E num ExcelC alcMode
  516       /// <s ummary>
  517       /// Re presents t he possibl e workbook  calculati on modes
  518       /// </ summary>
  519       public  enum Exce lCalcMode
  520       {
  521           // / <summary >
  522           // / Set the  calculatio n mode to  Automatic
  523           // / </summar y>
  524           Au tomatic,
  525           // / <summary >
  526           // / Set the  calculatio n mode to  AutomaticN oTable
  527           // / </summar y>
  528           Au tomaticNoT able,
  529           // / <summary >
  530           // / Set the  calculatio n mode to  Manual
  531           // / </summar y>
  532           Ma nual
  533       }
  534       #endre gion
  535  
  536       /// <s ummary>
  537       /// Re presents t he Excel w orkbook an d provides  access to  all the 
  538       /// do cument pro perties an d workshee ts within  the workbo ok.
  539       /// </ summary>
  540       public  class Exc elWorkbook
  541       {
  542           #r egion Priv ate Proper ties
  543           pr ivate Exce lPackage _ xlPackage;
  544           //  we have t o hard cod e these ur is as we n eed them t o create a  workbook  from scrat ch
  545           pr ivate Uri  _uriWorkbo ok = new U ri("/xl/wo rkbook.xml ", UriKind .Relative) ;
  546           pr ivate Uri  _uriShared Strings =  new Uri("/ xl/sharedS trings.xml ", UriKind .Relative) ;
  547           pr ivate Uri  _uriStyles  = new Uri ("/xl/styl es.xml", U riKind.Rel ative);
  548           pr ivate Uri  _uriCalcCh ain = new  Uri("/xl/c alcChain.x ml", UriKi nd.Relativ e);
  549  
  550           pr ivate XmlD ocument _x mlWorkbook ;
  551           pr ivate XmlD ocument _x mlSharedSt rings;
  552           pr ivate XmlD ocument _x mlStyles;
  553  
  554           pr ivate Exce lWorksheet s _workshe ets;
  555           pr ivate XmlN amespaceMa nager _nsM anager;
  556           pr ivate Offi ceProperti es _proper ties;
  557           #e ndregion
  558  
  559           #r egion Exce lWorkbook  Constructo r
  560           // / <summary >
  561           // / Creates  a new inst ance of th e ExcelWor kbook clas s.  For in ternal use  only!
  562           // / </summar y>
  563           // / <param n ame="xlPac kage">The  parent pac kage</para m>
  564           pr otected in ternal Exc elWorkbook (ExcelPack age xlPack age)
  565           {
  566                _xlPacka ge = xlPac kage;
  567                //  Crea te a Names paceManage r to handl e the defa ult namesp ace, 
  568                //  and  create a p refix for  the defaul t namespac e:
  569                NameTabl e nt = new  NameTable ();
  570                _nsManag er = new X mlNamespac eManager(n t);
  571                _nsManag er.AddName space("d",  ExcelPack age.schema Main);
  572           }
  573           #e ndregion
  574  
  575           #r egion Work sheets
  576           // / <summary >
  577           // / Provides  access to  all the w orksheets  in the wor kbook.
  578           // / </summar y>
  579           pu blic Excel Worksheets  Worksheet s
  580           {
  581                get
  582                {
  583                    if ( _worksheet s == null)
  584                    {
  585                         _worksheet s = new Ex celWorkshe ets(_xlPac kage);
  586                    }
  587                    retu rn (_works heets);
  588                }
  589           }
  590           #e ndregion
  591  
  592           #r egion Work book Prope rties
  593           // / <summary >
  594           // / The Uri  to the wor kbook in t he package
  595           // / </summar y>
  596           pr otected in ternal Uri  WorkbookU ri { get {  return (_ uriWorkboo k); } }
  597           // / <summary >
  598           // / The Uri  to the sty les.xml in  the packa ge
  599           // / </summar y>
  600           pr otected in ternal Uri  StylesUri  { get { r eturn (_ur iStyles);  } }
  601           // / <summary >
  602           // / The Uri  to the sha red string s file
  603           // / </summar y>
  604           pr otected in ternal Uri  SharedStr ingsUri {  get { retu rn (_uriSh aredString s); } }
  605           // / <summary >
  606           // / Returns  a referenc e to the w orkbook's  part withi n the pack age
  607           // / </summar y>
  608           pr otected in ternal Pac kagePart P art { get  { return ( _xlPackage .Package.G etPart(Wor kbookUri)) ; } }
  609  
  610           #r egion Work bookXml
  611           // / <summary >
  612           // / Provides  access to  the XML d ata repres enting the  workbook  in the pac kage.
  613           // / </summar y>
  614           pu blic XmlDo cument Wor kbookXml
  615           {
  616                get
  617                {
  618                    if ( _xmlWorkbo ok == null )
  619                    {
  620                         if (_xlPac kage.Packa ge.PartExi sts(Workbo okUri))
  621                             _xmlWo rkbook = _ xlPackage. GetXmlFrom Uri(Workbo okUri);
  622                         else
  623                         {
  624                             // cre ate a new  workbook p art and ad d to the p ackage
  625                             Packag ePart part Workbook =  _xlPackag e.Package. CreatePart (WorkbookU ri, @"appl ication/vn d.openxmlf ormats-off icedocumen t.spreadsh eetml.shee t.main+xml ");
  626  
  627                             // cre ate the wo rkbook
  628                             _xmlWo rkbook = n ew XmlDocu ment();
  629                             // cre ate the wo rkbook tag
  630                             XmlEle ment tagWo rkbook = _ xmlWorkboo k.CreateEl ement("wor kbook", Ex celPackage .schemaMai n);
  631                             // Add  the relat ionships n amespace
  632                             ExcelP ackage.Add SchemaAttr ibute(tagW orkbook, E xcelPackag e.schemaRe lationship s, "r");
  633                             _xmlWo rkbook.App endChild(t agWorkbook );
  634  
  635                             //// c reate the  bookViews  tag
  636                             XmlEle ment bookV iews = _xm lWorkbook. CreateElem ent("bookV iews", Exc elPackage. schemaMain );
  637                             tagWor kbook.Appe ndChild(bo okViews);
  638                             XmlEle ment workb ookView =  _xmlWorkbo ok.CreateE lement("wo rkbookView ", ExcelPa ckage.sche maMain);
  639                             bookVi ews.Append Child(work bookView);
  640  
  641                             // cre ate the sh eets tag
  642                             XmlEle ment tagSh eets = _xm lWorkbook. CreateElem ent("sheet s", ExcelP ackage.sch emaMain);
  643                             tagWor kbook.Appe ndChild(ta gSheets);
  644  
  645                             // sav e it to th e package
  646                             Stream Writer str eamWorkboo k = new St reamWriter (partWorkb ook.GetStr eam(FileMo de.Create,  FileAcces s.Write));
  647                             _xmlWo rkbook.Sav e(streamWo rkbook);
  648                             stream Workbook.C lose();
  649                             _xlPac kage.Packa ge.Flush() ;
  650                         }
  651                    }
  652                    retu rn (_xmlWo rkbook);
  653                }
  654           }
  655           #e ndregion
  656  
  657           #r egion Shar edStrings
  658           // / <summary >
  659           // / Provides  access to  the XML d ata repres enting the  shared st rings in t he package .
  660           // / For inte rnal use o nly!
  661           // / </summar y>
  662           pr otected in ternal Xml Document S haredStrin gsXml
  663           {
  664                get
  665                {
  666                    if ( _xmlShared Strings ==  null)
  667                    {
  668                         if (_xlPac kage.Packa ge.PartExi sts(Shared StringsUri ))
  669                             _xmlSh aredString s = _xlPac kage.GetXm lFromUri(S haredStrin gsUri);
  670                         else
  671                         {
  672                             // cre ate a new  sharedStri ngs part a nd add to  the packag e
  673                             Packag ePart part Strings =  _xlPackage .Package.C reatePart( SharedStri ngsUri, @" applicatio n/vnd.open xmlformats -officedoc ument.spre adsheetml. sharedStri ngs+xml");
  674  
  675                             // cre ate the sh ared strin gs xml doc  (with no  entries in  it)
  676                             _xmlSh aredString s = new Xm lDocument( );
  677                             XmlEle ment tagSs t = _xmlSh aredString s.CreateEl ement("sst ", ExcelPa ckage.sche maMain);
  678                             tagSst .SetAttrib ute("count ", "0");
  679                             tagSst .SetAttrib ute("uniqu eCount", " 0");
  680                             _xmlSh aredString s.AppendCh ild(tagSst );
  681  
  682                             // sav e it to th e package
  683                             Stream Writer str eamStrings  = new Str eamWriter( partString s.GetStrea m(FileMode .Create, F ileAccess. Write));
  684                             _xmlSh aredString s.Save(str eamStrings );
  685                             stream Strings.Cl ose();
  686                             _xlPac kage.Packa ge.Flush() ;
  687  
  688                             // cre ate the re lationship  between t he workboo k and the  new shared  strings p art
  689                             _xlPac kage.Workb ook.Part.C reateRelat ionship(Sh aredString sUri, Targ etMode.Int ernal, Exc elPackage. schemaRela tionships  + "/shared Strings");
  690                             _xlPac kage.Packa ge.Flush() ;
  691                         }
  692                    }
  693                    retu rn (_xmlSh aredString s);
  694                }
  695           }
  696           #e ndregion
  697  
  698           #r egion Styl esXml
  699           // / <summary >
  700           // / Provides  access to  the XML d ata repres enting the  styles in  the packa ge. 
  701           // / </summar y>
  702           pu blic XmlDo cument Sty lesXml
  703           {
  704                get
  705                {
  706                    if ( _xmlStyles  == null)
  707                    {
  708                         if (_xlPac kage.Packa ge.PartExi sts(Styles Uri))
  709                             _xmlSt yles = _xl Package.Ge tXmlFromUr i(StylesUr i);
  710                         else
  711                         {
  712                             // cre ate a new  styles par t and add  to the pac kage
  713                             Packag ePart part Syles = _x lPackage.P ackage.Cre atePart(St ylesUri, @ "applicati on/vnd.ope nxmlformat s-officedo cument.spr eadsheetml .styles+xm l");
  714  
  715                             // cre ate the st yle sheet
  716                             _xmlSt yles = new  XmlDocume nt();
  717                             XmlEle ment tagSt ylesheet =  _xmlStyle s.CreateEl ement("sty leSheet",  ExcelPacka ge.schemaM ain);
  718                             _xmlSt yles.Appen dChild(tag Stylesheet );
  719                             // cre ate the fo nts tag
  720                             XmlEle ment tagFo nts = _xml Styles.Cre ateElement ("fonts",  ExcelPacka ge.schemaM ain);
  721                             tagFon ts.SetAttr ibute("cou nt", "1");
  722                             tagSty lesheet.Ap pendChild( tagFonts);
  723                             // cre ate the fo nt tag
  724                             XmlEle ment tagFo nt = _xmlS tyles.Crea teElement( "font", Ex celPackage .schemaMai n);
  725                             tagFon ts.AppendC hild(tagFo nt);
  726                             // cre ate the sz  tag
  727                             XmlEle ment tagSz  = _xmlSty les.Create Element("s z", ExcelP ackage.sch emaMain);
  728                             tagSz. SetAttribu te("val",  "11");
  729                             tagFon t.AppendCh ild(tagSz) ;
  730                             // cre ate the na me tag
  731                             XmlEle ment tagNa me = _xmlS tyles.Crea teElement( "name", Ex celPackage .schemaMai n);
  732                             tagNam e.SetAttri bute("val" , "Calibri ");
  733                             tagFon t.AppendCh ild(tagNam e);
  734                             // cre ate the ce llStyleXfs  tag
  735                             XmlEle ment tagCe llStyleXfs  = _xmlSty les.Create Element("c ellStyleXf s", ExcelP ackage.sch emaMain);
  736                             tagCel lStyleXfs. SetAttribu te("count" , "1");
  737                             tagSty lesheet.Ap pendChild( tagCellSty leXfs);
  738                             // cre ate the xf  tag
  739                             XmlEle ment tagXf  = _xmlSty les.Create Element("x f", ExcelP ackage.sch emaMain);
  740                             tagXf. SetAttribu te("numFmt Id", "0");
  741                             tagXf. SetAttribu te("fontId ", "0");
  742                             tagCel lStyleXfs. AppendChil d(tagXf);
  743                             // cre ate the ce llXfs tag
  744                             XmlEle ment tagCe llXfs = _x mlStyles.C reateEleme nt("cellXf s", ExcelP ackage.sch emaMain);
  745                             tagCel lXfs.SetAt tribute("c ount", "1" );
  746                             tagSty lesheet.Ap pendChild( tagCellXfs );
  747                             // cre ate the xf  tag
  748                             XmlEle ment tagXf 2 = _xmlSt yles.Creat eElement(" xf", Excel Package.sc hemaMain);
  749                             tagXf2 .SetAttrib ute("numFm tId", "0") ;
  750                             tagXf2 .SetAttrib ute("fontI d", "0");
  751                             tagXf2 .SetAttrib ute("xfId" , "0");
  752                             tagCel lXfs.Appen dChild(tag Xf2);
  753  
  754                             // sav e it to th e package
  755                             Stream Writer str eamStyles  = new Stre amWriter(p artSyles.G etStream(F ileMode.Cr eate, File Access.Wri te));
  756                             _xmlSt yles.Save( streamStyl es);
  757                             stream Styles.Clo se();
  758                             _xlPac kage.Packa ge.Flush() ;
  759  
  760                             // cre ate the re lationship  between t he workboo k and the  new shared  strings p art
  761                             _xlPac kage.Workb ook.Part.C reateRelat ionship(St ylesUri, T argetMode. Internal,  ExcelPacka ge.schemaR elationshi ps + "/sty les");
  762                             _xlPac kage.Packa ge.Flush() ;
  763                         }
  764                    }
  765                    retu rn (_xmlSt yles);
  766                }
  767                set
  768                {
  769                    _xml Styles = v alue;
  770                }
  771           }
  772           #e ndregion
  773  
  774           #r egion Offi ce Documen t Properti es
  775           // / <summary >
  776           // / Provides  access to  the offic e document  propertie s
  777           // / </summar y>
  778           pu blic Offic ePropertie s Properti es
  779           {
  780                get
  781                {
  782                    if ( _propertie s == null)
  783                         _propertie s = new Of ficeProper ties(_xlPa ckage);
  784                    retu rn _proper ties;
  785                }
  786           }
  787           #e ndregion
  788  
  789           #r egion Calc Mode
  790           // / <summary >
  791           // / Allows y ou to set  the calcul ation mode  for the w orkbook.
  792           // / </summar y>
  793           pu blic Excel CalcMode C alcMode
  794           {
  795                get
  796                {
  797                    Exce lCalcMode  retValue =  ExcelCalc Mode.Autom atic;
  798                    //   Retrieve t he calcMod e attribut e in the c alcPr elem ent.
  799                    XmlN ode node =  WorkbookX ml.SelectS ingleNode( "//d:calcP r", _nsMan ager);
  800                    if ( node != nu ll)
  801                    {
  802                         XmlAttribu te attr =  node.Attri butes["cal cMode"];
  803                         if (attr ! = null)
  804                         {
  805                             switch  (attr.Val ue)
  806                             {
  807                                 ca se "auto":
  808                                      retValue  = ExcelCa lcMode.Aut omatic;
  809                                      break;
  810                                 ca se "autoNo Table":
  811                                      retValue  = ExcelCa lcMode.Aut omaticNoTa ble;
  812                                      break;
  813                                 ca se "manual ":
  814                                      retValue  = ExcelCa lcMode.Man ual;
  815                                      break;
  816                             }
  817                         }
  818                    }
  819                    retu rn (retVal ue);
  820                }
  821                set
  822                {
  823                    XmlE lement ele ment = (Xm lElement)W orkbookXml .SelectSin gleNode("/ /d:calcPr" , _nsManag er);
  824                    //if  (element  == null)
  825                    //{
  826                    //   // create  the elemen t
  827                    //   element =  WorkbookXm l.CreateEl ement(
  828                    //}
  829                    stri ng actualV alue = "au to";  // d efault
  830                    //   Set the va lue of the  attribute :
  831                    swit ch (value)
  832                    {
  833                         case Excel CalcMode.A utomatic:
  834                             actual Value = "a uto";
  835                             break;
  836                         case Excel CalcMode.A utomaticNo Table:
  837                             actual Value = "a utoNoTable ";
  838                             break;
  839                         case Excel CalcMode.M anual:
  840                             actual Value = "m anual";
  841                             break;
  842                    }
  843                    elem ent.SetAtt ribute("ca lcMode", a ctualValue );
  844                }
  845           #e ndregion
  846  
  847           }
  848           #e ndregion
  849  
  850           #r egion Work book Priva te Methods
  851  
  852           #r egion Save  // Workbo ok Save
  853           // / <summary >
  854           // / Saves th e workbook  and all i ts compone nts to the  package.
  855           // / For inte rnal use o nly!
  856           // / </summar y>
  857           pr otected in ternal voi d Save()   // Workboo k Save
  858           {
  859                // ensur e we have  at least o ne workshe et
  860                if (Work sheets.Cou nt == 0)
  861                    thro w new Exce ption("Wor kbook Save  Error: th e workbook  must cont ain at lea st one wor ksheet!");
  862                
  863                #region  Delete cal cChain com ponent
  864                // if th e calcChai n componen t exists,  we should  delete it  to force E xcel to re create it
  865                // when  the spread sheet is n ext opened
  866                if (_xlP ackage.Pac kage.PartE xists(_uri CalcChain) )
  867                {
  868                    //   there will  be a rela tionship w ith the wo rkbook, so  first del ete the re lationship
  869                    Uri  calcChain  = new Uri( "calcChain .xml", Uri Kind.Relat ive);
  870                    fore ach (Packa geRelation ship relat ionship in  _xlPackag e.Workbook .Part.GetR elationshi ps())
  871                    {
  872                         if (relati onship.Tar getUri ==  calcChain)
  873                         {
  874                             _xlPac kage.Workb ook.Part.D eleteRelat ionship(re lationship .Id);
  875                             break;
  876                         }
  877                    }
  878                    // d elete the  calcChain  component
  879                    _xlP ackage.Pac kage.Delet ePart(_uri CalcChain) ;
  880                }
  881                #endregi on
  882                
  883                // save  the workbo ok
  884                if (_xml Workbook ! = null)
  885                {
  886                    _xlP ackage.Sav ePart(Work bookUri, _ xmlWorkboo k);
  887                    _xlP ackage.Wri teDebugFil e(_xmlWork book, "xl" , "workboo k.xml");
  888                }
  889                
  890                // save  the proper ties of th e workbook
  891                if (_pro perties !=  null)
  892                {
  893                    _pro perties.Sa ve();
  894                }
  895                
  896                // save  the style  sheet
  897                if (_xml Styles !=  null)
  898                {
  899                    _xlP ackage.Sav ePart(Styl esUri, _xm lStyles);
  900                    _xlP ackage.Wri teDebugFil e(_xmlStyl es, "xl",  "styles.xm l");
  901                }
  902                
  903                // save  the shared  strings
  904                if (_xml SharedStri ngs != nul l)
  905                {
  906                    _xlP ackage.Sav ePart(Shar edStringsU ri, _xmlSh aredString s);
  907                    _xlP ackage.Wri teDebugFil e(_xmlShar edStrings,  "xl", "sh aredstring s.xml");
  908                }
  909                
  910                // save  all the op en workshe ets
  911                foreach  (ExcelWork sheet work sheet in W orksheets)
  912                {
  913                    work sheet.Save ();
  914                }
  915                System.W indows.For ms.Message Box.Show(" done");
  916           }
  917           #e ndregion
  918  
  919           #e ndregion
  920       } // e nd Workboo k
  921   }]]></Proj ectItem><P rojectItem  Name="\ex celcell.cs ">
  922   <![CDATA[/
  923    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  924    * 
  925    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  926    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  927    * 
  928    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  929    * mailto: dr.john.tu nnicliffe@ btinternet .com
  930    * All rig hts reserv ed.
  931    * 
  932    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  933    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  934    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  935    * 
  936    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  937    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  938    * 
  939    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  940    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  941    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  942    * 
  943    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  944    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  945    */
  946  
  947   /*
  948    * Code ch ange notes :
  949    * 
  950    * Author                                                             Change                                               Date
  951    * ******* ********** ********** ********** ********** ********** ********** ********** *
  952    * John Tu nnicliffe               Initial  Release          01-J an-2007
  953    * ******* ********** ********** ********** ********** ********** ********** ********** *
  954    */
  955   using Syst em;
  956   using Syst em.Xml;
  957   using Syst em.Text.Re gularExpre ssions;
  958   using Syst em.IO.Pack aging;
  959  
  960   namespace  OfficeOpen Xml
  961   {
  962       /// <s ummary>
  963       /// Ex celCell re presents a n individu al workshe et cell.
  964       /// </ summary>
  965       public  class Exc elCell
  966       {
  967           #r egion Cell  Private P roperties
  968           pr ivate Exce lWorksheet  _xlWorksh eet;
  969           pr ivate XmlE lement _ce llElement;
  970           pr ivate int  _row;
  971           pr ivate int  _col;
  972           pr ivate stri ng _value;
  973           pr ivate stri ng _valueR ef;
  974           pr ivate stri ng _formul a;
  975           pr ivate stri ng _dataTy pe;
  976           pr ivate Uri  _hyperlink ;
  977           #e ndregion
  978  
  979           #r egion Exce lCell Cons tructor
  980           // / <summary >
  981           // / Creates  a new inst ance of Ex celCell cl ass. For i nternal us e only!
  982           // / </summar y>
  983           // / <param n ame="xlWor ksheet">A  reference  to the par ent worksh eet</param >
  984           // / <param n ame="row"> The row nu mber in th e parent w orksheet</ param>
  985           // / <param n ame="col"> The column  number in  the paren t workshee t</param>
  986           pr otected in ternal Exc elCell(Exc elWorkshee t xlWorksh eet, int r ow, int co l)
  987           {
  988                if (row  < 1 || col  < 1)
  989                    thro w new Exce ption("Exc elCell Con structor:  Negative r ow and col umn number s are not  allowed");
  990                if (xlWo rksheet ==  null)
  991                    thro w new Exce ption("Exc elCell Con structor:  xlWorkshee t must be  set to a v alid refer ence");
  992  
  993                _xlWorks heet = xlW orksheet;
  994                _row = r ow;
  995                _col = c ol;
  996  
  997                _cellEle ment = Get OrCreateCe llElement( xlWorkshee t, row, co l);
  998           }
  999           #e ndregion   // END Cel l Construc tors
  1000  
  1001           #r egion Exce lCell Publ ic Propert ies
  1002  
  1003           // / <summary >
  1004           // / Read-onl y referenc e to the c ell's XmlN ode (for i nternal us e only)
  1005           // / </summar y>
  1006           pr otected in ternal Xml Element El ement { ge t { return  _cellElem ent; } }
  1007           // / <summary >
  1008           // / Read-onl y referenc e to the c ell's row  number
  1009           // / </summar y>
  1010           pu blic int R ow { get {  return _r ow; } }
  1011           // / <summary >
  1012           // / Read-onl y referenc e to the c ell's colu mn number
  1013           // / </summar y>
  1014           pu blic int C olumn { ge t { return  _col; } }
  1015           // / <summary >
  1016           // / Returns  the curren t cell add ress in th e standard  Excel for mat (e.g.  'E5')
  1017           // / </summar y>
  1018           pu blic strin g CellAddr ess { get  { return G etCellAddr ess(_row,  _col); } }
  1019           // / <summary >
  1020           // / Returns  true if th e cell's c ontents ar e numeric.
  1021           // / </summar y>
  1022           pu blic bool  IsNumeric  { get { re turn (IsNu mericValue (Value));  } }
  1023  
  1024           #r egion Exce lCell Valu e
  1025           // / <summary >
  1026           // / Gets/set s the valu e of the c ell.
  1027           // / </summar y>
  1028           pu blic strin g Value
  1029           {
  1030                get
  1031                {
  1032                    if ( _value ==  null)
  1033                    {
  1034                         bool IsNum eric = tru e;  // def ault
  1035                         XmlNode va lueNode =  _cellEleme nt.SelectS ingleNode( "./d:v", _ xlWorkshee t.NameSpac eManager);
  1036                         if (valueN ode == nul l)
  1037                         {
  1038                             _value Ref = "";
  1039                             _value  = "";
  1040                         }
  1041                         else
  1042                         {
  1043                             _value Ref = valu eNode.Inne rText;
  1044                             // che ck to see  if we have  a string  value
  1045                             XmlAtt ribute att r = _cellE lement.Att ributes["t "];
  1046                             if (at tr != null )
  1047                                 Is Numeric =  !(attr.Val ue == "s") ;
  1048  
  1049                             if (Is Numeric)
  1050                                 _v alue = _va lueRef;
  1051                             else
  1052                                 _v alue = Get SharedStri ng(Convert .ToInt32(_ valueRef)) ;
  1053                         }
  1054                    }
  1055                    retu rn (_value );
  1056                }
  1057                set
  1058                {
  1059                    _val ue = value ;
  1060                    // s et the val ue of the  cell
  1061                    XmlN ode valueN ode = _cel lElement.S electSingl eNode("./d :v", _xlWo rksheet.Na meSpaceMan ager);
  1062                    if ( valueNode  == null)
  1063                    {
  1064                         //  Cell w ith delete d value. A dd a value  element n ow.
  1065                         valueNode  = _cellEle ment.Owner Document.C reateEleme nt("v", Ex celPackage .schemaMai n);
  1066                         _cellEleme nt.AppendC hild(value Node);
  1067                    }
  1068                    if ( IsNumericV alue(value ))
  1069                    {
  1070                         _valueRef  = value;
  1071                         // ensure  we remove  any existi ng string  data type  flag
  1072                         XmlAttribu te attr =  _cellEleme nt.Attribu tes["t"];
  1073                         if (attr ! = null)
  1074                             _cellE lement.Att ributes.Re moveNamedI tem("t");
  1075                    }
  1076                    else
  1077                    {
  1078                         _valueRef  = SetShare dString(_v alue).ToSt ring();
  1079                         XmlAttribu te attr =  _cellEleme nt.Attribu tes["t"];
  1080                         if (attr = = null)
  1081                         {
  1082                             attr =  _cellElem ent.OwnerD ocument.Cr eateAttrib ute("t");
  1083                             _cellE lement.Att ributes.Ap pend(attr) ;
  1084                         }
  1085                         attr.Value  = "s";
  1086                    }
  1087                    valu eNode.Inne rText = _v alueRef;
  1088                }
  1089           }
  1090           #e ndregion
  1091  
  1092           #r egion Exce lCell Data Type
  1093           // / <summary >
  1094           // / Gets/set s the cell 's data ty pe.  
  1095           // / Not curr ently impl emented co rrectly!
  1096           // / </summar y>
  1097           pu blic strin g DataType
  1098           {
  1099                // TODO:  complete  DataType
  1100                get
  1101                {
  1102                    stri ng retValu e = null;
  1103                    XmlA ttribute a ttr = _cel lElement.A ttributes[ "t"];
  1104                    if ( attr != nu ll)
  1105                    {
  1106                         _dataType  = "";  //  default
  1107                    }
  1108                    retu rn (retVal ue);
  1109                }
  1110                set
  1111                {
  1112                    _dat aType = va lue;
  1113                    XmlA ttribute a ttr = _cel lElement.A ttributes[ "t"];
  1114                    if ( attr == nu ll)
  1115                    {
  1116                         attr = _ce llElement. OwnerDocum ent.Create Attribute( "t");
  1117                         _cellEleme nt.Attribu tes.Append (attr);
  1118                    }
  1119                    attr .Value = v alue;
  1120                }
  1121           }
  1122           #e ndregion
  1123  
  1124           #r egion Exce lCell Styl e
  1125           // / <summary >
  1126           // / Allows y ou to set  the cell's  style usi ng a named  style
  1127           // / </summar y>
  1128           pu blic strin g Style
  1129           {
  1130                get { re turn (_xlW orksheet.G etStyleNam e(StyleID) ); }
  1131                set { St yleID = _x lWorksheet .GetStyleI D(value);  }
  1132           }
  1133  
  1134           // / <summary >
  1135           // / Allows y ou to set  the cell's  style usi ng the num ber of the  style.
  1136           // / Useful w hen coping  styles fr om one cel l to anoth er.
  1137           // / </summar y>
  1138           pu blic int S tyleID
  1139           {
  1140                get
  1141                {
  1142                    int  retValue =  0;
  1143                    stri ng sid = _ cellElemen t.GetAttri bute("s");
  1144                    if ( sid != "")  retValue  = int.Pars e(sid);
  1145                    retu rn retValu e;
  1146                }
  1147                set { _c ellElement .SetAttrib ute("s", v alue.ToStr ing()); }
  1148           }
  1149           #e ndregion
  1150  
  1151           #r egion Exce lCell Hype rlink
  1152           // / <summary >
  1153           // / Allows y ou to set/ get the ce ll's Hyper link
  1154           // / </summar y>
  1155           pu blic Uri H yperlink
  1156           {
  1157                get
  1158                {
  1159                    if ( _hyperlink  == null)
  1160                    {
  1161                         string sea rchString  = string.F ormat("//d :hyperlink s/d:hyperl ink[@ref =  '{0}']",  CellAddres s);
  1162                         XmlNode li nkNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de(searchS tring, _xl Worksheet. NameSpaceM anager);
  1163                         if (linkNo de != null )
  1164                         {
  1165                             XmlAtt ribute att r = (XmlAt tribute)li nkNode.Att ributes.Ge tNamedItem ("id", Exc elPackage. schemaRela tionships) ;
  1166                             if (at tr != null )
  1167                             {
  1168                                 st ring relID  = attr.Va lue;
  1169                                 //  now use t he relID t o lookup t he hyperli nk in the  relationsh ip table
  1170                                 Pa ckageRelat ionship re lationship  = _xlWork sheet.Part .GetRelati onship(rel ID);
  1171                                 _h yperlink =  relations hip.Target Uri;
  1172                             }
  1173                         }
  1174                    }
  1175                    retu rn (_hyper link);
  1176                }
  1177                set
  1178                {
  1179                    _hyp erlink = v alue;
  1180                    XmlN ode linkPa rent = _ce llElement. OwnerDocum ent.Select SingleNode ("//d:hype rlinks", _ xlWorkshee t.NameSpac eManager);
  1181                    if ( linkParent  == null)
  1182                    {
  1183                         // create  the hyperl inks node
  1184                         linkParent  = _cellEl ement.Owne rDocument. CreateElem ent("hyper links", Ex celPackage .schemaMai n);
  1185                         XmlNode pr evNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de("//d:co nditionalF ormatting" , _xlWorks heet.NameS paceManage r);
  1186                         if (prevNo de == null )
  1187                         {
  1188                             prevNo de = _cell Element.Ow nerDocumen t.SelectSi ngleNode(" //d:mergeC ells", _xl Worksheet. NameSpaceM anager);
  1189                             if (pr evNode ==  null)
  1190                             {
  1191                                 pr evNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de("//d:sh eetData",  _xlWorkshe et.NameSpa ceManager) ;
  1192                             }
  1193                         }
  1194                         _cellEleme nt.OwnerDo cument.Doc umentEleme nt.InsertA fter(linkP arent, pre vNode);
  1195                    }
  1196  
  1197                    stri ng searchS tring = st ring.Forma t("./d:hyp erlink[@re f = '{0}'] ", CellAdd ress);
  1198                    XmlE lement lin kNode = (X mlElement) linkParent .SelectSin gleNode(se archString , _xlWorks heet.NameS paceManage r);
  1199                    XmlA ttribute a ttr;
  1200                    if ( linkNode = = null)
  1201                    {
  1202                         linkNode =  _cellElem ent.OwnerD ocument.Cr eateElemen t("hyperli nk", Excel Package.sc hemaMain);
  1203                         // now add  cell addr ess attrib ute
  1204                         linkNode.S etAttribut e("ref", C ellAddress );
  1205                         linkParent .AppendChi ld(linkNod e);
  1206                    }
  1207  
  1208                    attr  = (XmlAtt ribute)lin kNode.Attr ibutes.Get NamedItem( "id", Exce lPackage.s chemaRelat ionships);
  1209                    if ( attr == nu ll)
  1210                    {
  1211                         attr = _ce llElement. OwnerDocum ent.Create Attribute( "r", "id",  ExcelPack age.schema Relationsh ips);
  1212                         linkNode.A ttributes. Append(att r);
  1213                    }
  1214                    Pack ageRelatio nship rela tionship =  null;
  1215                    stri ng relID =  attr.Valu e;
  1216                    if ( relID == " ")
  1217                         relationsh ip = _xlWo rksheet.Pa rt.CreateR elationshi p(_hyperli nk, Target Mode.Exter nal, @"htt p://schema s.openxmlf ormats.org /officeDoc ument/2006 /relations hips/hyper link");
  1218                    else
  1219                    {
  1220                         relationsh ip = _xlWo rksheet.Pa rt.GetRela tionship(r elID);
  1221                         if (relati onship.Tar getUri !=  _hyperlink )
  1222                             relati onship = _ xlWorkshee t.Part.Cre ateRelatio nship(_hyp erlink, Ta rgetMode.E xternal, @ "http://sc hemas.open xmlformats .org/offic eDocument/ 2006/relat ionships/h yperlink") ;
  1223                    }
  1224                    attr .Value = r elationshi p.Id;
  1225  
  1226                    //at tr = (XmlA ttribute)l inkNode.At tributes.G etNamedIte m("display ", ExcelPa ckage.sche maMain);
  1227                    //if  (attr ==  null)
  1228                    //{
  1229                    //   attr = _ce llNode.Own erDocument .CreateAtt ribute("di splay");
  1230                    //   linkNode.A ttributes. Append(att r);
  1231                    //}
  1232                    //at tr.Value =  Display;
  1233                }
  1234           }
  1235           #e ndregion
  1236  
  1237           #r egion Exce lCell Form ula
  1238           // / <summary >
  1239           // / Provides  read/writ e access t o the cell 's formula .
  1240           // / </summar y>
  1241           pu blic strin g Formula
  1242           {
  1243                get
  1244                {
  1245                    if ( _formula = = null)
  1246                    {
  1247                         XmlNode fo rmulaNode  = _cellEle ment.Selec tSingleNod e("./d:f",  _xlWorksh eet.NameSp aceManager );
  1248                         if (formul aNode != n ull)
  1249                         {
  1250                             // fir st check i f we have  a shared f ormula
  1251                             XmlAtt ribute att r = (XmlAt tribute)fo rmulaNode. Attributes .GetNamedI tem("t");
  1252                             if (at tr == null )
  1253                             {
  1254                                 //  we have a  standard  formula
  1255                                 _f ormula = f ormulaNode .InnerText ;
  1256                             }
  1257                             else
  1258                             {
  1259                                 if  (attr.Val ue == "sha red")
  1260                                 {
  1261                                      // we mu st obtain  the formul a from the  shared ce ll referen ce
  1262                                      XmlAttri bute refAt tr = (XmlA ttribute)f ormulaNode .Attribute s.GetNamed Item("si") ;
  1263                                      if (refA ttr == nul l)
  1264                                          thro w new Exce ption("Exc elCell for mula marke d as share d but no r eference I D found (i .e. si att ribute)");
  1265                                      else
  1266                                      {
  1267                                          stri ng searchS tring = st ring.Forma t("//d:she etData/d:r ow/d:c/d:f [@si='{0}' ]", refAtt r.Value);
  1268                                          XmlN ode refNod e = _cellE lement.Own erDocument .SelectSin gleNode(se archString , _xlWorks heet.NameS paceManage r);
  1269                                          if ( refNode ==  null)
  1270                                               throw new  Exception( "ExcelCell  formula m arked as s hared but  no referen ce node fo und");
  1271                                          else
  1272                                               _formula =  refNode.I nnerText;
  1273                                      }
  1274                                 }
  1275                                 el se
  1276                                      _formula  = formula Node.Inner Text;
  1277                             }
  1278                         }
  1279                    }
  1280                    retu rn (_formu la);
  1281                }
  1282                set
  1283                {
  1284                    // E xample cel l content  for formul as
  1285                    // < f>D7</f>
  1286                    // < f>SUM(D6:D 8)</f>
  1287                    // < f>F6+F7+F8 </f>
  1288                    _for mula = val ue;
  1289                    // i nsert the  formula in to the cel l
  1290                    XmlE lement for mulaElemen t = (XmlEl ement)_cel lElement.S electSingl eNode("./d :f", _xlWo rksheet.Na meSpaceMan ager);
  1291                    if ( formulaEle ment == nu ll)
  1292                    {
  1293                         formulaEle ment = Add FormulaEle ment();
  1294                    }
  1295                    // w e are sett ing the fo rmula dire ctly, so r emove the  shared att ributes (i f present)
  1296                    form ulaElement .Attribute s.RemoveNa medItem("t ", ExcelPa ckage.sche maMain);
  1297                    form ulaElement .Attribute s.RemoveNa medItem("s i", ExcelP ackage.sch emaMain);
  1298  
  1299                    // s et the for mula
  1300                    form ulaElement .InnerText  = value;
  1301  
  1302                    // f orce Excel  to re-cal culate the  cell by r emoving th e value
  1303                    Remo veValue();
  1304                }
  1305           }
  1306           #e ndregion
  1307  
  1308           #r egion Exce lCell Comm ent
  1309           // / <summary >
  1310           // / Returns  the commen t as a str ing
  1311           // / </summar y>
  1312           pu blic strin g Comment
  1313           {
  1314                // TODO:  implement  get which  will obta in the tex t of the c omment fro m the comm ent1.xml f ile
  1315                get
  1316                {
  1317                    thro w new Exce ption("Fun ction not  yet implem ented!");
  1318                }
  1319                // TODO:  implement  set which  will add  comments t o the work sheet
  1320                // this  will requi re you to  add entrie s to the D rawing.vml  file to g et this to  work! 
  1321           }
  1322           #e ndregion
  1323  
  1324           //  TODO: con ditional f ormatting
  1325  
  1326           #e ndregion   // END Cel l Public P roperties
  1327  
  1328           #r egion Exce lCell Publ ic Methods
  1329           // / <summary >
  1330           // / Removes  the XmlNod e that hol ds the cel l's value.
  1331           // / Useful w hen the ce ll contain s a formul a as this  will force  Excel to  re-calcula te the cel l's conten t.
  1332           // / </summar y>
  1333           pu blic void  RemoveValu e()
  1334           {
  1335                XmlNode  valueNode  = _cellEle ment.Selec tSingleNod e("./d:v",  _xlWorksh eet.NameSp aceManager );
  1336                if (valu eNode != n ull)
  1337                {
  1338                    _cel lElement.R emoveChild (valueNode );
  1339                }
  1340           }
  1341  
  1342           // / <summary >
  1343           // / Returns  the cell's  value as  a string.
  1344           // / </summar y>
  1345           // / <returns >The cell' s value</r eturns>
  1346           pu blic overr ide string  ToString( ) { return  Value; }
  1347  
  1348           #e ndregion   // END Cel l Public M ethods
  1349  
  1350           #r egion Exce lCell Priv ate Method s
  1351  
  1352           #r egion IsNu mericValue
  1353           // / <summary >
  1354           // / Returns  true if th e string c ontains a  numeric va lue
  1355           // / </summar y>
  1356           // / <param n ame="Value "></param>
  1357           // / <returns ></returns >
  1358           pu blic stati c bool IsN umericValu e(string V alue)
  1359           {
  1360                Regex ob jNotIntPat tern = new  Regex("[^ 0-9,.-]");
  1361                Regex ob jIntPatter n = new Re gex("^-[0- 9,.]+$|^[0 -9,.]+$");
  1362  
  1363                return ! objNotIntP attern.IsM atch(Value ) &&
  1364                                 ob jIntPatter n.IsMatch( Value);
  1365           }
  1366           #e ndregion
  1367  
  1368           #r egion Shar edString m ethods
  1369           pr ivate int  SetSharedS tring(stri ng Value)
  1370           {
  1371                //  Assu me the str ing won't  be found ( assign it  an impossi ble index) :
  1372                int inde x = -1;
  1373  
  1374                //  Chec k to see i f the stri ng already  exists. I f so, retr ieve its i ndex.
  1375                //  This  search is  case-sens itive, but  Excel sto res differ ently case d
  1376                //  stri ngs separa tely withi n the stri ng file.
  1377                XmlNode  stringNode  = _xlWork sheet.xlPa ckage.Work book.Share dStringsXm l.SelectSi ngleNode(s tring.Form at("//d:si [d:t='{0}' ]", Value) , _xlWorks heet.NameS paceManage r);
  1378                if (stri ngNode ==  null)
  1379                {
  1380                    //   You didn't  find the  string in  the table,  so add it  now.
  1381                    stri ngNode = _ xlWorkshee t.xlPackag e.Workbook .SharedStr ingsXml.Cr eateElemen t("si", Ex celPackage .schemaMai n);
  1382                    XmlE lement tex tNode = _x lWorksheet .xlPackage .Workbook. SharedStri ngsXml.Cre ateElement ("t", Exce lPackage.s chemaMain) ;
  1383                    text Node.Inner Text = Val ue;
  1384                    stri ngNode.App endChild(t extNode);
  1385                    _xlW orksheet.x lPackage.W orkbook.Sh aredString sXml.Docum entElement .AppendChi ld(stringN ode);
  1386                }
  1387  
  1388                if (stri ngNode !=  null)
  1389                {
  1390                    //   Retrieve t he index o f the sele cted node.
  1391                    //   To do that , count th e number o f precedin g
  1392                    //   nodes by r etrieving  a referenc e to those  nodes.
  1393                    XmlN odeList no des = stri ngNode.Sel ectNodes(" preceding- sibling::d :si", _xlW orksheet.N ameSpaceMa nager);
  1394                    inde x = nodes. Count;
  1395                }
  1396                return ( index);
  1397           }
  1398  
  1399           pr ivate stri ng GetShar edString(i nt stringI D)
  1400           {
  1401                string r etValue =  null;
  1402                XmlNodeL ist string Nodes = _x lWorksheet .xlPackage .Workbook. SharedStri ngsXml.Sel ectNodes(s tring.Form at("//d:si ", stringI D), _xlWor ksheet.Nam eSpaceMana ger);
  1403                XmlNode  stringNode  = stringN odes[strin gID];
  1404                if (stri ngNode !=  null)
  1405                    retV alue = str ingNode.In nerText;
  1406                return ( retValue);
  1407           }
  1408           #e ndregion
  1409  
  1410           #r egion AddF ormulaNode
  1411           // / <summary >
  1412           // / Adds a n ew formula  node to t he cell in  the corre ct locatio n
  1413           // / </summar y>
  1414           // / <returns ></returns >
  1415           pr otected in ternal Xml Element Ad dFormulaEl ement()
  1416           {
  1417                XmlEleme nt formula Element =  _cellEleme nt.OwnerDo cument.Cre ateElement ("f", Exce lPackage.s chemaMain) ;
  1418                // find  the right  location f or insersi on
  1419                XmlNode  valueNode  = _cellEle ment.Selec tSingleNod e("./d:v",  _xlWorksh eet.NameSp aceManager );
  1420                if (valu eNode == n ull)
  1421                    _cel lElement.A ppendChild (formulaEl ement);
  1422                else
  1423                    _cel lElement.I nsertBefor e(formulaE lement, va lueNode);
  1424                return f ormulaElem ent;
  1425           }
  1426           #e ndregion
  1427  
  1428           #r egion GetO rCreateCel lElement
  1429           pr ivate XmlE lement Get OrCreateCe llElement( ExcelWorks heet xlWor ksheet, in t row, int  col)
  1430           {
  1431                XmlEleme nt cellNod e = null;
  1432                // this  will creat e the row  if it does  not alrea dy exist
  1433                XmlNode  rowNode =  xlWorkshee t.Row(row) .Node;
  1434                if (rowN ode != nul l)
  1435                {
  1436                    cell Node = (Xm lElement)r owNode.Sel ectSingleN ode(string .Format(". /d:c[@" +  ExcelWorks heet.tempC olumnNumbe rTag + "=' {0}']", co l), _xlWor ksheet.Nam eSpaceMana ger);
  1437                    if ( cellNode = = null)
  1438                    {
  1439                         //  Didn't  find the  cell so cr eate the c ell elemen t
  1440                         cellNode =  xlWorkshe et.Workshe etXml.Crea teElement( "c", Excel Package.sc hemaMain);
  1441                         cellNode.S etAttribut e(ExcelWor ksheet.tem pColumnNum berTag, co l.ToString ());
  1442  
  1443                         // You mus t insert t he new cel l at the c orrect loc ation.
  1444                         // Loop th rough the  children,  looking fo r the firs t cell tha t is
  1445                         // beyond  the cell y ou're tryi ng to inse rt. Insert  before th at cell.
  1446                         XmlNode bi ggerNode =  null;
  1447                         XmlNodeLis t cellNode s = rowNod e.SelectNo des("./d:c ", _xlWork sheet.Name SpaceManag er);
  1448                         if (cellNo des != nul l)
  1449                         {
  1450                             foreac h (XmlNode  node in c ellNodes)
  1451                             {
  1452                                 Xm lNode colN ode = node .Attribute s[ExcelWor ksheet.tem pColumnNum berTag];
  1453                                 if  (colNode  != null)
  1454                                 {
  1455                                      int colF ound = Con vert.ToInt 32(colNode .Value);
  1456                                      if (colF ound > col )
  1457                                      {
  1458                                          bigg erNode = n ode;
  1459                                          brea k;
  1460                                      }
  1461                                 }
  1462                             }
  1463                         }
  1464                         if (bigger Node == nu ll)
  1465                         {
  1466                             rowNod e.AppendCh ild(cellNo de);
  1467                         }
  1468                         else
  1469                         {
  1470                             rowNod e.InsertBe fore(cellN ode, bigge rNode);
  1471                         }
  1472                    }
  1473                }
  1474                return ( cellNode);
  1475           }
  1476           #e ndregion
  1477  
  1478           #e ndregion / / END Cell  Private M ethods
  1479  
  1480           #r egion Exce lCell Stat ic Cell Ad dress Mani pulation R outines
  1481  
  1482           #r egion GetC olumnLette r
  1483           // / <summary >
  1484           // / Returns  the charac ter repres entation o f the numb ered colum n
  1485           // / </summar y>
  1486           // / <param n ame="iColu mnNumber"> The number  of the co lumn</para m>
  1487           // / <returns >The lette r represen ting the c olumn</ret urns>
  1488           pr otected in ternal sta tic string  GetColumn Letter(int  iColumnNu mber)
  1489           {
  1490                int iMai nLetterUni code;
  1491                char iMa inLetterCh ar;
  1492  
  1493                // TODO:  we need t o cater fo r columns  larger tha n ZZ
  1494                if (iCol umnNumber  > 26)
  1495                {
  1496                    int  iFirstLett erUnicode  = 0;  // d efault
  1497                    int  iFirstLett er = Conve rt.ToInt32 (iColumnNu mber / 26) ;
  1498                    char  iFirstLet terChar;
  1499                    if ( Convert.To Double(iFi rstLetter)  == (Conve rt.ToDoubl e(iColumnN umber) / 2 6))
  1500                    {
  1501                         iFirstLett erUnicode  = iFirstLe tter - 1 +  64;
  1502                         iMainLette rChar = 'Z ';
  1503                    }
  1504                    else
  1505                    {
  1506                         iFirstLett erUnicode  = iFirstLe tter + 64;
  1507                         iMainLette rUnicode =  (iColumnN umber - (i FirstLette r * 26)) +  64;
  1508                         iMainLette rChar = (c har)iMainL etterUnico de;
  1509                    }
  1510                    iFir stLetterCh ar = (char )iFirstLet terUnicode ;
  1511  
  1512                    retu rn (iFirst LetterChar .ToString( ) + iMainL etterChar. ToString() );
  1513                }
  1514                // if we  get here  we only ha ve a singl e letter t o return
  1515                iMainLet terUnicode  = 64 + iC olumnNumbe r;
  1516                iMainLet terChar =  (char)iMai nLetterUni code;
  1517                return ( iMainLette rChar.ToSt ring());
  1518           }
  1519           #e ndregion
  1520  
  1521           #r egion GetC olumnNumbe r
  1522           // / <summary >
  1523           // / Returns  the column  number fr om the cel lAddress
  1524           // / e.g. D5  would retu rn 5
  1525           // / </summar y>
  1526           // / <param n ame="cellA ddress">An  Excel for mat cell a ddresss (e .g. D5)</p aram>
  1527           // / <returns >The colum n number</ returns>
  1528           pu blic stati c int GetC olumnNumbe r(string c ellAddress )
  1529           {
  1530                // find  out positi on where c haracters  stop and n umbers beg in
  1531                int iCol umnNumber  = 0;
  1532                int iPos  = 0;
  1533                bool fou nd = false ;
  1534                foreach  (char chr  in cellAdd ress.ToCha rArray())
  1535                {
  1536                    iPos ++;
  1537                    if ( char.IsNum ber(chr))
  1538                    {
  1539                         found = tr ue;
  1540                         break;
  1541                    }
  1542                }
  1543  
  1544                if (foun d)
  1545                {
  1546                    stri ng AlphaPa rt = cellA ddress.Sub string(0,  cellAddres s.Length -  (cellAddr ess.Length  + 1 - iPo s));
  1547  
  1548                    int  length = A lphaPart.L ength;
  1549                    int  count = 0;
  1550                    fore ach (char  chr in Alp haPart.ToC harArray() )
  1551                    {
  1552                         count++;
  1553                         int chrVal ue = ((int )chr - 64) ;
  1554                         switch (le ngth)
  1555                         {
  1556                             case 1 :
  1557                                 iC olumnNumbe r = chrVal ue;
  1558                                 br eak;
  1559                             case 2 :
  1560                                 if  (count ==  1)
  1561                                      iColumnN umber += ( chrValue *  26);
  1562                                 el se
  1563                                      iColumnN umber += c hrValue;
  1564                                 br eak;
  1565                             case 3 :
  1566                                 if  (count ==  1)
  1567                                      iColumnN umber += ( chrValue *  26 * 26);
  1568                                 if  (count ==  2)
  1569                                      iColumnN umber += ( chrValue *  26);
  1570                                 el se
  1571                                      iColumnN umber += c hrValue;
  1572                                 br eak;
  1573                             case 4 :
  1574                                 if  (count ==  1)
  1575                                      iColumnN umber += ( chrValue *  26 * 26 *  26);
  1576                                 if  (count ==  2)
  1577                                      iColumnN umber += ( chrValue *  26 * 26);
  1578                                 if  (count ==  3)
  1579                                      iColumnN umber += ( chrValue *  26);
  1580                                 el se
  1581                                      iColumnN umber += c hrValue;
  1582                                 br eak;
  1583                         }
  1584                    }
  1585                }
  1586                return ( iColumnNum ber);
  1587           }
  1588           #e ndregion
  1589  
  1590           #r egion GetR owNumber
  1591           // / <summary >
  1592           // / Returns  the row nu mber from  the cellAd dress
  1593           // / e.g. D5  would retu rn 5
  1594           // / </summar y>
  1595           // / <param n ame="cellA ddress">An  Excel for mat cell a ddresss (e .g. D5)</p aram>
  1596           // / <returns >The row n umber</ret urns>
  1597           pu blic stati c int GetR owNumber(s tring cell Address)
  1598           {
  1599                // find  out positi on where c haracters  stop and n umbers beg in
  1600                int iPos  = 0;
  1601                bool fou nd = false ;
  1602                foreach  (char chr  in cellAdd ress.ToCha rArray())
  1603                {
  1604                    iPos ++;
  1605                    if ( char.IsNum ber(chr))
  1606                    {
  1607                         found = tr ue;
  1608                         break;
  1609                    }
  1610                }
  1611                if (foun d)
  1612                {
  1613                    stri ng NumberP art = cell Address.Su bstring(iP os - 1, ce llAddress. Length - ( iPos - 1)) ;
  1614                    if ( ExcelCell. IsNumericV alue(Numbe rPart))
  1615                         return (in t.Parse(Nu mberPart)) ;
  1616                }
  1617                return ( 0);
  1618           }
  1619           #e ndregion
  1620  
  1621           #r egion GetC ellAddress
  1622           // / <summary >
  1623           // / Returns  the AlphaN umeric rep resentatio n that Exc el expects  for a Cel l Address
  1624           // / </summar y>
  1625           // / <param n ame="iRow" >The numbe r of the r ow</param>
  1626           // / <param n ame="iColu mn">The nu mber of th e column i n the work sheet</par am>
  1627           // / <returns >The cell  address in  the forma t A1</retu rns>
  1628           pu blic stati c string G etCellAddr ess(int iR ow, int iC olumn)
  1629           {
  1630                return ( GetColumnL etter(iCol umn) + iRo w.ToString ());
  1631           }
  1632           #e ndregion
  1633  
  1634           #r egion IsVa lidCellAdd ress
  1635           // / <summary >
  1636           // / Checks t hat a cell  address ( e.g. A5) i s valid.
  1637           // / </summar y>
  1638           // / <param n ame="cellA ddress">Th e alphanum eric cell  address</p aram>
  1639           // / <returns >True if t he cell ad dress is v alid</retu rns>
  1640           pu blic stati c bool IsV alidCellAd dress(stri ng cellAdd ress)
  1641           {
  1642                int row  = GetRowNu mber(cellA ddress);
  1643                int col  = GetColum nNumber(ce llAddress) ;
  1644  
  1645                if (GetC ellAddress (row, col)  == cellAd dress)
  1646                    retu rn (true);
  1647                else
  1648                    retu rn (false) ;
  1649           }
  1650           #e ndregion
  1651  
  1652           #r egion Upda teFormulaR eferences
  1653           // / <summary >
  1654           // / Updates  the Excel  formula so  that all  the cellAd dresses ar e incremen ted by the  row and c olumn incr ements
  1655           // / if they  fall after  the after Row and af terColumn.
  1656           // / Supports  inserting  rows and  columns in to existin g template s.
  1657           // / </summar y>
  1658           // / <param n ame="Formu la">The Ex cel formul a</param>
  1659           // / <param n ame="rowIn crement">T he amount  to increme nt the cel l referenc e by</para m>
  1660           // / <param n ame="colIn crement">T he amount  to increme nt the cel l referenc e by</para m>
  1661           // / <param n ame="after Row">Only  change row s after th is row</pa ram>
  1662           // / <param n ame="after Column">On ly change  columns af ter this c olumn</par am>
  1663           // / <returns ></returns >
  1664           pu blic stati c string U pdateFormu laReferenc es(string  Formula, i nt rowIncr ement, int  colIncrem ent, int a fterRow, i nt afterCo lumn)
  1665           {
  1666                string n ewFormula  = "";
  1667  
  1668                Regex ge tAlphaNume ric = new  Regex(@"[^ a-zA-Z0-9] ", RegexOp tions.Igno reCase);
  1669                Regex ge tSigns = n ew Regex(@ "[a-zA-Z0- 9]", Regex Options.Ig noreCase);
  1670  
  1671                string a lphaNumeri c = getAlp haNumeric. Replace(Fo rmula, " " ).Replace( "  ", " ") ;
  1672                string s igns = get Signs.Repl ace(Formul a, " ");
  1673                char[] c hrSigns =  signs.ToCh arArray();
  1674                int coun t = 0;
  1675                int leng th = 0;
  1676                foreach  (string ce llAddress  in alphaNu meric.Spli t(' '))
  1677                {
  1678                    coun t++;
  1679                    leng th += cell Address.Le ngth;
  1680  
  1681                    // i f the cell Address co ntains an  alpha part  followed  by a numbe r part, th en it is a  valid cel lAddress
  1682                    int  row = GetR owNumber(c ellAddress );
  1683                    int  col = GetC olumnNumbe r(cellAddr ess);
  1684                    stri ng newCell Address =  "";
  1685                    if ( ExcelCell. GetCellAdd ress(row,  col) == ce llAddress)    // this  checks if  the cellA ddress is  valid
  1686                    {
  1687                         // we have  a valid c ell addres s so chang e its valu e (if nece ssary)
  1688                         if (row >=  afterRow)
  1689                             row +=  rowIncrem ent;
  1690                         if (col >=  afterColu mn)
  1691                             col +=  colIncrem ent;
  1692                         newCellAdd ress = Get CellAddres s(row, col );
  1693                    }
  1694                    if ( newCellAdd ress == "" )
  1695                    {
  1696                         newFormula  += cellAd dress;
  1697                    }
  1698                    else
  1699                    {
  1700                         newFormula  += newCel lAddress;
  1701                    }
  1702  
  1703                    for  (int i = l ength; i <  signs.Len gth; i++)
  1704                    {
  1705                         if (chrSig ns[i] == '  ')
  1706                             break;
  1707                         if (chrSig ns[i] != '  ')
  1708                         {
  1709                             length ++;
  1710                             newFor mula += ch rSigns[i]. ToString() ;
  1711                         }
  1712                    }
  1713                }
  1714                return ( newFormula );
  1715           }
  1716           #e ndregion
  1717  
  1718           #e ndregion / / END Cell Address Ma nipulation  Routines
  1719       }
  1720   }]]></Proj ectItem><P rojectItem  Name="\of ficeproper ties.cs">
  1721   <![CDATA[/
  1722    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  1723    * 
  1724    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  1725    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  1726    * 
  1727    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  1728    * mailto: dr.john.tu nnicliffe@ btinternet .com
  1729    * All rig hts reserv ed.
  1730    * 
  1731    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  1732    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  1733    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  1734    * 
  1735    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  1736    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  1737    * 
  1738    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  1739    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  1740    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  1741    * 
  1742    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  1743    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  1744    */
  1745  
  1746   /*
  1747    * Code ch ange notes :
  1748    * 
  1749    * Author                                                             Change                                               Date
  1750    * ******* ********** ********** ********** ********** ********** ********** ********** *
  1751    * John Tu nnicliffe               Initial  Release          01-J an-2007
  1752    * ******* ********** ********** ********** ********** ********** ********** ********** *
  1753    */
  1754   using Syst em;
  1755   using Syst em.Xml;
  1756   using Syst em.IO;
  1757   using Syst em.IO.Pack aging;
  1758  
  1759   namespace  OfficeOpen Xml
  1760   {
  1761       /// <s ummary>
  1762       /// Pr ovides acc ess to the  propertie s bag of a ny office  document ( i.e. Word,  Excel etc .)
  1763       /// </ summary>
  1764       public  class Off icePropert ies
  1765       {
  1766           #r egion Priv ate Proper ties
  1767  
  1768           pr ivate cons t string s chemaCore  = @"http:/ /schemas.o penxmlform ats.org/pa ckage/2006 /metadata/ core-prope rties";
  1769           pr ivate cons t string s chemeExten ded = @"ht tp://schem as.openxml formats.or g/officeDo cument/200 6/extended -propertie s";
  1770           pr ivate cons t string s chemaCusto m = @"http ://schemas .openxmlfo rmats.org/ officeDocu ment/2006/ custom-pro perties";
  1771           pr ivate cons t string s chemaDc =  @"http://p url.org/dc /elements/ 1.1/";
  1772           pr ivate cons t string s chemaDcTer ms = @"htt p://purl.o rg/dc/term s/";
  1773           pr ivate cons t string s chemaDcmiT ype = @"ht tp://purl. org/dc/dcm itype/";
  1774           pr ivate cons t string s chemaXsi =  @"http:// www.w3.org /2001/XMLS chema-inst ance";
  1775           pr ivate cons t string s chemaVt =  @"http://s chemas.ope nxmlformat s.org/offi ceDocument /2006/docP ropsVTypes ";
  1776  
  1777           pr ivate Uri  _uriProper tiesCore =  new Uri(" /docProps/ core.xml",  UriKind.R elative);
  1778           pr ivate Uri  _uriProper tiesExtend ed = new U ri("/docPr ops/app.xm l", UriKin d.Relative );
  1779           pr ivate Uri  _uriProper tiesCustom  = new Uri ("/docProp s/custom.x ml", UriKi nd.Relativ e);
  1780  
  1781           pr ivate XmlD ocument _x mlProperti esCore;
  1782           pr ivate XmlD ocument _x mlProperti esExtended ;
  1783           pr ivate XmlD ocument _x mlProperti esCustom;
  1784           pr ivate Exce lPackage _ xlPackage;
  1785           pr ivate XmlN amespaceMa nager _nsM anager;
  1786           #e ndregion
  1787  
  1788           #r egion Exce lPropertie s Construc tor
  1789           // / <summary >
  1790           // / Provides  access to  all the o ffice docu ment prope rties.
  1791           // / </summar y>
  1792           // / <param n ame="xlPac kage"></pa ram>
  1793           pu blic Offic ePropertie s(ExcelPac kage xlPac kage)
  1794           {
  1795                _xlPacka ge = xlPac kage;
  1796                //  Crea te a Names paceManage r to handl e the defa ult namesp ace, 
  1797                //  and  create a p refix for  the defaul t namespac e:
  1798                NameTabl e nt = new  NameTable ();
  1799                _nsManag er = new X mlNamespac eManager(n t);
  1800                // defau lt namespa ce
  1801                _nsManag er.AddName space("d",  ExcelPack age.schema Main);
  1802                _nsManag er.AddName space("vt" , schemaVt );
  1803                // exten ded proper ties (app. xml)
  1804                _nsManag er.AddName space("xp" , schemeEx tended);
  1805                // custo m properti es
  1806                _nsManag er.AddName space("ctp ", schemaC ustom);
  1807                // core  properties
  1808                _nsManag er.AddName space("cp" , schemaCo re);
  1809                // core  property n amespaces
  1810                _nsManag er.AddName space("dc" , schemaDc );
  1811                _nsManag er.AddName space("dct erms", sch emaDcTerms );
  1812                _nsManag er.AddName space("dcm itype", sc hemaDcmiTy pe);
  1813                _nsManag er.AddName space("xsi ", schemaX si);
  1814           }
  1815           #e ndregion
  1816  
  1817           #r egion Prot ected Inte rnal Prope rties
  1818           // / <summary >
  1819           // / The URI  to the cor e properti es compone nt (core.x ml)
  1820           // / </summar y>
  1821           pr otected in ternal Uri  CorePrope rtiesUri {  get { ret urn (_uriP ropertiesC ore); } }
  1822           // / <summary >
  1823           // / The URI  to the ext ended prop erties com ponent (ap p.xml)
  1824           // / </summar y>
  1825           pr otected in ternal Uri  ExtendedP ropertiesU ri { get {  return (_ uriPropert iesExtende d); } }
  1826           // / <summary >
  1827           // / The URI  to the cus tom proper ties compo nent (cust om.xml)
  1828           // / </summar y>
  1829           pr otected in ternal Uri  CustomPro pertiesUri  { get { r eturn (_ur iPropertie sCustom);  } }
  1830           #e ndregion
  1831  
  1832           #r egion Core  Propertie s
  1833  
  1834           #r egion Core Properties Xml
  1835           // / <summary >
  1836           // / Provides  access to  the XML d ocument th at holds a ll the cod
  1837           // / document  propertie s.
  1838           // / </summar y>
  1839           pu blic XmlDo cument Cor ePropertie sXml
  1840           {
  1841                get
  1842                {
  1843                    if ( _xmlProper tiesCore = = null)
  1844                    {
  1845                         if (_xlPac kage.Packa ge.PartExi sts(CorePr opertiesUr i))
  1846                             _xmlPr opertiesCo re = _xlPa ckage.GetX mlFromUri( CoreProper tiesUri);
  1847                         else
  1848                         {
  1849                             // cre ate a new  document p roperties  part and a dd to the  package
  1850                             Packag ePart part Core = _xl Package.Pa ckage.Crea tePart(Cor ePropertie sUri, @"ap plication/ vnd.openxm lformats-p ackage.cor e-properti es+xml");
  1851  
  1852                             // cre ate the do cument pro perties XM L (with no  entries i n it)
  1853                             _xmlPr opertiesCo re = new X mlDocument ();
  1854                             XmlEle ment root  = _xmlProp ertiesCore .CreateEle ment("cp:c orePropert ies", sche maCore);
  1855                             ExcelP ackage.Add SchemaAttr ibute(root , schemaCo re, "cp");
  1856                             ExcelP ackage.Add SchemaAttr ibute(root , schemaDc , "dc");
  1857                             ExcelP ackage.Add SchemaAttr ibute(root , schemaDc Terms, "dc terms");
  1858                             ExcelP ackage.Add SchemaAttr ibute(root , schemaDc miType, "d cmitype");
  1859                             ExcelP ackage.Add SchemaAttr ibute(root , schemaXs i, "xsi");
  1860                             _xmlPr opertiesCo re.AppendC hild(root) ;
  1861  
  1862                             // sav e it to th e package
  1863                             Stream Writer str eamCore =  new Stream Writer(par tCore.GetS tream(File Mode.Creat e, FileAcc ess.Write) );
  1864                             _xmlPr opertiesCo re.Save(st reamCore);
  1865                             stream Core.Close ();
  1866                             _xlPac kage.Packa ge.Flush() ;
  1867  
  1868                             // cre ate the re lationship  between t he workboo k and the  new shared  strings p art
  1869                             _xlPac kage.Packa ge.CreateR elationshi p(CoreProp ertiesUri,  TargetMod e.Internal , @"http:/ /schemas.o penxmlform ats.org/pa ckage/2006 /relations hips/metad ata/core-p roperties" );
  1870                             _xlPac kage.Packa ge.Flush() ;
  1871                         }
  1872                    }
  1873                    retu rn (_xmlPr opertiesCo re);
  1874                }
  1875           }
  1876           #e ndregion
  1877  
  1878           // / <summary >
  1879           // / Gets/set s the titl e property  of the do cument (co re propert y)
  1880           // / </summar y>
  1881           pu blic strin g Title
  1882           {
  1883                get { re turn GetCo reProperty Value("dc" , "title") ; }
  1884                set { Se tCorePrope rtyValue(" dc", "titl e", value) ; }
  1885           }
  1886  
  1887           // / <summary >
  1888           // / Gets/set s the subj ect proper ty of the  document ( core prope rty)
  1889           // / </summar y>
  1890           pu blic strin g Subject
  1891           {
  1892                get { re turn GetCo reProperty Value("dc" , "subject "); }
  1893                set { Se tCorePrope rtyValue(" dc", "subj ect", valu e); }
  1894           }
  1895  
  1896           // / <summary >
  1897           // / Gets/set s the auth or propert y of the d ocument (c ore proper ty)
  1898           // / </summar y>
  1899           pu blic strin g Author
  1900           {
  1901                get { re turn GetCo reProperty Value("dc" , "creator "); }
  1902                set { Se tCorePrope rtyValue(" dc", "crea tor", valu e); }
  1903           }
  1904  
  1905           // / <summary >
  1906           // / Gets/set s the comm ents prope rty of the  document  (core prop erty)
  1907           // / </summar y>
  1908           pu blic strin g Comments
  1909           {
  1910                get { re turn GetCo reProperty Value("dc" , "descrip tion"); }
  1911                set { Se tCorePrope rtyValue(" dc", "desc ription",  value); }
  1912           }
  1913  
  1914           // / <summary >
  1915           // / Gets/set s the keyw ords prope rty of the  document  (core prop erty)
  1916           // / </summar y>
  1917           pu blic strin g Keywords
  1918           {
  1919                get { re turn GetCo reProperty Value("cp" , "keyword s"); }
  1920                set { Se tCorePrope rtyValue(" cp", "keyw ords", val ue); }
  1921           }
  1922  
  1923           // / <summary >
  1924           // / Gets/set s the last ModifiedBy  property  of the doc ument (cor e property )
  1925           // / </summar y>
  1926           pu blic strin g LastModi fiedBy
  1927           {
  1928                get { re turn GetCo reProperty Value("cp" , "lastMod ifiedBy");  }
  1929                set { Se tCorePrope rtyValue(" cp", "last ModifiedBy ", value);  }
  1930           }
  1931  
  1932           // / <summary >
  1933           // / Gets/set s the last Printed pr operty of  the docume nt (core p roperty)
  1934           // / </summar y>
  1935           pu blic strin g LastPrin ted
  1936           {
  1937                get { re turn GetCo reProperty Value("cp" , "lastPri nted"); }
  1938                set { Se tCorePrope rtyValue(" cp", "last Printed",  value); }
  1939           }
  1940  
  1941           // / <summary >
  1942           // / Gets/set s the cate gory prope rty of the  document  (core prop erty)
  1943           // / </summar y>
  1944           pu blic strin g Category
  1945           {
  1946                get { re turn GetCo reProperty Value("cp" , "categor y"); }
  1947                set { Se tCorePrope rtyValue(" cp", "cate gory", val ue); }
  1948           }
  1949  
  1950           // / <summary >
  1951           // / Gets/set s the stat us propert y of the d ocument (c ore proper ty)
  1952           // / </summar y>
  1953           pu blic strin g Status
  1954           {
  1955                get { re turn GetCo reProperty Value("cp" , "content Status");  }
  1956                set { Se tCorePrope rtyValue(" cp", "cont entStatus" , value);  }
  1957           }
  1958  
  1959           #r egion Get  and Set Co re Propert ies
  1960           // / <summary >
  1961           // / Gets the  value of  a core pro perty
  1962           // / Private  method, fo r internal  use only!
  1963           // / </summar y>
  1964           // / <param n ame="nameS pace">The  namespace  of the pro perty</par am>
  1965           // / <param n ame="prope rtyName">T he propert y name</pa ram>
  1966           // / <returns >The curre nt value o f the prop erty</retu rns>
  1967           pr ivate stri ng GetCore PropertyVa lue(string  nameSpace , string p ropertyNam e)
  1968           {
  1969                string r etValue =  null;
  1970                string s earchStrin g = string .Format("/ /cp:corePr operties/{ 0}:{1}", n ameSpace,  propertyNa me);
  1971                XmlNode  node = Cor ePropertie sXml.Selec tSingleNod e(searchSt ring, _nsM anager);
  1972                if (node  != null)
  1973                {
  1974                    retV alue = nod e.InnerTex t;
  1975                }
  1976                return r etValue;
  1977           }
  1978  
  1979           // / <summary >
  1980           // / Sets a c ore proper ty value.
  1981           // / Private  method, fo r internal  use only!
  1982           // / </summar y>
  1983           // / <param n ame="nameS pace">The  property's  namespace </param>
  1984           // / <param n ame="prope rtyName">T he name of  the prope rty</param >
  1985           // / <param n ame="propV alue">The  value of t he propert y</param>
  1986           pr ivate void  SetCorePr opertyValu e(string n ameSpace,  string pro pertyName,  string pr opValue)
  1987           {
  1988                string s earchStrin g = string .Format("/ /cp:corePr operties/{ 0}:{1}", n ameSpace,  propertyNa me);
  1989                XmlNode  node = Cor ePropertie sXml.Selec tSingleNod e(searchSt ring, _nsM anager);
  1990                if (node  == null)
  1991                {
  1992                    // t he propert y does not  exist, so  create th e XML node
  1993                    stri ng schema  = schemaCo re;
  1994                    swit ch (nameSp ace)
  1995                    {
  1996                         case "cp":  schema =  schemaCore ; break;
  1997                         case "dc":  schema =  schemaDc;  break;
  1998                         case "dcte rms": sche ma = schem aDcTerms;  break;
  1999                         case "dcmi type": sch ema = sche maDcmiType ; break;
  2000                         case "xsi" : schema =  schemaXsi ; break;
  2001                    }
  2002                    node  = (XmlNod e)CoreProp ertiesXml. CreateElem ent(nameSp ace, prope rtyName, s chema);
  2003                    Core Properties Xml.Docume ntElement. AppendChil d(node);
  2004  
  2005                }
  2006                node.Inn erText = p ropValue;
  2007           }
  2008           #e ndregion
  2009  
  2010           #e ndregion
  2011  
  2012           #r egion Exte nded Prope rties
  2013           #r egion Exte ndedProper tiesXml
  2014           // / <summary >
  2015           // / Provides  access to  the XML d ocument th at holds t he extende d properti es of the  document ( app.xml)
  2016           // / </summar y>
  2017           pu blic XmlDo cument Ext endedPrope rtiesXml
  2018           {
  2019                get
  2020                {
  2021                    if ( _xmlProper tiesExtend ed == null )
  2022                    {
  2023                         if (_xlPac kage.Packa ge.PartExi sts(Extend edProperti esUri))
  2024                             _xmlPr opertiesEx tended = _ xlPackage. GetXmlFrom Uri(Extend edProperti esUri);
  2025                         else
  2026                         {
  2027                             // cre ate a new  extended p roperties  part and a dd to the  package
  2028                             Packag ePart part Extended =  _xlPackag e.Package. CreatePart (ExtendedP ropertiesU ri, @"appl ication/vn d.openxmlf ormats-off icedocumen t.extended -propertie s+xml");
  2029  
  2030                             // cre ate the ex tended pro perties XM L (with no  entries i n it)
  2031                             _xmlPr opertiesEx tended = n ew XmlDocu ment();
  2032                             XmlEle ment root  = _xmlProp ertiesExte nded.Creat eElement(" Properties ", schemeE xtended);
  2033                             ExcelP ackage.Add SchemaAttr ibute(root , schemaVt , "vt");
  2034                             _xmlPr opertiesEx tended.App endChild(r oot);
  2035  
  2036                             // sav e it to th e package
  2037                             Stream Writer str eamExtende d = new St reamWriter (partExten ded.GetStr eam(FileMo de.Create,  FileAcces s.Write));
  2038                             _xmlPr opertiesEx tended.Sav e(streamEx tended);
  2039                             stream Extended.C lose();
  2040                             _xlPac kage.Packa ge.Flush() ;
  2041  
  2042                             // cre ate the re lationship  between t he workboo k and the  new shared  strings p art
  2043                             _xlPac kage.Packa ge.CreateR elationshi p(Extended Properties Uri, Targe tMode.Inte rnal, @"ht tp://schem as.openxml formats.or g/officeDo cument/200 6/relation ships/exte nded-prope rties");
  2044                             _xlPac kage.Packa ge.Flush() ;
  2045                         }
  2046                    }
  2047                    retu rn (_xmlPr opertiesEx tended);
  2048                }
  2049           }
  2050           #e ndregion
  2051  
  2052           // / <summary >
  2053           // / Gets the  Applicati on propert y of the d ocument (e xtended pr operty)
  2054           // / </summar y>
  2055           pu blic strin g Applicat ion
  2056           {
  2057                get { re turn GetEx tendedProp ertyValue( "Applicati on"); }
  2058           }
  2059  
  2060           // / <summary >
  2061           // / Gets/set s the Hype rlinkBase  property o f the docu ment (exte nded prope rty)
  2062           // / </summar y>
  2063           pu blic Uri H yperlinkBa se
  2064           {
  2065                get { re turn new U ri(GetExte ndedProper tyValue("H yperlinkBa se")); }
  2066                set { Se tExtendedP ropertyVal ue("Hyperl inkBase",  value.ToSt ring()); }
  2067           }
  2068  
  2069           // / <summary >
  2070           // / Gets the  AppVersio n property  of the do cument (ex tended pro perty)
  2071           // / </summar y>
  2072           pu blic strin g AppVersi on
  2073           {
  2074                get { re turn GetEx tendedProp ertyValue( "AppVersio n"); }
  2075           }
  2076  
  2077           // / <summary >
  2078           // / Gets/set s the Comp any proper ty of the  document ( extended p roperty)
  2079           // / </summar y>
  2080           pu blic strin g Company
  2081           {
  2082                get { re turn GetEx tendedProp ertyValue( "Company") ; }
  2083                set { Se tExtendedP ropertyVal ue("Compan y", value) ; }
  2084           }
  2085  
  2086           // / <summary >
  2087           // / Gets/set s the Mana ger proper ty of the  document ( extended p roperty)
  2088           // / </summar y>
  2089           pu blic strin g Manager
  2090           {
  2091                get { re turn GetEx tendedProp ertyValue( "Manager") ; }
  2092                set { Se tExtendedP ropertyVal ue("Manage r", value) ; }
  2093           }
  2094  
  2095           #r egion Get  and Set Ex tended Pro perties
  2096           pr ivate stri ng GetExte ndedProper tyValue(st ring prope rtyName)
  2097           {
  2098                string r etValue =  null;
  2099                string s earchStrin g = string .Format("/ /xp:Proper ties/xp:{0 }", proper tyName);
  2100                XmlNode  node = Ext endedPrope rtiesXml.S electSingl eNode(sear chString,  _nsManager );
  2101                if (node  != null)
  2102                {
  2103                    retV alue = nod e.InnerTex t;
  2104                }
  2105                return r etValue;
  2106           }
  2107  
  2108           pr ivate void  SetExtend edProperty Value(stri ng propert yName, str ing propVa lue)
  2109           {
  2110                string s earchStrin g = string .Format("/ /xp:Proper ties/xp:{0 }", proper tyName);
  2111                XmlNode  node = Ext endedPrope rtiesXml.S electSingl eNode(sear chString,  _nsManager );
  2112                if (node  == null)
  2113                {
  2114                    // t he propert y does not  exist, so  create th e XML node
  2115                    node  = (XmlNod e)Extended Properties Xml.Create Element(pr opertyName , schemeEx tended);
  2116                    Exte ndedProper tiesXml.Do cumentElem ent.Append Child(node );
  2117                }
  2118                node.Inn erText = p ropValue;
  2119           }
  2120           #e ndregion
  2121           #e ndregion
  2122  
  2123           #r egion Cust om Propert ies
  2124  
  2125           #r egion Cust omProperti esXml
  2126           // / <summary >
  2127           // / Provides  access to  the XML d ocument wh ich holds  the docume nt's custo m properti es
  2128           // / </summar y>
  2129           pu blic XmlDo cument Cus tomPropert iesXml
  2130           {
  2131                get
  2132                {
  2133                    if ( _xmlProper tiesCustom  == null)
  2134                    {
  2135                         if (_xlPac kage.Packa ge.PartExi sts(Custom Properties Uri))
  2136                             _xmlPr opertiesCu stom = _xl Package.Ge tXmlFromUr i(CustomPr opertiesUr i);
  2137                         else
  2138                         {
  2139                             // cre ate a new  extended p roperties  part and a dd to the  package
  2140                             Packag ePart part Custom = _ xlPackage. Package.Cr eatePart(C ustomPrope rtiesUri,  @"applicat ion/vnd.op enxmlforma ts-officed ocument.cu stom-prope rties+xml" );
  2141  
  2142                             // cre ate the ex tended pro perties XM L (with no  entries i n it)
  2143                             _xmlPr opertiesCu stom = new  XmlDocume nt();
  2144                             XmlEle ment root  = _xmlProp ertiesCust om.CreateE lement("Pr operties",  schemaCus tom);
  2145                             ExcelP ackage.Add SchemaAttr ibute(root , schemaVt , "vt");
  2146                             _xmlPr opertiesCu stom.Appen dChild(roo t);
  2147  
  2148                             // sav e it to th e package
  2149                             Stream Writer str eamCustom  = new Stre amWriter(p artCustom. GetStream( FileMode.C reate, Fil eAccess.Wr ite));
  2150                             _xmlPr opertiesCu stom.Save( streamCust om);
  2151                             stream Custom.Clo se();
  2152                             _xlPac kage.Packa ge.Flush() ;
  2153  
  2154                             // cre ate the re lationship  between t he workboo k and the  new shared  strings p art
  2155                             _xlPac kage.Packa ge.CreateR elationshi p(CustomPr opertiesUr i, TargetM ode.Intern al, @"http ://schemas .openxmlfo rmats.org/ officeDocu ment/2006/ relationsh ips/custom -propertie s");
  2156                             _xlPac kage.Packa ge.Flush() ;
  2157                         }
  2158                    }
  2159                    retu rn (_xmlPr opertiesCu stom);
  2160                }
  2161           }
  2162           #e ndregion
  2163  
  2164           #r egion Get  and Set Cu stom Prope rties
  2165           // / <summary >
  2166           // / Gets the  value of  a custom p roperty
  2167           // / </summar y>
  2168           // / <param n ame="prope rtyName">T he name of  the prope rty</param >
  2169           // / <returns >The curre nt value o f the prop erty</retu rns>
  2170           pu blic strin g GetCusto mPropertyV alue(strin g property Name)
  2171           {
  2172                string r etValue =  null;
  2173                string s earchStrin g = string .Format("/ /ctp:Prope rties/ctp: property/@ name[.='{0 }']", prop ertyName);
  2174                XmlNode  node = Cus tomPropert iesXml.Sel ectSingleN ode(search String, _n sManager);
  2175                if (node  != null)
  2176                {
  2177                    retV alue = nod e.LastChil d.InnerTex t;
  2178                }
  2179                return r etValue;
  2180           }
  2181  
  2182           // / <summary >
  2183           // / Allows y ou to set  the value  of a curre nt custom  property o r create 
  2184           // / your own  custom pr operty.  
  2185           // / Currentl y only sup ports stri ng values.
  2186           // / </summar y>
  2187           // / <param n ame="prope rtyName">T he name of  the prope rty</param >
  2188           // / <param n ame="propV alue">The  value of t he propert y</param>
  2189           pu blic void  SetCustomP ropertyVal ue(string  propertyNa me, string  propValue )
  2190           {
  2191                // TODO:   provide  support fo r other cu stom prope rty data t ypes
  2192                string s earchStrin g = @"//ct p:Properti es";
  2193                XmlNode  allProps =  CustomPro pertiesXml .SelectSin gleNode(se archString , _nsManag er);
  2194  
  2195                searchSt ring = str ing.Format ("//ctp:Pr operties/c tp:propert y/@ctp:nam e[.='{0}'] ", propert yName);
  2196                XmlNode  node = Cus tomPropert iesXml.Sel ectSingleN ode(search String, _n sManager);
  2197                if (node  == null)
  2198                {
  2199                    // t he propert y does not  exist, so  first fin d the max  PID
  2200                    int  pid = 4;
  2201                    fore ach (XmlNo de prop in  allProps. ChildNodes )
  2202                    {
  2203                         XmlAttribu te attr =  (XmlAttrib ute)prop.A ttributes. GetNamedIt em("pid");
  2204                         if (attr ! = null)
  2205                         {
  2206                             int at trValue =  int.Parse( attr.Value );
  2207                             if (at trValue >  pid)
  2208                                 pi d = attrVa lue;
  2209                         }
  2210                    }
  2211                    pid+ +;
  2212                    // t he propert y does not  exist, so  create th e XML node
  2213                    XmlE lement ele ment = Cus tomPropert iesXml.Cre ateElement ("property ", schemaC ustom);
  2214                    elem ent.SetAtt ribute("fm tid", "{D5 CDD505-2E9 C-101B-939 7-08002B2C F9AE}");
  2215                    elem ent.SetAtt ribute("pi d", pid.To String());   // custo m property  pid
  2216                    elem ent.SetAtt ribute("na me", prope rtyName);
  2217  
  2218                    XmlE lement val ueElement  = CustomPr opertiesXm l.CreateEl ement("vt" , "lpwstr" , schemaVt );
  2219                    valu eElement.I nnerText =  propValue ;
  2220                    elem ent.Append Child(valu eElement);
  2221  
  2222                    Cust omProperti esXml.Docu mentElemen t.AppendCh ild(elemen t);
  2223                }
  2224                else
  2225                {
  2226                    node .LastChild .InnerText  = propVal ue;
  2227                }
  2228  
  2229           }
  2230           #e ndregion
  2231           #e ndregion
  2232  
  2233           #r egion Save   // Offic ePropertie s save
  2234           // / <summary >
  2235           // / Saves th e office d ocument pr operties b ack to the  package ( if they ex ist!).
  2236           // / </summar y>
  2237           pr otected in ternal voi d Save()
  2238           {
  2239                if (_xml Properties Core != nu ll)
  2240                {
  2241                    _xlP ackage.Wri teDebugFil e(_xmlProp ertiesCore , "docProp s", "core. xml");
  2242                    _xlP ackage.Sav ePart(Core Properties Uri, _xmlP ropertiesC ore);
  2243                }
  2244                if (_xml Properties Extended ! = null)
  2245                {
  2246                    _xlP ackage.Wri teDebugFil e(_xmlProp ertiesExte nded, "doc Props", "a pp.xml");
  2247                    _xlP ackage.Sav ePart(Exte ndedProper tiesUri, _ xmlPropert iesExtende d);
  2248                }
  2249                if (_xml Properties Custom !=  null)
  2250                {
  2251                    _xlP ackage.Wri teDebugFil e(_xmlProp ertiesCust om, "docPr ops", "cus tom.xml");
  2252                    _xlP ackage.Sav ePart(Cust omProperti esUri, _xm lPropertie sCustom);
  2253                }
  2254  
  2255           }
  2256           #e ndregion
  2257  
  2258       }
  2259   }]]></Proj ectItem><P rojectItem  Name="\ex celcolumn. cs">
  2260   <![CDATA[/
  2261    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  2262    * 
  2263    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  2264    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  2265    * 
  2266    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  2267    * mailto: dr.john.tu nnicliffe@ btinternet .com
  2268    * All rig hts reserv ed.
  2269    * 
  2270    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  2271    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  2272    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  2273    * 
  2274    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  2275    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  2276    * 
  2277    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  2278    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  2279    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  2280    * 
  2281    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  2282    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  2283    */
  2284  
  2285   /*
  2286    * Code ch ange notes :
  2287    * 
  2288    * Author                                                             Change                                               Date
  2289    * ******* ********** ********** ********** ********** ********** ********** ********** *
  2290    * John Tu nnicliffe               Initial  Release          01-J an-2007
  2291    * ******* ********** ********** ********** ********** ********** ********** ********** *
  2292    */
  2293   using Syst em;
  2294   using Syst em.Xml;
  2295  
  2296   namespace  OfficeOpen Xml
  2297   {
  2298       /// <s ummary>
  2299       /// Re presents a n individu al column  within the  worksheet
  2300       /// </ summary>
  2301       public  class Exc elColumn
  2302       {
  2303           pr ivate Exce lWorksheet  _xlWorksh eet;
  2304           pr ivate XmlE lement _co lElement =  null;
  2305           pr ivate XmlN amespaceMa nager _nsM anager;
  2306  
  2307           #r egion Exce lColumn Co nstructor
  2308           // / <summary >
  2309           // / Creates  a new inst ance of th e ExcelCol umn class.   
  2310           // / For inte rnal use o nly!
  2311           // / </summar y>
  2312           // / <param n ame="Works heet"></pa ram>
  2313           // / <param n ame="col"> </param>
  2314           pr otected in ternal Exc elColumn(E xcelWorksh eet Worksh eet, int c ol)
  2315           {
  2316                NameTabl e nt = new  NameTable ();
  2317                _nsManag er = new X mlNamespac eManager(n t);
  2318                _nsManag er.AddName space("d",  ExcelPack age.schema Main);
  2319  
  2320                _xlWorks heet = Wor ksheet;
  2321                XmlNode  parent = W orksheet.W orksheetXm l.SelectSi ngleNode(" //d:cols",  _nsManage r);
  2322                if (pare nt == null )
  2323                {
  2324                    pare nt = (XmlN ode)Worksh eet.Worksh eetXml.Cre ateElement ("cols", E xcelPackag e.schemaMa in);
  2325                    XmlN ode refChi ld = Works heet.Works heetXml.Se lectSingle Node("//d: sheetData" , _nsManag er);
  2326                    pare nt = Works heet.Works heetXml.Do cumentElem ent.Insert Before(par ent, refCh ild);
  2327                }
  2328                XmlAttri bute minAt tr;
  2329                XmlAttri bute maxAt tr;
  2330                XmlNode  insertBefo re = null;
  2331                // the c olumn defi nitions co ver a rang e of colum ns, so fin d the one  we want
  2332                bool ins ertBeforeF ound = fal se;
  2333                foreach  (XmlNode c olNode in  parent.Chi ldNodes)
  2334                {
  2335                    int  min = 1;
  2336                    int  max = 1;
  2337                    minA ttr = (Xml Attribute) colNode.At tributes.G etNamedIte m("min");
  2338                    if ( minAttr !=  null)
  2339                         min = int. Parse(minA ttr.Value) ;
  2340                    maxA ttr = (Xml Attribute) colNode.At tributes.G etNamedIte m("max");
  2341                    if ( maxAttr !=  null)
  2342                         max = int. Parse(maxA ttr.Value) ;
  2343                    if ( !insertBef oreFound & & (col <=  min || col  <= max))
  2344                    {
  2345                         insertBefo reFound =  true;
  2346                         insertBefo re = colNo de;
  2347                    }
  2348                    if ( col >= min  && col <=  max)
  2349                    {
  2350                         _colElemen t = (XmlEl ement)colN ode;
  2351                         break;
  2352                    }
  2353                }
  2354                if (_col Element ==  null)
  2355                {
  2356                    // c reate the  new column  definitio n
  2357                    _col Element =  Worksheet. WorksheetX ml.CreateE lement("co l", ExcelP ackage.sch emaMain);
  2358                    _col Element.Se tAttribute ("min", co l.ToString ());
  2359                    _col Element.Se tAttribute ("max", co l.ToString ());
  2360  
  2361                    if ( insertBefo re != null )
  2362                         parent.Ins ertBefore( _colElemen t, insertB efore);
  2363                    else
  2364                         parent.App endChild(_ colElement );
  2365                }
  2366           }
  2367           #e ndregion
  2368  
  2369           // / <summary >
  2370           // / Returns  a referenc e to the E lement tha t represen ts the col umn.
  2371           // / For inte rnal use o nly!
  2372           // / </summar y>
  2373           pr otected in ternal Xml Element El ement { ge t { return  (_colElem ent); } }
  2374  
  2375           // / <summary >
  2376           // / Sets the  first col umn the de finition r efers to.
  2377           // / </summar y>
  2378           pu blic int C olumnMin
  2379           {
  2380                get { re turn (int. Parse(_col Element.Ge tAttribute ("min")));  }
  2381                set { _c olElement. SetAttribu te("min",  value.ToSt ring()); }
  2382           }
  2383  
  2384           // / <summary >
  2385           // / Sets the  last colu mn the def inition re fers to.
  2386           // / </summar y>
  2387           pu blic int C olumnMax
  2388           {
  2389                get { re turn (int. Parse(_col Element.Ge tAttribute ("max")));  }
  2390                set { _c olElement. SetAttribu te("max",  value.ToSt ring()); }
  2391           }
  2392  
  2393           #r egion Exce lColumn Hi dden
  2394           // / <summary >
  2395           // / Allows t he column  to be hidd en in the  worksheet
  2396           // / </summar y>
  2397           pu blic bool  Hidden
  2398           {
  2399                get
  2400                {
  2401                    bool  retValue  = false;
  2402                    stri ng hidden  = _colElem ent.GetAtt ribute("hi dden", "1" );
  2403                    if ( hidden ==  "1") retVa lue = true ;
  2404                    retu rn (retVal ue);
  2405                }
  2406                set
  2407                {
  2408                    if ( value)
  2409                         _colElemen t.SetAttri bute("hidd en", "1");
  2410                    else
  2411                         _colElemen t.SetAttri bute("hidd en", "0");
  2412                }
  2413           }
  2414           #e ndregion
  2415  
  2416           #r egion Exce lColumn Wi dth
  2417           // / <summary >
  2418           // / Sets the  width of  the column  in the wo rksheet
  2419           // / </summar y>
  2420           pu blic doubl e Width
  2421           {
  2422                get
  2423                {
  2424                    doub le retValu e = 10;  / / default  column siz e
  2425                    stri ng width =  _colEleme nt.GetAttr ibute("wid th");
  2426                    if ( width != " ") retValu e = int.Pa rse(width) ;
  2427                    retu rn retValu e;
  2428                }
  2429                set { _c olElement. SetAttribu te("width" , value.To String());  }
  2430           }
  2431           #e ndregion
  2432  
  2433           #r egion Exce lColumn St yle
  2434           // / <summary >
  2435           // / Sets the  style for  the entir e column u sing a sty le name.
  2436           // / </summar y>
  2437           pu blic strin g Style
  2438           {
  2439                get { re turn _xlWo rksheet.Ge tStyleName (StyleID);  }
  2440                set
  2441                {
  2442                    // T ODO: imple ment corre ctly.  The  current c ode causes  Excel to  throw a fi t!
  2443                    Styl eID = _xlW orksheet.G etStyleID( value);
  2444                }
  2445           }
  2446           // / <summary >
  2447           // / Sets the  style for  the entir e column u sing the s tyle ID.  
  2448           // / </summar y>
  2449           pu blic int S tyleID
  2450           {
  2451                get
  2452                {
  2453                    int  retValue =  0;
  2454                    stri ng sid = _ colElement .GetAttrib ute("s");
  2455                    if ( sid != "")  retValue  = int.Pars e(sid);
  2456                    retu rn retValu e;
  2457                }
  2458                set { _c olElement. SetAttribu te("s", va lue.ToStri ng()); }
  2459           }
  2460           #e ndregion
  2461  
  2462           // / <summary >
  2463           // / Returns  the range  of columns  covered b y the colu mn definit ion.
  2464           // / </summar y>
  2465           // / <returns >A string  describing  the range  of column s covered  by the col umn defini tion.</ret urns>
  2466           pu blic overr ide string  ToString( )
  2467           {
  2468                return s tring.Form at("Column  Range: {0 } to {1}",  _colEleme nt.GetAttr ibute("min "), _colEl ement.GetA ttribute(" min"));
  2469           }
  2470       }
  2471   }]]></Proj ectItem><P rojectItem  Name="\ex celworkshe et.cs">
  2472   <![CDATA[/
  2473    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  2474    * 
  2475    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  2476    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  2477    * 
  2478    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  2479    * mailto: dr.john.tu nnicliffe@ btinternet .com
  2480    * All rig hts reserv ed.
  2481    * 
  2482    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  2483    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  2484    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  2485    * 
  2486    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  2487    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  2488    * 
  2489    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  2490    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  2491    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  2492    * 
  2493    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  2494    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  2495    */
  2496  
  2497   /*
  2498    * Code ch ange notes :
  2499    * 
  2500    * Author                                                             Change                                               Date
  2501    * ******* ********** ********** ********** ********** ********** ********** ********** *
  2502    * John Tu nnicliffe               Initial  Release          01-J an-2007
  2503    * ******* ********** ********** ********** ********** ********** ********** ********** *
  2504    */
  2505   using Syst em;
  2506   using Syst em.Xml;
  2507   using Syst em.IO;
  2508   using Syst em.IO.Pack aging;
  2509   using Syst em.Configu ration;
  2510  
  2511   namespace  OfficeOpen Xml
  2512   {
  2513       /// <s ummary>
  2514       /// Re presents a n Excel wo rksheet an d provides  access to  its prope rties and  methods
  2515       /// </ summary>
  2516       public  class Exc elWorkshee t
  2517       {
  2518           #r egion Work sheet Priv ate Proper ties
  2519           // / <summary >
  2520           // / Temporar y tag for  all column  numbers i n the work sheet XML
  2521           // / For inte rnal use o nly!
  2522           // / </summar y>
  2523           pr otected in ternal con st string  tempColumn NumberTag  = "colNumb er";
  2524           // / <summary >
  2525           // / Referenc e to the p arent pack age
  2526           // / For inte rnal use o nly!
  2527           // / </summar y>
  2528           pr otected in ternal Exc elPackage  xlPackage;
  2529           pr ivate Uri  _worksheet Uri;
  2530           pr ivate stri ng _name;
  2531           pr ivate int  _sheetID;
  2532           pr ivate bool  _hidden;
  2533           pr ivate stri ng _relati onshipID;
  2534           pr ivate XmlD ocument _w orksheetXm l;
  2535           pr ivate Exce lWorksheet View _shee tView;
  2536           pr ivate Exce lHeaderFoo ter _heade rFooter;
  2537           pr ivate XmlN amespaceMa nager _nsM anager;
  2538           #e ndregion   // END Wor ksheet Pri vate Prope rties
  2539  
  2540           #r egion Exce lWorksheet  Construct or
  2541           // / <summary >
  2542           // / Creates  a new inst ance of Ex celWorkshe et class. 
  2543           // / For inte rnal use o nly!
  2544           // / </summar y>
  2545           // / <param n ame="Paren tXlPackage ">Parent E xcelPackag e object</ param>
  2546           // / <param n ame="Relat ionshipID" >Package r elationshi p ID</para m>
  2547           // / <param n ame="sheet Name">Name  of the ne w workshee t</param>
  2548           // / <param n ame="uriWo rksheet">U ri of the  worksheet  in the pac kage</para m>
  2549           // / <param n ame="Sheet ID">The wo rksheet's  ID in the  workbook X ML</param>
  2550           // / <param n ame="Hide" >Indicates  if the wo rksheet is  hidden</p aram>
  2551           pr otected in ternal Exc elWorkshee t(
  2552                ExcelPac kage Paren tXlPackage ,
  2553                string R elationshi pID,
  2554                string s heetName,
  2555                Uri uriW orksheet,
  2556                int Shee tID,
  2557                bool Hid e)
  2558           {
  2559                xlPackag e = Parent XlPackage;
  2560                _relatio nshipID =  Relationsh ipID;
  2561                _workshe etUri = ur iWorksheet ;
  2562                _name =  sheetName;
  2563                //_type  = Type;
  2564                _sheetID  = SheetID ;
  2565                Hidden =  Hide;
  2566           }
  2567           #e ndregion
  2568  
  2569           #r egion Work sheet Publ ic Propert ies
  2570           // / <summary >
  2571           // / Read-onl y: the Uri  to the wo rksheet wi thin the p ackage
  2572           // / </summar y>
  2573           pr otected in ternal Uri  Worksheet Uri { get  { return ( _worksheet Uri); } }
  2574           // / <summary >
  2575           // / Read-onl y: a refer ence to th e PackageP art for th e workshee t within t he package
  2576           // / </summar y>
  2577           pr otected in ternal Pac kagePart P art { get  { return ( xlPackage. Package.Ge tPart(Work sheetUri)) ; } }
  2578           // / <summary >
  2579           // / Read-onl y: the ID  for the wo rksheet's  relationsh ip with th e workbook  in the pa ckage
  2580           // / </summar y>
  2581           pr otected in ternal str ing Relati onshipID {  get { ret urn (_rela tionshipID ); } }
  2582           // / <summary >
  2583           // / The uniq ue identif ier for th e workshee t.  Note t hat these  can be ran dom, so no t
  2584           // / too usef ul in code !
  2585           // / </summar y>
  2586           pr otected in ternal int  SheetID {  get { ret urn (_shee tID); } }
  2587           // / <summary >
  2588           // / Provides  access to  a namespa ce manager  instance  to allow X Path searc hing
  2589           // / </summar y>
  2590           pu blic XmlNa mespaceMan ager NameS paceManage r
  2591           {
  2592                get
  2593                {
  2594                    if ( _nsManager  == null)
  2595                    {
  2596                         NameTable  nt = new N ameTable() ;
  2597                         _nsManager  = new Xml NamespaceM anager(nt) ;
  2598                         _nsManager .AddNamesp ace("d", E xcelPackag e.schemaMa in);
  2599                    }
  2600                    retu rn (_nsMan ager);
  2601                }
  2602           }
  2603           // / <summary >
  2604           // / Returns  a ExcelWor ksheetView  object th at allows  you to
  2605           // / set the  view state  propertie s of the w orksheet
  2606           // / </summar y>
  2607           pu blic Excel WorksheetV iew View
  2608           {
  2609                get
  2610                {
  2611                    if ( _sheetView  == null)
  2612                    {
  2613                         _sheetView  = new Exc elWorkshee tView(this );
  2614                    }
  2615                    retu rn (_sheet View);
  2616                }
  2617           }
  2618  
  2619           #r egion Name  // Worksh eet Name
  2620           // / <summary >
  2621           // / The work sheet's na me as it a ppears on  the tab
  2622           // / </summar y>
  2623           pu blic strin g Name
  2624           {
  2625                get { re turn (_nam e); }
  2626                set
  2627                {
  2628                    XmlN ode sheetN ode = xlPa ckage.Work book.Workb ookXml.Sel ectSingleN ode(string .Format("/ /d:sheet[@ sheetId={0 }]", _shee tID), Name SpaceManag er);
  2629                    if ( sheetNode  != null)
  2630                    {
  2631                         XmlAttribu te nameAtt r = (XmlAt tribute)sh eetNode.At tributes.G etNamedIte m("name");
  2632                         if (nameAt tr != null )
  2633                         {
  2634                             nameAt tr.Value =  value;
  2635                         }
  2636                    }
  2637                    _nam e = value;
  2638                }
  2639           }
  2640           #e ndregion / / END Work sheet Name
  2641  
  2642           #r egion Hidd en
  2643           // / <summary >
  2644           // / Indicate s if the w orksheet i s hidden i n the work book
  2645           // / </summar y>
  2646           pu blic bool  Hidden
  2647           {
  2648                get { re turn (_hid den); }
  2649                set
  2650                {
  2651                    XmlN ode sheetN ode = xlPa ckage.Work book.Workb ookXml.Sel ectSingleN ode(string .Format("/ /d:sheet[@ sheetId={0 }]", _shee tID), Name SpaceManag er);
  2652                    if ( sheetNode  != null)
  2653                    {
  2654                         XmlAttribu te nameAtt r = (XmlAt tribute)sh eetNode.At tributes.G etNamedIte m("hidden" );
  2655                         if (nameAt tr != null )
  2656                         {
  2657                             nameAt tr.Value =  value.ToS tring();
  2658                         }
  2659                    }
  2660                    _hid den = valu e;
  2661                }
  2662           }
  2663           #e ndregion
  2664  
  2665           #r egion defa ultRowHeig ht
  2666           // / <summary >
  2667           // / Allows y ou to get/ set the de fault heig ht of all  rows in th e workshee t
  2668           // / </summar y>
  2669           pu blic int d efaultRowH eight
  2670           {
  2671                get
  2672                {
  2673                    int  retValue =  15; // Ex cel's defa ult height
  2674                    XmlE lement she etFormat =  (XmlEleme nt)Workshe etXml.Sele ctSingleNo de("//d:sh eetFormatP r", NameSp aceManager );
  2675                    if ( sheetForma t != null)
  2676                    {
  2677                         string ret  = sheetFo rmat.GetAt tribute("d efaultRowH eight");
  2678                         if (ret !=  "")
  2679                             retVal ue = int.P arse(ret);
  2680                    }
  2681                    retu rn retValu e;
  2682                }
  2683                set
  2684                {
  2685                    XmlE lement she etFormat =  (XmlEleme nt)Workshe etXml.Sele ctSingleNo de("//d:sh eetFormatP r", NameSp aceManager );
  2686                    if ( sheetForma t == null)
  2687                    {
  2688                         // create  the node a s it does  not exist
  2689                         sheetForma t = Worksh eetXml.Cre ateElement ("sheetFor matPr", Ex celPackage .schemaMai n);
  2690                         // find lo cation to  insert new  element
  2691                         XmlNode sh eetViews =  Worksheet Xml.Select SingleNode ("//d:shee tViews", N ameSpaceMa nager);
  2692                         // insert  the new no de
  2693                         WorksheetX ml.Documen tElement.I nsertAfter (sheetForm at, sheetV iews);
  2694                    }
  2695                    shee tFormat.Se tAttribute ("defaultR owHeight",  value.ToS tring());
  2696                }
  2697           }
  2698           #e ndregion
  2699  
  2700           #r egion Work sheetXml
  2701           // / <summary >
  2702           // / The XML  document h olding all  the works heet data.
  2703           // / </summar y>
  2704           pu blic XmlDo cument Wor ksheetXml
  2705           {
  2706                get
  2707                {
  2708                    if ( _worksheet Xml == nul l)
  2709                    {
  2710                         _worksheet Xml = new  XmlDocumen t();
  2711                         PackagePar t packPart  = xlPacka ge.Package .GetPart(W orksheetUr i);
  2712                         _worksheet Xml.Load(p ackPart.Ge tStream()) ;
  2713                         // convert  worksheet  into the  type of XM L we like  dealing wi th
  2714                         AddNumeric CellIDs();
  2715                    }
  2716                    retu rn (_works heetXml);
  2717                }
  2718           }
  2719           #e ndregion
  2720  
  2721           #r egion Head erFooter
  2722           // / <summary >
  2723           // / A refere nce to the  header an d footer c lass which  allows yo u to 
  2724           // / set the  header and  footer fo r all odd,  even and  first page s of the w orksheet
  2725           // / </summar y>
  2726           pu blic Excel HeaderFoot er HeaderF ooter
  2727           {
  2728                get
  2729                {
  2730                    if ( _headerFoo ter == nul l)
  2731                    {
  2732                         XmlNode he aderFooter Node = Wor ksheetXml. SelectSing leNode("// d:headerFo oter", Nam eSpaceMana ger);
  2733                         if (header FooterNode  == null)
  2734                             header FooterNode  = Workshe etXml.Docu mentElemen t.AppendCh ild(Worksh eetXml.Cre ateElement ("headerFo oter", Exc elPackage. schemaMain ));
  2735                         _headerFoo ter = new  ExcelHeade rFooter((X mlElement) headerFoot erNode);
  2736                    }
  2737                    retu rn (_heade rFooter);
  2738                }
  2739           }
  2740           #e ndregion
  2741  
  2742           //  TODO: imp lement fre eze pane. 
  2743           //  TODO: imp lement pag e margin p roperties
  2744  
  2745           #e ndregion / / END Work sheet Publ ic Propert ies
  2746  
  2747           #r egion Work sheet Publ ic Methods
  2748           // / <summary >
  2749           // / Provides  access to  an indivi dual cell  within the  worksheet .
  2750           // / </summar y>
  2751           // / <param n ame="row"> The row nu mber in th e workshee t</param>
  2752           // / <param n ame="col"> The column  number in  the works heet</para m>
  2753           // / <returns ></returns >
  2754           pu blic Excel Cell Cell( int row, i nt col)
  2755           {
  2756                return ( new ExcelC ell(this,  row, col)) ;
  2757           }
  2758  
  2759           // / <summary >
  2760           // / Provides  access to  an indivi dual row w ithin the  worksheet  so you can  set its p roperties.
  2761           // / </summar y>
  2762           // / <param n ame="row"> The row nu mber in th e workshee t</param>
  2763           // / <returns ></returns >
  2764           pu blic Excel Row Row(in t row)
  2765           {
  2766                return ( new ExcelR ow(this, r ow));
  2767           }
  2768  
  2769           // / <summary >
  2770           // / Provides  access to  an indivi dual colum n within t he workshe et so you  can set it s properti es.
  2771           // / </summar y>
  2772           // / <param n ame="col"> The column  number in  the works heet</para m>
  2773           // / <returns ></returns >
  2774           pu blic Excel Column Col umn(int co l)
  2775           {
  2776                return ( new ExcelC olumn(this , col));
  2777           }
  2778  
  2779           #r egion Crea teSharedFo rmula
  2780           // / <summary >
  2781           // / Creates  a shared f ormula bas ed on the  formula al ready in s tartCell
  2782           // / Essentia lly this s upports th e formula  attributes  such as t ="shared"  ref="B2:B4 " si="0"
  2783           // / as per B rian Jones : Open XML  Formats b log. See
  2784           // / http://b logs.msdn. com/brian_ jones/arch ive/2006/1 1/15/simpl e-spreadsh eetml-file -part-2-of -3.aspx
  2785           // / </summar y>
  2786           // / <param n ame="start Cell">The  cell conta ining the  formula</p aram>
  2787           // / <param n ame="endCe ll">The en d cell (i. e. end of  the range) </param>
  2788           pu blic void  CreateShar edFormula( ExcelCell  startCell,  ExcelCell  endCell)
  2789           {
  2790                XmlEleme nt formula Element;
  2791                string f ormula = s tartCell.F ormula;
  2792                if (form ula == "")  throw new  Exception ("CreateSh aredFormul a Error: s tartCell d oes not co ntain a fo rmula!");
  2793  
  2794                // find  or create  a shared f ormula ID
  2795                int shar edID = -1;
  2796                foreach  (XmlNode n ode in _wo rksheetXml .SelectNod es("//d:sh eetData/d: row/d:c/d: f/@si", Na meSpaceMan ager))
  2797                {
  2798                    int  curID = in t.Parse(no de.Value);
  2799                    if ( curID > sh aredID) sh aredID = c urID;
  2800                }
  2801                sharedID ++;  // fi rst value  must be ze ro
  2802  
  2803                for (int  row = sta rtCell.Row ; row <= e ndCell.Row ; row++)
  2804                {
  2805                    for  (int col =  startCell .Column; c ol <= endC ell.Column ; col++)
  2806                    {
  2807                         ExcelCell  cell = Cel l(row, col );
  2808  
  2809                         // to forc e Excel to  re-calcul ate the fo rmula, we  must remov e the valu e
  2810                         cell.Remov eValue();
  2811  
  2812                         formulaEle ment = (Xm lElement)c ell.Elemen t.SelectSi ngleNode(" ./d:f", Na meSpaceMan ager);
  2813                         if (formul aElement = = null)
  2814                         {
  2815                             formul aElement =  cell.AddF ormulaElem ent();
  2816                         }
  2817                         formulaEle ment.SetAt tribute("t ", "shared ");
  2818                         formulaEle ment.SetAt tribute("s i", shared ID.ToStrin g());
  2819                    }
  2820                }
  2821  
  2822                // final ly add the  shared ce ll range t o the star tCell
  2823                formulaE lement = ( XmlElement )startCell .Element.S electSingl eNode("./d :f", NameS paceManage r);
  2824                formulaE lement.Set Attribute( "ref", str ing.Format ("{0}:{1}" , startCel l.CellAddr ess, endCe ll.CellAdd ress));
  2825           }
  2826           #e ndregion
  2827  
  2828           // / <summary >
  2829           // / Inserts  conditiona l formatti ng for the  cell rang e.
  2830           // / Currentl y only sup ports the  dataBar st yle.
  2831           // / </summar y>
  2832           // / <param n ame="start Cell"></pa ram>
  2833           // / <param n ame="endCe ll"></para m>
  2834           // / <param n ame="color "></param>
  2835           pu blic void  CreateCond itionalFor matting(Ex celCell st artCell, E xcelCell e ndCell, st ring color )
  2836           {
  2837                XmlNode  formatNode  = Workshe etXml.Sele ctSingleNo de("//d:co nditionalF ormatting" , NameSpac eManager);
  2838                if (form atNode ==  null)
  2839                {
  2840                    form atNode = W orksheetXm l.CreateEl ement("con ditionalFo rmatting",  ExcelPack age.schema Main);
  2841                    XmlN ode prevNo de = Works heetXml.Se lectSingle Node("//d: mergeCells ", NameSpa ceManager) ;
  2842                    if ( prevNode = = null)
  2843                         prevNode =  Worksheet Xml.Select SingleNode ("//d:shee tData", Na meSpaceMan ager);
  2844                    Work sheetXml.D ocumentEle ment.Inser tAfter(for matNode, p revNode);
  2845                }
  2846                XmlAttri bute attr  = formatNo de.Attribu tes["sqref "];
  2847                if (attr  == null)
  2848                {
  2849                    attr  = Workshe etXml.Crea teAttribut e("sqref") ;
  2850                    form atNode.Att ributes.Ap pend(attr) ;
  2851                }
  2852                attr.Val ue = strin g.Format(" {0}:{1}",  startCell. CellAddres s, endCell .CellAddre ss);
  2853  
  2854                XmlNode  node = for matNode.Se lectSingle Node("./d: cfRule", N ameSpaceMa nager);
  2855                if (node  == null)
  2856                {
  2857                    node  = Workshe etXml.Crea teElement( "cfRule",  ExcelPacka ge.schemaM ain);
  2858                    form atNode.App endChild(n ode);
  2859                }
  2860  
  2861                attr = n ode.Attrib utes["type "];
  2862                if (attr  == null)
  2863                {
  2864                    attr  = Workshe etXml.Crea teAttribut e("type");
  2865                    node .Attribute s.Append(a ttr);
  2866                }
  2867                attr.Val ue = "data Bar";
  2868  
  2869                attr = n ode.Attrib utes["prio rity"];
  2870                if (attr  == null)
  2871                {
  2872                    attr  = Workshe etXml.Crea teAttribut e("priorit y");
  2873                    node .Attribute s.Append(a ttr);
  2874                }
  2875                attr.Val ue = "1";
  2876  
  2877                // the f ollowing i s poor cod e, but jus t an examp le!!!
  2878                XmlNode  databar =  WorksheetX ml.CreateE lement("da tabar", Ex celPackage .schemaMai n);
  2879                node.App endChild(d atabar);
  2880  
  2881                XmlNode  child = Wo rksheetXml .CreateEle ment("cfvo ", ExcelPa ckage.sche maMain);
  2882                databar. AppendChil d(child);
  2883                attr = W orksheetXm l.CreateAt tribute("t ype");
  2884                child.At tributes.A ppend(attr );
  2885                attr.Val ue = "min" ;
  2886                attr = W orksheetXm l.CreateAt tribute("v al");
  2887                child.At tributes.A ppend(attr );
  2888                attr.Val ue = "0";
  2889  
  2890                child =  WorksheetX ml.CreateE lement("cf vo", Excel Package.sc hemaMain);
  2891                databar. AppendChil d(child);
  2892                attr = W orksheetXm l.CreateAt tribute("t ype");
  2893                child.At tributes.A ppend(attr );
  2894                attr.Val ue = "max" ;
  2895                attr = W orksheetXm l.CreateAt tribute("v al");
  2896                child.At tributes.A ppend(attr );
  2897                attr.Val ue = "0";
  2898  
  2899                child =  WorksheetX ml.CreateE lement("co lor", Exce lPackage.s chemaMain) ;
  2900                databar. AppendChil d(child);
  2901                attr = W orksheetXm l.CreateAt tribute("r gb");
  2902                child.At tributes.A ppend(attr );
  2903                attr.Val ue = color ;
  2904           }
  2905  
  2906           #r egion Inse rtRow
  2907           // / <summary >
  2908           // / Inserts  a new row  into the s preadsheet .  Existin g rows bel ow the ins ersion pos ition are 
  2909           // / shifted  down.  All  formula a re updated  to take a ccount of  the new ro w.
  2910           // / </summar y>
  2911           // / <param n ame="posit ion">The p osition of  the new r ow</param>
  2912           pu blic void  InsertRow( int positi on)
  2913           {
  2914                XmlNode  rowNode =  null;
  2915                // creat e the new  row elemen t
  2916                XmlEleme nt rowElem ent = Work sheetXml.C reateEleme nt("row",  ExcelPacka ge.schemaM ain);
  2917                rowEleme nt.Attribu tes.Append (Worksheet Xml.Create Attribute( "r"));
  2918                rowEleme nt.Attribu tes["r"].V alue = pos ition.ToSt ring();
  2919  
  2920                XmlNode  sheetDataN ode = Work sheetXml.S electSingl eNode("//d :sheetData ", NameSpa ceManager) ;
  2921                if (shee tDataNode  != null)
  2922                {
  2923                    int  renumberFr om = 1;
  2924                    XmlN odeList no des = shee tDataNode. ChildNodes ;
  2925                    int  nodeCount  = nodes.Co unt;
  2926                    XmlN ode insert AfterRowNo de = null;
  2927                    int  insertAfte rRowNodeID  = 0;
  2928                    for  (int i = 0 ; i < node Count; i++ )
  2929                    {
  2930                         int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ;
  2931                         if (curren tRowID < p osition)
  2932                         {
  2933                             insert AfterRowNo de = nodes [i];
  2934                             insert AfterRowNo deID = i;
  2935                         }
  2936                         if (curren tRowID >=  position)
  2937                         {
  2938                             renumb erFrom = c urrentRowI D;
  2939                             break;
  2940                         }
  2941                    }
  2942  
  2943                    // u pdate the  existing r ow ids
  2944                    for  (int i = i nsertAfter RowNodeID  + 1; i < n odeCount;  i++)
  2945                    {
  2946                         int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ;
  2947                         if (curren tRowID >=  renumberFr om)
  2948                         {
  2949                             nodes[ i].Attribu tes["r"].V alue = Con vert.ToStr ing(curren tRowID + 1 );
  2950  
  2951                             // now  update an y formula  that are i n the row 
  2952                             XmlNod eList form ulaNodes =  nodes[i]. SelectNode s("./d:c/d :f", NameS paceManage r);
  2953                             foreac h (XmlNode  formulaNo de in form ulaNodes)
  2954                             {
  2955                                 fo rmulaNode. InnerText  = ExcelCel l.UpdateFo rmulaRefer ences(form ulaNode.In nerText, 1 , 0, posit ion, 0);
  2956                             }
  2957                         }
  2958                    }
  2959  
  2960                    // n ow insert  the new ro w
  2961                    if ( insertAfte rRowNode ! = null)
  2962                         rowNode =  sheetDataN ode.Insert After(rowE lement, in sertAfterR owNode);
  2963  
  2964                }
  2965           }
  2966           #e ndregion
  2967  
  2968           #r egion Dele teRow
  2969           // / <summary >
  2970           // / Deletes  the specif ied row fr om the wor ksheet.
  2971           // / If shift OtherRowsU p=true the n all form ula are up dated to t ake accoun t of the d eleted row .
  2972           // / </summar y>
  2973           // / <param n ame="rowTo Delete">Th e number o f the row  to be dele ted</param >
  2974           // / <param n ame="shift OtherRowsU p">Set to  true if yo u want the  other row s renumber ed so they  all move  up</param>
  2975           pu blic void  DeleteRow( int rowToD elete, boo l shiftOth erRowsUp)
  2976           {
  2977                XmlNode  sheetDataN ode = Work sheetXml.S electSingl eNode("//d :sheetData ", NameSpa ceManager) ;
  2978                if (shee tDataNode  != null)
  2979                {
  2980                    XmlN odeList no des = shee tDataNode. ChildNodes ;
  2981                    int  nodeCount  = nodes.Co unt;
  2982                    int  rowNodeID  = 0;
  2983                    XmlN ode rowNod e = null;
  2984                    for  (int i = 0 ; i < node Count; i++ )
  2985                    {
  2986                         int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ;
  2987                         if (curren tRowID ==  rowToDelet e)
  2988                         {
  2989                             rowNod eID = i;
  2990                             rowNod e = nodes[ i];
  2991                         }
  2992                    }
  2993  
  2994                    if ( shiftOther RowsUp)
  2995                    {
  2996                         // update  the existi ng row ids
  2997                         for (int i  = rowNode ID + 1; i  < nodeCoun t; i++)
  2998                         {
  2999                             int cu rrentRowID  = int.Par se(nodes[i ].Attribut es["r"].Va lue);
  3000                             if (cu rrentRowID  > rowToDe lete)
  3001                             {
  3002                                 no des[i].Att ributes["r "].Value =  Convert.T oString(cu rrentRowID  - 1);
  3003  
  3004                                 //  now updat e any form ula that a re in the  row 
  3005                                 Xm lNodeList  formulaNod es = nodes [i].Select Nodes("./d :c/d:f", N ameSpaceMa nager);
  3006                                 fo reach (Xml Node formu laNode in  formulaNod es)
  3007                                      formulaN ode.InnerT ext = Exce lCell.Upda teFormulaR eferences( formulaNod e.InnerTex t, -1, 0,  rowToDelet e, 0);
  3008                             }
  3009                         }
  3010                    }
  3011                    // d elete the  row
  3012                    if ( rowNode !=  null)
  3013                    {
  3014                         sheetDataN ode.Remove Child(rowN ode);
  3015                    }
  3016                }
  3017           }
  3018           #e ndregion
  3019  
  3020           #e ndregion / / END Work sheet Publ ic Methods
  3021  
  3022           #r egion Work sheet Priv ate Method s
  3023  
  3024           #r egion Work sheet Save
  3025           // / <summary >
  3026           // / Saves th e workshee t to the p ackage.  F or interna l use only .
  3027           // / </summar y>
  3028           pr otected in ternal voi d Save()   // Workshe et Save
  3029           {
  3030                #region  Delete the  printer s ettings co mponent (i f it exist s)
  3031                // we al so need to  delete th e relation ship from  the pageSe tup tag
  3032                XmlNode  pageSetup  = _workshe etXml.Sele ctSingleNo de("//d:pa geSetup",  NameSpaceM anager);
  3033                if (page Setup != n ull)
  3034                {
  3035                    XmlA ttribute a ttr = (Xml Attribute) pageSetup. Attributes .GetNamedI tem("id",  ExcelPacka ge.schemaR elationshi ps);
  3036                    if ( attr != nu ll)
  3037                    {
  3038                         string rel ID = attr. Value;
  3039                         // first d elete the  attribute  from the X ML
  3040                         pageSetup. Attributes .Remove(at tr);
  3041  
  3042                         // get the  URI
  3043                         PackageRel ationship  relPrinter Settings =  Part.GetR elationshi p(relID);
  3044                         Uri printe rSettingsU ri = new U ri("/xl" +  relPrinte rSettings. TargetUri. ToString() .Replace(" ..", ""),  UriKind.Re lative);
  3045  
  3046                         // now del ete the re lationship
  3047                         Part.Delet eRelations hip(relPri nterSettin gs.Id);
  3048  
  3049                         // now del ete the pa rt from th e package
  3050                         xlPackage. Package.De letePart(p rinterSett ingsUri);
  3051                    }
  3052                }
  3053                #endregi on
  3054  
  3055                if (_wor ksheetXml  != null)
  3056                {
  3057                    // s ave the he ader & foo ter (if de fined)
  3058                    if ( _headerFoo ter != nul l)
  3059                         HeaderFoot er.Save();
  3060                    // r eplace the  numeric C ell IDs we  inserted  with AddNu mericCellI Ds()
  3061                    Repl aceNumeric CellIDs();
  3062  
  3063                    // s ave worksh eet to pac kage
  3064                    Pack agePart pa rtPack = x lPackage.P ackage.Get Part(Works heetUri);
  3065                    Work sheetXml.S ave(partPa ck.GetStre am(FileMod e.Create,  FileAccess .Write));
  3066                    xlPa ckage.Writ eDebugFile (Worksheet Xml, @"xl\ worksheets ", "sheet"  + SheetID  + ".xml") ;
  3067                }
  3068           }
  3069           #e ndregion
  3070  
  3071           #r egion AddN umericCell IDs
  3072           // / <summary >
  3073           // / Adds num eric cell  identifier s so that  it is easi er to work  out posit ion of cel ls
  3074           // / Private  method, fo r internal  use only!
  3075           // / </summar y>
  3076           pr ivate void  AddNumeri cCellIDs()
  3077           {
  3078                // proce ss each ro w
  3079                foreach  (XmlNode r owNode in  WorksheetX ml.SelectN odes("//d: sheetData/ d:row", Na meSpaceMan ager))
  3080                {
  3081                    // r emove the  spans attr ibute.  Ex cel simply  recreates  it when t he file is  opened.
  3082                    XmlA ttribute a ttr = (Xml Attribute) rowNode.At tributes.G etNamedIte m("spans") ;
  3083                    if ( attr != nu ll)
  3084                         rowNode.At tributes.R emove(attr );
  3085  
  3086                    int  row = Conv ert.ToInt3 2(rowNode. Attributes .GetNamedI tem("r").V alue);
  3087                    // p rocess eac h cell in  current ro w
  3088                    fore ach (XmlNo de colNode  in rowNod e.SelectNo des("./d:c ", NameSpa ceManager) )
  3089                    {
  3090                         XmlAttribu te cellAdd ressAttr =  (XmlAttri bute)colNo de.Attribu tes.GetNam edItem("r" );
  3091                         if (cellAd dressAttr  != null)
  3092                         {
  3093                             string  cellAddre ss = cellA ddressAttr .Value;
  3094  
  3095                             int co l = ExcelC ell.GetCol umnNumber( cellAddres s);
  3096                             attr =  Worksheet Xml.Create Attribute( tempColumn NumberTag) ;
  3097                             if (at tr != null )
  3098                             {
  3099                                 at tr.Value =  col.ToStr ing();
  3100                                 co lNode.Attr ibutes.App end(attr);
  3101                                 //  remove al l cell Add resses lik e A1, A2,  A3 etc.
  3102                                 co lNode.Attr ibutes.Rem ove(cellAd dressAttr) ;
  3103                             }
  3104                         }
  3105                    }
  3106                }
  3107           }
  3108           #e ndregion
  3109  
  3110           #r egion Repl aceNumeric CellIDs
  3111           // / <summary >
  3112           // / Replaces  the numer ic cell id entifiers  we inserte d with Add NumericCel lIDs with  the tradit ional 
  3113           // / A1, A2 c ell identi fiers that  Excel und erstands.
  3114           // / Private  method, fo r internal  use only!
  3115           // / </summar y>
  3116           pr ivate void  ReplaceNu mericCellI Ds()
  3117           {
  3118                int maxC olumn = 0;
  3119                // proce ss each ro w
  3120                foreach  (XmlNode r owNode in  WorksheetX ml.SelectN odes("//d: sheetData/ d:row", Na meSpaceMan ager))
  3121                {
  3122                    int  row = Conv ert.ToInt3 2(rowNode. Attributes .GetNamedI tem("r").V alue);
  3123                    int  count = 0;
  3124                    // p rocess eac h cell in  current ro w
  3125                    fore ach (XmlNo de colNode  in rowNod e.SelectNo des("./d:c ", NameSpa ceManager) )
  3126                    {
  3127                         XmlAttribu te colNumb er = (XmlA ttribute)c olNode.Att ributes.Ge tNamedItem (tempColum nNumberTag );
  3128                         if (colNum ber != nul l)
  3129                         {
  3130                             count+ +;
  3131                             if (co unt > maxC olumn) max Column = c ount;
  3132                             int co l = Conver t.ToInt32( colNumber. Value);
  3133                             string  cellAddre ss = Excel Cell.GetCo lumnLetter (col) + ro w.ToString ();
  3134                             XmlAtt ribute att r = Worksh eetXml.Cre ateAttribu te("r");
  3135                             if (at tr != null )
  3136                             {
  3137                                 at tr.Value =  cellAddre ss;
  3138                                 //  the cellA ddress nee ds to be t he first a ttribute,  otherwise  Excel comp lains
  3139                                 if  (colNode. Attributes .Count ==  0)
  3140                                      colNode. Attributes .Append(at tr);
  3141                                 el se
  3142                                 {
  3143                                      colNode. Attributes .InsertBef ore(attr,  (XmlAttrib ute)colNod e.Attribut es.Item(0) );
  3144                                 }
  3145                             }
  3146                             // rem ove all nu meric cell  addresses  added by  AddNumeric CellIDs
  3147                             colNod e.Attribut es.Remove( colNumber) ;
  3148                         }
  3149                    }
  3150                }
  3151  
  3152                // proce ss each ro w and add  the spans  attribute
  3153                // TODO:  Need to a dd proper  spans hand ling.
  3154                //foreac h (XmlNode  rowNode i n XmlDoc.S electNodes ("//d:shee tData/d:ro w", NameSp aceManager ))
  3155                //{
  3156                //  // w e must add  or update  the "span s" attribu te of each  row
  3157                //  XmlA ttribute s pans = (Xm lAttribute )rowNode.A ttributes. GetNamedIt em("spans" );
  3158                //  if ( spans == n ull)
  3159                //  {
  3160                //    sp ans = XmlD oc.CreateA ttribute(" spans");
  3161                //    ro wNode.Attr ibutes.App end(spans) ;
  3162                //  }
  3163                //  span s.Value =  "1:" + max Column.ToS tring();
  3164                //}
  3165           }
  3166           #e ndregion
  3167  
  3168           #r egion Get  Style Info rmation
  3169           // / <summary >
  3170           // / Returns  the name o f the styl e using it s xfId
  3171           // / </summar y>
  3172           // / <param n ame="Style ID">The xf Id of the  style</par am>
  3173           // / <returns >The name  of the sty le</return s>
  3174           pr otected in ternal str ing GetSty leName(int  StyleID)
  3175           {
  3176                string r etValue =  null;
  3177                XmlNode  styleNode  = null;
  3178                int coun t = 0;
  3179                foreach  (XmlNode n ode in xlP ackage.Wor kbook.Styl esXml.Sele ctNodes("/ /d:cellXfs /d:xf", Na meSpaceMan ager))
  3180                {
  3181                    if ( count == S tyleID)
  3182                    {
  3183                         styleNode  = node;
  3184                         break;
  3185                    }
  3186                    coun t++;
  3187                }
  3188  
  3189                if (styl eNode != n ull)
  3190                {
  3191                    stri ng searchS tring = st ring.Forma t("//d:cel lStyle[@xf Id = '{0}' ]", styleN ode.Attrib utes["xfId "].Value);
  3192                    XmlN ode styleN ameNode =  xlPackage. Workbook.S tylesXml.S electSingl eNode(sear chString,  NameSpaceM anager);
  3193                    if ( styleNameN ode != nul l)
  3194                    {
  3195                         retValue =  styleName Node.Attri butes["nam e"].Value;
  3196                    }
  3197                }
  3198  
  3199                return r etValue;
  3200           }
  3201  
  3202           // / <summary >
  3203           // / Returns  the style  ID given a  style nam e.  
  3204           // / The styl e ID will  be created  if not fo und, but o nly if the  style nam e exists!
  3205           // / </summar y>
  3206           // / <param n ame="Style Name"></pa ram>
  3207           // / <returns ></returns >
  3208           pr otected in ternal int  GetStyleI D(string S tyleName)
  3209           {
  3210                int styl eID = 0;
  3211                // find  the named  style in t he style s heet
  3212                string s earchStrin g = string .Format("/ /d:cellSty le[@name =  '{0}']",  StyleName) ;
  3213                XmlNode  styleNameN ode = xlPa ckage.Work book.Style sXml.Selec tSingleNod e(searchSt ring, Name SpaceManag er);
  3214                if (styl eNameNode  != null)
  3215                {
  3216                    stri ng xfId =  styleNameN ode.Attrib utes["xfId "].Value;
  3217                    // l ook up pos ition of s tyle in th e cellXfs 
  3218                    sear chString =  string.Fo rmat("//d: cellXfs/d: xf[@xfId =  '{0}']",  xfId);
  3219                    XmlN ode styleN ode = xlPa ckage.Work book.Style sXml.Selec tSingleNod e(searchSt ring, Name SpaceManag er);
  3220                    if ( styleNode  != null)
  3221                    {
  3222                         XmlNodeLis t nodes =  styleNode. SelectNode s("precedi ng-sibling ::d:xf", N ameSpaceMa nager);
  3223                         if (nodes  != null)
  3224                             styleI D = nodes. Count;
  3225                    }
  3226                }
  3227                return s tyleID;
  3228           }
  3229           #e ndregion
  3230  
  3231           #e ndregion   // END Wor ksheet Pri vate Metho ds
  3232       }  //  END class  Worksheet
  3233   }]]></Proj ectItem><P rojectItem  Name="\ex celstyles. cs">
  3234   <![CDATA[/
  3235    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  3236    * 
  3237    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  3238    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  3239    * 
  3240    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  3241    * mailto: dr.john.tu nnicliffe@ btinternet .com
  3242    * All rig hts reserv ed.
  3243    * 
  3244    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  3245    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  3246    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  3247    * 
  3248    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  3249    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  3250    * 
  3251    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  3252    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  3253    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  3254    * 
  3255    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  3256    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  3257    */
  3258  
  3259   /*
  3260    * Code ch ange notes :
  3261    * 
  3262    * Author                                                             Change                                               Date
  3263    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3264    * John Tu nnicliffe               Initial  Release          01-J an-2007
  3265    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3266    */
  3267   using Syst em;
  3268   using Syst em.Xml;
  3269  
  3270   namespace  OfficeOpen Xml
  3271   {
  3272       class  ExcelStyle s
  3273       {
  3274           //  TODO: wri te a wrapp er around  the styles .xml
  3275       }
  3276   }]]></Proj ectItem><P rojectItem  Name="\pr operties\r esources.r esx">
  3277   <![CDATA[< ?xml versi on="1.0" e ncoding="u tf-8"?>
  3278   <root>
  3279     <!-- 
  3280       Micros oft ResX S chema 
  3281       
  3282       Versio n 2.0
  3283       
  3284       The pr imary goal s of this  format is  to allow a  simple XM L format 
  3285       that i s mostly h uman reada ble. The g eneration  and parsin g of the 
  3286       variou s data typ es are don e through  the TypeCo nverter cl asses 
  3287       associ ated with  the data t ypes.
  3288       
  3289       Exampl e:
  3290       
  3291       ... ad o.net/XML  headers &  schema ...
  3292       <reshe ader name= "resmimety pe">text/m icrosoft-r esx</reshe ader>
  3293       <reshe ader name= "version"> 2.0</reshe ader>
  3294       <reshe ader name= "reader">S ystem.Reso urces.ResX ResourceRe ader, Syst em.Windows .Forms, .. .</reshead er>
  3295       <reshe ader name= "writer">S ystem.Reso urces.ResX ResourceWr iter, Syst em.Windows .Forms, .. .</reshead er>
  3296       <data  name="Name 1"><value> this is my  long stri ng</value> <comment>t his is a c omment</co mment></da ta>
  3297       <data  name="Colo r1" type=" System.Dra wing.Color , System.D rawing">Bl ue</data>
  3298       <data  name="Bitm ap1" mimet ype="appli cation/x-m icrosoft.n et.object. binary.bas e64">
  3299           <v alue>[base 64 mime en coded seri alized .NE T Framewor k object]< /value>
  3300       </data >
  3301       <data  name="Icon 1" type="S ystem.Draw ing.Icon,  System.Dra wing" mime type="appl ication/x- microsoft. net.object .bytearray .base64">
  3302           <v alue>[base 64 mime en coded stri ng represe nting a by te array f orm of the  .NET Fram ework obje ct]</value >
  3303           <c omment>Thi s is a com ment</comm ent>
  3304       </data >
  3305                    
  3306       There  are any nu mber of "r esheader"  rows that  contain si mple 
  3307       name/v alue pairs .
  3308       
  3309       Each d ata row co ntains a n ame, and v alue. The  row also c ontains a 
  3310       type o r mimetype . Type cor responds t o a .NET c lass that  support 
  3311       text/v alue conve rsion thro ugh the Ty peConverte r architec ture. 
  3312       Classe s that don 't support  this are  serialized  and store d with the  
  3313       mimety pe set.
  3314       
  3315       The mi metype is  used for s erialized  objects, a nd tells t he 
  3316       ResXRe sourceRead er how to  depersist  the object . This is  currently  not 
  3317       extens ible. For  a given mi metype the  value mus t be set a ccordingly :
  3318       
  3319       Note -  applicati on/x-micro soft.net.o bject.bina ry.base64  is the for mat 
  3320       that t he ResXRes ourceWrite r will gen erate, how ever the r eader can 
  3321       read a ny of the  formats li sted below .
  3322       
  3323       mimety pe: applic ation/x-mi crosoft.ne t.object.b inary.base 64
  3324       value    : The ob ject must  be seriali zed with 
  3325                : System .Serializa tion.Forma tters.Bina ry.BinaryF ormatter
  3326                : and th en encoded  with base 64 encodin g.
  3327       
  3328       mimety pe: applic ation/x-mi crosoft.ne t.object.s oap.base64
  3329       value    : The ob ject must  be seriali zed with 
  3330                : System .Runtime.S erializati on.Formatt ers.Soap.S oapFormatt er
  3331                : and th en encoded  with base 64 encodin g.
  3332  
  3333       mimety pe: applic ation/x-mi crosoft.ne t.object.b ytearray.b ase64
  3334       value    : The ob ject must  be seriali zed into a  byte arra
  3335                : using  a System.C omponentMo del.TypeCo nverter
  3336                : and th en encoded  with base 64 encodin g.
  3337       -->
  3338     <xsd:sch ema id="ro ot" xmlns= "" xmlns:x sd="http:/ /www.w3.or g/2001/XML Schema" xm lns:msdata ="urn:sche mas-micros oft-com:xm l-msdata">
  3339       <xsd:e lement nam e="root" m sdata:IsDa taSet="tru e">
  3340         <xsd :complexTy pe>
  3341           <x sd:choice  maxOccurs= "unbounded ">
  3342              <xsd:eleme nt name="m etadata">
  3343                <xsd:com plexType>
  3344                  <xsd:s equence>
  3345                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" />
  3346                  </xsd: sequence>
  3347                  <xsd:a ttribute n ame="name"  type="xsd :string" / >
  3348                  <xsd:a ttribute n ame="type"  type="xsd :string" / >
  3349                  <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" />
  3350                </xsd:co mplexType>
  3351              </xsd:elem ent>
  3352              <xsd:eleme nt name="a ssembly">
  3353                <xsd:com plexType>
  3354                  <xsd:a ttribute n ame="alias " type="xs d:string"  />
  3355                  <xsd:a ttribute n ame="name"  type="xsd :string" / >
  3356                </xsd:co mplexType>
  3357              </xsd:elem ent>
  3358              <xsd:eleme nt name="d ata">
  3359                <xsd:com plexType>
  3360                  <xsd:s equence>
  3361                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" msdata :Ordinal=" 1" />
  3362                    <xsd :element n ame="comme nt" type=" xsd:string " minOccur s="0" msda ta:Ordinal ="2" />
  3363                  </xsd: sequence>
  3364                  <xsd:a ttribute n ame="name"  type="xsd :string" m sdata:Ordi nal="1" />
  3365                  <xsd:a ttribute n ame="type"  type="xsd :string" m sdata:Ordi nal="3" />
  3366                  <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" msdata: Ordinal="4 " />
  3367                </xsd:co mplexType>
  3368              </xsd:elem ent>
  3369              <xsd:eleme nt name="r esheader">
  3370                <xsd:com plexType>
  3371                  <xsd:s equence>
  3372                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" msdata :Ordinal=" 1" />
  3373                  </xsd: sequence>
  3374                  <xsd:a ttribute n ame="name"  type="xsd :string" u se="requir ed" />
  3375                </xsd:co mplexType>
  3376              </xsd:elem ent>
  3377           </ xsd:choice >
  3378         </xs d:complexT ype>
  3379       </xsd: element>
  3380     </xsd:sc hema>
  3381     <reshead er name="r esmimetype ">
  3382       <value >text/micr osoft-resx </value>
  3383     </reshea der>
  3384     <reshead er name="v ersion">
  3385       <value >2.0</valu e>
  3386     </reshea der>
  3387     <reshead er name="r eader">
  3388       <value >System.Re sources.Re sXResource Reader, Sy stem.Windo ws.Forms,  Version=2. 0.0.0, Cul ture=neutr al, Public KeyToken=b 77a5c56193 4e089</val ue>
  3389     </reshea der>
  3390     <reshead er name="w riter">
  3391       <value >System.Re sources.Re sXResource Writer, Sy stem.Windo ws.Forms,  Version=2. 0.0.0, Cul ture=neutr al, Public KeyToken=b 77a5c56193 4e089</val ue>
  3392     </reshea der>
  3393   </root>]]> </ProjectI tem><Proje ctItem Nam e="\proper ties\setti ngs.design er.cs">
  3394   <![CDATA[/ /--------- ---------- ---------- ---------- ---------- ---------- ---------- ---------
  3395   // <auto-g enerated>
  3396   //     Thi s code was  generated  by a tool .
  3397   //
  3398   //     Cha nges to th is file ma y cause in correct be havior and  will be l ost if
  3399   //     the  code is r egenerated .
  3400   // </auto- generated>
  3401   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  3402  
  3403   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "ST_fce 6863cd8c94 187b7bd252 8130634e1. csproj.Pro perties.Se ttings.get _Default() :ST_fce686 3cd8c94187 b7bd252813 0634e1.csp roj.Proper ties.Sett"  +
  3404       "ings" )]
  3405  
  3406   namespace  ST_fce6863 cd8c94187b 7bd2528130 634e1.cspr oj.Propert ies
  3407   {
  3408  
  3409  
  3410       intern al sealed  partial cl ass Settin gs : globa l::System. Configurat ion.Applic ationSetti ngsBase
  3411       {
  3412  
  3413           [g lobal::Sys tem.Runtim e.Compiler Services.C ompilerGen eratedAttr ibute()]
  3414           pr ivate stat ic Setting s defaultI nstance =  new Settin gs();
  3415  
  3416           pu blic stati c Settings  Default
  3417           {
  3418                get
  3419                {
  3420                    retu rn default Instance;
  3421                }
  3422           }
  3423       }
  3424   }]]></Proj ectItem><P rojectItem  Name="\ex celpackage .cs">
  3425   <![CDATA[/
  3426    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  3427    * 
  3428    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  3429    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  3430    * 
  3431    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  3432    * mailto: dr.john.tu nnicliffe@ btinternet .com
  3433    * All rig hts reserv ed.
  3434    * 
  3435    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  3436    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  3437    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  3438    * 
  3439    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  3440    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  3441    * 
  3442    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  3443    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  3444    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  3445    * 
  3446    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  3447    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  3448    */
  3449  
  3450   /*
  3451    * Code ch ange notes :
  3452    * 
  3453    * Author                                                             Change                                               Date
  3454    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3455    * John Tu nnicliffe               Initial  Release          01-J an-2007
  3456    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3457    */
  3458   using Syst em;
  3459   using Syst em.Xml;
  3460   using Syst em.IO;
  3461   using Syst em.IO.Pack aging;
  3462  
  3463   namespace  OfficeOpen Xml
  3464   {
  3465       /// <s ummary>
  3466       /// Re presents a n Excel 20 07 XLSX fi le package .  Opens t he file an d provides  access
  3467       /// to  all the c omponents  (workbook,  worksheet s, propert ies etc.).
  3468       /// </ summary>
  3469       public  class Exc elPackage  : IDisposa ble
  3470       {
  3471           #r egion Prop erties
  3472           // / <summary >
  3473           // / Provides  access to  the main  schema use d by all E xcel compo nents
  3474           // / </summar y>
  3475           pr otected in ternal con st string  schemaMain  = @"http: //schemas. openxmlfor mats.org/s preadsheet ml/2006/ma in";
  3476           // / <summary >
  3477           // / Provides  access to  the relat ionship sc hema
  3478           // / </summar y>
  3479           pr otected in ternal con st string  schemaRela tionships  = @"http:/ /schemas.o penxmlform ats.org/of ficeDocume nt/2006/re lationship s";
  3480  
  3481           pr ivate Pack age _packa ge;
  3482           pr ivate stri ng _output FolderPath ;
  3483  
  3484           pr ivate Exce lWorkbook  _workbook;
  3485  
  3486           #e ndregion
  3487  
  3488           #r egion Exce lPackage C onstructor s
  3489           // / <summary >
  3490           // / Creates  a new inst ance of th e ExcelPac kage class  based on  a existing  file or c reates a n ew file. 
  3491           // / </summar y>
  3492           // / <param n ame="newFi le">If new File exist s, it is o pened.  Ot herwise it  is create d from scr atch.</par am>
  3493           pu blic Excel Package(Fi leInfo new File)
  3494           {
  3495                _outputF olderPath  = newFile. DirectoryN ame;
  3496                if (newF ile.Exists )
  3497                    // o pen the ex isting pac kage
  3498                    _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Ope n, FileAcc ess.ReadWr ite);
  3499                else
  3500                {
  3501                    // c reate a ne w package  and add th e main wor kbook.xml  part
  3502                    _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Cre ate, FileA ccess.Read Write);
  3503  
  3504                    // s ave a temp orary part  to create  the defau lt applica tion/xml c ontent typ e
  3505                    Uri  uriDefault ContentTyp e = new Ur i("/defaul t.xml", Ur iKind.Rela tive);
  3506                    Pack agePart pa rtTemp = _ package.Cr eatePart(u riDefaultC ontentType , "applica tion/xml") ;
  3507  
  3508                    XmlD ocument wo rkbook = W orkbook.Wo rkbookXml;  // this w ill create  the workb ook xml in  the packa ge
  3509  
  3510                    // c reate the  relationsh ip to the  main part
  3511                    _pac kage.Creat eRelations hip(Workbo ok.Workboo kUri, Targ etMode.Int ernal, sch emaRelatio nships + " /officeDoc ument");
  3512  
  3513                    // r emove the  temporary  part that  created th e default  xml conten t type
  3514                    _pac kage.Delet ePart(uriD efaultCont entType);
  3515                }
  3516           }
  3517  
  3518           // / <summary >
  3519           // / Creates  a new inst ance of th e ExcelPac kage class  based on  a existing  template.
  3520           // / WARNING:  If newFil e exists,  it is dele ted!
  3521           // / </summar y>
  3522           // / <param n ame="newFi le">The na me of the  Excel file  to be cre ated</para m>
  3523           // / <param n ame="templ ate">The n ame of the  Excel tem plate to u se as the  basis of t he new Exc el file</p aram>
  3524           pu blic Excel Package(Fi leInfo new File, File Info templ ate)
  3525           {
  3526                _outputF olderPath  = newFile. DirectoryN ame;
  3527                if (temp late.Exist s)
  3528                {
  3529                    if ( newFile.Ex ists)
  3530                    {
  3531                         try
  3532                         {
  3533                             newFil e.Delete() ;
  3534                         }
  3535                         catch (Exc eption ex)
  3536                         {
  3537                             throw  new Except ion("Excel Package Er ror: Targe t file alr eady exist s and is l ocked.", e x);
  3538                         }
  3539                    }
  3540                    newF ile = temp late.CopyT o(newFile. FullName);
  3541                    newF ile.IsRead Only = fal se;
  3542  
  3543                    _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Ope n, FileAcc ess.ReadWr ite);
  3544                }
  3545                else
  3546                    thro w new Exce ption("Exc elPackage  Error: Pas sed invali d Template Path to Ex cel Templa te");
  3547           }
  3548           #e ndregion
  3549  
  3550           #r egion Publ ic Propert ies
  3551           // / <summary >
  3552           // / Setting  DebugMode  to true wi ll cause t he Save me thod to wr ite the 
  3553           // / raw XML  components  to the sa me folder  as the out put Excel  file
  3554           // / </summar y>
  3555           pu blic bool  DebugMode  = false;
  3556  
  3557           // / <summary >
  3558           // / Returns  a referenc e to the f ile packag e
  3559           // / </summar y>
  3560           pu blic Packa ge Package  { get { r eturn (_pa ckage); }  }
  3561  
  3562           // / <summary >
  3563           // / Returns  a referenc e to the w orkbook co mponent wi thin the p ackage.
  3564           // / All work sheets and  cells can  be access ed through  the workb ook.
  3565           // / </summar y>
  3566           pu blic Excel Workbook W orkbook
  3567           {
  3568                get
  3569                {
  3570                    if ( _workbook  == null)
  3571                         _workbook  = new Exce lWorkbook( this);
  3572                    retu rn (_workb ook);
  3573                }
  3574           }
  3575           #e ndregion
  3576  
  3577           #r egion Writ eDebugFile
  3578           // / <summary >
  3579           // / Writes a  debug fil e to the o utput fold er, but on ly if Debu gMode = tr ue
  3580           // / </summar y>
  3581           // / <param n ame="XmlDo c">The Xml Document t o save to  the file s ystem</par am>
  3582           // / <param n ame="subFo lder">The  subfolder  in which t he file is  to be sav ed</param>
  3583           // / <param n ame="FileN ame">The n ame of the  file to s ave.</para m>
  3584           pr otected in ternal voi d WriteDeb ugFile(Xml Document X mlDoc, str ing subFol der, strin g FileName )
  3585           {
  3586                if (Debu gMode)
  3587                {
  3588                    Dire ctoryInfo  dir = new  DirectoryI nfo(_outpu tFolderPat h + "/" +  subFolder) ;
  3589                    if ( !dir.Exist s)
  3590                         dir.Create ();
  3591  
  3592                    File Info file  = new File Info(_outp utFolderPa th + "/" +  subFolder  + "/" + F ileName);
  3593                    if ( file.Exist s)
  3594                    {
  3595                         file.IsRea dOnly = fa lse;
  3596                         file.Delet e();
  3597                    }
  3598                    XmlD oc.Save(fi le.FullNam e);
  3599                }
  3600           }
  3601           #e ndregion
  3602  
  3603  
  3604           // /// <summa ry>
  3605           // /// Return s the Uri  to a paren t part (e. g. workboo k.xml) 
  3606           // /// </summ ary>
  3607           // /// <param  name="Rel ationship" >The relat ionship th e </param>
  3608           // /// <retur ns></retur ns>
  3609           // protected  internal U ri GetMain Uri(string  Relations hip)
  3610           // {
  3611           //   Uri uriM ain = null ;
  3612           //   //  Get  the Uri to  the main  part
  3613           //   Uri uriP arent = ne w Uri("/",  UriKind.R elative);
  3614           //   PackageR elationshi p relation ship = Get MainRelati onship(Rel ationship) ;
  3615           //   if (rela tionship ! = null)
  3616           //     uriMai n = PackUr iHelper.Re solvePartU ri(uriPare nt, relati onship.Tar getUri);
  3617           //   return ( uriMain);
  3618           // }
  3619  
  3620           // /// <summa ry>
  3621           // /// 
  3622           // /// </summ ary>
  3623           // /// <param  name="Rel ationship" ></param>
  3624           // /// <retur ns></retur ns>
  3625           // protected  internal P ackageRela tionship G etMainRela tionship(s tring Rela tionship)
  3626           // {
  3627           //   PackageR elationshi p relMain  = null;
  3628           //   foreach  (PackageRe lationship  relations hip in _pa ckage.GetR elationshi psByType(s chemaRelat ionships +  "/" + Rel ationship) )
  3629           //   {
  3630           //     relMai n = relati onship;
  3631           //     break;   //  Ther e should o nly be one  main part
  3632           //   }
  3633           //   return ( relMain);
  3634           // }
  3635  
  3636           #r egion GetS haredUri
  3637           // / <summary >
  3638           // / Obtains  the Uri to  a shared  part (e.g.  sharedstr ings.xml)
  3639           // / </summar y>
  3640           // / <param n ame="uriPa rent">Uri  to the par ent compon ent</param >
  3641           // / <param n ame="Relat ionship">T he relatio nship to t he parent  component< /param>
  3642           // / <returns >The Uri t o a shared  part</ret urns>
  3643           pr otected in ternal Uri  GetShared Uri(Uri ur iParent, s tring Rela tionship)
  3644           {
  3645                Uri uriS hared = nu ll;
  3646                PackageP art partPa rent = _pa ckage.GetP art(uriPar ent);
  3647                //  Get  the Uri to  the share d part
  3648                foreach  (System.IO .Packaging .PackageRe lationship  relations hip in par tParent.Ge tRelations hipsByType (schemaRel ationships  + "/" + R elationshi p))
  3649                {
  3650                    uriS hared = Pa ckUriHelpe r.ResolveP artUri(uri Parent, re lationship .TargetUri );
  3651                    brea k;  //  Th ere should  only be o ne shared  resource
  3652                }
  3653                return ( uriShared) ;
  3654           }
  3655           #e ndregion
  3656  
  3657           #r egion AddS chemaAttri bute
  3658           // / <summary >
  3659           // / Adds add itional sc hema attri butes to t he root el ement
  3660           // / </summar y>
  3661           // / <param n ame="root" >The root  element</p aram>
  3662           // / <param n ame="nameS pace">The  namespace  of the sch ema</param >
  3663           // / <param n ame="schem a">The sch ema to app ly</param>
  3664           pr otected in ternal sta tic void A ddSchemaAt tribute(Xm lElement r oot, strin g schema,  string nam eSpace)
  3665           {
  3666                XmlAttri bute nsAtt ribute = r oot.OwnerD ocument.Cr eateAttrib ute("xmlns ", nameSpa ce, @"http ://www.w3. org/2000/x mlns/");
  3667                nsAttrib ute.Value  = schema;
  3668                root.Att ributes.Ap pend(nsAtt ribute);
  3669           }
  3670  
  3671           // / <summary >
  3672           // / Adds add itional sc hema attri butes to t he root el ement
  3673           // / </summar y>
  3674           // / <param n ame="root" >The root  element</p aram>
  3675           // / <param n ame="schem a">The sch ema to app ly</param>
  3676           pr otected in ternal sta tic void A ddSchemaAt tribute(Xm lElement r oot, strin g schema)
  3677           {
  3678                XmlAttri bute nsAtt ribute = r oot.OwnerD ocument.Cr eateAttrib ute("xmlns ");
  3679                nsAttrib ute.Value  = schema;
  3680                root.Att ributes.Ap pend(nsAtt ribute);
  3681           }
  3682           #e ndregion
  3683  
  3684           #r egion Save Part
  3685           // / <summary >
  3686           // / Saves th e XmlDocum ent into t he package  at the sp ecified Ur i.
  3687           // / </summar y>
  3688           // / <param n ame="uriPa rt">The Ur i of the c omponent</ param>
  3689           // / <param n ame="xmlPa rt">The Xm lDocument  to save</p aram>
  3690           pr otected in ternal voi d SavePart (Uri uriPa rt, XmlDoc ument xmlP art)
  3691           {
  3692                PackageP art partPa ck = _pack age.GetPar t(uriPart) ;
  3693                xmlPart. Save(partP ack.GetStr eam(FileMo de.Create,  FileAcces s.Write));
  3694           }
  3695           #e ndregion
  3696  
  3697           #r egion Disp ose
  3698           // / <summary >
  3699           // / Closes t he package .
  3700           // / </summar y>
  3701           pu blic void  Dispose()
  3702           {
  3703                _package .Close();
  3704           }
  3705           #e ndregion
  3706  
  3707           #r egion Save   // Excel Package sa ve
  3708           // / <summary >
  3709           // / Saves al l the comp onents bac k into the  package.
  3710           // / This met hod recurs ively call s the Save  method on  all sub-c omponents.
  3711           // / </summar y>
  3712           pu blic void  Save()
  3713           {
  3714                Workbook .Save();
  3715           }
  3716           #e ndregion
  3717  
  3718           #r egion GetX mlFromUri
  3719           // / <summary >
  3720           // / Obtains  the XmlDoc ument from  the packa ge referen ced by the  Uri
  3721           // / </summar y>
  3722           // / <param n ame="uriPa rt">The Ur i to the c omponent</ param>
  3723           // / <returns >The XmlDo cument of  the compon ent</retur ns>
  3724           pr otected in ternal Xml Document G etXmlFromU ri(Uri uri Part)
  3725           {
  3726                XmlDocum ent xlPart  = new Xml Document() ;
  3727                PackageP art packPa rt = _pack age.GetPar t(uriPart) ;
  3728                xlPart.L oad(packPa rt.GetStre am());
  3729                return ( xlPart);
  3730           }
  3731           #e ndregion
  3732       }
  3733   }]]></Proj ectItem><P rojectItem  Name="\st _fce6863cd 8c94187b7b d252813063 4e1.csproj ">
  3734   <![CDATA[< Project To olsVersion ="3.5" Def aultTarget s="Build"  xmlns="htt p://schema s.microsof t.com/deve loper/msbu ild/2003">
  3735     <!-- Thi s section  defines pr oject-leve l properti es.
  3736  
  3737          Con figuration  - Specifi es whether  the defau lt configu ration is  Release or  Debug.
  3738          Pla tform - Sp ecifies wh at CPU the  output of  this proj ect can ru n on.
  3739          Out putType -  Must be "L ibrary" fo r VSTA.
  3740          NoS tandardLib raries - S et to "fal se" for VS TA.
  3741          Roo tNamespace  - In C#,  this speci fies the n amespace g iven to ne w files.
  3742                            In Visu al Basic,  all object s are wrap ped in thi s namespac e at runti me.
  3743          Ass emblyName  - Name of  the output  assembly.
  3744     -->
  3745     <Propert yGroup>
  3746       <Proje ctTypeGuid s>{A860303 F-1F3F-469 1-B57E-529 FC101A107} ;{FAE04EC0 -301F-11D3 -BF4B-00C0 4F79EFBC}< /ProjectTy peGuids>
  3747       <Confi guration C ondition="  '$(Config uration)'  == '' ">De bug</Confi guration>
  3748       <Platf orm Condit ion=" '$(P latform)'  == '' ">An yCPU</Plat form>
  3749       <Outpu tType>Libr ary</Outpu tType>
  3750       <NoSta ndardLibra ries>false </NoStanda rdLibrarie s>
  3751       <RootN amespace>S T_fce6863c d8c94187b7 bd25281306 34e1.cspro j</RootNam espace>
  3752       <Assem blyName>ST _fce6863cd 8c94187b7b d252813063 4e1.csproj </Assembly Name>
  3753       <Proje ctGuid>{0E 1FF2EE-743 0-43F8-8FB 2-B279B32C 3743}</Pro jectGuid>
  3754       <Targe tFramework Version>v3 .5</Target FrameworkV ersion>
  3755     </Proper tyGroup>
  3756     <!-- Thi s section  defines pr operties t hat are se t when the  "Debug" c onfigurati on is
  3757          sel ected.
  3758  
  3759          Deb ugSymbols  - If true,  create sy mbols (.pd b). If fal se, do not  create sy mbols.
  3760          Opt imize - If  true, opt imize the  build outp ut. If fal se, do not  optimize.
  3761          Out putPath -  Output pat h of the p roject rel ative to t he project  file.
  3762          Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will  attach bot h managed  and unmana ged debugg ers.
  3763          Def ineConstan ts - Const ants defin ed for the  preproces sor.
  3764          War ning Level  - Warning  level for  the compi ler.
  3765     -->
  3766     <Propert yGroup Con dition=" ' $(Configur ation)' ==  'Debug' " >
  3767       <Debug Symbols>tr ue</DebugS ymbols>
  3768       <Optim ize>false< /Optimize>
  3769       <Outpu tPath>.\bi n\Debug\</ OutputPath >
  3770       <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g>
  3771       <Defin eConstants >DEBUG;TRA CE</Define Constants>
  3772       <Warni ngLevel>4< /WarningLe vel>
  3773     </Proper tyGroup>
  3774     <!-- Thi s section  defines pr operties t hat are se t when the  "Release"  configura tion is
  3775          sel ected.
  3776  
  3777          Deb ugSymbols  - If true,  create sy mbols (.pd b). If fal se, do not  create sy mbols.
  3778          Opt imize - If  true, opt imize the  build outp ut. If fal se, do not  optimize.
  3779          Out putPath -  Output pat h of the p roject rel ative to t he project  file.
  3780          Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will  attach bot h managed  and unmana ged debugg ers.
  3781          Def ineConstan ts - Const ants defin ed for the  preproces sor.
  3782          War ning Level  - Warning  level for  the compi ler.
  3783     -->
  3784     <Propert yGroup Con dition=" ' $(Configur ation)' ==  'Release'  ">
  3785       <Debug Symbols>fa lse</Debug Symbols>
  3786       <Optim ize>true</ Optimize>
  3787       <Outpu tPath>.\bi n\Release\ </OutputPa th>
  3788       <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g>
  3789       <Defin eConstants >TRACE</De fineConsta nts>
  3790       <Warni ngLevel>4< /WarningLe vel>
  3791     </Proper tyGroup>
  3792     <!-- Thi s section  enables pr e- and pos t-build st eps. Howev er,
  3793          it  is recomme nded that  MSBuild ta sks be use d instead  of these p roperties.
  3794     -->
  3795     <Propert yGroup>
  3796       <PreBu ildEvent>
  3797       </PreB uildEvent>
  3798       <PostB uildEvent>
  3799       </Post BuildEvent >
  3800     </Proper tyGroup>
  3801     <!-- Thi s sections  specifies  reference s for the  project. - ->
  3802     <ItemGro up>
  3803       <Refer ence Inclu de="System " />
  3804       <Refer ence Inclu de="System .AddIn, Ve rsion=3.5. 0.0, Cultu re=neutral , PublicKe yToken=b77 a5c561934e 089, proce ssorArchit ecture=MSI L" />
  3805       <Refer ence Inclu de="System .Core">
  3806         <Req uiredTarge tFramework >3.5</Requ iredTarget Framework>
  3807       </Refe rence>
  3808       <Refer ence Inclu de="System .Data" />
  3809       <Refer ence Inclu de="System .Drawing"  />
  3810       <Refer ence Inclu de="System .Windows.F orms" />
  3811       <Refer ence Inclu de="System .Xml" />
  3812       <Refer ence Inclu de="Micros oft.SqlSer ver.Manage dDTS, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" />
  3813       <Refer ence Inclu de="Micros oft.SqlSer ver.Script Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" />
  3814       <Refer ence Inclu de="Window sBase">
  3815         <Req uiredTarge tFramework >3.0</Requ iredTarget Framework>
  3816       </Refe rence>
  3817     </ItemGr oup>
  3818     <!-- Thi s section  defines th e user sou rce files  that are p art of the
  3819          pro ject.
  3820  
  3821          Com pile - Spe cifies a s ource file  to compil e.
  3822          Emb eddedResou rce - Spec ifies a .r esx file f or embedde d resource s.
  3823          Non e - Specif ies a file  that is n ot to be p assed to t he compile r (for ins tance,
  3824                  a text  file or X ML file).
  3825          App Designer -  Specifies  the direc tory where  the appli cation pro perties fi les can
  3826                          be found.
  3827     -->
  3828     <ItemGro up>
  3829       <AppDe signer Inc lude="Prop erties\" / >
  3830       <Compi le Include ="ExcelCel l.cs" />
  3831       <Compi le Include ="ExcelCol umn.cs" />
  3832       <Compi le Include ="ExcelHea derFooter. cs" />
  3833       <Compi le Include ="ExcelPac kage.cs" / >
  3834       <Compi le Include ="ExcelRow .cs" />
  3835       <Compi le Include ="ExcelSty les.cs" />
  3836       <Compi le Include ="ExcelWor kbook.cs"  />
  3837       <Compi le Include ="ExcelWor ksheet.cs"  />
  3838       <Compi le Include ="ExcelWor ksheets.cs " />
  3839       <Compi le Include ="ExcelWor ksheetView .cs" />
  3840       <Compi le Include ="OfficePr operties.c s" />
  3841       <Compi le Include ="Properti es\Assembl yInfo.cs">
  3842         <Sub Type>Code< /SubType>
  3843       </Comp ile>
  3844       <Embed dedResourc e Include= "Propertie s\Resource s.resx">
  3845         <Gen erator>Res XFileCodeG enerator</ Generator>
  3846         <Las tGenOutput >Resources .Designer. cs</LastGe nOutput>
  3847       </Embe ddedResour ce>
  3848       <Compi le Include ="Properti es\Resourc es.Designe r.cs">
  3849         <Aut oGen>True< /AutoGen>
  3850         <Dep endentUpon >Resources .resx</Dep endentUpon >
  3851       </Comp ile>
  3852       <None  Include="P roperties\ Settings.s ettings">
  3853         <Gen erator>Set tingsSingl eFileGener ator</Gene rator>
  3854         <Las tGenOutput >Settings. Designer.c s</LastGen Output>
  3855       </None >
  3856       <Compi le Include ="Properti es\Setting s.Designer .cs">
  3857         <Aut oGen>True< /AutoGen>
  3858         <Dep endentUpon >Settings. settings</ DependentU pon>
  3859       </Comp ile>
  3860       <Compi le Include ="ScriptMa in.cs">
  3861         <Sub Type>Code< /SubType>
  3862       </Comp ile>
  3863       <!-- I nclude the  default c onfigurati on informa tion and m etadata fi les for th e add-in.
  3864            T hese files  are copie d to the b uild outpu t director y when the  project i s
  3865            b uilt, and  the path t o the conf iguration  file is pa ssed to ad d-in on th e command
  3866            l ine when d ebugging.
  3867       -->
  3868     </ItemGr oup>
  3869     <!-- Inc lude the b uild rules  for a C#  project.-- >
  3870     <Import  Project="$ (MSBuildBi nPath)\Mic rosoft.CSh arp.target s" />
  3871     <!-- Thi s section  defines VS TA propert ies that d escribe th e host-cha ngable pro ject prope rties. -->
  3872     <Project Extensions >
  3873       <Visua lStudio>
  3874         <Fla vorPropert ies GUID=" {A860303F- 1F3F-4691- B57E-529FC 101A107}">
  3875           <P rojectProp erties Hos tName="VST AHostName"  HostPacka ge="{C1B21 C64-9E6F-4 923-A89D-9 F958503C1C E}" Applic ationType= "usd" Lang uage="cs"  TemplatesP ath="" Deb ugInfoExeN ame="#HKEY _LOCAL_MAC HINE\SOFTW ARE\Micros oft\Visual Studio\9.0 \InstallDi r#\devenv. exe" />
  3876           <H ost Name=" SSIS_Scrip tTask" />
  3877           <P rojectClie nt>
  3878              <HostIdent ifier>SSIS _ScriptTas k</HostIde ntifier>
  3879           </ ProjectCli ent>
  3880         </Fl avorProper ties>
  3881       </Visu alStudio>
  3882     </Projec tExtension s>
  3883   </Project> ]]></Proje ctItem><Pr ojectItem  Name="\exc elworkshee ts.cs">
  3884   <![CDATA[/
  3885    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  3886    * 
  3887    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  3888    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  3889    * 
  3890    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  3891    * mailto: dr.john.tu nnicliffe@ btinternet .com
  3892    * All rig hts reserv ed.
  3893    * 
  3894    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  3895    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  3896    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  3897    * 
  3898    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  3899    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  3900    * 
  3901    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  3902    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  3903    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  3904    * 
  3905    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  3906    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  3907    */
  3908  
  3909   /*
  3910    * Code ch ange notes :
  3911    * 
  3912    * Author                                                             Change                                               Date
  3913    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3914    * John Tu nnicliffe               Initial  Release          01-J an-2007
  3915    * ******* ********** ********** ********** ********** ********** ********** ********** *
  3916    */
  3917   using Syst em;
  3918   using Syst em.Collect ions;
  3919   using Syst em.Collect ions.Gener ic;
  3920   using Syst em.Text;
  3921   using Syst em.Xml;
  3922   using Syst em.IO;
  3923   using Syst em.IO.Pack aging;
  3924  
  3925   namespace  OfficeOpen Xml
  3926   {
  3927       /// <s ummary>
  3928       /// Pr ovides enu meration t hrough all  the works heets in t he workboo k
  3929       /// </ summary>
  3930       public  class Exc elWorkshee ts : IEnum erable
  3931       {
  3932           #r egion Exce lWorksheet s Private  Properties
  3933           pr ivate Dict ionary<int , ExcelWor ksheet> _w orksheets;
  3934           pr ivate Exce lPackage _ xlPackage;
  3935           pr ivate XmlN amespaceMa nager _nsM anager;
  3936           pr ivate XmlN ode _works heetsNode;
  3937           #e ndregion
  3938  
  3939           #r egion Exce lWorksheet s Construc tor
  3940           // / <summary >
  3941           // / Creates  a new inst ance of th e ExcelWor ksheets cl ass.
  3942           // / For inte rnal use o nly!
  3943           // / </summar y>
  3944           // / <param n ame="xlPac kage"></pa ram>
  3945           pr otected in ternal Exc elWorkshee ts(ExcelPa ckage xlPa ckage)
  3946           {
  3947                _xlPacka ge = xlPac kage;
  3948                //  Crea te a Names paceManage r to handl e the defa ult namesp ace, 
  3949                //  and  create a p refix for  the defaul t namespac e:
  3950                NameTabl e nt = new  NameTable ();
  3951                _nsManag er = new X mlNamespac eManager(n t);
  3952                _nsManag er.AddName space("d",  ExcelPack age.schema Main);
  3953                _nsManag er.AddName space("r",  ExcelPack age.schema Relationsh ips);
  3954  
  3955                // obtai n containe r node for  all works heets
  3956                _workshe etsNode =  _xlPackage .Workbook. WorkbookXm l.SelectSi ngleNode(" //d:sheets ", _nsMana ger);
  3957                if (_wor ksheetsNod e == null)
  3958                {
  3959                    // c reate new  node as it  did not e xist
  3960                    _wor ksheetsNod e = _xlPac kage.Workb ook.Workbo okXml.Crea teElement( "sheets",  ExcelPacka ge.schemaM ain);
  3961                    _xlP ackage.Wor kbook.Work bookXml.Do cumentElem ent.Append Child(_wor ksheetsNod e);
  3962                }
  3963  
  3964                _workshe ets = new  Dictionary <int, Exce lWorksheet >();
  3965                int posi tionID = 1 ;
  3966                foreach  (XmlNode s heetNode i n _workshe etsNode.Ch ildNodes)
  3967                {
  3968                    stri ng name =  sheetNode. Attributes ["name"].V alue;
  3969                    //   Get the re lationship  id attrib ute:
  3970                    stri ng relId =  sheetNode .Attribute s["r:id"]. Value;
  3971                    int  sheetID =  Convert.To Int32(shee tNode.Attr ibutes["sh eetId"].Va lue);
  3972                    //if  (sheetID  != count)
  3973                    //{
  3974                    //   // renumbe r the shee ts as they  are in an  odd order
  3975                    //   sheetID =  count;
  3976                    //   sheetNode. Attributes ["sheetId" ].Value =  sheetID.To String();
  3977                    //}
  3978                    // g et hidden  attribute  (if presen t)
  3979                    bool  hidden =  false;
  3980                    XmlN ode attr =  sheetNode .Attribute s["hidden" ];
  3981                    if ( attr != nu ll)
  3982                         hidden = C onvert.ToB oolean(att r.Value);
  3983  
  3984                    //st ring type  = "";
  3985                    //at tr = sheet Node.Attri butes["typ e"];
  3986                    //if  (attr !=  null)
  3987                    //   type = att r.Value;
  3988  
  3989                    Pack ageRelatio nship shee tRelation  = _xlPacka ge.Workboo k.Part.Get Relationsh ip(relId);
  3990                    Uri  uriWorkshe et = PackU riHelper.R esolvePart Uri(_xlPac kage.Workb ook.Workbo okUri, she etRelation .TargetUri );
  3991  
  3992                    // a dd workshe et to our  collection
  3993                    _wor ksheets.Ad d(position ID, new Ex celWorkshe et(_xlPack age, relId , name, ur iWorksheet , sheetID,  hidden));
  3994                    posi tionID++;
  3995                }
  3996           }
  3997           #e ndregion
  3998  
  3999           #r egion Exce lWorksheet s Public P roperties
  4000           // / <summary >
  4001           // / Returns  the number  of worksh eets in th e workbook
  4002           // / </summar y>
  4003           pu blic int C ount
  4004           {
  4005                get { re turn (_wor ksheets.Co unt); }
  4006           }
  4007           #e ndregion
  4008  
  4009           #r egion Exce lWorksheet s Public M ethods
  4010           // / <summary >
  4011           // / Returns  an enumera tor that a llows the  foreach sy ntax to be  used to 
  4012           // / itterate  through a ll the wor ksheets
  4013           // / </summar y>
  4014           // / <returns >An enumer ator</retu rns>
  4015           pu blic IEnum erator Get Enumerator ()
  4016           {
  4017                return ( _worksheet s.Values.G etEnumerat or());
  4018           }
  4019  
  4020           #r egion Add  Worksheet
  4021           // / <summary >
  4022           // / Adds a b lank works heet with  the desire d name
  4023           // / </summar y>
  4024           // / <param n ame="Name" ></param>
  4025           pu blic Excel Worksheet  Add(string  Name)
  4026           {
  4027                // first  find maxi mum existi ng sheetID
  4028                // also  check the  name is un ique - if  not throw  an error
  4029                int shee tID = 0;
  4030                foreach  (XmlNode s heet in _w orksheetsN ode.ChildN odes)
  4031                {
  4032                    XmlA ttribute a ttr = (Xml Attribute) sheet.Attr ibutes.Get NamedItem( "sheetId") ;
  4033                    if ( attr != nu ll)
  4034                    {
  4035                         int curID  = int.Pars e(attr.Val ue);
  4036                         if (curID  > sheetID)
  4037                             sheetI D = curID;
  4038                    }
  4039                    attr  = (XmlAtt ribute)she et.Attribu tes.GetNam edItem("na me");
  4040                    if ( attr != nu ll)
  4041                    {
  4042                         if (attr.V alue == Na me)
  4043                             throw  new Except ion("Add w orksheet E rror: atte mpting to  create wor ksheet wit h duplicat e name");
  4044                    }
  4045                }
  4046                // we no w have the  max exist ing values , so add o ne
  4047                sheetID+ +;
  4048  
  4049                // add t he new wor ksheet to  the packag e
  4050                Uri uriW orksheet =  new Uri(" /xl/worksh eets/sheet " + sheetI D.ToString () + ".xml ", UriKind .Relative) ;
  4051                PackageP art worksh eetPart =  _xlPackage .Package.C reatePart( uriWorkshe et, @"appl ication/vn d.openxmlf ormats-off icedocumen t.spreadsh eetml.work sheet+xml" );
  4052  
  4053                // creat e the new,  empty wor ksheet and  save it t o the pack age
  4054                StreamWr iter strea mWorksheet  = new Str eamWriter( worksheetP art.GetStr eam(FileMo de.Create,  FileAcces s.Write));
  4055                XmlDocum ent worksh eetXml = C reateNewWo rksheet();
  4056                workshee tXml.Save( streamWork sheet);
  4057                streamWo rksheet.Cl ose();
  4058                _xlPacka ge.Package .Flush();
  4059  
  4060                // creat e the rela tionship b etween the  workbook  and the ne w workshee t
  4061                PackageR elationshi p rel = _x lPackage.W orkbook.Pa rt.CreateR elationshi p(uriWorks heet, Targ etMode.Int ernal, Exc elPackage. schemaRela tionships  + "/worksh eet");
  4062                _xlPacka ge.Package .Flush();
  4063  
  4064                // now c reate the  new worksh eet tag an d set name /SheetId a ttributes  in the wor kbook.xml
  4065                XmlEleme nt workshe etNode = _ xlPackage. Workbook.W orkbookXml .CreateEle ment("shee t", ExcelP ackage.sch emaMain);
  4066                // creat e the new  sheet node
  4067                workshee tNode.SetA ttribute(" name", Nam e);
  4068                workshee tNode.SetA ttribute(" sheetId",  sheetID.To String());
  4069                // set t he r:id at tribute
  4070                workshee tNode.SetA ttribute(" id", Excel Package.sc hemaRelati onships, r el.Id);
  4071                // inser t the shee t tag with  all attri butes set  as above
  4072                _workshe etsNode.Ap pendChild( worksheetN ode);
  4073  
  4074                // creat e a refere nce to the  new works heet in ou r collecti on
  4075                ExcelWor ksheet wor ksheet = n ew ExcelWo rksheet(_x lPackage,  rel.Id, Na me, uriWor ksheet, sh eetID, fal se);
  4076                int posi tionID = _ worksheets .Count + 1 ;
  4077                _workshe ets.Add(po sitionID,  worksheet) ;
  4078                return w orksheet;
  4079           }
  4080  
  4081           // / <summary >
  4082           // / Creates  the XML do cument rep resenting  a new empt y workshee t
  4083           // / </summar y>
  4084           // / <returns ></returns >
  4085           pr otected in ternal Xml Document C reateNewWo rksheet()
  4086           {
  4087                // creat e the new  worksheet
  4088                XmlDocum ent worksh eetXml = n ew XmlDocu ment();
  4089                // XML d ocument do es not exi st so crea te the new  worksheet  XML doc
  4090                XmlEleme nt workshe etNode = w orksheetXm l.CreateEl ement("wor ksheet", E xcelPackag e.schemaMa in);
  4091                workshee tNode.SetA ttribute(" xmlns:r",  ExcelPacka ge.schemaR elationshi ps);
  4092                workshee tXml.Appen dChild(wor ksheetNode );
  4093                // creat e the shee tViews tag
  4094                XmlEleme nt tagShee tViews = w orksheetXm l.CreateEl ement("she etViews",  ExcelPacka ge.schemaM ain);
  4095                workshee tNode.Appe ndChild(ta gSheetView s);
  4096                // creat e the shee t View tag
  4097                XmlEleme nt tagShee tView = wo rksheetXml .CreateEle ment("shee tView", Ex celPackage .schemaMai n);
  4098                tagSheet View.SetAt tribute("w orkbookVie wId", "0") ;
  4099                tagSheet Views.Appe ndChild(ta gSheetView );
  4100                // creat e the empt y sheetDat a tag (mus t be prese nt, but ca n be empty )
  4101                XmlEleme nt tagShee tData = wo rksheetXml .CreateEle ment("shee tData", Ex celPackage .schemaMai n);
  4102                workshee tNode.Appe ndChild(ta gSheetData );
  4103                return w orksheetXm l;
  4104           }
  4105           #e ndregion
  4106  
  4107           #r egion Dele te Workshe et
  4108           // / <summary >
  4109           // / Delete a  worksheet  from the  workbook p ackage
  4110           // / </summar y>
  4111           // / <param n ame="posit ionID">The  position  of the wor ksheet in  the workbo ok</param>
  4112           pu blic void  Delete(int  positionI D)
  4113           {
  4114                if (_wor ksheets.Co unt == 1)
  4115                    thro w new Exce ption("Err or: You ar e attempti ng to dele te the las t workshee t in the w orkbook.   One worksh eet MUST b e present  in the wor kbook!");
  4116                ExcelWor ksheet wor ksheet = _ worksheets [positionI D];
  4117  
  4118                // delet e the work sheet from  the packa ge 
  4119                _xlPacka ge.Package .DeletePar t(workshee t.Workshee tUri);
  4120  
  4121                // delet e the rela tionship f rom the pa ckage 
  4122                _xlPacka ge.Workboo k.Part.Del eteRelatio nship(work sheet.Rela tionshipID );
  4123  
  4124                // delet e workshee t from the  workbook  XML
  4125                XmlNode  sheetsNode  = _xlPack age.Workbo ok.Workboo kXml.Selec tSingleNod e("//d:wor kbook/d:sh eets", _ns Manager);
  4126                if (shee tsNode !=  null)
  4127                {
  4128                    XmlN ode sheetN ode = shee tsNode.Sel ectSingleN ode(string .Format(". /d:sheet[@ sheetId={0 }]", works heet.Sheet ID), _nsMa nager);
  4129                    if ( sheetNode  != null)
  4130                    {
  4131                         sheetsNode .RemoveChi ld(sheetNo de);
  4132                    }
  4133                }
  4134                // delet e workshee t from the  Dictionar y object
  4135                _workshe ets.Remove (positionI D);
  4136           }
  4137           #e ndregion
  4138  
  4139           // / <summary >
  4140           // / Returns  the worksh eet at the  specified  position.   
  4141           // / </summar y>
  4142           // / <param n ame="Posit ionID">The  position  of the wor ksheet. 1- base</para m>
  4143           // / <returns ></returns >
  4144           pu blic Excel Worksheet  this[int P ositionID]
  4145           {
  4146                get
  4147                {
  4148                    retu rn (_works heets[Posi tionID]);
  4149                }
  4150           }
  4151  
  4152           // / <summary >
  4153           // / Returns  the worksh eet matchi ng the spe cified nam e
  4154           // / </summar y>
  4155           // / <param n ame="Name" >The name  of the wor ksheet</pa ram>
  4156           // / <returns ></returns >
  4157           pu blic Excel Worksheet  this[strin g Name]
  4158           {
  4159                get
  4160                {
  4161                    Exce lWorksheet  xlWorkshe et = null;
  4162                    fore ach (Excel Worksheet  worksheet  in _worksh eets.Value s)
  4163                    {
  4164                         if (worksh eet.Name = = Name)
  4165                             xlWork sheet = wo rksheet;
  4166                    }
  4167                    retu rn (xlWork sheet);
  4168                    //th row new Ex ception(st ring.Forma t("ExcelWo rksheets E rror: Work sheet '{0} ' not foun d!",Name)) ;
  4169                }
  4170           }
  4171  
  4172           // / <summary >
  4173           // / Copies t he named w orksheet a nd creates  a new wor ksheet in  the same w orkbook
  4174           // / </summar y>
  4175           // / <param n ame="Name" >The name  of the exi sting work sheet</par am>
  4176           // / <param n ame="NewNa me">The na me of the  new worksh eet to cre ate</param >
  4177           // / <returns ></returns >
  4178           pu blic Excel Worksheet  Copy(strin g Name, st ring NewNa me)
  4179           {
  4180                // TODO:  implement  copy work sheet
  4181                throw ne w Exceptio n("The met hod or ope ration is  not implem ented.");
  4182           }
  4183           #e ndregion
  4184       } // e nd class W orksheets
  4185   }]]></Proj ectItem><P rojectItem  Name="\pr operties\r esources.d esigner.cs ">
  4186   <![CDATA[/ /--------- ---------- ---------- ---------- ---------- ---------- ---------- ---------
  4187   // <auto-g enerated>
  4188   //     Thi s code was  generated  by a tool .
  4189   //
  4190   //     Cha nges to th is file ma y cause in correct be havior and  will be l ost if
  4191   //     the  code is r egenerated .
  4192   // </auto- generated>
  4193   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  4194  
  4195   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "ST_fce 6863cd8c94 187b7bd252 8130634e1. csproj.Pro perties.Re sources.ge t_Resource Manager(): System.Res ources.Res ou" +
  4196       "rceMa nager")]
  4197   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "ST_fce 6863cd8c94 187b7bd252 8130634e1. csproj.Pro perties.Re sources.ge t_Culture( ):System.G lobalizati on.Culture In" +
  4198       "fo")]
  4199   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "ST_fce 6863cd8c94 187b7bd252 8130634e1. csproj.Pro perties.Re sources.se t_Culture( System.Glo balization .CultureIn fo" +
  4200       "):Voi d")]
  4201  
  4202   namespace  ST_fce6863 cd8c94187b 7bd2528130 634e1.cspr oj.Propert ies
  4203   {
  4204  
  4205  
  4206       /// <s ummary>
  4207       ///    A strongly -typed res ource clas s, for loo king up lo calized st rings, etc .
  4208       /// </ summary>
  4209       // Thi s class wa s auto-gen erated by  the Strong lyTypedRes ourceBuild er
  4210       // cla ss via a t ool like R esGen or V isual Stud io.
  4211       // To  add or rem ove a memb er, edit y our .ResX  file then  rerun ResG en
  4212       // wit h the /str  option, o r rebuild  your VS pr oject.
  4213       [globa l::System. Diagnostic s.Debugger NonUserCod eAttribute ()]
  4214       intern al class R esources
  4215       {
  4216  
  4217           pr ivate stat ic global: :System.Re sources.Re sourceMana ger resour ceMan;
  4218  
  4219           pr ivate stat ic global: :System.Gl obalizatio n.CultureI nfo resour ceCulture;
  4220  
  4221           [g lobal::Sys tem.Diagno stics.Code Analysis.S uppressMes sageAttrib ute("Micro soft.Perfo rmance", " CA1811:Avo idUncalled PrivateCod e")]
  4222           in ternal Res ources()
  4223           {
  4224           }
  4225  
  4226           // / <summary >
  4227           // /   Return s the cach ed Resourc eManager i nstance us ed by this  class.
  4228           // / </summar y>
  4229           [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)]
  4230           in ternal sta tic global ::System.R esources.R esourceMan ager Resou rceManager
  4231           {
  4232                get
  4233                {
  4234                    if ( (resourceM an == null ))
  4235                    {
  4236                         global::Sy stem.Resou rces.Resou rceManager  temp = ne w global:: System.Res ources.Res ourceManag er("ST_fce 6863cd8c94 187b7bd252 8130634e1. csproj.Pro perties.Re sources",  typeof(Res ources).As sembly);
  4237                         resourceMa n = temp;
  4238                    }
  4239                    retu rn resourc eMan;
  4240                }
  4241           }
  4242  
  4243           // / <summary >
  4244           // /   Overri des the cu rrent thre ad's Curre ntUICultur e property  for all
  4245           // /   resour ce lookups  using thi s strongly  typed res ource clas s.
  4246           // / </summar y>
  4247           [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)]
  4248           in ternal sta tic global ::System.G lobalizati on.Culture Info Cultu re
  4249           {
  4250                get
  4251                {
  4252                    retu rn resourc eCulture;
  4253                }
  4254                set
  4255                {
  4256                    reso urceCultur e = value;
  4257                }
  4258           }
  4259       }
  4260   }]]></Proj ectItem><P rojectItem  Name="\sc riptmain.c s">
  4261   <![CDATA[/ *
  4262      Microso ft SQL Ser ver Integr ation Serv ices Scrip t Task
  4263      Write s cripts usi ng Microso ft Visual  C# 2008.
  4264      The Scr iptMain is  the entry  point cla ss of the  script.
  4265   */
  4266  
  4267   using Syst em;
  4268   using Syst em.Data;
  4269   using Syst em.Data.Sq lClient;
  4270   using Syst em.Data.Sq lTypes;
  4271   using Micr osoft.SqlS erver.Dts. Runtime;
  4272   using Syst em.Windows .Forms;
  4273   using Syst em.Data.Ol eDb;
  4274   using Syst em.Globali zation;
  4275   using Syst em.IO;
  4276   using Syst em.Collect ions.Gener ic;
  4277   using Offi ceOpenXml;
  4278  
  4279   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  4280   {
  4281       [Syste m.AddIn.Ad dIn("Scrip tMain", Ve rsion = "1 .0", Publi sher = "",  Descripti on = "")]
  4282       public  partial c lass Scrip tMain : Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.V STARTScrip tObjectMod elBase
  4283       {
  4284           pr ivate File Type input FileType;
  4285           pr ivate stri ng logStri ng = "";
  4286           in t _edipiCo lumn = -1;
  4287           in t _ssnColu mn = -1;
  4288           in t _labRepo rtDateColu mn = -1;
  4289           in t _keyFiel dColumn =  -1;
  4290           st ring _keyF ieldColumn Name = "";
  4291           pr ivate stri ng inputFi leName = " ";
  4292  
  4293           Li st<string>  rawEdipis  = new Lis t<string>( );
  4294           Li st<string>  validKeyF ields = ne w List<str ing>();
  4295           Di ctionary<s tring, str ing> keyTo Edipi = ne w Dictiona ry<string,  string>() ;
  4296           Di ctionary<s tring,stri ng> validE dipiIcns =  new Dicti onary<stri ng, string >();
  4297  
  4298           Fi leInfo _in putExcel;
  4299           Fi leInfo _ba ckupExcel;
  4300           in t _inputEx celColumnC ount = 1;
  4301           in t _inputEx celRowCoun t = 1;
  4302           Ex celWorkshe et _inputE xcelWorksh eet;
  4303           pr ivate stri ng _connec tionString StagingDat abase = "" ;
  4304           pr ivate stri ng _connec tionString RegistryDa tabase = " ";
  4305           pr ivate Guid  _guidId =  Guid.NewG uid();
  4306           pr ivate int  _dod_fragm ent_raw_da ta_id = 1;
  4307  
  4308           //  Settings
  4309           // private st ring efrDo DFragTestF ile = "";
  4310           pr ivate bool  efrDoDFra gLogAllTra nsactions  = false;
  4311           pr ivate stri ng efrDoDF ragCrsMviE tlName = " ";
  4312           pr ivate stri ng efrDoDF ragEdipiCo lumnName =  "";
  4313           pr ivate stri ng efrDoDF ragLabRepo rtColumnNa me = "";
  4314           pr ivate stri ng efrDoDF ragSsnColu mnName = " ";
  4315           pr ivate stri ng efrDoDF ragArchive Folder = " ";
  4316           pr ivate stri ng efrDoDF ragJpcKeyF ield = "";
  4317           pr ivate stri ng efrDoDF ragUsafKey Field = "" ;
  4318           pr ivate stri ng efrDoDF ragEmfKeyF ield = "";
  4319           pr ivate stri ng efrDoDF ragJpcLabD ateField =  "";
  4320           pr ivate stri ng efrDoDF ragUsafLab DateField  = "";
  4321           pr ivate stri ng efrDoDF ragEmfLabD ateField =  "";
  4322           pr ivate bool  efrDoDFra gTestMode  = false;
  4323  
  4324  
  4325           #r egion VSTA  generated  code
  4326           en um ScriptR esults
  4327           {
  4328                Success  = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Su ccess,
  4329                Failure  = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Fa ilure
  4330           };
  4331           #e ndregion
  4332  
  4333           pu blic void  Main()
  4334           {
  4335                logStrin g = "Begin ning DoDFr agmentScri ptTask. ";
  4336                Dts.Task Result = ( int)Script Results.Su ccess;
  4337  
  4338                // Set u p connecti on string  for Regist ryStaging  database
  4339                setupCon nectionStr ings();
  4340  
  4341                //writeL og();
  4342  
  4343                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4344                    setC onfigValue s();
  4345  
  4346                //writeL og();
  4347  
  4348                // Load  input file  data 
  4349                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4350                    load InputExcel Data();
  4351  
  4352                //writeL og();
  4353  
  4354                //// fin d columns  in input 
  4355                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4356                    setC olumns();
  4357  
  4358               // writeL og();
  4359  
  4360                //// Get  distinct  list of ed ipi's in t he input f ile
  4361                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4362                    setR awEdipisFr omInput();
  4363  
  4364               // writeL og();
  4365  
  4366                // Load  the CRS_MV I_Patient  table with  the EDIPI s
  4367                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4368                    inse rtRawEdipi sIntoDatab ase();
  4369  
  4370                //writeL og();
  4371  
  4372                // Execu te the CRS MVI packag e
  4373                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4374                    exec uteCRSMVIP ackage();
  4375  
  4376                    //wr iteLog();
  4377                if (efrD oDFragTest Mode)
  4378                    Mess ageBox.Sho w("Update  ICN and MV I status") ;
  4379  
  4380                // Retri eve the up dated EDIP Is
  4381                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4382                    retr ieveDataba seEdipis() ;
  4383  
  4384                //writeL og();
  4385  
  4386                // Gener ate an upd ated outpu t file to  continue p rocessing
  4387                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4388                    Gene rateUpdate dExcelFile ();
  4389  
  4390                //writeL og();
  4391  
  4392                // Save  updated ou tput file  to DoD_Fra gment_Raw_ Data
  4393                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4394                    Inse rtUpdatedE xcelFileTo Database() ;
  4395  
  4396                //writeL og();
  4397  
  4398                // Save  updated ou tput file  to DoD_Fra gment_Raw_ Data
  4399                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4400                    Inse rtFragRawD ata();
  4401  
  4402                //writeL og();
  4403  
  4404                // Save  updated ou tput file  to DoD_Fra gment_Raw_ Data
  4405                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  4406                    Move FilesToArc hive();
  4407  
  4408                logStrin g += "COMP LETE.";
  4409  
  4410                writeLog ();      
  4411           }
  4412  
  4413           pr ivate void  MoveFiles ToArchive( )
  4414           {
  4415                try
  4416                {
  4417                    //Me ssageBox.S how("Start ing");
  4418  
  4419                    //Me ssageBox.S how("efrDo DFragArchi veFolder:  " + efrDoD FragArchiv eFolder);
  4420                    //Me ssageBox.S how("name:  " + Path. GetFileNam eWithoutEx tension(_i nputExcel. FullName)) ;
  4421  
  4422                    stri ng destina tionFileNa me = efrDo DFragArchi veFolder +  "\\" + Pa th.GetFile NameWithou tExtension (_inputExc el.FullNam e);
  4423                    dest inationFil eName += " _" + DateT ime.Now.To String("yy yyMMddHHmm ss");
  4424                    dest inationFil eName += P ath.GetExt ension(_in putExcel.F ullName);
  4425  
  4426  
  4427                    //Me ssageBox.S how("destf ilename: "  + destina tionFileNa me);
  4428  
  4429                    logS tring += " Archiving  inputExcel  to : " +  destinatio nFileName  + "; ";
  4430  
  4431                    File .Move(_inp utExcel.Fu llName, de stinationF ileName);
  4432  
  4433                    dest inationFil eName = ef rDoDFragAr chiveFolde r + "\\" +  Path.GetF ileName(_b ackupExcel .FullName) ;
  4434  
  4435                    //Me ssageBox.S how("destf ilename: "  + destina tionFileNa me);
  4436                    logS tring += " Archiving  backupExce l to : " +  destinati onFileName  + "; ";
  4437                    
  4438                    File .Move(_bac kupExcel.F ullName, d estination FileName);
  4439  
  4440  
  4441                    //Me ssageBox.S how("done  backup");
  4442                }
  4443                catch (E xception e x)
  4444                {
  4445                    logS tring += " ERROR: Mov eFilesToAr chive thre w exceptio n: " + ex. Message.To String() +  "; ";
  4446  
  4447                    // D on't fail  on this st ep, just m ove along  ...
  4448                    //Dt s.TaskResu lt = (int) ScriptResu lts.Failur e;
  4449                }
  4450  
  4451                logStrin g += "Comp leted Move FilesToArc hive; ";
  4452           }
  4453  
  4454           pr ivate void  InsertFra gRawData()
  4455           {
  4456                string s sn = "";
  4457                string e dipi = "";
  4458                string i cn = "";
  4459                List<str ing> inser tedEdipis  = new List <string>() ;
  4460                DataTabl e dodFragD ataTable =  GetDoDFra gDataTable ();
  4461                DateTime  labReport Date = new  DateTime( );
  4462                string s LabReportD ate = "";
  4463  
  4464                try
  4465                {
  4466                    logS tring += " Prcessingi ng " + _in putExcelRo wCount.ToS tring() +  "  rows; " ;
  4467  
  4468                    // I terate thr ough the i nput file.  Pull out  relevant d ata values  and
  4469                    // i nsert reco rds into r aw data
  4470  
  4471                    usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel))
  4472                    {
  4473                         ExcelWorks heet input ExcelWorks heet = xlP ackage.Wor kbook.Work sheets[1];
  4474  
  4475                         // Skip he ader row
  4476                         for (int r owNum = 2  ; rowNum < = _inputEx celRowCoun t; rowNum+ +)
  4477                         {
  4478                             edipi  = inputExc elWorkshee t.Cell(row Num, _edip iColumn).V alue.ToStr ing();
  4479  
  4480                             if (!i nsertedEdi pis.Contai ns(edipi))
  4481                             {
  4482                                 if  (_ssnColu mn > -1)
  4483                                      ssn = in putExcelWo rksheet.Ce ll(rowNum,  _ssnColum n).Value.T oString();
  4484                                 el se
  4485                                      ssn = "" ;
  4486  
  4487                                 if  (validEdi piIcns.Try GetValue(e dipi, out  icn))
  4488                                 {
  4489                                      sLabRepo rtDate = i nputExcelW orksheet.C ell(rowNum , _labRepo rtDateColu mn).Value. ToString() ;
  4490  
  4491                                      if (inpu tExcelWork sheet.Cell (rowNum, _ labReportD ateColumn) .Value.Len gth > 0)
  4492                                      {
  4493                                          try
  4494                                          {
  4495                                               labReportD ate = Date Time.FromO ADate(
  4496                                                   Conver t.ToDouble (
  4497                                                       in putExcelWo rksheet.Ce ll(rowNum,  _labRepor tDateColum n).Value,
  4498                                                       Sy stem.Globa lization.C ultureInfo .Invariant Culture));
  4499  
  4500                                               //labRepor tDate = Da teTime.Now ;
  4501                                          }
  4502                                          catc h (Excepti on e)
  4503                                          {
  4504                                               logString  += "ERROR  with labRe portDate c onversion  on row: "  + rowNum.T oString() 
  4505                                                   + "  V alue: " +  inputExcel Worksheet. Cell(rowNu m, _labRep ortDateCol umn).Value ;
  4506                                               logString  += " Excep tion: " +  e.Message. ToString()  + "; ";
  4507                                          }
  4508                                      }
  4509                                      else
  4510                                      {
  4511                                          // C an't inser t nulls, d irectly, s o use a pl aceholder  and change  it to nul l afterwar ds
  4512  
  4513                                          labR eportDate  = new Date Time(1900,  01, 01);
  4514                                      }
  4515  
  4516                                      //logStr ing += "ss n: " +
  4517                                      //     s sn + " id:  " + dod_f ragment_ra w_data_id        // D OD_FRAGMEN T_RAW_DATA _ID
  4518                                      //     +  " inputda te: " + Da teTime.Now .ToString( )
  4519                                      //     +  " labrepo rtdate: "  + labRepor tDate.ToSt ring() +
  4520                                      //     "  icn: " +  icn + "    END";
  4521  
  4522                                      dodFragD ataTable.R ows.Add(
  4523                                           ssn                                / / PATIENTS SN
  4524                                          , _d od_fragmen t_raw_data _id        // DOD_FRA GMENT_RAW_ DATA_ID
  4525                                          , Da teTime.Now                     / / ORIGINAL INPUTDATE
  4526                                          , Da teTime.Now                     / / CREATED
  4527                                          , "D oD Frag ET L"                  / / CREATEDB Y
  4528                                          , Da teTime.Now                     / / UPDATED
  4529                                          , "D oD Frag ET L"                  / / UPDATEDB Y
  4530                                          , la bReportDat e                   / / LAB_REPO RT_DATE
  4531                                          , ic n                              / / PATIENT_ ICN
  4532                                      );
  4533                                 }
  4534                                 el se
  4535                                 {
  4536                                      logStrin g += "Inva lid EDIPI  found: " +  edipi + "    ICN ret urned: " +  icn;
  4537                                 };
  4538                             }
  4539                             else
  4540                             {
  4541                                 // logString  += "EDIPI  already ad ded: " + e dipi + ";  ";
  4542                             }
  4543                         }
  4544  
  4545                         logString  += "Added  " + dodFra gDataTable .Rows.Coun t.ToString () + " row s to dod f rag datata ble; ";
  4546  
  4547                         // Insert  the data t able into  the databa se
  4548                         insertDoD_ Fragment_D ata_Receiv e_Log(dodF ragDataTab le);
  4549                    }
  4550                }
  4551                catch (E xception e x)
  4552                {
  4553                    logS tring += " ERROR: Ins ertFragRaw Data threw  exception : " + ex.M essage.ToS tring() +  "; ";
  4554                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4555                }
  4556  
  4557                logStrin g += "Comp leted Inse rtFragRawD ata; ";
  4558           }
  4559  
  4560           st atic DataT able GetDo DFragDataT able()
  4561           {
  4562                // Here  we create  a DataTabl e mimicing  our datab ase table
  4563                DataTabl e table =  new DataTa ble();
  4564                table.Co lumns.Add( "PATIENTSS N", typeof (string));
  4565                table.Co lumns.Add( "DOD_FRAGM ENT_RAW_DA TA_ID", ty peof(int)) ;
  4566                table.Co lumns.Add( "ORIGINALI NPUTDATE",  typeof(Da teTime));
  4567                table.Co lumns.Add( "CREATED",  typeof(Da teTime));
  4568                table.Co lumns.Add( "CREATEDBY ", typeof( string));
  4569                table.Co lumns.Add( "UPDATED",  typeof(Da teTime));
  4570                table.Co lumns.Add( "UPDATEDBY ", typeof( string));
  4571                table.Co lumns.Add( "LAB_repor t_DATE", t ypeof(Date Time));             
  4572                table.Co lumns.Add( "PATIENT_I CN", typeo f(string)) ;
  4573  
  4574                return t able;
  4575           }
  4576  
  4577           pr ivate bool  InsertUpd atedExcelF ileToDatab ase()
  4578           {
  4579                logStrin g += "Begi n InsertUp datedExcel FileToData base";
  4580  
  4581                bool ret Value = tr ue;
  4582                string s ourceLab =  Path.GetF ileNameWit houtExtens ion(_input Excel.Full Name); //.  inputFile Name.Subst ring(0, in putFileNam e.IndexOf( '.'));
  4583  
  4584                try
  4585                {
  4586                    File Stream fSt ream = Fil e.OpenRead (_inputExc el.FullNam e);
  4587  
  4588                    byte [] content s = new by te[fStream .Length];
  4589                    fStr eam.Read(c ontents, 0 , (int)fSt ream.Lengt h);
  4590                    fStr eam.Close( );
  4591  
  4592                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringRegis tryDatabas e))
  4593                    {
  4594                         string sql Cmd = "";
  4595                         sqlCmd +=  "INSERT IN TO [EFR].[ DOD_FRAGME NT_RAW_DAT A] ";
  4596                         sqlCmd +=  "([SOURCE_ LAB],[FILE _DATA],[OR IGINAL_NAM E],[CONTEN T_TYPE]";
  4597                         sqlCmd +=  ",[CREATED BY],[CREAT ED],[UPDAT EDBY],[UPD ATED]) ";
  4598                         sqlCmd +=  "VALUES (" ;
  4599                         sqlCmd +=  "'" + sour ceLab + "' ";
  4600                         sqlCmd +=  ",@bytes";  
  4601                         sqlCmd +=  ",'" + inp utFileName  + "'";
  4602                         sqlCmd +=  ",'EXCEL'" ;
  4603                         sqlCmd +=  ",'DOD FRA GMENT ETL' ";
  4604                         sqlCmd +=  ",getdate( )";
  4605                         sqlCmd +=  ",'DOD FRA GMENT ETL' ";
  4606                         sqlCmd +=  ",getdate( ))";
  4607  
  4608                         logString  += sqlCmd  + "; ";
  4609  
  4610                         SqlCommand  cmd = new  SqlComman d(sqlCmd);
  4611                         cmd.Parame ters.Add(" @bytes", c ontents);
  4612                         cmd.Comman dType = Co mmandType. Text;
  4613                         cmd.Connec tion = con nection;
  4614                         connection .Open();
  4615  
  4616                         int numRow s = cmd.Ex ecuteNonQu ery();
  4617  
  4618                         logString  += "Insert ed: " + nu mRows.ToSt ring() + "  into efr. dod_fragme nt_raw_dat a; ";
  4619  
  4620                         // Capture  the id of  the recor d that was  inserted
  4621  
  4622                         if (numRow s == 1)
  4623                         {
  4624                             SqlCom mand comma nd = new S qlCommand( "select to p(1) [DOD_ FRAGMENT_R AW_DATA_ID ] from EFR .DOD_FRAGM ENT_RAW_DA TA order b y [DOD_FRA GMENT_RAW_ DATA_ID] d esc");
  4625                             comman d.CommandT ype = Comm andType.Te xt;
  4626                             comman d.Connecti on = conne ction;
  4627  
  4628                             _dod_f ragment_ra w_data_id  = Convert. ToInt32(co mmand.Exec uteScalar( ));
  4629  
  4630                             logStr ing += "do d_fragment _raw_data_ id: " + _d od_fragmen t_raw_data _id.ToStri ng() + ";  ";
  4631                         }
  4632                         else
  4633                         {
  4634                             Dts.Ta skResult =  (int)Scri ptResults. Failure;
  4635                             retVal ue = false ;
  4636                         }
  4637                    }                  
  4638                }
  4639                catch (E xception e x)
  4640                {
  4641                    logS tring += " ERROR: Ins ertUpdated ExcelFile  threw exce ption: " +  ex.Messag e.ToString () + "; ";
  4642                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4643                    retV alue = fal se;
  4644                }
  4645  
  4646                // Pause , prevent  file in us e error
  4647                System.T hreading.T hread.Slee p(10000);
  4648  
  4649                return r etValue;
  4650           }
  4651  
  4652           pr ivate void  GenerateU pdatedExce lFile()
  4653           {
  4654                string e dipi = "";
  4655                string k ey = "";
  4656                int firs tDataRow =  2;
  4657                List<str ing> inval idEdipis =  new List< string>();
  4658                List<str ing> inser tedEdipis  = new List <string>() ;
  4659  
  4660                try
  4661                {
  4662                    // S ave off th e input fi le to a ba ckup
  4663                    stri ng backupF ileName =  generateBa ckupExcelF ileName(_i nputExcel. FullName);
  4664  
  4665                    logS tring += " Copying in put file:  " + _input Excel.Full Name + " t o backup f ile: " + b ackupFileN ame + "; " ;
  4666                    File .Copy(_inp utExcel.Fu llName, ba ckupFileNa me, true);
  4667  
  4668                    logS tring += " Get handle  on backup  file; ";
  4669                    // G et a handl e on the b ackup file  for later  processin g
  4670                    _bac kupExcel =  new FileI nfo(backup FileName);
  4671  
  4672                    logS tring += " Remove inv alid rows;  ";
  4673  
  4674                    // I terate thr ough the o utput file . Delete r ows withou t a valid  EDIPI,
  4675                    // a nd insert  records fo r each row  with a va lid edipi,  but only  insert 
  4676                    // o ne record  per edipi.
  4677                    // W hat makes  this more  complicate d is the E MF files.  They have  12 rows
  4678                    // a ssociated  with a sin gle record , but only  one row h as the EDI PI. To han dle
  4679                    // t his, we ne ed to chec k the key  field for  each row,  and see if  that key
  4680                    // i s associat ed with an  EDIPI tha t is in th e ValidEDI PI list.
  4681  
  4682                    usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel))
  4683                    {
  4684                         ExcelWorks heet input ExcelWorks heet = xlP ackage.Wor kbook.Work sheets[1];
  4685  
  4686                         // Skip he ader row;  process ba ckwards so  we can de lete
  4687                         // JPC fil es have a  two-line h eader row;  need to a ccount for  this
  4688  
  4689                         if (inputF ileType ==  FileType. JPC)
  4690                             firstD ataRow = 3 ;
  4691  
  4692                         for (int r owNum = _i nputExcelR owCount; r owNum >= f irstDataRo w; rowNum- -)
  4693                         {
  4694                             // Get  the keyfi eld value
  4695                             key =  inputExcel Worksheet. Cell(rowNu m, _keyFie ldColumn). Value.ToSt ring();
  4696  
  4697                             //Mess ageBox.Sho w("Row: "  + rowNum.T oString()  + "  Key:  " + key);
  4698  
  4699                             // Che ck if that  key is as sociated w ith a vali d edipi
  4700                             if (ke yToEdipi.T ryGetValue (key, out  edipi))
  4701                             {
  4702                                 // edipi = in putExcelWo rksheet.Ce ll(rowNum,  _edipiCol umn).Value .ToString( );
  4703  
  4704                                 // MessageBox .Show("Fou nd EDIPI:  " + edipi) ;
  4705  
  4706                                 if  (!validEd ipiIcns.Co ntainsKey( edipi))
  4707                                 {
  4708                                      //if (ro wNum < 4)
  4709                                      //    lo gString +=  "Deleting  row: " +  inputExcel Worksheet. Cell(rowNu m, 1).Valu e.ToString () + "; ";
  4710  
  4711                                      //Messag eBox.Show( "Not Delet ing row");
  4712  
  4713                                      inputExc elWorkshee t.DeleteRo w(rowNum,  true);
  4714                                      _inputEx celRowCoun t--;
  4715                                 }
  4716                                 el se
  4717                                 {
  4718                                      //Messag eBox.Show( "Deleting  this row") ;
  4719                                 }
  4720                             }
  4721                             else
  4722                             {
  4723                                 // MessageBox .Show("No  EDIPI for  this key") ;
  4724                                 //  Delete th is row
  4725  
  4726                                 in putExcelWo rksheet.De leteRow(ro wNum, true );
  4727                                 _i nputExcelR owCount--;
  4728                             }
  4729                         }
  4730  
  4731                         inputExcel Worksheet. Save();
  4732  
  4733                         //xlPackag e.Save();
  4734                         //xlPackag e.Dispose( );
  4735  
  4736                         //MessageB ox.Show("a fter save: ");
  4737                    }
  4738  
  4739                    // P ause, I th ink there  is a timin g issue
  4740  
  4741                    //Me ssageBox.S how("befor e");
  4742                    Syst em.Threadi ng.Thread. Sleep(1000 0);
  4743                    //Me ssageBox.S how("after ");
  4744                }
  4745                catch (E xception e x)
  4746                {
  4747                    logS tring += " ERROR: Gen erateUpdat edExcelFil e threw ex ception: "  + ex.Mess age.ToStri ng() + ";  ";
  4748                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4749                }
  4750  
  4751                logStrin g += "Comp leted Gene rateUpdate dExcelFile ; ";
  4752           }
  4753  
  4754           pr ivate void  insertDoD _Fragment_ Data_Recei ve_Log(Dat aTable dt)
  4755           {
  4756                logStrin g += "Star ting inser tDoD_Fragm ent_Data_R eceive_Log ; ";
  4757  
  4758                try
  4759                {
  4760                    usin g (SqlBulk Copy sqlBu lkCopy = n ew SqlBulk Copy(_conn ectionStri ngRegistry Database))
  4761                    {
  4762                         sqlBulkCop y.Destinat ionTableNa me = "EFR. DoD_FRAGME NT_DATA_RE CEIVELOG";
  4763  
  4764                         foreach (v ar column  in dt.Colu mns)
  4765                         {
  4766                             logStr ing += col umn.ToStri ng() + "    ";
  4767  
  4768                             sqlBul kCopy.Colu mnMappings .Add(colum n.ToString (), column .ToString( ));
  4769                         }
  4770  
  4771                         sqlBulkCop y.WriteToS erver(dt);
  4772                    }
  4773  
  4774                    logS tring += " Inserted r ecords int o DoD_FRAG MENT_DATA_ RECEIVELOG ; ";
  4775  
  4776                    // N ow update  EFR.DoD_FR AGMENT_DAT A_RECEIVEL OG to make  the missi ng lab_rep ort_date's  null
  4777                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringRegis tryDatabas e))
  4778                    {
  4779                         string sql Cmd = "";
  4780                         sqlCmd +=  "UPDATE [E FR].[DoD_F RAGMENT_DA TA_RECEIVE LOG] ";
  4781                         sqlCmd +=  "SET [LAB_ Report_DAT E] = null  ";
  4782                         sqlCmd +=  "WHERE [LA B_Report_D ATE] = '19 00-01-01 0 0:00:00.00 0' ";
  4783  
  4784                         logString  += sqlCmd  + "; ";
  4785  
  4786                         SqlCommand  cmd = new  SqlComman d(sqlCmd);
  4787                         cmd.Comman dType = Co mmandType. Text;
  4788                         cmd.Connec tion = con nection;
  4789                         connection .Open();
  4790  
  4791                         int numRow s = cmd.Ex ecuteNonQu ery();
  4792  
  4793                         logString  += "Update d: " + num Rows.ToStr ing() + "  in efr.DoD _FRAGMENT_ DATA_RECEI VELOG; ";
  4794                    } 
  4795                }
  4796                catch (E xception e x)
  4797                {
  4798                    logS tring += " ERROR: ins ertDoD_Fra gment_Data _Receive_L og_Entry t hrew excep tion: " +  ex.Message .ToString( ) + "; ";
  4799                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4800                }
  4801  
  4802                logStrin g += "Endi ng insertD oD_Fragmen t_Data_Rec eive_Log;  ";
  4803           }
  4804  
  4805           pr ivate void  setupConn ectionStri ngs()
  4806           {
  4807                logStrin g += "Star ting setup Connection Strings();  ";
  4808  
  4809                _connect ionStringS tagingData base = "Da ta Source= ";
  4810                _connect ionStringS tagingData base += (s tring)Dts. Variables[ "User::Log gingServer "].Value;
  4811                _connect ionStringS tagingData base += "; Initial Ca talog=";
  4812                _connect ionStringS tagingData base += (s tring)Dts. Variables[ "User::Log gingDataba se"].Value ;
  4813                _connect ionStringS tagingData base += "; Integrated  Security= True";
  4814  
  4815                logStrin g += "conn ectionStri ngStagingD atabase: "  + _connec tionString StagingDat abase + ";  ";
  4816  
  4817  
  4818                _connect ionStringR egistryDat abase = "D ata Source =";
  4819                _connect ionStringR egistryDat abase += ( string)Dts .Variables ["User::Re gistryServ er"].Value ;
  4820                _connect ionStringR egistryDat abase += " ;Initial C atalog=";
  4821                _connect ionStringR egistryDat abase += ( string)Dts .Variables ["User::Re gistryData base"].Val ue;
  4822                _connect ionStringR egistryDat abase += " ;Integrate d Security =True";
  4823  
  4824                logStrin g += "conn ectionStri ngRegistry Database:  " + _conne ctionStrin gRegistryD atabase +  "; ";
  4825           }
  4826  
  4827           pr ivate void  loadInput ExcelData( )
  4828           {
  4829                logStrin g += "Star ting loadI nputExcelD ata(); ";
  4830  
  4831                try
  4832                {
  4833                    _inp utExcel =  new FileIn fo(Dts.Var iables["fi leName2"]. Value.ToSt ring());
  4834  
  4835                    logS tring += " Using pack age file:  " + Dts.Va riables["f ileName2"] .Value.ToS tring() +  "; ";
  4836  
  4837                    //}
  4838  
  4839                    inpu tFileName  = _inputEx cel.Name;
  4840  
  4841                    usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel))
  4842                    {
  4843                         _inputExce lWorksheet  = xlPacka ge.Workboo k.Workshee ts[1];
  4844  
  4845                         // Find th e number o f columns  in the wor ksheet. Co mpensate f or possibl e blank va lues in th e header
  4846                        
  4847                         int blankC ols = 0;
  4848  
  4849                         while (_in putExcelWo rksheet.Ce ll(1, _inp utExcelCol umnCount). Value.ToSt ring().Tri m() != ""  || blankCo ls < 5)
  4850                         {
  4851                             _input ExcelColum nCount++;
  4852  
  4853                             if (_i nputExcelW orksheet.C ell(1, _in putExcelCo lumnCount) .Value.ToS tring().Tr im() == "" )
  4854                             {
  4855                                 bl ankCols++;
  4856                             }
  4857                             else i f (blankCo ls > 0)
  4858                             {
  4859                                 bl ankCols =  0;
  4860                             }
  4861                         }
  4862                         _inputExce lColumnCou nt = _inpu tExcelColu mnCount -  5;
  4863                         logString  += "Column s in input ExcelData  file: " +  _inputExce lColumnCou nt.ToStrin g() + "; " ;
  4864  
  4865                         if (_input ExcelColum nCount ==  0)
  4866                         {
  4867                             logStr ing += "ER ROR: No Co lumns in i nputExcelD ata file;  ";
  4868                             Dts.Ta skResult =  (int)Scri ptResults. Failure;
  4869                         }
  4870                    }
  4871                }
  4872                catch (E xception e x)
  4873                {
  4874                    logS tring += " ERROR: loa dInputExce lData thre w exceptio n: " + ex. Message.To String() +  "; ";
  4875  
  4876                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4877                }
  4878           }
  4879  
  4880           pr ivate void  setRawEdi pisFromInp ut()
  4881           {
  4882                logStrin g += "Star ting setRa wEdipisFro mInput();  ";
  4883  
  4884                try
  4885                {
  4886                    stri ng edipi =  "";
  4887                    stri ng key = " ";
  4888                    int  notFoundCo unt = 0;
  4889                    int  rowNum = 1 ;
  4890                    bool  blankRow  = true;
  4891  
  4892                    // D on't proce ss header  row, compe nsate for  possible b lank rows
  4893                    whil e (notFoun dCount < 1 0)
  4894                    {
  4895                         // See if  this row i s blank
  4896                         blankRow =  true;
  4897                         for (int c  = 1; c <=  _inputExc elColumnCo unt; c++)
  4898                         {
  4899                             if (_i nputExcelW orksheet.C ell(rowNum ,c).ToStri ng().Trim( ) != "")
  4900                             {
  4901                                 bl ankRow = f alse;
  4902                                 br eak;
  4903                             }
  4904                         }
  4905  
  4906                         if (blankR ow)
  4907                         {
  4908                             notFou ndCount++;
  4909                             rowNum ++;
  4910                             contin ue;
  4911                         }
  4912                         else if (n otFoundCou nt != 0)
  4913                         {
  4914                             notFou ndCount =  0;
  4915                         }
  4916  
  4917                         // Not a b lank row,  so process
  4918                         edipi = _i nputExcelW orksheet.C ell(rowNum ,_edipiCol umn).ToStr ing().Trim ();
  4919                         key = _inp utExcelWor ksheet.Cel l(rowNum,_ keyFieldCo lumn).ToSt ring().Tri m();
  4920  
  4921                         // If we'v e already  checked th e edipi, n o need to  revalidate .
  4922                         if (!rawEd ipis.Conta ins(edipi)  && edipi. Trim().Len gth > 0 &&  edipi.ToL ower() !=  efrDoDFrag EdipiColum nName.ToLo wer())
  4923                         {
  4924                             rawEdi pis.Add(ed ipi);
  4925                             keyToE dipi.Add(k ey, edipi) ;
  4926                             //rawK eyFields.A dd(_inputE xcelWorksh eet.Cell(r owNum,_key FieldColum n).ToStrin g().Trim() );
  4927                         }
  4928  
  4929                         rowNum++;
  4930                    }
  4931  
  4932                    _inp utExcelRow Count = ro wNum - 11;
  4933  
  4934                    if ( rawEdipis. Count > 0)
  4935                    {
  4936                         logString  += "rawEdi pis: " + r awEdipis.C ount.ToStr ing() + ";  ";
  4937                         logString  += "RowCou nt: " + _i nputExcelR owCount.To String() +  "; ";
  4938                    }
  4939                    else
  4940                    {
  4941                         logString  += "ERROR:  No rawEdi pis found.  ";
  4942                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  4943                    }
  4944                }
  4945                catch (E xception e x)
  4946                {
  4947                    logS tring += " ERROR: set RawEdipisF romInput t hrew excep tion: " +  ex.Message .ToString( ) + "; ";
  4948                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  4949                }
  4950           }
  4951  
  4952           pr ivate void  setColumn s()
  4953           {
  4954                logStrin g += "Star ting setCo lumns(); " ;
  4955  
  4956                string c olumnName  = "";
  4957  
  4958                try
  4959                {
  4960                    // E ach lab us es a diffe rent strin g for the  filename.                  
  4961                    if ( _inputExce l.Name.ToU pper().Con tains("JPC "))
  4962                    {
  4963                         inputFileT ype = File Type.JPC;
  4964                         efrDoDFrag LabReportC olumnName  = efrDoDFr agJpcLabDa teField;
  4965                         _keyFieldC olumnName  = efrDoDFr agJpcKeyFi eld;
  4966                    }
  4967                    else  if (_inpu tExcel.Nam e.ToUpper( ).Contains ("EMF"))
  4968                    {
  4969                         inputFileT ype = File Type.EMF;
  4970                         efrDoDFrag LabReportC olumnName  = efrDoDFr agEmfLabDa teField; / / "Lab Rep ort Date";
  4971                         _keyFieldC olumnName  = efrDoDFr agEmfKeyFi eld;
  4972                    }
  4973                    else  if (_inpu tExcel.Nam e.ToUpper( ).Contains ("USAF"))
  4974                    {
  4975                         inputFileT ype = File Type.USAF;
  4976                         efrDoDFrag LabReportC olumnName  = efrDoDFr agUsafLabD ateField;
  4977                         _keyFieldC olumnName  = efrDoDFr agUsafKeyF ield;
  4978                    }
  4979                    else
  4980                    {
  4981                         logString  += "ERROR:  Could not  determine  input fil e type due  to filena me issue;  ";
  4982                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  4983                    }
  4984  
  4985                    //Me ssageBox.S how("EfrDo dFraglabRe portcolumn name: " +  efrDoDFrag LabReportC olumnName) ;
  4986  
  4987                    for  (int c = 1 ; c <= _in putExcelCo lumnCount;  c++)
  4988                    {
  4989                         columnName  = _inputE xcelWorksh eet.Cell(1 , c).Value .ToString( ).ToLower( );
  4990                        
  4991                         //MessageB ox.Show("C olumn: " +  columnNam e);
  4992  
  4993                         if (column Name == ef rDoDFragEd ipiColumnN ame.ToLowe r())
  4994                         {
  4995                             _edipi Column = c ;
  4996                         }
  4997                         else if (c olumnName  == efrDoDF ragLabRepo rtColumnNa me.ToLower ())
  4998                         {
  4999                             _labRe portDateCo lumn = c;
  5000                         }
  5001                         else if (c olumnName  == efrDoDF ragSsnColu mnName.ToL ower())
  5002                         {
  5003                             _ssnCo lumn = c;
  5004                         }
  5005                         else if (c olumnName  == _keyFie ldColumnNa me.ToLower ())
  5006                         {
  5007                             _keyFi eldColumn  = c;
  5008                         }
  5009                    }
  5010  
  5011                    if ( _edipiColu mn > -1)
  5012                    {
  5013                         logString  += "EDIPI  column: "  + _edipiCo lumn.ToStr ing() + ";  ";
  5014                    }
  5015                    else
  5016                    {
  5017                         logString  += "ERROR:  EDIPI col umn not fo und;";
  5018                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  5019                    }
  5020  
  5021                    if ( _labReport DateColumn  > -1)
  5022                    {
  5023                         logString  += "LabRep ortDate co lumn: " +  _labReport DateColumn .ToString( ) + "; ";
  5024                    }
  5025                    else
  5026                    {
  5027                         logString  += "ERROR:  LabReport Date colum n not foun d;";
  5028                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  5029                    }
  5030  
  5031                    if ( _ssnColumn  > -1)
  5032                    {
  5033                         logString  += "ssn co lumn: " +  _ssnColumn .ToString( ) + "; ";
  5034                    }
  5035                    else
  5036                    {
  5037                         logString  += "WARNIN G: ssn col umn not fo und;"; //  this is no t an error
  5038                    }
  5039                }
  5040                catch (E xception e x)
  5041                {
  5042                    logS tring += " ERROR: set EdipiColum n threw ex ception: "  + ex.Mess age.ToStri ng() + ";  ";
  5043                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  5044                }
  5045           }
  5046  
  5047           pr ivate void  executeCR SMVIPackag e()
  5048           {
  5049                // Run s cripttask
  5050                // http: //benefic. net/run-ss is-child-p ackages-wi th-script- task/ 
  5051                logStrin g += "Star t running  CRS_MVI sc ript task;  ";
  5052  
  5053                try
  5054                {
  5055                    //St ring packa geLocation  = Dts.Con nections[e frDoDFragC rsMviEtlNa me].Connec tionString ;
  5056                    Stri ng package Location =  efrDoDFra gCrsMviEtl Name;
  5057                    Pack age oPkg;
  5058                    Micr osoft.SqlS erver.Dts. Runtime.Ap plication  oApp = new  Microsoft .SqlServer .Dts.Runti me.Applica tion();
  5059                    Chil dEventList ener event Listener =  new Child EventListe ner(Dts);
  5060  
  5061                    // L oad child  package.
  5062                    // L oadPackage  = file, L oadFromDts Server = p ackage sto re, or Loa dFromSqlSe rver = SQL  package s ources.
  5063                    //oP kg = oApp. LoadPackag e(packageL ocation, e ventListen er);
  5064                    oPkg  = oApp.Lo adFromSqlS erver(pack ageLocatio n, (string )Dts.Varia bles["User ::Registry Server"].V alue, null , null, nu ll);
  5065  
  5066                    // S et child p ackage var iables.
  5067                    // N OTE: Packa ge configu ration var iables are  set at pa ckage exec ution time , so make  sure the v ariables
  5068                    //        you'r e setting  here aren' t going to  be overwr itten by a  package c onfigurati on.
  5069  
  5070                    //Wr iteVariabl e("User::R unMode", " Main", oPk g);
  5071                    //Pk gVarsSet(o Pkg, "User ::loadYear ,User::loa dMonth");
  5072  
  5073                    // E xecute chi ld package .
  5074                    Dts. TaskResult  = (int)oP kg.Execute (null, nul l, eventLi stener, nu ll, null);
  5075  
  5076                    if ( Dts.TaskRe sult == (i nt)DTSExec Result.Fai lure)
  5077                    {
  5078                         logString  += "ERROR:  Failure r unning chi ld package . ";
  5079                    }
  5080                }
  5081                catch (E xception e x)
  5082                {
  5083                    logS tring += " ERROR: Exc eption in  executeCRS MVIPackage (): " + ex .Message.T oString()  + "; ";
  5084                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  5085                }
  5086  
  5087                logStrin g += "Comp leted runn ing CRS_MV I script t ask; ";
  5088           }
  5089  
  5090           pr ivate stri ng generat eBackupExc elFileName (string in putExcelFi le)
  5091           {
  5092                string n ewExcelFil eName = "" ;
  5093  
  5094                try
  5095                {
  5096                    stri ng filePat hName = in putExcelFi le;
  5097                    newE xcelFileNa me = Path. GetDirecto ryName(fil ePathName)  +
  5098                         "\\" +
  5099                         Path.GetFi leNameWith outExtensi on(filePat hName) + " _original_ " +
  5100                         DateTime.N ow.ToStrin g("yyyyMMd dHHmmss")  + // "_Bac kup" +
  5101                       P ath.GetExt ension(fil ePathName) ;
  5102  
  5103                    int  fileIncrem ent = 1;
  5104                    whil e (File.Ex ists(newEx celFileNam e))
  5105                    {
  5106                         newExcelFi leName = P ath.GetDir ectoryName (filePathN ame) +
  5107                         "\\" +
  5108                         Path.GetFi leNameWith outExtensi on(filePat hName) + " _original_ " +
  5109                         DateTime.N ow.ToStrin g("yyyyMMd dHHmmss")  + "_" +
  5110                         fileIncrem ent.ToStri ng() +
  5111                       P ath.GetExt ension(fil ePathName) ;
  5112  
  5113                         fileIncrem ent++;
  5114                    }
  5115  
  5116                    logS tring += " Source Fil e: " + inp utExcelFil e + "; " +  "Backup F ile: " + n ewExcelFil eName + ";  ";
  5117                }
  5118                catch (E xception e x)
  5119                {
  5120                    logS tring += " ERROR: gen erateOutpu tExcelFile Name threw  exception : " + ex.M essage.ToS tring() +  "; ";
  5121                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  5122                }
  5123  
  5124                return n ewExcelFil eName;
  5125           }
  5126  
  5127           pr ivate bool  retrieveD atabaseEdi pis()
  5128           {
  5129                bool ret Value = tr ue;
  5130  
  5131                try
  5132                {
  5133                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringStagi ngDatabase ))
  5134                    {
  5135                         string sql Cmd = "";
  5136                         sqlCmd +=  "select Pa tient_Edip i, MVI_PAT IENT_ICN_N I_DOD from  etl_crs_m vi_patient  ";
  5137                         sqlCmd +=  "where MVI _Response  = 'OK' ";
  5138                         sqlCmd +=  "and creat edby = 'Do DFragETL'  ";
  5139                         sqlCmd +=  "and RUN_I DENTIFIER  = '" + _gu idId.ToStr ing() + "'  ";
  5140                         sqlCmd +=  "and MVI_P ATIENT_ICN _NI_DOD is  not null" ;
  5141                         logString  += sqlCmd  + "; ";
  5142  
  5143                         SqlCommand  cmd = new  SqlComman d(sqlCmd);
  5144                         cmd.Comman dType = Co mmandType. Text;
  5145                         cmd.Connec tion = con nection;
  5146                         connection .Open();
  5147  
  5148                         SqlDataRea der reader  = cmd.Exe cuteReader ();
  5149  
  5150                         while (rea der.Read() )
  5151                         {
  5152                             validE dipiIcns.A dd(reader. GetString( reader.Get Ordinal("P atient_Edi pi")), rea der.GetStr ing(reader .GetOrdina l("MVI_PAT IENT_ICN_N I_DOD")));
  5153                         }
  5154  
  5155                         logString  += "# vali d edipis:  " + validE dipiIcns.C ount.ToStr ing() + ";  ";
  5156                    }
  5157  
  5158                    if ( validEdipi Icns.Count  == 0)
  5159                    {
  5160                         logString  += "ERROR:  NO VALID  EDIPIS; ";
  5161                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  5162                         retValue =  false;
  5163                    }
  5164                }
  5165                catch (E xception e x)
  5166                {
  5167                    logS tring += " ERROR: ret rieveDatab aseEdipis  threw exce ption: " +  ex.Messag e.ToString () + "; ";
  5168                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  5169                    retV alue = fal se;
  5170                }
  5171  
  5172                return r etValue;
  5173           }
  5174  
  5175           pr ivate void  insertRaw EdipisInto Database()
  5176           {
  5177                logStrin g += "Star ting inser tRawEdipis IntoDataba se(); ";
  5178  
  5179                string s ql = "";
  5180                sql += " INSERT INT O ETL_CRS_ MVI_Patien t ";
  5181                sql += " ([PATIENT_ EDIPI],[RU N_IDENTIFI ER],";
  5182                sql += " [CREATED], [CREATEDBY ],[UPDATED ],[UPDATED BY]";
  5183                sql += " ) ";
  5184                sql += " VALUES (@e dipi, ";
  5185                sql += " '" + _guid Id.ToStrin g() + "',  getdate(),  'DoDFragE TL', getda te(), 'DoD FragETL')" ;
  5186  
  5187                logStrin g += "Inse rt edipis  sql: " + s ql + "; ";
  5188                int coun ter = 0;
  5189  
  5190                try
  5191                {
  5192                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringStagi ngDatabase ))
  5193                    {
  5194  
  5195                         SqlCommand  cmd = new  SqlComman d(sql);
  5196                         cmd.Comman dType = Co mmandType. Text;
  5197                         cmd.Connec tion = con nection;
  5198  
  5199                         foreach (s tring edip i in rawEd ipis)
  5200                         {
  5201                             cmd.Pa rameters.C lear();
  5202  
  5203                             cmd.Pa rameters.A ddWithValu e("@edipi" , edipi);
  5204  
  5205                             connec tion.Open( );
  5206                             cmd.Ex ecuteNonQu ery();
  5207                             connec tion.Close ();
  5208  
  5209                             counte r++;
  5210                         }
  5211                    }
  5212  
  5213                    logS tring += " Finished i nserting e dipis: " +  counter.T oString()  + "; ";
  5214                }
  5215                catch (E xception e )
  5216                {
  5217                    logS tring += " ERROR: Exc eption wri ting edipi s to the d atabase: "  + e.Inner Exception. ToString() ;
  5218                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  5219                }
  5220           }
  5221  
  5222           pr ivate void  setConfig Values()
  5223           {
  5224                logStrin g += "Star ting setCo nfigValues (); ";
  5225  
  5226                try
  5227                {
  5228                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringRegis tryDatabas e))
  5229                    {
  5230                         string que ryString =  "select [ NAME], [va lue] from  CRS_SETTIN GS where [ NAME] like  ('EfrDoDF rag%')";
  5231                         DataTable  results =  new DataTa ble();
  5232  
  5233                         using (Sql Command co mmand = ne w SqlComma nd(querySt ring, conn ection))
  5234                         {
  5235                             using  (SqlDataAd apter data Adapter =  new SqlDat aAdapter(c ommand))
  5236                             {
  5237                                 da taAdapter. Fill(resul ts);
  5238  
  5239                                 fo reach (Dat aRow dr in  results.R ows)
  5240                                 {
  5241                                      if (dr[0 ] != null)
  5242                                      {
  5243                                          if ( dr[0].ToSt ring() ==  "EfrDoDFra gTestMode"  && dr[1]  != null)
  5244                                          {
  5245                                               if (dr[1]. ToString() .Trim().To Lower() ==  "true")
  5246                                                   efrDoD FragTestMo de = true;
  5247                                          }
  5248                                          //el se if (dr[ 0].ToStrin g() == "Ef rDoDFragTe stFile" &&  dr[1] !=  null)
  5249                                          //{
  5250                                          //     efrDoDFr agTestFile  = dr[1].T oString();
  5251                                          //}
  5252                                          if ( dr[0].ToSt ring() ==  "EfrDoDFra gLogAllTra nsactions"  && dr[1]  != null)
  5253                                          {
  5254                                               if (dr[1]. ToString() .Trim().To Lower() ==  "true")
  5255                                                   efrDoD FragLogAll Transactio ns = true;
  5256                                          }
  5257                                          else  if (dr[0] .ToString( ) == "EfrD oDFragCrsM viEtlName"  && dr[1]  != null)
  5258                                          {
  5259                                               efrDoDFrag CrsMviEtlN ame = dr[1 ].ToString ();
  5260                                          }
  5261                                          else  if (dr[0] .ToString( ) == "EfrD oDFragEdip iColumnNam e" && dr[1 ] != null)
  5262                                          {
  5263                                               efrDoDFrag EdipiColum nName = dr [1].ToStri ng();
  5264                                          }
  5265                                          else  if (dr[0] .ToString( ) == "EfrD oDFragLabR eportColum nName" &&  dr[1] != n ull)
  5266                                          {
  5267                                               efrDoDFrag LabReportC olumnName  = dr[1].To String();
  5268                                          }
  5269                                          else  if (dr[0] .ToString( ) == "EfrD oDFragSsnC olumnName"  && dr[1]  != null)
  5270                                          {
  5271                                               efrDoDFrag SsnColumnN ame = dr[1 ].ToString ();
  5272                                          }
  5273                                          else  if (dr[0] .ToString( ) == "EfrD oDFragArch iveFolder"  && dr[1]  != null)
  5274                                          {
  5275                                               efrDoDFrag ArchiveFol der = dr[1 ].ToString ();
  5276                                          }
  5277                                          else  if (dr[0] .ToString( ) == "EfrD oDFragJpcK eyField" & & dr[1] !=  null)
  5278                                          {
  5279                                               efrDoDFrag JpcKeyFiel d = dr[1]. ToString() ;
  5280                                          }
  5281                                          else  if (dr[0] .ToString( ) == "EfrD oDFragUsaf KeyField"  && dr[1] ! = null)
  5282                                          {
  5283                                               efrDoDFrag UsafKeyFie ld = dr[1] .ToString( );
  5284                                          }
  5285                                          else  if (dr[0] .ToString( ) == "EfrD oDFragEmfK eyField" & & dr[1] !=  null)
  5286                                          {
  5287                                               efrDoDFrag EmfKeyFiel d = dr[1]. ToString() ;
  5288                                          }
  5289                                          else  if (dr[0] .ToString( ) == "EfrD oDFragJpcL abDateFiel d" && dr[1 ] != null)
  5290                                          {
  5291                                               efrDoDFrag JpcLabDate Field = dr [1].ToStri ng();
  5292                                          }
  5293                                          else  if (dr[0] .ToString( ) == "EfrD oDFragUsaf LabDateFie ld" && dr[ 1] != null )
  5294                                          {
  5295                                               efrDoDFrag UsafLabDat eField = d r[1].ToStr ing();
  5296                                          }
  5297                                          else  if (dr[0] .ToString( ) == "EfrD oDFragEmfL abDateFiel d" && dr[1 ] != null)
  5298                                          {
  5299                                               efrDoDFrag EmfLabDate Field = dr [1].ToStri ng();
  5300                                          }
  5301                                      }
  5302                                 }
  5303                             }
  5304                         }
  5305                    }
  5306  
  5307                    //lo gString +=  "EfrDoDFr agTestMode : " + efrD oDFragTest Mode + ";  ";
  5308                    //lo gString +=  "EfrDoDFr agTestFold er: " + ef rDoDFragTe stFile + " ; ";
  5309                    logS tring += " Dts.Variab les[User:: fileName2] .Value: "  + Dts.Vari ables["Use r::fileNam e2"].Value .ToString( ) + "; ";
  5310                    logS tring += " EfrDoDFrag LogAllTran sactions:  " + efrDoD FragLogAll Transactio ns + "; ";
  5311                    logS tring += " EfrDoDFrag CrsMviEtlN ame: " + e frDoDFragC rsMviEtlNa me + "; ";
  5312                    logS tring += " EfrDoDFrag EdipiColum nName: " +  efrDoDFra gEdipiColu mnName + " ; ";
  5313                    logS tring += " efrDoDFrag LabReportC olumnName:  " + efrDo DFragLabRe portColumn Name + ";  ";
  5314                    logS tring += " efrDoDFrag SsnColumnN ame: " + e frDoDFragS snColumnNa me + "; ";
  5315                    logS tring += " efrDoDFrag ArchiveFol der: " + e frDoDFragA rchiveFold er + "; ";
  5316                    logS tring += " EfrDoDFrag JpcKeyFiel d: " + efr DoDFragJpc KeyField +  "; ";
  5317                    logS tring += " EfrDoDFrag UsafKeyFie ld: " + ef rDoDFragUs afKeyField  + "; ";
  5318                    logS tring += " EfrDoDFrag EmfKeyFiel d: " + efr DoDFragEmf KeyField +  "; ";
  5319                    logS tring += " EfrDoDFrag JpcLabDate Field: " +  efrDoDFra gJpcLabDat eField + " ; ";
  5320                    logS tring += " EfrDoDFrag UsafLabDat eField: "  + efrDoDFr agUsafLabD ateField +  "; ";
  5321                    logS tring += " EfrDoDFrag EmfLabDate Field: " +  efrDoDFra gEmfLabDat eField + " ; ";
  5322  
  5323                    //Dt s.Variable s["RunIden tifier"].V alue = gui dId.ToStri ng();
  5324  
  5325                    logS tring += " guidId: "  + _guidId. ToString()  + "; ";
  5326                }
  5327                catch (E xception e )
  5328                {
  5329                    logS tring += " Error gett ing config  values: "  + e.Messa ge;
  5330                }
  5331           }
  5332  
  5333           pr ivate void  writeLog( )
  5334           {
  5335                try
  5336                {
  5337                    usin g (SqlConn ection con nection =  new SqlCon nection(_c onnectionS tringStagi ngDatabase ))
  5338                    {
  5339                         SqlCommand  cmd = new  SqlComman d("INSERT  INTO ETL_E rrorLogs ( PackageID,  ProcessID , ErrorNum ber, Error Descriptio n, ErrorTi me) VALUES  (@Package ID, @Proce ssID, @Err orNumber,  @ErrorDesc ription, g etdate())" );
  5340                         cmd.Comman dType = Co mmandType. Text;
  5341                         cmd.Connec tion = con nection;
  5342                         cmd.Parame ters.AddWi thValue("@ PackageID" , 0);
  5343                         cmd.Parame ters.AddWi thValue("@ ProcessID" , 0);
  5344                         cmd.Parame ters.AddWi thValue("@ ErrorNumbe r", 0);
  5345                         cmd.Parame ters.AddWi thValue("@ ErrorDescr iption", " DoD Fragme nt ETL: "  + logStrin g);
  5346                         connection .Open();
  5347                         cmd.Execut eNonQuery( );
  5348                    }
  5349  
  5350                    logS tring = "" ;
  5351                }
  5352                catch (E xception e )
  5353                {
  5354                    // n ot much to  do if we  can't writ e to the d atabase .. .
  5355                }
  5356           }
  5357       }
  5358  
  5359       enum F ileType
  5360       {
  5361           JP C,
  5362           US AF,
  5363           EM F,
  5364           UN K
  5365       }
  5366  
  5367  
  5368       #regio n ChildEve ntListener  - A custo m event li stener to  re-throw c hild packa ge events  in the mas ter.
  5369       ////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////
  5370       // Chi ldEventLis tener
  5371       //   A  custom Ev entListene r that re- throws chi ld package  events in  the maste r package.
  5372       //   U seful when  running a  master pa ckage for  identifyin g why a ch ild packag e failed i n the erro r
  5373       //   m essages vi ewable in  visual stu dio, SQL a gent job h istory log  file view er, etc.
  5374       //
  5375       class  ChildEvent Listener :  DefaultEv ents
  5376       {
  5377           //  The const ructor
  5378           //  Takes a d ts as an a rgument so  errors ca n be re-th rown again st the cur rently run ning dts.
  5379           Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.S criptObjec tModel dts ;
  5380           pu blic Child EventListe ner(Micros oft.SqlSer ver.Dts.Ta sks.Script Task.Scrip tObjectMod el dts)
  5381           {
  5382                this.dts  = dts;
  5383           }
  5384  
  5385           pu blic overr ide bool O nError(Dts Object sou rce, int e rrorCode,  string sub Component,  string de scription
  5386                                               , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error)
  5387           {
  5388                dts.Even ts.FireErr or(errorCo de, subCom ponent, de scription,  helpFile,  helpConte xt);
  5389                // Conti nue execut ing the ta sk even th ough an er ror was tr iggered.
  5390                return f alse;
  5391           }
  5392  
  5393           pu blic overr ide void O nInformati on(DtsObje ct source,  int infor mationCode , string s ubComponen t
  5394                                                   , stri ng descrip tion, stri ng helpFil e, int hel pContext
  5395                                                   , stri ng idofInt erfaceWith Error, ref  bool fire Again)
  5396           {
  5397                dts.Even ts.FireInf ormation(i nformation Code, subC omponent,  descriptio n, helpFil e, helpCon text, ref  fireAgain) ;
  5398           }
  5399  
  5400           pu blic overr ide void O nWarning(D tsObject s ource, int  warningCo de, string  subCompon ent, strin g descript ion
  5401                                               , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error)
  5402           {
  5403                dts.Even ts.FireWar ning(warni ngCode, su bComponent , descript ion, helpF ile, helpC ontext);
  5404           }
  5405       }
  5406       #endre gion //Chi ldEventLis tener - A  custom eve nt listene r to re-th row child  package ev ents in th e master.
  5407   }]]></Proj ectItem><P rojectItem  Name="\ex celworkshe etview.cs" >
  5408   <![CDATA[/
  5409    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  5410    * 
  5411    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  5412    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  5413    * 
  5414    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  5415    * mailto: dr.john.tu nnicliffe@ btinternet .com
  5416    * All rig hts reserv ed.
  5417    * 
  5418    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  5419    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  5420    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  5421    * 
  5422    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  5423    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  5424    * 
  5425    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  5426    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  5427    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  5428    * 
  5429    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  5430    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  5431    */
  5432  
  5433   /*
  5434    * Code ch ange notes :
  5435    * 
  5436    * Author                                                             Change                                               Date
  5437    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5438    * John Tu nnicliffe               Initial  Release          01-J an-2007
  5439    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5440    */
  5441   using Syst em;
  5442   using Syst em.Xml;
  5443  
  5444   namespace  OfficeOpen Xml
  5445   {
  5446       /// <s ummary>
  5447       /// Re presents t he differe nt view st ates of th e workshee t
  5448       /// </ summary>
  5449       public  class Exc elWorkshee tView
  5450       {
  5451           //  TODO: imp lement the  different  view stat es of the  worksheet
  5452           pr ivate Exce lWorksheet  _xlWorksh eet;
  5453           pr ivate XmlE lement _sh eetView;
  5454  
  5455           #r egion Exce lWorksheet View Const ructor
  5456           // / <summary >
  5457           // / Creates  a new Exce lWorksheet View which  provides  access to  all the 
  5458           // / view sta tes of the  worksheet .
  5459           // / </summar y>
  5460           // / <param n ame="xlWor ksheet"></ param>
  5461           pr otected in ternal Exc elWorkshee tView(Exce lWorksheet  xlWorkshe et)
  5462           {
  5463                _xlWorks heet = xlW orksheet;
  5464           }
  5465           #e ndregion
  5466  
  5467           #r egion Shee tViewEleme nt
  5468           // / <summary >
  5469           // / Returns  a referenc e to the s heetView e lement
  5470           // / </summar y>
  5471           pr otected in ternal Xml Element Sh eetViewEle ment
  5472           {
  5473                get
  5474                {
  5475                    if ( _sheetView  == null)
  5476                    {
  5477                         _sheetView  = (XmlEle ment)_xlWo rksheet.Wo rksheetXml .SelectSin gleNode("/ /d:sheetVi ew", _xlWo rksheet.Na meSpaceMan ager);
  5478                    }
  5479                    retu rn _sheetV iew;
  5480                }
  5481           }
  5482           #e ndregion
  5483  
  5484           #r egion TabS elected
  5485           // / <summary >
  5486           // / Indicate s if the w orksheet i s selected  within th e workbook
  5487           // / </summar y>
  5488           pu blic bool  TabSelecte d
  5489           {
  5490                get
  5491                {
  5492                    bool  retValue  = false;
  5493                    stri ng ret = S heetViewEl ement.GetA ttribute(" tabSelecte d");
  5494                    if ( ret == "1" ) retValue  = true;
  5495                    retu rn retValu e;
  5496                }
  5497                set
  5498                {
  5499                    // t he sheetVi ew node sh ould alway s exist, s o no need  to create
  5500                    if ( value)
  5501                    {
  5502                         // ensure  no other w orksheet h as its tab Selected a ttribute s et to 1
  5503                         foreach (E xcelWorksh eet sheet  in _xlWork sheet.xlPa ckage.Work book.Works heets)
  5504                             sheet. View.TabSe lected = f alse;
  5505  
  5506                         SheetViewE lement.Set Attribute( "tabSelect ed", "1");
  5507                    }
  5508                    else
  5509                         SheetViewE lement.Set Attribute( "tabSelect ed", "0");
  5510                }
  5511           }
  5512           #e ndregion
  5513  
  5514           #r egion Page LayoutView
  5515           // / <summary >
  5516           // / Sets the  view mode  of the wo rksheet to  pageLayou t
  5517           // / </summar y>
  5518           pu blic bool  PageLayout View
  5519           {
  5520                get
  5521                {
  5522                    bool  retValue  = false;
  5523                    stri ng ret = S heetViewEl ement.GetA ttribute(" view");
  5524                    if ( ret == "pa geLayout")  retValue  = true;
  5525                    retu rn retValu e;
  5526                }
  5527                set
  5528                {
  5529                    if ( value)
  5530                         SheetViewE lement.Set Attribute( "view", "p ageLayout" );
  5531                    else
  5532                         SheetViewE lement.Rem oveAttribu te("view") ;
  5533                }
  5534           }
  5535           #e ndregion
  5536       }
  5537   }]]></Proj ectItem><P rojectItem  Name="\ex celrow.cs" >
  5538   <![CDATA[/
  5539    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  5540    * 
  5541    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  5542    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  5543    * 
  5544    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  5545    * mailto: dr.john.tu nnicliffe@ btinternet .com
  5546    * All rig hts reserv ed.
  5547    * 
  5548    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  5549    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  5550    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  5551    * 
  5552    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  5553    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  5554    * 
  5555    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  5556    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  5557    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  5558    * 
  5559    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  5560    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  5561    */
  5562  
  5563   /*
  5564    * Code ch ange notes :
  5565    * 
  5566    * Author                                                             Change                                               Date
  5567    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5568    * John Tu nnicliffe               Initial  Release          01-J an-2007
  5569    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5570    */
  5571   using Syst em;
  5572   using Syst em.Xml;
  5573  
  5574   namespace  OfficeOpen Xml
  5575   {
  5576       /// <s ummary>
  5577       /// Re presents a n individu al row in  the spread sheet.
  5578       /// </ summary>
  5579       public  class Exc elRow
  5580       {
  5581           pr ivate Exce lWorksheet  _xlWorksh eet;
  5582           pr ivate XmlE lement _ro wElement =  null;
  5583  
  5584           #r egion Exce lRow Const ructor
  5585           // / <summary >
  5586           // / Creates  a new inst ance of th e ExcelRow  class. 
  5587           // / For inte rnal use o nly!
  5588           // / </summar y>
  5589           // / <param n ame="Works heet">The  parent wor ksheet</pa ram>
  5590           // / <param n ame="row"> The row nu mber</para m>
  5591           pr otected in ternal Exc elRow(Exce lWorksheet  Worksheet , int row)
  5592           {
  5593                _xlWorks heet = Wor ksheet;
  5594  
  5595                //  Sear ch for the  existing  row
  5596                _rowElem ent = (Xml Element)Wo rksheet.Wo rksheetXml .SelectSin gleNode(st ring.Forma t("//d:she etData/d:r ow[@r='{0} ']", row),  _xlWorksh eet.NameSp aceManager );
  5597                if (_row Element ==  null)
  5598                {
  5599                    // W e didn't f ind the ro w, so add  a new row  element.
  5600                    // H OWEVER we  MUST inser t new row  in the cor rect posit ion - othe rwise Exce l 2007 wil l complain !!!
  5601                    _row Element =  Worksheet. WorksheetX ml.CreateE lement("ro w", ExcelP ackage.sch emaMain);
  5602                    _row Element.Se tAttribute ("r", row. ToString() );
  5603  
  5604                    // n ow work ou t where to  insert th e new row
  5605                    XmlN ode sheetD ataNode =  Worksheet. WorksheetX ml.SelectS ingleNode( "//d:sheet Data", _xl Worksheet. NameSpaceM anager);
  5606                    if ( sheetDataN ode != nul l)
  5607                    {
  5608                         XmlNode fo llowingRow  = null;
  5609                         foreach (X mlNode cur rentRow in  Worksheet .Worksheet Xml.Select Nodes("//d :sheetData /d:row", _ xlWorkshee t.NameSpac eManager))
  5610                         {
  5611                             int ro wFound = C onvert.ToI nt32(curre ntRow.Attr ibutes.Get NamedItem( "r").Value );
  5612                             if (ro wFound > r ow)
  5613                             {
  5614                                 fo llowingRow  = current Row;
  5615                                 br eak;
  5616                             }
  5617                         }
  5618                         if (follow ingRow ==  null)
  5619                             // no  data rows  exist, so  just add r ow
  5620                             sheetD ataNode.Ap pendChild( _rowElemen t);
  5621                         else
  5622                             sheetD ataNode.In sertBefore (_rowEleme nt, follow ingRow);
  5623                    }
  5624                }
  5625           }
  5626           #e ndregion
  5627  
  5628           // / <summary >
  5629           // / Provides  access to  the node  representi ng the row .
  5630           // / For inte rnal use o nly!
  5631           // / </summar y>
  5632           pr otected in ternal Xml Node Node  { get { re turn (_row Element);  } }
  5633  
  5634           #r egion Exce lRow Hidde n
  5635           // / <summary >
  5636           // / Allows t he row to  be hidden  in the wor ksheet
  5637           // / </summar y>
  5638           pu blic bool  Hidden
  5639           {
  5640                get
  5641                {
  5642                    bool  retValue  = false;
  5643                    stri ng hidden  = _rowElem ent.GetAtt ribute("hi dden", "1" );
  5644                    if ( hidden ==  "1") retVa lue = true ;
  5645                    retu rn (retVal ue);
  5646                }
  5647                set
  5648                {
  5649                    if ( value)
  5650                         _rowElemen t.SetAttri bute("hidd en", "1");
  5651                    else
  5652                         _rowElemen t.SetAttri bute("hidd en", "0");
  5653                }
  5654           }
  5655           #e ndregion
  5656  
  5657           #r egion Exce lRow Heigh t
  5658           // / <summary >
  5659           // / Sets the  height of  the row
  5660           // / </summar y>
  5661           pu blic doubl e Height
  5662           {
  5663                get
  5664                {
  5665                    doub le retValu e = 10;  / / default  row height
  5666                    stri ng ht = _r owElement. GetAttribu te("ht");
  5667                    if ( ht != "")
  5668                    {
  5669                         retValue =  double.Pa rse(ht);
  5670                    }
  5671                    retu rn (retVal ue);
  5672                }
  5673                set
  5674                {
  5675                    _row Element.Se tAttribute ("ht", val ue.ToStrin g());
  5676                    // w e must set  customHei ght="1" fo r the heig ht setting  to take e ffect
  5677                    _row Element.Se tAttribute ("customHe ight", "1" );
  5678                }
  5679           }
  5680           #e ndregion
  5681  
  5682           #r egion Exce lRow Style
  5683           // / <summary >
  5684           // / Gets/set s the styl e name bas ed on the  StyleID
  5685           // / </summar y>
  5686           pu blic strin g Style
  5687           {
  5688                get { re turn _xlWo rksheet.Ge tStyleName (StyleID);  }
  5689                set { St yleID = _x lWorksheet .GetStyleI D(value);  }
  5690           }
  5691  
  5692           // / <summary >
  5693           // / Sets the  style for  the entir e row usin g the styl e ID.  
  5694           // / </summar y>
  5695           pu blic int S tyleID
  5696           {
  5697                get
  5698                {
  5699                    int  retValue =  0;
  5700                    stri ng sid = _ rowElement .GetAttrib ute("s");
  5701                    if ( sid != "")  retValue  = int.Pars e(sid);
  5702                    retu rn retValu e;
  5703                }
  5704                set
  5705                {
  5706                    _row Element.Se tAttribute ("s", valu e.ToString ());
  5707                    // t o get Exce l to apply  this styl e we need  to set cus tomFormat= "1"
  5708                    _row Element.Se tAttribute ("customFo rmat", "1" );
  5709                }
  5710           }
  5711           #e ndregion
  5712  
  5713       }
  5714   }]]></Proj ectItem><P rojectItem  Name="\ex celheaderf ooter.cs">
  5715   <![CDATA[/
  5716    * You may  amend and  distribut e as you l ike, but d on't remov e this hea der!
  5717    * 
  5718    * ExcelPa ckage prov ides serve r-side gen eration of  Excel 200 7 spreadsh eets.
  5719    * See htt p://www.co deplex.com /ExcelPack age for de tails.
  5720    * 
  5721    * Copyrig ht 2007 Â©  Dr John T unnicliffe  
  5722    * mailto: dr.john.tu nnicliffe@ btinternet .com
  5723    * All rig hts reserv ed.
  5724    * 
  5725    * ExcelPa ckage is a n Open Sou rce projec t provided  under the  
  5726    * GNU Gen eral Publi c License  (GPL) as p ublished b y the 
  5727    * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston,  MA 02111- 1307 USA
  5728    * 
  5729    * The GNU  General P ublic Lice nse can be  viewed at  http://ww w.opensour ce.org/lic enses/gpl- license.ph p
  5730    * If you  unfamiliar  with this  license o r have que stions abo ut it, her e is an ht tp://www.g nu.org/lic enses/gpl- faq.html
  5731    * 
  5732    * The cod e for this  project m ay be used  and redis tributed b y any mean s PROVIDIN G it is 
  5733    * not sol d for prof it without  the autho r's writte n consent,  and provi ding that  this notic
  5734    * and the  author's  name and a ll copyrig ht notices  remain in tact.
  5735    * 
  5736    * All cod e and exec utables ar e provided  "as is" w ith no war ranty eith er express  or implie d. 
  5737    * The aut hor accept s no liabi lity for a ny damage  or loss of  business  that this  product ma y cause.
  5738    */
  5739  
  5740   /*
  5741    * Code ch ange notes :
  5742    * 
  5743    * Author                                                             Change                                               Date
  5744    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5745    * John Tu nnicliffe               Initial  Release          01-J an-2007
  5746    * ******* ********** ********** ********** ********** ********** ********** ********** *
  5747    */
  5748   using Syst em;
  5749   using Syst em.Xml;
  5750  
  5751   namespace  OfficeOpen Xml
  5752   {
  5753       #regio n class Ex celHeaderF ooterText
  5754       /// <s ummary>
  5755       /// He lper class  for Excel HeaderFoot er - simpl y stores t he three h eader or f ooter
  5756       /// te xt strings
  5757       /// </ summary>
  5758       public  class Exc elHeaderFo oterText
  5759       {
  5760           // / <summary >
  5761           // / Sets the  text to a ppear on t he left ha nd side of  the heade r (or foot er) on the  worksheet .
  5762           // / </summar y>
  5763           pu blic strin g LeftAlig nedText =  null;
  5764           // / <summary >
  5765           // / Sets the  text to a ppear in t he center  of the hea der (or fo oter) on t he workshe et.
  5766           // / </summar y>
  5767           pu blic strin g Centered Text = nul l;
  5768           // / <summary >
  5769           // / Sets the  text to a ppear on t he right h and side o f the head er (or foo ter) on th e workshee t.
  5770           // / </summar y>
  5771           pu blic strin g RightAli gnedText =  null;
  5772       }
  5773       #endre gion
  5774  
  5775       #regio n ExcelHea derFooter
  5776       /// <s ummary>
  5777       /// Re presents t he Header  and Footer  on an Exc el Workshe et
  5778       /// </ summary>
  5779       public  class Exc elHeaderFo oter
  5780       {
  5781           #r egion Stat ic Propert ies
  5782           // / <summary >
  5783           // / Use this  to insert  the page  number int o the head er or foot er of the  worksheet
  5784           // / </summar y>
  5785           pu blic const  string Pa geNumber =  @"&P";
  5786           // / <summary >
  5787           // / Use this  to insert  the numbe r of pages  into the  header or  footer of  the worksh eet
  5788           // / </summar y>
  5789           pu blic const  string Nu mberOfPage s = @"&N";
  5790           // / <summary >
  5791           // / Use this  to insert  the name  of the wor ksheet int o the head er or foot er of the  worksheet
  5792           // / </summar y>
  5793           pu blic const  string Sh eetName =  @"&A";
  5794           // / <summary >
  5795           // / Use this  to insert  the full  path to th e folder c ontaining  the workbo ok into th e header o r footer o f the work sheet
  5796           // / </summar y>
  5797           pu blic const  string Fi lePath = @ "&Z";
  5798           // / <summary >
  5799           // / Use this  to insert  the name  of the wor kbook file  into the  header or  footer of  the worksh eet
  5800           // / </summar y>
  5801           pu blic const  string Fi leName = @ "&F";
  5802           // / <summary >
  5803           // / Use this  to insert  the curre nt date in to the hea der or foo ter of the  worksheet
  5804           // / </summar y>
  5805           pu blic const  string Cu rrentDate  = @"&D";
  5806           // / <summary >
  5807           // / Use this  to insert  the curre nt time in to the hea der or foo ter of the  worksheet
  5808           // / </summar y>
  5809           pu blic const  string Cu rrentTime  = @"&T";
  5810           #e ndregion
  5811  
  5812           #r egion Exce lHeaderFoo ter Privat e Properti es
  5813           pr ivate XmlE lement _he aderFooter Node;
  5814           pr ivate Exce lHeaderFoo terText _o ddHeader;
  5815           pr ivate Exce lHeaderFoo terText _o ddFooter;
  5816           pr ivate Exce lHeaderFoo terText _e venHeader;
  5817           pr ivate Exce lHeaderFoo terText _e venFooter;
  5818           pr ivate Exce lHeaderFoo terText _f irstHeader ;
  5819           pr ivate Exce lHeaderFoo terText _f irstFooter ;
  5820           pr ivate Syst em.Nullabl e<bool> _a lignWithMa rgins = nu ll;
  5821           pr ivate Syst em.Nullabl e<bool> _d ifferentOd dEven = nu ll;
  5822           pr ivate Syst em.Nullabl e<bool> _d ifferentFi rst = null ;
  5823           #e ndregion
  5824  
  5825           #r egion Exce lHeaderFoo ter Constr uctor
  5826           // / <summary >
  5827           // / ExcelHea derFooter  Constructo r
  5828           // / For inte rnal use o nly!
  5829           // / </summar y>
  5830           // / <param n ame="Heade rFooterNod e"></param >
  5831           pr otected in ternal Exc elHeaderFo oter(XmlEl ement Head erFooterNo de)
  5832           {
  5833                if (Head erFooterNo de.Name !=  "headerFo oter")
  5834                    thro w new Exce ption("Exc elHeaderFo oter Error : Passed i nvalid hea derFooter  node");
  5835                else
  5836                {
  5837                    _hea derFooterN ode = Head erFooterNo de;
  5838                    // T ODO: popul ate struct ure based  on XML con tent
  5839                }
  5840           }
  5841           #e ndregion
  5842  
  5843           #r egion alig nWithMargi ns
  5844           // / <summary >
  5845           // / Gets/set s the alig nWithMargi ns attribu te
  5846           // / </summar y>
  5847           pu blic bool  AlignWithM argins
  5848           {
  5849                get
  5850                {
  5851                    if ( _alignWith Margins ==  null)
  5852                    {
  5853                         _alignWith Margins =  false;
  5854                         XmlAttribu te attr =  (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("ali gnWithMarg ins");
  5855                         if (attr ! = null)
  5856                         {
  5857                             if (at tr.Value = = "1")
  5858                                 _a lignWithMa rgins = tr ue;
  5859                         }
  5860                    }
  5861                    retu rn _alignW ithMargins .Value;
  5862                }
  5863                set
  5864                {
  5865                    _ali gnWithMarg ins = valu e;
  5866                    XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("alignWi thMargins" );
  5867                    if ( attr == nu ll)
  5868                    {
  5869                         attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("alignWit hMargins") );
  5870                    }
  5871                    if ( value)
  5872                         attr.Value  = "1";
  5873                    else
  5874                         attr.Value  = "0";
  5875                }
  5876           }
  5877           #e ndregion
  5878  
  5879           #r egion diff erentOddEv en
  5880           // / <summary >
  5881           // / Gets/set s the flag  that tell s Excel to  display d ifferent h eaders and  footers o n odd and  even pages .
  5882           // / </summar y>
  5883           pu blic bool  differentO ddEven
  5884           {
  5885                get
  5886                {
  5887                    if ( _different OddEven ==  null)
  5888                    {
  5889                         _different OddEven =  false;
  5890                         XmlAttribu te attr =  (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("dif ferentOddE ven");
  5891                         if (attr ! = null)
  5892                         {
  5893                             if (at tr.Value = = "1")
  5894                                 _d ifferentOd dEven = tr ue;
  5895                         }
  5896                    }
  5897                    retu rn _differ entOddEven .Value;
  5898                }
  5899                set
  5900                {
  5901                    _dif ferentOddE ven = valu e;
  5902                    XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("differe ntOddEven" );
  5903                    if ( attr == nu ll)
  5904                    {
  5905                         attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("differen tOddEven") );
  5906                    }
  5907                    if ( value)
  5908                         attr.Value  = "1";
  5909                    else
  5910                         attr.Value  = "0";
  5911                }
  5912           }
  5913           #e ndregion
  5914  
  5915           #r egion diff erentFirst
  5916           // / <summary >
  5917           // / Gets/set s the flag  that tell s Excel to  display d ifferent h eaders and  footers o n the firs t page of  the worksh eet.
  5918           // / </summar y>
  5919           pu blic bool  differentF irst
  5920           {
  5921                get
  5922                {
  5923                    if ( _different First == n ull)
  5924                    {
  5925                         _different First = fa lse;
  5926                         XmlAttribu te attr =  (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("dif ferentFirs t");
  5927                         if (attr ! = null)
  5928                         {
  5929                             if (at tr.Value = = "1")
  5930                                 _d ifferentFi rst = true ;
  5931                         }
  5932                    }
  5933                    retu rn _differ entFirst.V alue;
  5934                }
  5935                set
  5936                {
  5937                    _dif ferentFirs t = value;
  5938                    XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("differe ntFirst");
  5939                    if ( attr == nu ll)
  5940                    {
  5941                         attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("differen tFirst"));
  5942                    }
  5943                    if ( value)
  5944                         attr.Value  = "1";
  5945                    else
  5946                         attr.Value  = "0";
  5947                }
  5948           }
  5949           #e ndregion
  5950  
  5951           #r egion Exce lHeaderFoo ter Public  Propertie s
  5952           // / <summary >
  5953           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e header o n odd numb ered pages  of the do cument.
  5954           // / If you w ant the sa me header  on both od d and even  pages, th en only se t values i n this Exc elHeaderFo oterText c lass.
  5955           // / </summar y>
  5956           pu blic Excel HeaderFoot erText odd Header { g et { if (_ oddHeader  == null) _ oddHeader  = new Exce lHeaderFoo terText();  return _o ddHeader;  } }
  5957           // / <summary >
  5958           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e footer o n odd numb ered pages  of the do cument.
  5959           // / If you w ant the sa me footer  on both od d and even  pages, th en only se t values i n this Exc elHeaderFo oterText c lass.
  5960           // / </summar y>
  5961           pu blic Excel HeaderFoot erText odd Footer { g et { if (_ oddFooter  == null) _ oddFooter  = new Exce lHeaderFoo terText();  return _o ddFooter;  } }
  5962           //  evenHeade r and even Footer set  different OddEven =  true
  5963           // / <summary >
  5964           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e header o n even num bered page s of the d ocument.
  5965           // / </summar y>
  5966           pu blic Excel HeaderFoot erText eve nHeader {  get { if ( _evenHeade r == null)  _evenHead er = new E xcelHeader FooterText (); differ entOddEven  = true; r eturn _eve nHeader; }  }
  5967           // / <summary >
  5968           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e footer o n even num bered page s of the d ocument.
  5969           // / </summar y>
  5970           pu blic Excel HeaderFoot erText eve nFooter {  get { if ( _evenFoote r == null)  _evenFoot er = new E xcelHeader FooterText (); differ entOddEven  = true; r eturn _eve nFooter; }  }
  5971           //  firstHead er and fir stFooter s et differe ntFirst =  true
  5972           // / <summary >
  5973           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e header o n the firs t page of  the docume nt.
  5974           // / </summar y>
  5975           pu blic Excel HeaderFoot erText fir stHeader {  get { if  (_firstHea der == nul l) _firstH eader = ne w ExcelHea derFooterT ext(); dif ferentFirs t = true;  return _fi rstHeader;  } }
  5976           // / <summary >
  5977           // / Provides  access to  a ExcelHe aderFooter Text class  that allo ws you to  set the va lues of th e footer o n the firs t page of  the docume nt.
  5978           // / </summar y>
  5979           pu blic Excel HeaderFoot erText fir stFooter {  get { if  (_firstFoo ter == nul l) _firstF ooter = ne w ExcelHea derFooterT ext(); dif ferentFirs t = true;  return _fi rstFooter;  } }
  5980           #e ndregion
  5981  
  5982           #r egion Save   //  Exce lHeaderFoo ter
  5983           // / <summary >
  5984           // / Saves th e header a nd footer  informatio n to the w orksheet X ML
  5985           // / </summar y>
  5986           pr otected in ternal voi d Save()
  5987           {
  5988                //  The  header/foo ter elemen ts must ap pear in th is order,  if they ap pear:
  5989                //  <odd Header />
  5990                //  <odd Footer />
  5991                //  <eve nHeader />
  5992                //  <eve nFooter />
  5993                //  <fir stHeader / >
  5994                //  <fir stFooter / >
  5995  
  5996                XmlNode  node;
  5997                if (_odd Header !=  null)
  5998                {
  5999                    node  = _header FooterNode .AppendChi ld(_header FooterNode .OwnerDocu ment.Creat eElement(" oddHeader" , ExcelPac kage.schem aMain));
  6000                    node .InnerText  = GetHead erFooterTe xt(oddHead er);
  6001                }
  6002                if (_odd Footer !=  null)
  6003                {
  6004                    node  = _header FooterNode .AppendChi ld(_header FooterNode .OwnerDocu ment.Creat eElement(" oddFooter" , ExcelPac kage.schem aMain));
  6005                    node .InnerText  = GetHead erFooterTe xt(oddFoot er);
  6006                }
  6007  
  6008                // only  set evenHe ader and e venFooter 
  6009                if (diff erentOddEv en)
  6010                {
  6011                    if ( _evenHeade r != null)
  6012                    {
  6013                         node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("evenHe ader", Exc elPackage. schemaMain ));
  6014                         node.Inner Text = Get HeaderFoot erText(eve nHeader);
  6015                    }
  6016                    if ( _evenFoote r != null)
  6017                    {
  6018                         node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("evenFo oter", Exc elPackage. schemaMain ));
  6019                         node.Inner Text = Get HeaderFoot erText(eve nFooter);
  6020                    }
  6021                }
  6022  
  6023                // only  set firstH eader and  firstFoote r
  6024                if (diff erentFirst )
  6025                {
  6026                    if ( _firstHead er != null )
  6027                    {
  6028                         node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("firstH eader", Ex celPackage .schemaMai n));
  6029                         node.Inner Text = Get HeaderFoot erText(fir stHeader);
  6030                    }
  6031                    if ( _firstFoot er != null )
  6032                    {
  6033                         node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("firstF ooter", Ex celPackage .schemaMai n));
  6034                         node.Inner Text = Get HeaderFoot erText(fir stFooter);
  6035                    }
  6036                }
  6037           }
  6038  
  6039           // / <summary >
  6040           // / Helper f unction fo r Save
  6041           // / </summar y>
  6042           // / <param n ame="inStr uct"></par am>
  6043           // / <returns ></returns >
  6044           pr otected in ternal str ing GetHea derFooterT ext(ExcelH eaderFoote rText inSt ruct)
  6045           {
  6046                string r etValue =  "";
  6047                if (inSt ruct.LeftA lignedText  != null)
  6048                    retV alue += "& L" + inStr uct.LeftAl ignedText;
  6049                if (inSt ruct.Cente redText !=  null)
  6050                    retV alue += "& C" + inStr uct.Center edText;
  6051                if (inSt ruct.Right AlignedTex t != null)
  6052                    retV alue += "& R" + inStr uct.RightA lignedText ;
  6053                return r etValue;
  6054           }
  6055           #e ndregion
  6056       }
  6057       #endre gion
  6058  
  6059   }]]></Proj ectItem><P rojectItem  Name="\pr operties\s ettings.se ttings">
  6060   <![CDATA[< ?xml versi on='1.0' e ncoding='i so-8859-1' ?>
  6061   <SettingsF ile xmlns= "uri:setti ngs" Curre ntProfile= "(Default) ">
  6062     <Profile s>
  6063       <Profi le Name="( Default)"  />
  6064     </Profil es>
  6065     <Setting s />
  6066   </Settings File>]]></ ProjectIte m><BinaryI tem Name=" \bin\relea se\st_fce6 863cd8c941 87b7bd2528 130634e1.c sproj.dll" >TVqQAAMAA AAEAAAA//8 AALgAAAAAA AAAQAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAA
  6067   AAAAgAAAAA 4fug4AtAnN IbgBTM0hVG hpcyBwcm9n cmFtIGNhbm 5vdCBiZSBy dW4gaW4gRE 9TIG1v
  6068   ZGUuDQ0KJA AAAAAAAABQ RQAATAEDAL TdaFUAAAAA AAAAAOAAAi ELAQgAABYB AAAIAAAAAA AAnjUB
  6069   AAAgAAAAQA EAAABAAAAg AAAAAgAABA AAAAAAAAAE AAAAAAAAAA CAAQAAAgAA AAAAAAMAQI UAABAA
  6070   ABAAAAAAEA AAEAAAAAAA ABAAAAAAAA AAAAAAAEg1 AQBTAAAAAE ABAOgEAAAA AAAAAAAAAA AAAAAA
  6071   AAAAAGABAA wAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  6072   AAAAIAAACA AAAAAAAAAA AAAACCAAAE gAAAAAAAAA AAAAAC50ZX h0AAAApBUB AAAgAAAAFg EAAAIA
  6073   AAAAAAAAAA AAAAAAACAA AGAucnNyYw AAAOgEAAAA QAEAAAYAAA AYAQAAAAAA AAAAAAAAAA BAAABA
  6074   LnJlbG9jAA AMAAAAAGAB AAACAAAAHg EAAAAAAAAA AAAAAAAAQA AAQgAAAAAA AAAAAAAAAA AAAACA
  6075   NQEAAAAAAE gAAAACAAUA oJAAAKikAA ABAAAAAAAA AOiPAAC4AA AAAAAAAAAA AAAAAAAAAA AAAAAA
  6076   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAB swCQDdAQAA AQAAEQIoDQ AACgIDfQIA AARzDgAACg oCBnMP
  6077   AAAKfQMAAA QCewMAAARy AQAAcHIFAA BwbxAAAAoC ewMAAARyeQ AAcHJ9AABw bxAAAAoCAn sCAAAE
  6078   b4AAAAZvyA AABnIGAQBw AnsDAAAEbx EAAAp9BAAA BAJ7BAAABC 1GAgJ7AgAA BG+AAAAGb8 gAAAZy
  6079   HAEAcHIFAA BwbxIAAAp9 BAAABAJ7Ag AABG+AAAAG b8gAAAZvEw AACgJ7BAAA BG8UAAAKJg JzFQAA
  6080   Cn0BAAAEFw sCewQAAARv FgAACm8XAA AKEwo42AAA ABEKbxgAAA p0CgAAAQwI bxkAAApyKg EAcG8a
  6081   AAAKbxsAAA oNCG8ZAAAK cjQBAHBvGg AACm8bAAAK EwQIbxkAAA pyPgEAcG8a AAAKbxsAAA ooHAAA
  6082   ChMFFhMGCG 8ZAAAKck4B AHBvGgAACh MHEQcsDhEH bxsAAAooHQ AAChMGAnsC AAAEb4AAAA ZvxwAA
  6083   BhEEbx4AAA oTCAJ7AgAA BG+AAAAGb8 QAAAYRCG8f AAAKKCAAAA oTCQJ7AQAA BAcCewIAAA QRBAkR
  6084   CREFEQZzCg AABm8hAAAK BxdYCxEKby IAAAo6HP// /94VEQp1Bg AAARMLEQss BxELbyMAAA rcKgAA
  6085   AAEQAAACAN wA68cBFQAA AAAyAnsBAA AEbyQAAAoq WgJ7AQAABG 8lAAAKbyYA AAqMAwAAGy obMAcA
  6086   5AEAAAIAAB EWCgJ7BAAA BG8WAAAKbx cAAAoTDCtq EQxvGAAACn QKAAABCwdv GQAACnI+AQ BwbycA
  6087   AAp0KgAAAQ wILBIIbxsA AAooKAAACg 0JBjECCQoH bxkAAApyKg EAcG8nAAAK dCoAAAEMCC wZCG8b
  6088   AAAKAygpAA AKLAtyXAEA cHMqAAAKeh EMbyIAAAot jd4VEQx1Bg AAARMNEQ0s BxENbyMAAA rcBhdY
  6089   CnLtAQBwEg AoKwAACnIX AgBwKCwAAA oYcy0AAAoT BAJ7AgAABG 9/AAAGEQRy IQIAcG8uAA AKEwUR
  6090   BRgYby8AAA pzMAAAChMG AigFAAAGEw cRBxEGbzEA AAoRBm8yAA AKAnsCAAAE b38AAAZvMw AACgJ7
  6091   AgAABG+AAA AGb8cAAAYR BBZytgIAcG 80AAAKEwgC ewIAAARvfw AABm8zAAAK AnsCAAAEb4 AAAAZv
  6092   yAAABnJTAw BwcgUAAHBv EgAAChMJEQ lyKgEAcANv NQAAChEJcj 4BAHASACgr AAAKbzUAAA oRCXJf
  6093   AwBwcn0AAH ARCG82AAAK bzcAAAomAn sEAAAEEQlv FAAACiYCew IAAAQRCG82 AAAKAxEEBh ZzCgAA
  6094   BhMKAnsBAA AEbyQAAAoX WBMLAnsBAA AEEQsRCm8h AAAKEQoqAR AAAAIAFAB3 iwAVAAAAAB MwAwCO
  6095   AAAAAwAAEX M4AAAKCgZy ZQMAcHIFAA BwbxIAAAoL B3J5AwBwcn 0AAHBvNQAA CgYHbxQAAA omBnKJ
  6096   AwBwcgUAAH BvEgAACgwH CG8UAAAKJg ZynwMAcHIF AABwbxIAAA oNCXKzAwBw ctEDAHBvNQ AACggJ
  6097   bxQAAAomBn LVAwBwcgUA AHBvEgAACh MEBxEEbxQA AAomBioAAB MwAwC2AAAA BAAAEQJ7AQ AABG8k
  6098   AAAKFzMLcu kDAHBzKgAA CnoCewEAAA QDbzkAAAoK AnsCAAAEb3 8AAAYGbwsA AAZvOgAACg J7AgAA
  6099   BG+AAAAGb8 cAAAYGbw0A AAZvOwAACg J7AgAABG+A AAAGb8gAAA Zy2gQAcAJ7 AwAABG8RAA AKCwcs
  6100   LQdyBgUAcA ZvDgAABowx AAABKDwAAA oCewMAAARv EQAACgwILA gHCG89AAAK JgJ7AQAABA NvPgAA
  6101   CiYqNgJ7AQ AABANvOQAA CiobMAIASA AAAAUAABEU CgJ7AQAABG 8lAAAKbyYA AAoMKxgSAi g/AAAK
  6102   CwdvEQAABg MoKQAACiwC BwoSAihAAA AKLd/eDhIC /hYDAAAbby MAAArcBioB EAAAAgATAC U4AA4A
  6103   AAAALnI2BQ BwcyoAAAp6 0gIoDQAACg IDfQYAAAQC BH0LAAAEAg 4EfQcAAAQC BX0IAAAEAg 4FfQkA
  6104   AAQCDgYoFA AABioeAnsH AAAEKl4Cew YAAARvfwAA BgIoCwAABm 9BAAAKKh4C ewsAAAQqHg J7CQAA
  6105   BCoAAAATMA MANgAAAAYA ABECew8AAA QtJ3MOAAAK CgIGcw8AAA p9DwAABAJ7 DwAABHIBAA BwcgUA
  6106   AHBvEAAACg J7DwAABCpu AnsNAAAELQ wCAnOtAAAG fQ0AAAQCew 0AAAQqHgJ7 CAAABCoAAB MwAwBc
  6107   AAAABwAAEQ J7BgAABG+A AAAGb8gAAA ZyjgUAcAJ7 CQAABIwxAA ABKDwAAAoC KA8AAAZvEQ AACgoG
  6108   LCAGbxkAAA pyKgEAcG8n AAAKdCoAAA ELBywHBwNv QgAACgIDfQ gAAAQqHgJ7 CgAABCoTMA MAYgAA
  6109   AAcAABECew YAAARvgAAA Bm/IAAAGco 4FAHACewkA AASMMQAAAS g8AAAKAigP AAAGbxEAAA oKBiwm
  6110   Bm8ZAAAKck 4BAHBvJwAA CnQqAAABCw csDQcPAShD AAAKb0IAAA oCA30KAAAE KgAAEzADAE QAAAAI
  6111   AAARHw8KAi gXAAAGcr4F AHACKA8AAA ZvEQAACnQV AAABCwcsIA dy4gUAcG9E AAAKDAhyBA YAcChF
  6112   AAAKLAcIKC gAAAoKBioT MAMAcgAAAA kAABECKBcA AAZyvgUAcA IoDwAABm8R AAAKdBUAAA EKBi1A
  6113   AigXAAAGcg YGAHByBQAA cG8SAAAKCg IoFwAABnIi BgBwAigPAA AGbxEAAAoL AigXAAAGbx MAAAoG
  6114   B29GAAAKJg Zy4gUAcA8B KCsAAApvNQ AACioAABMw AgBIAAAACg AAEQJ7DAAA BC05AnM4AA AKfQwA
  6115   AAQCewYAAA RvfwAABgIo CwAABm9BAA AKCgJ7DAAA BAZvRwAACm 9IAAAKAigh AAAGAnsMAA AEKhMw
  6116   BABgAAAACw AAEQJ7DgAA BC1RAigXAA AGckAGAHAC KA8AAAZvEQ AACgoGLSYC KBcAAAZvEw AACgIo
  6117   FwAABnJiBg BwcgUAAHBv EgAACm8UAA AKCgIGdBUA AAFzRgAABn 0OAAAEAnsO AAAEKiYCAw RzjQAA
  6118   BioiAgNzOw AABioiAgNz swAABiobMA UAWAEAAAwA ABEDb50AAA YLB3IEBgBw KCkAAAosC3 J8BgBw
  6119   cyoAAAp6FQ wCewwAAARy /wYAcAIoDw AABm9JAAAK bxcAAAoTCC siEQhvGAAA CnQKAAABDQ lvGwAA
  6120   CigoAAAKEw QRBAgxAxEE DBEIbyIAAA ot1d4VEQh1 BgAAARMJEQ ksBxEJbyMA AArcCBdYDA NvjwAA
  6121   BhMFK30Db5 AAAAYTBitj AhEFEQYoGQ AABhMHEQdv oAAABhEHb4 4AAAZyPwcA cAIoDwAABm 8RAAAK
  6122   dBUAAAEKBi 0IEQdvpQAA BgoGcksHAH ByTwcAcG81 AAAKBnJdBw BwEgIoKwAA Cm81AAAKEQ YXWBMG
  6123   EQYEb5AAAA YxkxEFF1gT BREFBG+PAA AGPnb///8D b44AAAZyPw cAcAIoDwAA Bm8RAAAKdB UAAAEK
  6124   BnJjBwBwcm sHAHADb5EA AAYEb5EAAA YoSgAACm81 AAAKKgEQAA ACAD4AL20A FQAAAAATMA QAwQIA
  6125   AA0AABECKB cAAAZyewcA cAIoDwAABm 8RAAAKCgYt WgIoFwAABn KvBwBwcgUA AHBvEgAACg oCKBcA
  6126   AAZy2wcAcA IoDwAABm8R AAAKCwctFw IoFwAABnL5 BwBwAigPAA AGbxEAAAoL AigXAAAGbx MAAAoG
  6127   B29GAAAKJg ZvGQAACnIV CABwbxoAAA oMCC0eAigX AAAGchUIAH BvSwAACgwG bxkAAAoIb0 wAAAom
  6128   CHJrBwBwA2 +RAAAGBG+R AAAGKEoAAA pvQgAACgZy IQgAcAIoDw AABm8RAAAK DQktHgIoFw AABnI3
  6129   CABwcgUAAH BvEgAACg0G CW8UAAAKJg lvGQAACnJF CABwbxoAAA oMCC0eAigX AAAGckUIAH BvSwAA
  6130   CgwJbxkAAA oIb0wAAAom CHJPCABwb0 IAAAoJbxkA AApyXwgAcG 8aAAAKDAgt HgIoFwAABn JfCABw
  6131   b0sAAAoMCW 8ZAAAKCG9M AAAKJghycQ gAcG9CAAAK AigXAAAGcn UIAHByBQAA cG8SAAAKEw QJEQRv
  6132   FAAACiYCKB cAAAZyhQgA cHIFAABwbx IAAAoTBREE EQVvFAAACi YCKBcAAAZy RQgAcG9LAA AKDBEF
  6133   bxkAAAoIb0 wAAAomCHKP CABwb0IAAA oCKBcAAAZy lwgAcG9LAA AKDBEFbxkA AAoIb0wAAA omCHLR
  6134   AwBwb0IAAA oCKBcAAAZy hQgAcHIFAA BwbxIAAAoT BREEEQVvFA AACiYCKBcA AAZyRQgAcG 9LAAAK
  6135   DBEFbxkAAA oIb0wAAAom CHKfCABwb0 IAAAoCKBcA AAZylwgAcG 9LAAAKDBEF bxkAAAoIb0 wAAAom
  6136   CHLRAwBwb0 IAAAoCKBcA AAZypwgAcH IFAABwbxIA AAoTBREEEQ VvFAAACiYC KBcAAAZysw gAcG9L
  6137   AAAKDBEFbx kAAAoIb0wA AAomCAVvQg AACioAAAAb MAYAtgEAAA 4AABECKBcA AAZyuwgAcH IFAABw
  6138   bxIAAAoKBm 8ZAAAKAigX AAAGcnkAAH BvSwAACm9M AAAKJgZvGQ AACnJ5AABw bxoAAAoPAS grAAAK
  6139   b0IAAAoCKB cAAAZy+QcA cAIoDwAABm 8RAAAKCwc5 SgEAABcMB2 8WAAAKDQlv TQAAChMEFB MFFhMG
  6140   FhMHK0YJEQ dvTgAACm8Z AAAKcnkAAH BvGgAACm8b AAAKKCgAAA oTCBEIAy8O CREHb04AAA oTBREH
  6141   EwYRCAMyBR EIDCsMEQcX WBMHEQcRBD K0EQYXWBMJ OMAAAAAJEQ lvTgAACm8Z AAAKcnkAAH BvGgAA
  6142   Cm8bAAAKKC gAAAoTChEK CD+PAAAACR EJb04AAApv GQAACnJ5AA BwbxoAAAoR ChdYKE8AAA pvQgAA
  6143   CgkRCW9OAA AKcsMIAHAC KA8AAAZvSQ AAChMLEQtv FwAAChMNKy URDW8YAAAK dAoAAAETDB EMEQxv
  6144   UAAAChcWAx YorAAABm9R AAAKEQ1vIg AACi3S3hUR DXUGAAABEw 4RDiwHEQ5v IwAACtwRCR dYEwkR
  6145   CREEPzf/// 8RBSwKBwYR BW9GAAAKJi oAAAEQAAAC AFEBMoMBFQ AAAAAbMAYA WwEAAA8AAB ECKBcA
  6146   AAZy+QcAcA IoDwAABm8R AAAKCgY5PQ EAAAZvFgAA CgsHb00AAA oMFg0UEwQW EwUrOwcRBW 9OAAAK
  6147   bxkAAApyeQ AAcG8aAAAK bxsAAAooKA AAChMGEQYD Mw0RBQ0HEQ VvTgAAChME EQUXWBMFEQ UIMsAE
  6148   OdIAAAAJF1 gTBzjAAAAA BxEHb04AAA pvGQAACnJ5 AABwbxoAAA pvGwAACigo AAAKEwgRCA M+jwAA
  6149   AAcRB29OAA AKbxkAAApy eQAAcG8aAA AKEQgXWShP AAAKb0IAAA oHEQdvTgAA CnLDCABwAi gPAAAG
  6150   b0kAAAoTCR EJbxcAAAoT CyslEQtvGA AACnQKAAAB EwoRChEKb1 AAAAoVFgMW KKwAAAZvUQ AAChEL
  6151   byIAAAot0t 4VEQt1BgAA ARMMEQwsBx EMbyMAAArc EQcXWBMHEQ cIPzj///8R BCwJBhEEbz 0AAAom
  6152   KgABEAAAAg D4ADIqARUA AAAAEzAGAC kBAAAQAAAR AnsMAAAEct cIAHACKA8A AAZvEQAACg oGOY4A
  6153   AAAGbxkAAA pyXwMAcHJ9 AABwb1IAAA p0KgAAAQsH LHAHbxsAAA oMBm8ZAAAK B29TAAAKJg IoDAAA
  6154   BghvHgAACg 1y8wgAcAlv HwAACm9UAA AKcvsIAHBy BAYAcG9VAA AKKFYAAAoY cy0AAAoTBA IoDAAA
  6155   BglvNgAACm 87AAAKAnsG AAAEb38AAA YRBG86AAAK AnsMAAAELH UCew4AAAQs CwIoGAAABm 9TAAAG
  6156   AigiAAAGAn sGAAAEb38A AAYCKAsAAA ZvQQAAChMF AigXAAAGEQ UYGG8vAAAK b1cAAAoCew YAAAQC
  6157   KBcAAAZyAQ kAcHJTAwBw AigOAAAGjD EAAAFyFwIA cChYAAAKb4 EAAAYqAAAA GzADAEABAA ARAAAR
  6158   AigXAAAGch 0JAHACKA8A AAZvSQAACm 8XAAAKEwY4 +gAAABEGbx gAAAp0CgAA AQoGbxkAAA pyRQkA
  6159   cG8nAAAKdC oAAAELBywN Bm8ZAAAKB2 9TAAAKJgZv GQAACnJ5AA BwbycAAApv GwAACigcAA AKJgZy
  6160   UQkAcAIoDw AABm9JAAAK bxcAAAoTBy tyEQdvGAAA CnQKAAABDA hvGQAACnJ5 AABwbycAAA p0KgAA
  6161   AQ0JLEwJbx sAAAoTBBEE KKgAAAYTBQ IoFwAABnJd CQBwb0sAAA oLBywnBxIF KCsAAApvQg AACghv
  6162   GQAACgdvTA AACiYIbxkA AAoJb1MAAA omEQdvIgAA Ci2F3hURB3 UGAAABEwgR CCwHEQhvIw AACtwR
  6163   Bm8iAAAKOv r+///eFREG dQYAAAETCR EJLAcRCW8j AAAK3CpBNA AAAgAAAIgA AAB/AAAABw EAABUA
  6164   AAAAAAAAAg AAAB0AAAAN AQAAKgEAAB UAAAAAAAAA GzAEAHoBAA ASAAARFgoC KBcAAAZyHQ kAcAIo
  6165   DwAABm9JAA AKbxcAAAoT CTgyAQAAEQ lvGAAACnQK AAABCwdvGQ AACnJ5AABw bycAAApvGw AACigc
  6166   AAAKDBYNB3 JRCQBwAigP AAAGb0kAAA pvFwAAChMK OMgAAAARCm 8YAAAKdAoA AAETBBEEbx kAAApy
  6167   XQkAcG8nAA AKdCoAAAET BREFOZsAAA AJF1gNCQYx AgkKEQVvGw AACigcAAAK EwYRBiinAA AGEgIo
  6168   KwAACihWAA AKEwcCKBcA AAZyeQAAcG 9LAAAKEwgR CCxJEQgRB2 9CAAAKEQRv GQAACm9ZAA AKLRER
  6169   BG8ZAAAKEQ hvTAAACiYr IREEbxkAAA oRCBEEbxkA AAoWb1oAAA p0KgAAAW9b AAAKJhEEbx kAAAoR
  6170   BW9TAAAKJh EKbyIAAAo6 LP///94VEQ p1BgAAARML EQssBxELby MAAArcEQlv IgAACjrC/v //3hUR
  6171   CXUGAAABEw wRDCwHEQxv IwAACtwqAA BBNAAAAgAA AGYAAADbAA AAQQEAABUA AAAAAAAAAg AAAB8A
  6172   AABFAQAAZA EAABUAAAAA AAAAGzADAM gAAAATAAAR FAoUCxYMAn sGAAAEb4AA AAZvygAABn JxCQBw
  6173   AigPAAAGb0 kAAApvFwAA ChMGKxkRBm 8YAAAKdAoA AAENCAMzBA kLKw0IF1gM EQZvIgAACi 3e3hUR
  6174   BnUGAAABEw cRBywHEQdv IwAACtwHLF tykwkAcAdv GQAACnLNCQ BwbxoAAApv GwAACig8AA AKEwQC
  6175   ewYAAARvgA AABm/KAAAG EQQCKA8AAA ZvEQAAChMF EQUsFxEFbx kAAApyKgEA cG8aAAAKbx sAAAoK
  6176   BioBEAAAAg AtACZTABUA AAAAEzADAJ QAAAAUAAAR Fgpy1wkAcA MoPAAACgsC ewYAAARvgA AABm/K
  6177   AAAGBwIoDw AABm8RAAAK DAgsZAhvGQ AACnLNCQBw bxoAAApvGw AACg1yEQoA cAkoPAAACg sCewYA
  6178   AARvgAAABm /KAAAGBwIo DwAABm8RAA AKEwQRBCwg EQRyUQoAcA IoDwAABm9J AAAKEwURBS wIEQVv
  6179   TQAACgoGKg MwAwAgAQAA AAAAAAJygQ oAcH0RAAAE AihdAAAKFm 9eAAAKAigs AAAGAihdAA AKb18A
  6180   AAotBgIoNA AABgIoXQAA Cm9fAAAKLQ YCKC0AAAYC KF0AAApvXw AACi0GAigv AAAGAihdAA AKb18A
  6181   AAotBgIoLg AABgIoXQAA Cm9fAAAKLQ YCKDMAAAYC KF0AAApvXw AACi0GAigw AAAGAnsxAA AELAty
  6182   xQoAcChgAA AKJgIoXQAA Cm9fAAAKLQ cCKDIAAAYm AihdAAAKb1 8AAAotBgIo KgAABgIoXQ AACm9f
  6183   AAAKLQcCKC kAAAYmAihd AAAKb18AAA otBgIoJwAA BgIoXQAACm 9fAAAKLQYC KCYAAAYCJX sRAAAE
  6184   cvkKAHAoVg AACn0RAAAE Aig1AAAGKh swBQATAQAA FQAAEQJ7Kg AABHINCwBw AnscAAAEb2 EAAAoo
  6185   YgAACigsAA AKCgZyEQsA cChjAAAKDB ICchULAHAo ZAAACigsAA AKCgYCexwA AARvYQAACi hlAAAK
  6186   KFYAAAoKAi V7EQAABHIz CwBwBnJpCw BwKGYAAAp9 EQAABAJ7HA AABG9hAAAK BihnAAAKAn sqAAAE
  6187   cg0LAHACex 0AAARvYQAA CihoAAAKKC wAAAoKAiV7 EQAABHJvCw BwBnJpCwBw KGYAAAp9EQ AABAJ7
  6188   HQAABG9hAA AKBihnAAAK 3ikLAiV7EQ AABHKnCwBw B29pAAAKb1 QAAApyaQsA cChmAAAKfR EAAATe
  6189   AAIlexEAAA Ry/wsAcChW AAAKfREAAA QqAAEQAAAA AAAA09MAKT MAAAEbMAYA MAMAABYAAB FyBAYA
  6190   cApyBAYAcA tyBAYAcAxz agAACg0oKA AABhMEEgX+ FUEAAAECJX sRAAAEcj0M AHACfB8AAA QoKwAA
  6191   CnJZDABwKG YAAAp9EQAA BAJ7HAAABH N9AAAGEwYR Bm+AAAAGb8 MAAAYXbwcA AAYTBxgTCD gXAgAA
  6192   EQcRCAJ7Eg AABG8ZAAAG b5MAAAZvVA AACgsJB29r AAAKOusBAA ACexMAAAQV MRwRBxEIAn sTAAAE
  6193   bxkAAAZvkw AABm9UAAAK CisGcgQGAH AKAnsbAAAE BxICb2wAAA o5bgEAABEH EQgCexQAAA RvGQAA
  6194   Bm+TAAAGb1 QAAAomEQcR CAJ7FAAABG 8ZAAAGb5MA AAZvbQAACh Y+rQAAABEH EQgCexQAAA RvGQAA
  6195   Bm+TAAAGKG 4AAAoobwAA CihwAAAKEw XdkQAAABMJ AiV7EQAABB MLG40yAAAB EwwRDBYRC6 IRDBdy
  6196   awwAcKIRDB gSCCgrAAAK ohEMGXLFDA BwohEMGhEH EQgCexQAAA RvGQAABm+T AAAGohEMKH EAAAp9
  6197   EQAABAIlex EAAARy2QwA cBEJb2kAAA pvVAAACnJp CwBwKGYAAA p9EQAABN4O IGwHAAAXF3 NyAAAK
  6198   EwURBG9zAA AKHwmNAQAA ARMNEQ0WBq IRDRcCeyQA AASMMQAAAa IRDRgoYwAA CoxBAAABoh ENGShj
  6199   AAAKjEEAAA GiEQ0acvMM AHCiEQ0bKG MAAAqMQQAA AaIRDRxy8w wAcKIRDR0R BYxBAAABoh ENHgii
  6200   EQ1vdAAACi YrPwIlexEA AAQTDhuNMg AAARMPEQ8W EQ6iEQ8Xcg 0NAHCiEQ8Y B6IRDxlyOQ 0AcKIR
  6201   DxoIohEPKH EAAAp9EQAA BBEIF1gTCB EIAnsfAAAE Ptz9//8CJX sRAAAEcl0N AHARBG9zAA AKb3UA
  6202   AAoTEBIQKC sAAApyaw0A cChmAAAKfR EAAAQCEQQo KwAABt4MEQ YsBxEGbyMA AArc3jcTCg IlexEA
  6203   AARypw0AcB EKb2kAAApv VAAACnJpCw BwKGYAAAp9 EQAABAIoXQ AAChdvXgAA Ct4AAiV7EQ AABHL9
  6204   DQBwKFYAAA p9EQAABCpB TAAAAAAAAB MBAAAqAAAA PQEAAIMAAA AzAAABAgAA AFoAAAB6Ag AA1AIA
  6205   AAwAAAAAAA AAAAAAACcA AAC7AgAA4g IAADcAAAAz AAABEzADAP sAAAAXAAAR c3YAAAoKBm 93AAAK
  6206   cjkOAHDQMg AAASh4AAAK b3kAAAomBm 93AAAKck8O AHDQMQAAAS h4AAAKb3kA AAomBm93AA AKcoEO
  6207   AHDQQQAAAS h4AAAKb3kA AAomBm93AA AKcqUOAHDQ QQAAASh4AA AKb3kAAAom Bm93AAAKcr UOAHDQ
  6208   MgAAASh4AA AKb3kAAAom Bm93AAAKcs kOAHDQQQAA ASh4AAAKb3 kAAAomBm93 AAAKctkOAH DQMgAA
  6209   ASh4AAAKb3 kAAAomBm93 AAAKcu0OAH DQQQAAASh4 AAAKb3kAAA omBm93AAAK cg0PAHDQMg AAASh4
  6210   AAAKb3kAAA omBioAGzAF AGACAAAYAA ARAiV7EQAA BHIlDwBwKF YAAAp9EQAA BBcKAnscAA AEb2EA
  6211   AAooYgAACg sCexwAAARv YQAACih6AA AKDAhvewAA CtSNTAAAAQ 0ICRYIb3sA AAppb3wAAA omCG99
  6212   AAAKAnsiAA AEc34AAAoT BHIEBgBwEw URBXJzDwBw KFYAAAoTBR EFcskPAHAo VgAAChMFEQ VyOxAA
  6213   cChWAAAKEw URBXKZEABw KFYAAAoTBR EFcqsQAHAH cqsQAHAoZg AAChMFEQVy rxAAcChWAA AKEwUR
  6214   BXK/EABwAn sXAAAEcqsQ AHAoZgAACh MFEQVyxRAA cChWAAAKEw URBXLXEABw KFYAAAoTBR EFcv8Q
  6215   AHAoVgAACh MFEQVy1xAA cChWAAAKEw URBXIVEQBw KFYAAAoTBQ IlexEAAAQR BXJpCwBwKC wAAAp9
  6216   EQAABBEFc3 8AAAoTBhEG b4AAAApyLR EAcAlvgQAA CiYRBhdvgg AAChEGEQRv gwAAChEEb4 QAAAoR
  6217   Bm+FAAAKEw cCJXsRAAAE cjsRAHASBy grAAAKclER AHAoZgAACn 0RAAAEEQcX M1dylREAcH N/AAAK
  6218   EwgRCBdvgg AAChEIEQRv gwAACgIRCG +GAAAKKIcA AAp9JAAABA IlexEAAARy eBIAcAJ8JA AABCgr
  6219   AAAKcmkLAH AoZgAACn0R AAAEKw4CKF 0AAAoXb14A AAoWCt4MEQ QsBxEEbyMA AArc3jkTCQ IlexEA
  6220   AARyrhIAcB EJb2kAAApv VAAACnJpCw BwKGYAAAp9 EQAABAIoXQ AAChdvXgAA ChYK3gAgEC cAACiI
  6221   AAAKBipBNA AAAgAAAGoA AACjAQAADQ IAAAwAAAAA AAAAAAAAAC kAAADyAQAA GwIAADkAAA AzAAAB
  6222   GzAFAOEBAA AZAAARcgQG AHAKcgQGAH ALGAxzagAA CiZzagAACi YCAnscAAAE b2EAAAooMQ AABg0C
  6223   JXsRAAAEEw gcjTIAAAET CREJFhEIoh EJF3IOEwBw ohEJGAJ7HA AABG9hAAAK ohEJGXI4Ew BwohEJ
  6224   GgmiEQkbcm kLAHCiEQko cQAACn0RAA AEAnscAAAE b2EAAAoJFy iJAAAKAiV7 EQAABHJcEw BwKFYA
  6225   AAp9EQAABA IJc4oAAAp9 HQAABAIlex EAAARylBMA cChWAAAKfR EAAAQCexwA AARzfQAABh MEEQRv
  6226   gAAABm/DAA AGF28HAAAG EwUCexAAAA QtAhkMAnsf AAAEEwYrcB EFEQYCexUA AARvGQAABm +TAAAG
  6227   b1QAAAoLAn saAAAEBxIA b2wAAAosKA J7GwAABAZv iwAACi0yEQ URBhdvHwAA BgIlex8AAA QXWX0f
  6228   AAAEKxgRBR EGF28fAAAG AiV7HwAABB dZfR8AAAQR BhdZEwYRBg gvixEFbyAA AAbeDBEELA cRBG8j
  6229   AAAK3CAQJw AAKIgAAAre NxMHAiV7EQ AABHLAEwBw EQdvaQAACm 9UAAAKcmkL AHAoZgAACn 0RAAAE
  6230   AihdAAAKF2 9eAAAK3gAC JXsRAAAEci QUAHAoVgAA Cn0RAAAEKg AAAEE0AAAC AAAA1QAAAK YAAAB7
  6231   AQAADAAAAA AAAAAAAAAA GgAAAHkBAA CTAQAANwAA ADMAAAEbMA UAswEAABoA ABECJXsRAA AEcm4U
  6232   AHAoVgAACn 0RAAAEAnsi AAAEc4wAAA oKBnLMFABw b40AAAoDb3 cAAApvjgAA ChMHKzwRB2 8YAAAK
  6233   CwIlexEAAA QHb1QAAApy DhUAcCgsAA AKfREAAAQG b48AAAoHb1 QAAAoHb1QA AApvkAAACi YRB28i
  6234   AAAKLbveFR EHdQYAAAET CBEILAcRCG 8jAAAK3AYD b5EAAAreCg YsBgZvIwAA CtwCJXsRAA AEchYV
  6235   AHAoVgAACn 0RAAAEAnsi AAAEc34AAA oMcgQGAHAN CXKAFQBwKF YAAAoNCXLa FQBwKFYAAA oNCXIW
  6236   FgBwKFYAAA oNAiV7EQAA BAlyaQsAcC gsAAAKfREA AAQJc38AAA oTBBEEF2+C AAAKEQQIb4 MAAAoI
  6237   b4QAAAoRBG +FAAAKEwUC JXsRAAAEco AWAHASBSgr AAAKcpQWAH AoZgAACn0R AAAE3goILA YIbyMA
  6238   AArc3jcTBg IlexEAAARy 4hYAcBEGb2 kAAApvVAAA CnJpCwBwKG YAAAp9EQAA BAIoXQAACh dvXgAA
  6239   Ct4AAiV7EQ AABHJpFwBw KFYAAAp9EQ AABCoAQWQA AAIAAAA6AA AASQAAAIMA AAAVAAAAAA AAAAIA
  6240   AAAiAAAAfw AAAKEAAAAK AAAAAAAAAA IAAADNAAAA jAAAAFkBAA AKAAAAAAAA AAAAAAAWAA AATwEA
  6241   AGUBAAA3AA AAMwAAAQMw BQCHAQAAAA AAAAIlexEA AARywxcAcC hWAAAKfREA AAQCcgsYAH B9IQAA
  6242   BAIleyEAAA QCKF0AAApv kgAACnIlGA Bwb5MAAApv lAAACnQyAA ABKFYAAAp9 IQAABAIley EAAARy
  6243   TRgAcChWAA AKfSEAAAQC JXshAAAEAi hdAAAKb5IA AApycRgAcG +TAAAKb5QA AAp0MgAAAS hWAAAK
  6244   fSEAAAQCJX shAAAEcp0Y AHAoVgAACn 0hAAAEAiV7 EQAABHLRGA BwAnshAAAE cmkLAHAoZg AACn0R
  6245   AAAEAnILGA BwfSIAAAQC JXsiAAAEAi hdAAAKb5IA AApyFRkAcG +TAAAKb5QA AAp0MgAAAS hWAAAK
  6246   fSIAAAQCJX siAAAEck0Y AHAoVgAACn 0iAAAEAiV7 IgAABAIoXQ AACm+SAAAK cj8ZAHBvkw AACm+U
  6247   AAAKdDIAAA EoVgAACn0i AAAEAiV7Ig AABHKdGABw KFYAAAp9Ig AABAIlexEA AARybRkAcA J7IgAA
  6248   BHJpCwBwKG YAAAp9EQAA BCoAGzAFAM wBAAAbAAAR AiV7EQAABH KzGQBwKFYA AAp9EQAABA ICKF0A
  6249   AApvkgAACn LzGQBwb5MA AApvlAAACm 9UAAAKc4oA AAp9HAAABA IlexEAAARy BxoAcAIoXQ AACm+S
  6250   AAAKcvMZAH BvkwAACm+U AAAKb1QAAA pyaQsAcChm AAAKfREAAA QCAnscAAAE b5UAAAp9Fw AABAJ7
  6251   HAAABHN9AA AGCgIGb4AA AAZvwwAABh dvBwAABn0g AAAEFgsrRw Ilex4AAAQX WH0eAAAEAn sgAAAE
  6252   FwJ7HgAABG 8ZAAAGb5MA AAZvVAAACm +WAAAKcgQG AHAoKQAACi wGBxdYCysG BxYxAhYLAn sgAAAE
  6253   FwJ7HgAABG 8ZAAAGb5MA AAZvVAAACm +WAAAKcgQG AHAoRQAACi 2MBxsyiAIC ex4AAAQbWX 0eAAAE
  6254   AiV7EQAABH IxGgBwAnwe AAAEKCsAAA pyaQsAcChm AAAKfREAAA QCex4AAAQt IgIlexEAAA RycxoA
  6255   cChWAAAKfR EAAAQCKF0A AAoXb14AAA reCgYsBgZv IwAACtzeNQ wCJXsRAAAE cskaAHAIb2 kAAApv
  6256   VAAACnJpCw BwKGYAAAp9 EQAABAIoXQ AAChdvXgAA Ct4AKkE0AA ACAAAAlwAA APMAAACKAQ AACgAA
  6257   AAAAAAAAAA AAFgAAAIAB AACWAQAANQ AAADMAAAEb MAUA4wEAAB wAABECJXsR AAAEciEbAH AoVgAA
  6258   Cn0RAAAEcg QGAHAKcgQG AHALFgwXDR cTBDjiAAAA FxMEFxMFKy 8CeyAAAAQJ EQVvGQAABm 9UAAAK
  6259   b5YAAApyBA YAcChFAAAK LAUWEwQrEB EFF1gTBREF AnseAAAEMc cRBCwNCBdY DAkXWA04kA AAAAgs
  6260   AhYMAnsgAA AECQJ7EgAA BG8ZAAAGb1 QAAApvlgAA CgoCeyAAAA QJAnsVAAAE bxkAAAZvVA AACm+W
  6261   AAAKCwJ7GA AABAZvawAA Ci0/Bm+WAA AKb20AAAoW MTEGb5cAAA oCeycAAARv lwAACihFAA AKLBkC
  6262   exgAAAQGb5 gAAAoCexoA AAQHBm+ZAA AKCRdYDQgf Cj8W////Ag kfC1l9HwAA BAJ7GAAABG +aAAAK
  6263   FjFXAiV7EQ AABHJnGwBw AnsYAAAEb5 oAAAoTBxIH KCsAAApyaQ sAcChmAAAK fREAAAQCJX sRAAAE
  6264   cn8bAHACfB 8AAAQoKwAA CnJpCwBwKG YAAAp9EQAA BCsiAiV7EQ AABHKVGwBw KFYAAAp9EQ AABAIo
  6265   XQAAChdvXg AACt43EwYC JXsRAAAEcs 0bAHARBm9p AAAKb1QAAA pyaQsAcChm AAAKfREAAA QCKF0A
  6266   AAoXb14AAA reACoAQRwA AAAAAAAWAA AAlQEAAKsB AAA3AAAAMw AAARswBQC/ AgAAHQAAEQ IlexEA
  6267   AARyKxwAcC hWAAAKfREA AARyBAYAcA oCexwAAARv lQAACm+bAA AKclscAHBv nAAACiwkAh Z9EAAA
  6268   BAICey4AAA R9KAAABAIC eysAAAR9Fg AABDicAAAA AnscAAAEb5 UAAApvmwAA CnJjHABwb5 wAAAos
  6269   IQIYfRAAAA QCAnswAAAE fSgAAAQCAn stAAAEfRYA AAQrXwJ7HA AABG+VAAAK b5sAAApyax wAcG+c
  6270   AAAKLCECF3 0QAAAEAgJ7 LwAABH0oAA AEAgJ7LAAA BH0WAAAEKy ICJXsRAAAE cnUcAHAoVg AACn0R
  6271   AAAEAihdAA AKF29eAAAK Fws4jwAAAA J7IAAABBcH bxkAAAZvkw AABm9UAAAK b5cAAAoKBg J7JwAA
  6272   BG+XAAAKKC kAAAosCQIH fRIAAAQrUg YCeygAAARv lwAACigpAA AKLAkCB30U AAAEKzYGAn spAAAE
  6273   b5cAAAooKQ AACiwJAgd9 EwAABCsaBg J7FgAABG+X AAAKKCkAAA osBwIHfRUA AAQHF1gLBw J7HgAA
  6274   BD5l////An sSAAAEFTEo AiV7EQAABH L8HABwAnwS AAAEKCsAAA pyaQsAcChm AAAKfREAAA QrIgIl
  6275   exEAAARyGh 0AcChWAAAK fREAAAQCKF 0AAAoXb14A AAoCexQAAA QVMSgCJXsR AAAEclgdAH ACfBQA
  6276   AAQoKwAACn JpCwBwKGYA AAp9EQAABC siAiV7EQAA BHKGHQBwKF YAAAp9EQAA BAIoXQAACh dvXgAA
  6277   CgJ7EwAABB UxKAIlexEA AARy1B0AcA J8EwAABCgr AAAKcmkLAH AoZgAACn0R AAAEKxYCJX sRAAAE
  6278   cu4dAHAoVg AACn0RAAAE 3jUMAiV7EQ AABHIsHgBw CG9pAAAKb1 QAAApyaQsA cChmAAAKfR EAAAQC
  6279   KF0AAAoXb1 4AAAreACoA QRwAAAAAAA AcAAAAbQIA AIkCAAA1AA AAMwAAARsw BwDjAAAAHg AAEQIl
  6280   exEAAARyfB 4AcChWAAAK fREAAAQCey YAAAQKc50A AAoMAihdAA AKczcAAAYN CAYCKF0AAA pvkgAA
  6281   CnIVGQBwb5 MAAApvlAAA CnQyAAABFB QUb54AAAoL AihdAAAKBx QUCRQUb58A AApvXgAACg IoXQAA
  6282   Cm9fAAAKFz MWAiV7EQAA BHLEHgBwKF YAAAp9EQAA BN43EwQCJX sRAAAEchIf AHARBG9pAA AKb1QA
  6283   AApyaQsAcC hmAAAKfREA AAQCKF0AAA oXb14AAAre AAIlexEAAA RybB8AcChW AAAKfREAAA QqAAEQ
  6284   AAAAABYAf5 UANzMAAAEb MAUAWwEAAB 8AABFyBAYA cAoDCxyNMg AAARMEEQQW ByigAAAKoh EEF3IN
  6285   CwBwohEEGA coYgAACqIR BBlyvB8AcK IRBBooYwAA ChMFEgVyFQ sAcChkAAAK ohEEGwcoZQ AACqIR
  6286   BChxAAAKCh cMK28ejTIA AAETBhEGFg cooAAACqIR BhdyDQsAcK IRBhgHKGIA AAqiEQYZcr wfAHCi
  6287   EQYaKGMAAA oTBxIHchUL AHAoZAAACq IRBhtyEQsA cKIRBhwSAi grAAAKohEG HQcoZQAACq IRBihx
  6288   AAAKCggXWA wGKKEAAAot iQIlexEAAA QTCByNMgAA ARMJEQkWEQ iiEQkXctIf AHCiEQkYA6 IRCRly
  6289   7h8AcKIRCR oGohEJG3Jp CwBwohEJKH EAAAp9EQAA BN41DQIlex EAAARyDiAA cAlvaQAACm 9UAAAK
  6290   cmkLAHAoZg AACn0RAAAE AihdAAAKF2 9eAAAK3gAG KgBBHAAAAA AAAAYAAAAe AQAAJAEAAD UAAAAz
  6291   AAABGzAFAI UBAAAgAAAR FwoCeyEAAA RzfgAACgty BAYAcAwIcn ggAHAoVgAA CgwIcgchAH AoVgAA
  6292   CgwIcj0hAH AoVgAACgwI cnkhAHACfC MAAAT+FhEA AAFvVAAACn KnIQBwKGYA AAoMCHKtIQ BwKFYA
  6293   AAoMAiV7EQ AABAhyaQsA cCgsAAAKfR EAAAQIc38A AAoNCRdvgg AACgkHb4MA AAoHb4QAAA oJb6IA
  6294   AAoTBCsxAn sbAAAEEQQR BHL7IQBwb6 MAAApvpAAA ChEEEQRyFy IAcG+jAAAK b6QAAApvmQ AAChEE
  6295   b6UAAAotxg IlexEAAARy RSIAcAJ7Gw AABG+mAAAK EwYSBigrAA AKcmkLAHAo ZgAACn0RAA AE3goH
  6296   LAYHbyMAAA rcAnsbAAAE b6YAAAotJA IlexEAAARy ZyIAcChWAA AKfREAAAQC KF0AAAoXb1 4AAAoW
  6297   Ct45EwUCJX sRAAAEcpki AHARBW9pAA AKb1QAAApy aQsAcChmAA AKfREAAAQC KF0AAAoXb1 4AAAoW
  6298   Ct4ABioAAA BBNAAAAgAA AA4AAAD/AA AADQEAAAoA AAAAAAAAAA AAAAIAAABI AQAASgEAAD kAAAAz
  6299   AAABGzAFAI IBAAAhAAAR AiV7EQAABH L5IgBwKFYA AAp9EQAABH IEBgBwCgZy SyMAcChWAA AKCgZy
  6300   jSMAcChWAA AKCgZy0yMA cChWAAAKCg ZyKyQAcChW AAAKCgZyMS QAcChWAAAK CgZyqxAAcA J8IwAA
  6301   BP4WEQAAAW 9UAAAKclMk AHAoZgAACg oCJXsRAAAE cr0kAHAGcm kLAHAoZgAA Cn0RAAAEFg sCeyEA
  6302   AARzfgAACg wGc38AAAoN CRdvggAACg kIb4MAAAoC exgAAARvpw AAChMGKz4S BiioAAAKEw QJb4AA
  6303   AApvqQAACg lvgAAACnLl JABwEQRvqg AACiYIb4QA AAoJb4UAAA omCG+rAAAK BxdYCxIGKK wAAAot
  6304   ud4OEgb+Fg YAABtvIwAA CtzeCggsBg hvIwAACtwC JXsRAAAEcv MkAHASASgr AAAKcmkLAH AoZgAA
  6305   Cn0RAAAE3j ITBQIlexEA AARyKyUAcB EFb60AAApv VAAACigsAA AKfREAAAQC KF0AAAoXb1 4AAAre
  6306   ACoAAAEoAA ACAMYASxEB DgAAAAACAK QAfSEBCgAA AAAAAJgAt0 8BMjMAAAEb MAUAFgYAAC IAABEC
  6307   JXsRAAAEco 8lAHAoVgAA Cn0RAAAEAn siAAAEc34A AAoKcsklAH ALc3YAAAoM BwZzrgAACg 0Jc68A
  6308   AAoTBBEECG +wAAAKJghv cwAACm+OAA AKEwc4OwMA ABEHbxgAAA p0RQAAARMF EQUWb7EAAA o5IAMA
  6309   ABEFFm+xAA AKb1QAAApy YCYAcCgpAA AKLDQRBRdv sQAACiwqEQ UXb7EAAApv VAAACm+WAA AKb5cA
  6310   AApyhiYAcC gpAAAKLAcC F30xAAAEEQ UWb7EAAApv VAAACnKQJg BwKCkAAAos PBEFF2+xAA AKLDIR
  6311   BRdvsQAACm 9UAAAKb5YA AApvlwAACn KGJgBwKCkA AAo5igIAAA IXfSUAAAQ4 fgIAABEFFm +xAAAK
  6312   b1QAAApyyi YAcCgpAAAK LCIRBRdvsQ AACiwYAhEF F2+xAAAKb1 QAAAp9JgAA BDhDAgAAEQ UWb7EA
  6313   AApvVAAACn L6JgBwKCkA AAosIhEFF2 +xAAAKLBgC EQUXb7EAAA pvVAAACn0n AAAEOAgCAA ARBRZv
  6314   sQAACm9UAA AKci4nAHAo KQAACiwiEQ UXb7EAAAos GAIRBRdvsQ AACm9UAAAK fSgAAAQ4zQ EAABEF
  6315   Fm+xAAAKb1 QAAApyaicA cCgpAAAKLC IRBRdvsQAA CiwYAhEFF2 +xAAAKb1QA AAp9KQAABD iSAQAA
  6316   EQUWb7EAAA pvVAAACnKa JwBwKCkAAA osIhEFF2+x AAAKLBgCEQ UXb7EAAApv VAAACn0qAA AEOFcB
  6317   AAARBRZvsQ AACm9UAAAK csonAHAoKQ AACiwiEQUX b7EAAAosGA IRBRdvsQAA Cm9UAAAKfS sAAAQ4
  6318   HAEAABEFFm +xAAAKb1QA AApy9icAcC gpAAAKLCIR BRdvsQAACi wYAhEFF2+x AAAKb1QAAA p9LAAA
  6319   BDjhAAAAEQ UWb7EAAApv VAAACnIkKA BwKCkAAAos IhEFF2+xAA AKLBgCEQUX b7EAAApvVA AACn0t
  6320   AAAEOKYAAA ARBRZvsQAA Cm9UAAAKcl AoAHAoKQAA CiwfEQUXb7 EAAAosFQIR BRdvsQAACm 9UAAAK
  6321   fS4AAAQrbh EFFm+xAAAK b1QAAApyhC gAcCgpAAAK LB8RBRdvsQ AACiwVAhEF F2+xAAAKb1 QAAAp9
  6322   LwAABCs2EQ UWb7EAAApv VAAACnK6KA BwKCkAAAos HREFF2+xAA AKLBMCEQUX b7EAAApvVA AACn0w
  6323   AAAEEQdvIg AACjq5/P// 3hURB3UGAA ABEwgRCCwH EQhvIwAACt zeDBEELAcR BG8jAAAK3N 4KCSwG
  6324   CW8jAAAK3N 4KBiwGBm8j AAAK3AIlex EAAARy7igA cAIoXQAACm +SAAAKcjwp AHBvkwAACm +UAAAK
  6325   b1QAAApyaQ sAcChmAAAK fREAAAQCJX sRAAAEEwka jQEAAAETCh EKFhEJohEK F3JcKQBwoh EKGAJ7
  6326   JQAABIw7AA ABohEKGXJp CwBwohEKKL IAAAp9EQAA BAIlexEAAA RymikAcAJ7 JgAABHJpCw BwKGYA
  6327   AAp9EQAABA IlexEAAARy zikAcAJ7Jw AABHJpCwBw KGYAAAp9EQ AABAIlexEA AARyBioAcA J7KAAA
  6328   BHJpCwBwKG YAAAp9EQAA BAIlexEAAA RyRioAcAJ7 KQAABHJpCw BwKGYAAAp9 EQAABAIlex EAAARy
  6329   eioAcAJ7Kg AABHJpCwBw KGYAAAp9EQ AABAIlexEA AARyrioAcA J7KwAABHJp CwBwKGYAAA p9EQAA
  6330   BAIlexEAAA Ry3ioAcAJ7 LAAABHJpCw BwKGYAAAp9 EQAABAIlex EAAARyECsA cAJ7LQAABH JpCwBw
  6331   KGYAAAp9EQ AABAIlexEA AARyQCsAcA J7LgAABHJp CwBwKGYAAA p9EQAABAIl exEAAARyeC sAcAJ7
  6332   LwAABHJpCw BwKGYAAAp9 EQAABAIlex EAAARysisA cAJ7MAAABH JpCwBwKGYA AAp9EQAABA IlexEA
  6333   AARy6isAcA J8IwAABP4W EQAAAW9UAA AKcmkLAHAo ZgAACn0RAA AE3iETBgIl exEAAARy/C sAcBEG
  6334   b2kAAAooLA AACn0RAAAE 3gAqAABBfA AAAgAAAFQA AABOAwAAog MAABUAAAAA AAAAAgAAAD 4AAAB7
  6335   AwAAuQMAAA wAAAAAAAAA AgAAADYAAA CRAwAAxwMA AAoAAAAAAA AAAgAAACIA AACxAwAA0w MAAAoA
  6336   AAAAAAAAAA AAABYAAADe BQAA9AUAAC EAAAAzAAAB GzAEALUAAA AjAAARAnsh AAAEc34AAA oKcjgs
  6337   AHBzfwAACg sHF2+CAAAK BwZvgwAACg dvgAAACnKH LQBwFowxAA ABb6oAAAom B2+AAAAKcp 0tAHAW
  6338   jDEAAAFvqg AACiYHb4AA AApysy0AcB aMMQAAAW+q AAAKJgdvgA AACnLNLQBw cvEtAHACex EAAAQo
  6339   VgAACm+qAA AKJgZvhAAA CgdvhQAACi beCgYsBgZv IwAACtwCcg QGAHB9EQAA BN4DJt4AKg AAAAEc
  6340   AAACAAwAjp oACgAAAAAA AAAAsbEAAz MAAAEDMAIA HwEAAAAAAA ACcgQGAHB9 EQAABAIVfR IAAAQC
  6341   FX0TAAAEAh V9FAAABAIV fRUAAAQCcg QGAHB9FgAA BAJyBAYAcH 0XAAAEAnNq AAAKfRgAAA QCc2oA
  6342   AAp9GQAABA JzswAACn0a AAAEAnOzAA AKfRsAAAQC F30eAAAEAh d9HwAABAJy BAYAcH0hAA AEAnIE
  6343   BgBwfSIAAA QCKLQAAAp9 IwAABAIXfS QAAAQCcgQG AHB9JgAABA JyBAYAcH0n AAAEAnIEBg BwfSgA
  6344   AAQCcgQGAH B9KQAABAJy BAYAcH0qAA AEAnIEBgBw fSsAAAQCcg QGAHB9LAAA BAJyBAYAcH 0tAAAE
  6345   AnIEBgBwfS 4AAAQCcgQG AHB9LwAABA JyBAYAcH0w AAAEAii1AA AKKjoCKLYA AAoCA306AA AEKm4C
  6346   ezoAAARvtw AACgQFDgQO BQ4Gb7gAAA omFipuAns6 AAAEb7cAAA oEBQ4EDgUO Bg4Ib7kAAA oqZgJ7
  6347   OgAABG+3AA AKBAUOBA4F DgZvugAACi obMAQAMwEA ACQAABECKA 0AAAoCA307 AAAEAgNvFw AABnIX
  6348   LgBwBIwxAA ABKDwAAAoC ezsAAARvDw AABm8RAAAK dBUAAAF9PA AABAJ7PAAA BDrpAAAAAg NvFwAA
  6349   BnK7CABwcg UAAHBvEgAA Cn08AAAEAn s8AAAEcnkA AHAPAigrAA AKbzUAAAoD bxcAAAZy+Q cAcAJ7
  6350   OwAABG8PAA AGbxEAAAoK BjmVAAAAFA sDbxcAAAZy HQkAcAJ7Ow AABG8PAAAG b0kAAApvFw AAChME
  6351   KzARBG8YAA AKdAoAAAEM CG8ZAAAKcn kAAHBvJwAA Cm8bAAAKKB wAAAoNCQQx BAgLKwkRBG 8iAAAK
  6352   LcfeFREEdQ YAAAETBREF LAcRBW8jAA AK3ActDgYC ezwAAARvFA AACiYqBgJ7 PAAABAdvuw AACiYq
  6353   AAEQAAACAM EAPf4AFQAA AAAeAns8AA AEKhMwAwAp AAAAJQAAER YKAns8AAAE ck4BAHBycQ gAcG+8
  6354   AAAKCwdycQ gAcCgpAAAK LAIXCgYqvg MsFgJ7PAAA BHJOAQBwcn EIAHBvNQAA CioCezwAAA RyTgEA
  6355   cHLRAwBwbz UAAAoqAAAA EzACADEAAA AmAAARIwAA AAAAACRACg J7PAAABHJT LgBwb0QAAA oLB3IE
  6356   BgBwKEUAAA osBwcovQAA CgoGKrYCez wAAARyUy4A cA8BKL4AAA pvNQAACgJ7 PAAABHJZLg BwcnEI
  6357   AHBvNQAACi pKAns7AAAE AihDAAAGby MAAAYqTgIC ezsAAAQDby QAAAYoRAAA BioAABMwAg ApAAAA
  6358   JwAAERYKAn s8AAAEcnMu AHBvRAAACg sHcgQGAHAo RQAACiwHBy goAAAKCgYq tgJ7PAAABH JzLgBw
  6359   DwEoKwAACm 81AAAKAns8 AAAEcncuAH BycQgAcG81 AAAKKh4CKA 0AAAoqAAMw AgBPAAAAAA AAAAJ8
  6360   TgAABP4VBw AAGwJ8TwAA BP4VBwAAGw J8UAAABP4V BwAAGwIoDQ AACgNvvwAA CnJiBgBwKE UAAAos
  6361   C3KRLgBwcy oAAAp6AgN9 RwAABCoAEz ADAGEAAAAo AAARAnxOAA AEKMAAAAot SAIWc8EAAA p9TgAA
  6362   BAJ7RwAABG 8ZAAAKcgUv AHBvJwAACn QqAAABCgYs HgZvGwAACn JxCABwKCkA AAosDAIXc8 EAAAp9
  6363   TgAABAJ8Tg AABCjCAAAK KgAAABMwAw BrAAAAKAAA EQIDc8EAAA p9TgAABAJ7 RwAABG8ZAA AKcgUv
  6364   AHBvJwAACn QqAAABCgYt JgJ7RwAABG 8ZAAAKAntH AAAEb8MAAA pyBS8AcG9L AAAKb0wAAA oKAywM
  6365   BnJxCABwb0 IAAAoqBnLR AwBwb0IAAA oqABMwAwBh AAAAKAAAEQ J8TwAABCjA AAAKLUgCFn PBAAAK
  6366   fU8AAAQCe0 cAAARvGQAA CnInLwBwby cAAAp0KgAA AQoGLB4Gbx sAAApycQgA cCgpAAAKLA wCF3PB
  6367   AAAKfU8AAA QCfE8AAAQo wgAACioAAA ATMAMAawAA ACgAABECA3 PBAAAKfU8A AAQCe0cAAA RvGQAA
  6368   CnInLwBwby cAAAp0KgAA AQoGLSYCe0 cAAARvGQAA CgJ7RwAABG /DAAAKcicv AHBvSwAACm 9MAAAK
  6369   CgMsDAZycQ gAcG9CAAAK KgZy0QMAcG 9CAAAKKgAT MAMAYQAAAC gAABECfFAA AAQowAAACi 1IAhZz
  6370   wQAACn1QAA AEAntHAAAE bxkAAApySS 8AcG8nAAAK dCoAAAEKBi weBm8bAAAK cnEIAHAoKQ AACiwM
  6371   AhdzwQAACn 1QAAAEAnxQ AAAEKMIAAA oqAAAAEzAD AGsAAAAoAA ARAgNzwQAA Cn1QAAAEAn tHAAAE
  6372   bxkAAApySS 8AcG8nAAAK dCoAAAEKBi 0mAntHAAAE bxkAAAoCe0 cAAARvwwAA CnJJLwBwb0 sAAApv
  6373   TAAACgoDLA wGcnEIAHBv QgAACioGct EDAHBvQgAA CipqAntIAA AELQsCc0UA AAZ9SAAABA J7SAAA
  6374   BCpqAntJAA AELQsCc0UA AAZ9SQAABA J7SQAABCqG AntKAAAELQ sCc0UAAAZ9 SgAABAIXKE oAAAYC
  6375   e0oAAAQqhg J7SwAABC0L AnNFAAAGfU sAAAQCFyhK AAAGAntLAA AEKoYCe0wA AAQtCwJzRQ AABn1M
  6376   AAAEAhcoTA AABgJ7TAAA BCqGAntNAA AELQsCc0UA AAZ9TQAABA IXKEwAAAYC e00AAAQqAA AAEzAE
  6377   AJcBAAALAA ARAntIAAAE LDgCe0cAAA QCe0cAAARv wwAACnJnLw BwcgUAAHBv EgAACm8UAA AKCgYC
  6378   AihNAAAGKF QAAAZvUQAA CgJ7SQAABC w4AntHAAAE AntHAAAEb8 MAAApyey8A cHIFAABwbx IAAApv
  6379   FAAACgoGAg IoTgAABihU AAAGb1EAAA oCKEkAAAY5 gAAAAAJ7Sg AABCw4AntH AAAEAntHAA AEb8MA
  6380   AApyjy8AcH IFAABwbxIA AApvFAAACg oGAgIoTwAA BihUAAAGb1 EAAAoCe0sA AAQsOAJ7Rw AABAJ7
  6381   RwAABG/DAA AKcqUvAHBy BQAAcG8SAA AKbxQAAAoK BgICKFAAAA YoVAAABm9R AAAKAihLAA AGOYAA
  6382   AAACe0wAAA QsOAJ7RwAA BAJ7RwAABG /DAAAKcrsv AHByBQAAcG 8SAAAKbxQA AAoKBgICKF EAAAYo
  6383   VAAABm9RAA AKAntNAAAE LDgCe0cAAA QCe0cAAARv wwAACnLTLw BwcgUAAHBv EgAACm8UAA AKCgYC
  6384   AihSAAAGKF QAAAZvUQAA CioAEzADAF YAAAApAAAR cgQGAHAKA3 s9AAAELBIG cusvAHADez 0AAAQo
  6385   LAAACgoDez 4AAAQsEgZy 8S8AcAN7Pg AABCgsAAAK CgN7PwAABC wSBnL3LwBw A3s/AAAEKC wAAAoK
  6386   BioAABMwBA AQAQAABgAA EQJy/S8AcB hzLQAACn1Z AAAEAnIjMA BwGHMtAAAK fVoAAAQCck cwAHAY
  6387   cy0AAAp9Ww AABAIoDQAA CgIDfV8AAA RzDgAACgoC BnMPAAAKfW AAAAQCe2AA AARyAQAAcH IFAABw
  6388   bxAAAAoCe2 AAAARycTAA cHJ3MABwbx AAAAoCe2AA AARyAjEAcH IIMQBwbxAA AAoCe2AAAA RynTEA
  6389   cHKlMQBwbx AAAAoCe2AA AARyNjIAcH I8MgBwbxAA AAoCe2AAAA RyzTIAcHLT MgBwbxAAAA oCe2AA
  6390   AARyFTMAcH IlMwBwbxAA AAoCe2AAAA RyWTMAcHJr MwBwbxAAAA oCe2AAAARy pTMAcHKtMw BwbxAA
  6391   AAoqHgJ7WQ AABCoeAnta AAAEKh4Ce1 sAAAQqEzAE AD0BAAAqAA ARAntcAAAE OisBAAACe1 8AAARv
  6392   fwAABgIoVg AABm/EAAAK LBwCAntfAA AEAihWAAAG b4gAAAZ9XA AABDj3AAAA AntfAAAEb3 8AAAYC
  6393   KFYAAAZyAT QAcG8uAAAK CgJzOAAACn 1cAAAEAntc AAAEcnc0AH ByPDIAcG8S AAAKCwdyPD IAcHI2
  6394   MgBwKIMAAA YHctMyAHBy zTIAcCiDAA AGB3IlMwBw chUzAHAogw AABgdyazMA cHJZMwBwKI MAAAYH
  6395   cq0zAHBypT MAcCiDAAAG AntcAAAEB2 8UAAAKJgYY GG8vAAAKcz AAAAoMAntc AAAECG8xAA AKCG8y
  6396   AAAKAntfAA AEb38AAAZv MwAACgJ7Xw AABG9/AAAG AihWAAAGFn KbNABwb8UA AAomAntfAA AEb38A
  6397   AAZvMwAACg J7XAAABCpG AnLNMgBwck g1AHAobAAA BipKAnLNMg Bwckg1AHAD KG0AAAYqRg JyzTIA
  6398   cHJUNQBwKG wAAAYqSgJy zTIAcHJUNQ BwAyhtAAAG KkYCcs0yAH ByZDUAcChs AAAGKkoCcs 0yAHBy
  6399   ZDUAcAMobQ AABipGAnLN MgBwcnQ1AH AobAAABipK AnLNMgBwcn Q1AHADKG0A AAYqRgJyNj IAcHKM
  6400   NQBwKGwAAA YqSgJyNjIA cHKMNQBwAy htAAAGKkYC cjYyAHBynj UAcChsAAAG KkoCcjYyAH BynjUA
  6401   cAMobQAABi pGAnI2MgBw crw1AHAobA AABipKAnI2 MgBwcrw1AH ADKG0AAAYq RgJyNjIAcH LUNQBw
  6402   KGwAAAYqSg JyNjIAcHLU NQBwAyhtAA AGKkYCcjYy AHBy5jUAcC hsAAAGKkoC cjYyAHBy5j UAcAMo
  6403   bQAABioAAB MwAwAuAAAA KwAAERQKcg I2AHADBChK AAAKCwIoWQ AABgcCe2AA AARvEQAACg wILAcI
  6404   b1AAAAoKBi oAABMwBADD AAAALAAAEX ICNgBwAwQo SgAACgoCKF kAAAYGAntg AAAEbxEAAA oLBzqV
  6405   AAAAcjwyAH AMAyUNLGkJ cjYyAHAoKQ AACi02CXLN MgBwKCkAAA otMQlyFTMA cCgpAAAKLS wJclkz
  6406   AHAoKQAACi 0nCXKlMwBw KCkAAAotIi smcjwyAHAM Kx5y0zIAcA wrFnIlMwBw DCsOcmszAH AMKwZy
  6407   rTMAcAwCKF kAAAYDBAhv xgAACgsCKF kAAAZvEwAA CgdvFAAACi YHBW9RAAAK KgATMAQA/Q AAACoA
  6408   ABECe10AAA Q66wAAAAJ7 XwAABG9/AA AGAihXAAAG b8QAAAosHA ICe18AAAQC KFcAAAZviA AABn1d
  6409   AAAEOLcAAA ACe18AAARv fwAABgIoVw AABnI6NgBw by4AAAoKAn M4AAAKfV0A AAQCe10AAA RyxzYA
  6410   cHIIMQBwbx IAAAoLB3J3 MABwcnEwAH AogwAABgJ7 XQAABAdvFA AACiYGGBhv LwAACnMwAA AKDAJ7
  6411   XQAABAhvMQ AACghvMgAA CgJ7XwAABG 9/AAAGbzMA AAoCe18AAA RvfwAABgIo VwAABhZy3T YAcG/F
  6412   AAAKJgJ7Xw AABG9/AAAG bzMAAAoCe1 0AAAQqMgJy jjcAcCh3AA AGKkYCcqY3 AHAodwAABn PHAAAK
  6413   KkoCcqY3AH ADb1QAAAoo eAAABioyAn LCNwBwKHcA AAYqMgJy2D cAcCh3AAAG KjYCctg3AH ADKHgA
  6414   AAYqMgJy6D cAcCh3AAAG KjYCcug3AH ADKHgAAAYq AAATMAMALQ AAACsAABEU CnL4NwBwAy g8AAAK
  6415   CwIobgAABg cCe2AAAARv EQAACgwILA cIb1AAAAoK BioAAAATMA MATgAAAC0A ABFy+DcAcA MoPAAA
  6416   CgoCKG4AAA YGAntgAAAE bxEAAAoLBy 0kAihuAAAG A3IIMQBwbx IAAAoLAihu AAAGbxMAAA oHbxQA
  6417   AAomBwRvUQ AACioAABMw BAD9AAAAKg AAEQJ7XgAA BDrrAAAAAn tfAAAEb38A AAYCKFgAAA ZvxAAA
  6418   CiwcAgJ7Xw AABAIoWAAA Bm+IAAAGfV 4AAAQ4twAA AAJ7XwAABG 9/AAAGAihY AAAGciY4AH BvLgAA
  6419   CgoCczgAAA p9XgAABAJ7 XgAABHLHNg BwcqUxAHBv EgAACgsHcn cwAHBycTAA cCiDAAAGAn teAAAE
  6420   B28UAAAKJg YYGG8vAAAK czAAAAoMAn teAAAECG8x AAAKCG8yAA AKAntfAAAE b38AAAZvMw AACgJ7
  6421   XwAABG9/AA AGAihYAAAG FnKvOABwb8 UAAAomAntf AAAEb38AAA ZvMwAACgJ7 XgAABCoAAA ATMAMA
  6422   MgAAACsAAB EUCnJcOQBw Ayg8AAAKCw IoeQAABgcC e2AAAARvEQ AACgwILAwI b8gAAApvUA AACgoG
  6423   KgAAGzAEAE oBAAAuAAAR crY5AHAKAi h5AAAGBgJ7 YAAABG8RAA AKC3LYOQBw Ayg8AAAKCg IoeQAA
  6424   BgYCe2AAAA RvEQAACgwI Ov8AAAAaDQ dvFgAACm8X AAAKEwkrQB EJbxgAAAp0 CgAAARMEEQ RvGQAA
  6425   CnI6OgBwby cAAAp0KgAA ARMFEQUsFh EFbxsAAAoo KAAAChMGEQ YJMQMRBg0R CW8iAAAKLb feFREJ
  6426   dQYAAAETCh EKLAcRCm8j AAAK3AkXWA 0CKHkAAAZy QjoAcHKlMQ BwbxIAAAoT BxEHclQ6AH ByYDoA
  6427   cG81AAAKEQ dyOjoAcBID KCsAAApvNQ AAChEHcioB AHADbzUAAA oCKHkAAAZy cTAAcHKuOg Bwcncw
  6428   AHBvxgAACh MIEQgEb1EA AAoRBxEIbx QAAAomAih5 AAAGbxMAAA oRB28UAAAK JioIb8gAAA oEb1EA
  6429   AAoqAAABEA AAAgBNAE2a ABUAAAAAAz AEAK8AAAAA AAAAAntcAA AELDICe18A AAQCe1wAAA RyvDoA
  6430   cHLOOgBwb4 EAAAYCe18A AAQCKFYAAA YCe1wAAARv hQAABgJ7XQ AABCwyAntf AAAEAntdAA AEcrw6
  6431   AHBy4DoAcG +BAAAGAntf AAAEAihXAA AGAntdAAAE b4UAAAYCe1 4AAAQsMgJ7 XwAABAJ7Xg AABHK8
  6432   OgBwcvA6AH BvgQAABgJ7 XwAABAIoWA AABgJ7XgAA BG+FAAAGKg ATMAQAlQAA AC8AABECKA 0AAAoC
  6433   A2/JAAAKfW QAAAQDb8oA AAosFAIDb2 EAAAoZGSjL AAAKfWMAAA QqAgNvYQAA ChgZKMsAAA p9YwAA
  6434   BHIGOwBwGH MtAAAKCgJ7 YwAABAZyID sAcG8uAAAK JgIogAAABm /IAAAGJgJ7 YwAABAIogA AABm/E
  6435   AAAGFnJAOw Bwb8UAAAom AntjAAAEBm 86AAAKKgAA ABswBABrAA AAMAAAEQIo DQAACgIDb8 kAAAp9
  6436   ZAAABARvyg AACixGA2/K AAAKLBUDb8 wAAAreDQpy 5zsAcAZzzQ AACnoEA29h AAAKb84AAA oQAQMW
  6437   b88AAAoCA2 9hAAAKGRko ywAACn1jAA AEKnJjPABw cyoAAAp6AA EQAAAAACIA CCoADTMAAA EeAntj
  6438   AAAEKm4Ce2 UAAAQtDAIC c8IAAAZ9ZQ AABAJ7ZQAA BCoTMAMAgw AAADEAABEC e2YAAAQseg J7ZAAA
  6439   BHLoPABwBC gsAAAKc9AA AAoKBm/KAA AKLQYGb9EA AAobjTIAAA EMCBYCe2QA AASiCBdy6D wAcKII
  6440   GASiCBly6D wAcKIIGgWi CChxAAAKc4 oAAAoLB2/K AAAKLA0HFm /PAAAKB2/M AAAKAwdvYQ AACm/S
  6441   AAAKKgAbMA MAVAAAADIA ABEUCgJ7Yw AABANvQQAA CgsHcuw8AH AEKFYAAApv 0wAACm/UAA AKDSsW
  6442   CW/VAAAKDA MIbx8AAAoo IAAACgorCA lvIgAACi3i 3goJLAYJby MAAArcBioB EAAAAgAmAC JIAAoA
  6443   AAAAEzAEAC wAAAAoAAAR Am/DAAAKcn c9AHAEcoM9 AHBv1gAACg oGA29CAAAK Am8ZAAAKBm 9MAAAK
  6444   JioTMAIAJg AAACgAABEC b8MAAApydz 0AcG9LAAAK CgYDb0IAAA oCbxkAAAoG b0wAAAomKg AAEzAE
  6445   ABwAAAAKAA ARAntjAAAE A29BAAAKCg QGGBhvLwAA Cm9XAAAKKj ICe2MAAARv 1wAACioyAi iAAAAG
  6446   b88AAAYqAA ATMAIAIQAA ADMAABFzOA AACgoCe2MA AAQDb0EAAA oLBgdvRwAA Cm9IAAAKBi oafmcA
  6447   AAQqLnOKAA AGgGcAAAQq HgIo2QAACi oeAigNAAAK KgMwBQBMAA AAAAAAAAIo DQAACgQXMg QFFy8L
  6448   cr89AHBzKg AACnoDLQty Tj4AcHMqAA AKegIDfWgA AAQCBH1qAA AEAgV9awAA BAICAwQFKK YAAAZ9
  6449   aQAABCoeAn tpAAAEKh4C e2oAAAQqHg J7awAABCpK AntqAAAEAn trAAAEKKoA AAYqMgIokw AABiii
  6450   AAAGKhMwAw CsAAAANAAA EQJ7bAAABD qaAAAAFwoC e2kAAARy1z 4AcAJ7aAAA BG8PAAAGbx EAAAoL
  6451   By0YAnIEBg BwfW0AAAQC cgQGAHB9bA AABCthAgdv UAAACn1tAA AEAntpAAAE bxkAAApySw cAcG8a
  6452   AAAKDAgsFA hvGwAACnJz LgBwKCkAAA oW/gEKBiwO AgJ7bQAABH 1sAAAEKxcC AgJ7bQAABC gcAAAK
  6453   KKQAAAZ9bA AABAJ7bAAA BCoTMAMAAQ EAADUAABEC A31sAAAEAn tpAAAEctc+ AHACe2gAAA RvDwAA
  6454   Bm8RAAAKCg YtKAJ7aQAA BG/DAAAKcu M+AHByBQAA cG8SAAAKCg J7aQAABAZv FAAACiYDKK IAAAYs
  6455   OAIDfW0AAA QCe2kAAARv GQAACnJLBw BwbxoAAAoL Byx+AntpAA AEbxkAAApy SwcAcG/aAA AKJitm
  6456   AgICe2wAAA QoowAABg0S AygrAAAKfW 0AAAQCe2kA AARvGQAACn JLBwBwbxoA AAoMCC0oAn tpAAAE
  6457   b8MAAApySw cAcG9LAAAK DAJ7aQAABG 8ZAAAKCG9M AAAKJghycy 4AcG9CAAAK BgJ7bQAABG 9RAAAK
  6458   KgAAABMwAg AoAAAANgAA ERQKAntpAA AEbxkAAApy SwcAcG8aAA AKCwcsCwJy BAYAcH1vAA AEBioT
  6459   MAIAUAAAAC gAABECA31v AAAEAntpAA AEbxkAAApy SwcAcG8aAA AKCgYtKAJ7 aQAABG/DAA AKcksH
  6460   AHBvSwAACg oCe2kAAARv GQAACgZvTA AACiYGA29C AAAKKkoCe2 gAAAQCKJkA AAZvIwAABi pOAgJ7
  6461   aAAABANvJA AABiiaAAAG KgATMAIAKQ AAACcAABEW CgJ7aQAABH JzLgBwb0QA AAoLB3IEBg BwKEUA
  6462   AAosBwcoKA AACgoGKmIC e2kAAARycy 4AcA8BKCsA AApvNQAACi oAABMwAwCL AAAANwAAEQ J7cAAA
  6463   BBQo2wAACi x2cuc+AHAC KJEAAAYoPA AACgoCe2kA AARvwwAACg YCe2gAAARv DwAABm8RAA AKCwcs
  6464   RQdvGQAACn JfAwBwcn0A AHBvUgAACn QqAAABDAgs JwhvGwAACg 0Ce2gAAARv DAAABglvHg AAChME
  6465   AhEEbx8AAA p9cAAABAJ7 cAAABCoAEz AEAAgCAAA4 AAARAgN9cA AABAJ7aQAA BG/DAAAKcj k/AHAC
  6466   e2gAAARvDw AABm8RAAAK CgY6nAAAAA J7aQAABG/D AAAKclc/AH ByBQAAcG8S AAAKCgJ7aQ AABG/D
  6467   AAAKcnsHAH ACe2gAAARv DwAABm8RAA AKCwctRQJ7 aQAABG/DAA AKctsHAHAC e2gAAARvDw AABm8R
  6468   AAAKCwctIQ J7aQAABG/D AAAKcvkHAH ACe2gAAARv DwAABm8RAA AKCwJ7aQAA BG/DAAAKbx MAAAoG
  6469   B29GAAAKJn JtPwBwAiiR AAAGKDwAAA oMBggCe2gA AARvDwAABm 8RAAAKdBUA AAENCS00An tpAAAE
  6470   b8MAAApypT 8AcHIFAABw bxIAAAoNCX JjBwBwAiiR AAAGbzUAAA oGCW8UAAAK JglvGQAACn JfAwBw
  6471   cn0AAHBvUg AACnQqAAAB EwQRBC0vAn tpAAAEb8MA AApyeQAAcH JfAwBwcn0A AHBv1gAACh MECW8Z
  6472   AAAKEQRvTA AACiYUEwUR BG8bAAAKEw YRBnIEBgBw KCkAAAosIA J7aAAABG8M AAAGAntwAA AEF3K5
  6473   PwBwbzQAAA oTBStGAnto AAAEbwwAAA YRBm8eAAAK EwURBW8fAA AKAntwAAAE KNwAAAosHg J7aAAA
  6474   BG8MAAAGAn twAAAEF3K5 PwBwbzQAAA oTBREEEQVv NgAACm9CAA AKKhMwAwDt AAAAOQAAEQ J7bgAA
  6475   BDrbAAAAAn tpAAAEcj8H AHACe2gAAA RvDwAABm8R AAAKCgY5uQ AAAAZvGQAA CnJLBwBwby cAAAp0
  6476   KgAAAQsHLR ECBm9QAAAK fW4AAAQ4jw AAAAdvGwAA CnJPBwBwKC kAAAoscQZv GQAACnJdBw BwbycA
  6477   AAp0KgAAAQ wILQtyVkAA cHMqAAAKen L5QABwCG8b AAAKKDwAAA oNAntpAAAE b8MAAAoJAn toAAAE
  6478   bw8AAAZvEQ AAChMEEQQt C3JHQQBwcy oAAAp6AhEE b1AAAAp9bg AABCsMAgZv UAAACn1uAA AEAntu
  6479   AAAEKgAAAB MwAwBsAAAA OgAAEQIDfW 4AAAQCe2kA AARyPwcAcA J7aAAABG8P AAAGbxEAAA p0FQAA
  6480   AQoGLQcCKK UAAAYKBm8Z AAAKcksHAH ByBQAAcG/d AAAKJgZvGQ AACnJdBwBw cgUAAHBv3Q AACiYG
  6481   A29RAAAKAi igAAAGKi5y xUEAcHMqAA AKehMwAwAt AAAACwAAEQ J7aQAABHLX PgBwAntoAA AEbw8A
  6482   AAZvEQAACg oGLA0Ce2kA AAQGbz0AAA omKh4CKJMA AAYqAAAAEz ACACkAAAA7 AAARcgFCAH Bz3gAA
  6483   CgpyFUIAcH PeAAAKCwYC b98AAAotCA cCb98AAAoq FioAAAATMA MA0wAAADwA ABEVCgJ7aA AABHsG
  6484   AAAEb4AAAA ZvyQAABnJD QgBwAyg8AA AKAntoAAAE bw8AAAZvEQ AACgsHLXoC e2gAAAR7Bg AABG+A
  6485   AAAGb8kAAA ZyXQcAcHIF AABwbxIAAA oLAntoAAAE ewYAAARvgA AABm/JAAAG cksHAHByBQ AAcG8S
  6486   AAAKDAgDb1 EAAAoHCG8U AAAKJgJ7aA AABHsGAAAE b4AAAAZvyQ AABm8TAAAK B28UAAAKJg csHgdy
  6487   Z0IAcAJ7aA AABG8PAAAG b0kAAAoNCW 9NAAAKCgYq ABMwAwBMAA AAPQAAERQK AntoAAAEew YAAARv
  6488   gAAABm/JAA AGcpdCAHAD jDEAAAEoPA AACgJ7aAAA BG8PAAAGb0 kAAAoLBwNv TgAACgwILA cIb1AA
  6489   AAoKBioTMA MAWQAAAAkA ABECe2kAAA RvwwAACnKl QgBwcgUAAH BvEgAACgoC e2kAAARy1z 4AcAJ7
  6490   aAAABG8PAA AGbxEAAAoL By0PAntpAA AEBm8UAAAK JisOAntpAA AEBgdvuwAA CiYGKgAAAB swAwAF
  6491   AQAAPgAAER QKAwRvGgAA Bm88AAAGCw c57gAAAAdy qUIAcAWMMQ AAASg8AAAK AntoAAAEbw 8AAAZv
  6492   EQAACnQVAA ABCgY6wQAA AANvFwAABn LZQgBwcgUA AHBvEgAACg oGcl0JAHAP AygrAAAKbz UAAAoU
  6493   DAdyUQkAcA J7aAAABG8P AAAGb0kAAA oNCSxnCW8X AAAKEwcrPR EHbxgAAAp0 CgAAARMEEQ RvGQAA
  6494   CnJdCQBwbx oAAAoTBREF LBgRBW8bAA AKKBwAAAoT BhEGBTEFEQ QMKwkRB28i AAAKLbreFR EHdQYA
  6495   AAETCBEILA cRCG8jAAAK 3AgtCgcGbx QAAAomKwkH BghvuwAACi YGKgAAAAEQ AAACAI4ASt gAFQAA
  6496   AAATMAMAbw AAAD8AABEC HxoxWhYMAh 8aWyjgAAAK DQko4QAACg Io4QAACiMA AAAAAAA6QF szDAkX
  6497   WR9AWAwfWg srEgkfQFgM AgkfGlpZH0 BYCgbRCwjR EwQSBCjiAA AKEgEo4gAA CihWAAAKKh 9AAlgK
  6498   BtELEgEo4g AACioAEzAF ADIBAABAAA ARFgoWCxYM Am/jAAAKEw kWEworHBEJ EQqTDQcXWA sJKOQA
  6499   AAosBBcMKw 4RChdYEwoR ChEJjmky3A g58wAAAAIW Am9tAAAKAm 9tAAAKF1gH WVlv5QAACh MEEQRv
  6500   bQAAChMFFh MGEQRv4wAA ChMLFhMMOL EAAAARCxEM kxMHEQYXWB MGEQcfQFkT CBEFEw0RDR dZRQQA
  6501   AAACAAAABw AAAB0AAABD AAAAK3gRCA orcxEGFzMK BhEIHxpaWA orZAYRCFgK K10RBhczCw YRCB8a
  6502   Wh8aWlgKEQ YYMwoGEQgf GlpYCis+Bh EIWAorNxEG FzMOBhEIHx paHxpaHxpa WAoRBhgzCw YRCB8a
  6503   Wh8aWlgKEQ YZMwoGEQgf GlpYCisFBh EIWAoRDBdY EwwRDBELjm k/RP///wYq AAATMAUAXQ AAAEEA
  6504   ABEWChYLAm /jAAAKEwQW EwUrHBEEEQ WTDAYXWAoI KOQAAAosBB cLKw4RBRdY EwURBREEjm ky3Acs
  6505   IwIGF1kCb2 0AAAoGF1lZ b+UAAAoNCS iiAAAGLAcJ KCgAAAoqFi pOAyinAAAG DwAoKwAACi hWAAAK
  6506   KgAAABMwAg AhAAAAQgAA EQIoqQAABg oCKKgAAAYL BgcoqgAABg IoKQAACiwC FyoWKgAAAB MwBABW
  6507   AQAAQwAAEX IEBgBwCnLd QgBwF3PmAA AKC3L3QgBw F3PmAAAKDA cCcg9DAHBv 5wAACnITQw Bwcg9D
  6508   AHBvVQAACg 0IAnIPQwBw b+cAAAoTBB EEb+MAAAoT BRYTBhYTBw kXjW4AAAET DRENFh8gnR ENb+gA
  6509   AAoTDhYTDz jSAAAAEQ4R D5oTCBEGF1 gTBhEHEQhv bQAAClgTBx EIKKkAAAYT CREIKKgAAA YTCnIE
  6510   BgBwEwsRCR EKKKoAAAYR CCgpAAAKLC IRCQUyBhEJ A1gTCREKDg QyBhEKBFgT ChEJEQooqg AABhML
  6511   EQtyBAYAcC gpAAAKLAsG EQgoVgAACg orCQYRCyhW AAAKChEHEw wrMxEFEQyT HyAuNREFEQ yTHyAu
  6512   GxEHF1gTBw YRBREMj24A AAEo4gAACi hWAAAKChEM F1gTDBEMEQ RvbQAACjLC EQ8XWBMPEQ 8RDo5p
  6513   PyP///8GKj oCKA0AAAoC A31xAAAEKu oCe3IAAAQt KwICe3EAAA RvFwAABnIZ QwBwAntxAA AEbw8A
  6514   AAZvEQAACn QVAAABfXIA AAQCe3IAAA QqEzACACQA AAAlAAARFg oCKK4AAAZy NUMAcG9EAA AKCwdy
  6515   cQgAcCgpAA AKLAIXCgYq GzADAH8AAA BEAAARAyxm AntxAAAEew YAAARvgAAA Bm/DAAAGbw MAAAYL
  6516   KxgHbxgAAA p0AwAAAgoG bxAAAAYWb7 AAAAYHbyIA AAot4N4RB3 UGAAABDAgs BghvIwAACt wCKK4A
  6517   AAZyNUMAcH JxCABwbzUA AAoqAiiuAA AGcjVDAHBy 0QMAcG81AA AKKgABEAAA AgAeACRCAB EAAAAA
  6518   EzACACQAAA AlAAARFgoC KK4AAAZyTU MAcG9EAAAK CwdyV0MAcC gpAAAKLAIX CgYqqgMsFg IorgAA
  6519   BnJNQwBwcl dDAHBvNQAA CioCKK4AAA ZyTUMAcG/p AAAKKgAbMA QAzwEAAEUA ABECKA0AAA pzDgAA
  6520   CgoCBnMPAA AKfXUAAAQC e3UAAARyAQ AAcHIFAABw bxAAAAoCA3 1zAAAEA28X AAAGcm1DAH ACe3UA
  6521   AARvEQAACg sHLUADbxcA AAZyf0MAcH IFAABwbxIA AAoLA28XAA AGcvkHAHAC e3UAAARvEQ AACgwD
  6522   bxcAAAZvEw AACgcIb7sA AAoLFBMFFh MGB28WAAAK bxcAAAoTCj iTAAAAEQpv GAAACnQKAA ABEwcX
  6523   EwgXEwkRB2 8ZAAAKco8I AHBvJwAACn QqAAABDQks DQlvGwAACi goAAAKEwgR B28ZAAAKcp 8IAHBv
  6524   JwAACnQqAA ABEwQRBCwO EQRvGwAACi goAAAKEwkR Bi0RBBEIMQ UEEQkwBxcT BhEHEwUEEQ gyFAQR
  6525   CTAPAhEHdB UAAAF9dAAA BCsMEQpvIg AACjph//// 3hURCnUGAA ABEwsRCywH EQtvIwAACt wCe3QA
  6526   AAQtagIDbx cAAAZyiUMA cHIFAABwbx IAAAp9dAAA BAJ7dAAABH KPCABwDwIo KwAACm81AA AKAnt0
  6527   AAAEcp8IAH APAigrAAAK bzUAAAoRBS wQBwJ7dAAA BBEFb7sAAA omKgcCe3QA AARvFAAACi YqAAEQ
  6528   AAACAKEApk cBFQAAAAAe Ant0AAAEKl oCe3QAAARy jwgAcG9EAA AKKCgAAAoq YgJ7dAAABH KPCABw
  6529   DwEoKwAACm 81AAAKKloC e3QAAARynw gAcG9EAAAK KCgAAAoqYg J7dAAABHKf CABwDwEoKw AACm81
  6530   AAAKKhMwAw ApAAAAJQAA ERYKAnt0AA AEck4BAHBy cQgAcG+8AA AKCwdycQgA cCgpAAAKLA IXCgYq
  6531   vgMsFgJ7dA AABHJOAQBw cnEIAHBvNQ AACioCe3QA AARyTgEAcH LRAwBwbzUA AAoqAAAAEz ACADIA
  6532   AAAmAAARIw AAAAAAACRA CgJ7dAAABH KRQwBwb0QA AAoLB3IEBg BwKEUAAAos CAcoKAAACm wKBipi
  6533   Ant0AAAEcp FDAHAPASi+ AAAKbzUAAA oqSgJ7cwAA BAIovwAABm 8jAAAGKk4C AntzAAAEA2 8kAAAG
  6534   KMAAAAYqAA ATMAIAKQAA ACcAABEWCg J7dAAABHJz LgBwb0QAAA oLB3IEBgBw KEUAAAosBw coKAAA
  6535   CgoGKmICe3 QAAARycy4A cA8BKCsAAA pvNQAACiqu cp1DAHACe3 QAAARyjwgA cG9EAAAKAn t0AAAE
  6536   co8IAHBvRA AACihKAAAK KgAAEzAEAH kAAAAGAAAR AnLPQwBwGH MtAAAKfXsA AAQCcvFDAH AYcy0A
  6537   AAp9fAAABA JyHUQAcBhz LQAACn19AA AEAnI7RABw GHMtAAAKfX 4AAAQCKA0A AAoCA316AA AEcw4A
  6538   AAoKAgZzDw AACn2DAAAE AnuDAAAEcg EAAHByBQAA cG8QAAAKKo ICe4IAAAQt EQICe3oAAA RzAQAA
  6539   Bn2CAAAEAn uCAAAEKh4C e3sAAAQqHg J7fQAABCoe Ant8AAAEKl 4Ce3oAAARv fwAABgIoxA AABm9B
  6540   AAAKKgAAEz ADAC8BAABG AAARAnt/AA AEOh0BAAAC e3oAAARvfw AABgIoxAAA Bm/EAAAKLB wCAnt6
  6541   AAAEAijEAA AGb4gAAAZ9 fwAABDjpAA AAAnt6AAAE b38AAAYCKM QAAAZyX0QA cG8uAAAKCg JzOAAA
  6542   Cn1/AAAEAn t/AAAEcvZE AHByBQAAcG 8SAAAKCwdy fQAAcHJ5AA BwKIMAAAYC e38AAAQHbx QAAAom
  6543   Ant/AAAEcg hFAHByBQAA cG8SAAAKDA cIbxQAAAom Ant/AAAEch xFAHByBQAA cG8SAAAKDQ gJbxQA
  6544   AAomAnt/AA AEchwBAHBy BQAAcG8SAA AKEwQHEQRv FAAACiYGGB hvLwAACnMw AAAKEwUCe3 8AAAQR
  6545   BW8xAAAKEQ VvMgAACgJ7 egAABG9/AA AGbzMAAAoC e38AAAQqAB MwBAASAQAA KgAAEQJ7gA AABDoA
  6546   AQAAAnt6AA AEb38AAAYC KMYAAAZvxA AACiwcAgJ7 egAABAIoxg AABm+IAAAG fYAAAAQ4zA AAAAJ7
  6547   egAABG9/AA AGAijGAAAG cjZFAHBvLg AACgoCczgA AAp9gAAABA J7gAAABHLT RQBwcgUAAH BvEgAA
  6548   CgsHcttFAH By0QMAcG81 AAAKB3LnRQ BwctEDAHBv NQAACgJ7gA AABAdvFAAA CiYGGBhvLw AACnMw
  6549   AAAKDAJ7gA AABAhvMQAA CghvMgAACg J7egAABG9/ AAAGbzMAAA oCe3oAAARv gAAABm/HAA AGAijG
  6550   AAAGFnL/RQ BwbzQAAAom Ant6AAAEb3 8AAAZvMwAA CgJ7gAAABC oAABMwBACc AgAARwAAEQ J7gQAA
  6551   BDqKAgAAAn t6AAAEb38A AAYCKMUAAA ZvxAAACiwc AgJ7egAABA IoxQAABm+I AAAGfYEAAA Q4VgIA
  6552   AAJ7egAABG 9/AAAGAijF AAAGcqRGAH BvLgAACgoC czgAAAp9gQ AABAJ7gQAA BHIzRwBwcg UAAHBv
  6553   EgAACgsCe4 EAAAQHbxQA AAomAnuBAA AEcklHAHBy BQAAcG8SAA AKDAhy20UA cHJxCABwbz UAAAoH
  6554   CG8UAAAKJg J7gQAABHJV RwBwcgUAAH BvEgAACg0I CW8UAAAKJg J7gQAABHJf RwBwcgUAAH BvEgAA
  6555   ChMEEQRylw gAcHJlRwBw bzUAAAoJEQ RvFAAACiYC e4EAAARyKg EAcHIFAABw bxIAAAoTBR EFcpcI
  6556   AHBya0cAcG 81AAAKCREF bxQAAAomAn uBAAAEcntH AHByBQAAcG 8SAAAKEwYR BnLbRQBwcn EIAHBv
  6557   NQAACgcRBm 8UAAAKJgJ7 gQAABHKVRw BwcgUAAHBv EgAAChMHEQ dym0cAcHLR AwBwbzUAAA oRB3Kt
  6558   RwBwctEDAH BvNQAAChEG EQdvFAAACi YCe4EAAARy u0cAcHIFAA BwbxIAAAoT CBEIcttFAH BycQgA
  6559   cG81AAAKBx EIbxQAAAom AnuBAAAEcp VHAHByBQAA cG8SAAAKEw kRCXKbRwBw ctEDAHBvNQ AAChEJ
  6560   cq1HAHBy0Q MAcG81AAAK EQlyzQkAcH LRAwBwbzUA AAoRCBEJbx QAAAomBhgY by8AAApzMA AAChMK
  6561   AnuBAAAEEQ pvMQAAChEK bzIAAAoCe3 oAAARvfwAA Bm8zAAAKAn t6AAAEb4AA AAZvxwAABg IoxQAA
  6562   BhZyy0cAcG 80AAAKJgJ7 egAABG9/AA AGbzMAAAoC e4EAAAQqIg IDfYEAAAQq ggJ7hAAABC 0RAgJ7
  6563   egAABHNVAA AGfYQAAAQC e4QAAAQqAA ATMAMAbwAA AEgAABEWCg IoyAAABnJi SABwAnuDAA AEbxEA
  6564   AAoLByxRB2 8ZAAAKcnhI AHBvGgAACg wILD0IbxsA AAolDSwzCX KKSABwKCkA AAotHAlylE gAcCgp
  6565   AAAKLRMJcq xIAHAoKQAA Ci0KKwoWCi sGFworAhgK BioAEzADAF sAAABJAAAR AijIAAAGcm JIAHAC
  6566   e4MAAARvEQ AACnQVAAAB CnKKSABwCw MMCEUDAAAA AgAAAAoAAA ASAAAAKxZy ikgAcAsrDn KUSABw
  6567   CysGcqxIAH ALBnJ4SABw B281AAAKKg AbMAQAxwEA AEoAABECKM MAAAZvAgAA Bi0LcrpIAH BzKgAA
  6568   CnoCe3oAAA RvfwAABgJ7 fgAABG/EAA AKOYUAAABy SUkAcBhzLQ AACgoCe3oA AARvgAAABm /HAAAG
  6569   b+oAAApv1A AACg0rMglv 1QAACgsHbx 8AAAoGKNsA AAosHQJ7eg AABG+AAAAG b8cAAAYHbz YAAApv
  6570   OwAACisICW 8iAAAKLcbe CgksBglvIw AACtwCe3oA AARvfwAABg J7fgAABG86 AAAKAnt/AA AELDIC
  6571   e3oAAAQCKM QAAAYCe38A AARvhQAABg J7egAABAJ7 fwAABHJlSQ BwcmtJAHBv gQAABgJ7hA AABCwL
  6572   AnuEAAAEb3 wAAAYCe4EA AAQsMgJ7eg AABAIoxQAA BgJ7gQAABG +FAAAGAnt6 AAAEAnuBAA AEcmVJ
  6573   AHByhUkAcG +BAAAGAnuA AAAELDICe3 oAAAQCKMYA AAYCe4AAAA RvhQAABgJ7 egAABAJ7gA AABHJl
  6574   SQBwcptJAH BvgQAABgIo wwAABm8DAA AGEwQrExEE bxgAAAp0Aw AAAgwIbyAA AAYRBG8iAA AKLeTe
  6575   FREEdQYAAA ETBREFLAcR BW8jAAAK3H K/SQBwKGAA AAomKgABHA AAAgBaAD6Y AAoAAAAAAg CGASCm
  6576   ARUAAAAAHg IoDQAACioT MAMALQAAAE sAABF+hQAA BC0gcslJAH DQFAAAAih4 AAAKb+wAAA pz7QAA
  6577   CgoGgIUAAA R+hQAABCoa foYAAAQqHg KAhgAABCoA AAAAtAAAAM 7K774BAAAA kQAAAGxTeX N0ZW0u
  6578   UmVzb3VyY2 VzLlJlc291 cmNlUmVhZG VyLCBtc2Nv cmxpYiwgVm Vyc2lvbj0y LjAuMC4wLC BDdWx0
  6579   dXJlPW5ldX RyYWwsIFB1 YmxpY0tleV Rva2VuPWI3 N2E1YzU2MT kzNGUwODkj U3lzdGVtLl Jlc291
  6580   cmNlcy5SdW 50aW1lUmVz b3VyY2VTZX QCAAAAAAAA AAAAAABQQU RQQURQtAAA AEJTSkIBAA EAAAAA
  6581   AAwAAAB2Mi 4wLjUwNzI3 AAAAAAUAbA AAAIgjAAAj fgAA9CMAAK QmAAAjU3Ry aW5ncwAAAA CYSgAA
  6582   TEoAACNVUw DklAAAEAAA ACNHVUlEAA AA9JQAALQP AAAjQmxvYg AAAAAAAAAC AAABVx+iCQ kDAAAA
  6583   +gEzABYAAA EAAABzAAAA FAAAAIYAAA DTAAAAkwAA AAIAAADuAA AAGwAAAA8A AABLAAAADA AAAFUA
  6584   AAB8AAAACA AAAAEAAAAJ AAAAAQAAAA EAAAAAAAoA AQAAAAAABg C/AbgBBgDZ AcYBCgAtAg QCBgBJ
  6585   ArgBDgCNAm 0CBgCbArgB EgC8AqcCBg DvAtQCFgAe AxMDFgA9Ax MDBgBlA8YB FgCDAxMDEg DgA7gB
  6586   GgBxBF0EBg C9BtQCBgAB B/cGBgCmB7 gBHgBFCTkJ CgCyCgQCDg DICm0CFgD/ ChMDBgBQDL gBGgBf
  6587   El0EBgDpF9 gXBgAaGAUY BgCvGp0aBg DGGp0aBgDj Gp0aBgACG5 0aBgAbG50a BgA0G50aBg BPG50a
  6588   BgBqG50aBg CDG50aBgC8 G5wbBgDcG5 wbBgAlHJ0a FgA8HBMDFg BGHBMDFgCf HBMDFgDGHB MDFgDs
  6589   HBMDBgAEHb gBGgAeHV0E GgBQHV0EIw B2HQAAuwCR HQAAFgCcHR MDBgC5HbgB BgDFHbgBBg DYHbgB
  6590   EgDpHbgBBg D8HfcGBgAD HvcGBgAMHv cGBgAhHvcG BgAuHvcGGg BFHl0EBgC3 HrgBIgBMHz 8fJgCW
  6591   H4EfJgChH4 EfBgCzH/cG BgDPH/cGBg DwH7gBBgAO IPcGBgBlIL gBHgCJIDkJ HgCkIDkJHg CsIDkJ
  6592   HgDHIDkJBg DoILgBBgDt ILgBHgARIT kJBgAcIfcG BgAwIbgBHg BQITohHgBe ITohHgBpIT ohHgCP
  6593   ITohHgCvIZ whHgC5ITkJ HgDkIZwhBg AlIhQiHgA+ IjohHgBjIj ohHgCZIjoh DgDAIm0CDg DYIm0C
  6594   DgD3EW0CDg BfEm0CDgD2 Im0CDgATI2 0CDgAeI20C DgAsI20CDg A4I20CHgBk IzohHgCAI5 whPwCR
  6595   HQAAHgCiI5 whHgDeIzoh HgDtI5whCg AIJAQCBgBN JLgBBgC/JP cGGgDUJF0E BgAJJdQCBg AXJZwb
  6596   EgBoJUklBg B2JbgBEgCa JUklBgDhJc 4lBgD+JZ0a EgAqJhQmEg BDJhQmAAAA AAEAAAAAAA EAAQAB
  6597   ABAAOQBJAA UAAQABAAEA EABXAEkABQ AFAAoAAQAQ AGYAcQANAB AAJQADAQAA nAAAABEAMg A3AAAB
  6598   AACqAHEAEQ A1ADcAAAAQ ALMAcQAVAD oANwABABAA xgBJAAUAOw A7AAEAEADP AEkABQA9AE UAAQAQ
  6599   AOUASQAFAE AARgABABAA 9wBJAAUAUQ BVAAEAEAAI AUkABQBhAH 0AAAEQABUB HgEdAGcAiQ AAABAA
  6600   VAFJAAUAaA CMAAEAEABg AUkABQBoAI 0AAQAQAGoB SQAFAHEArQ ABABAAfQFJ AAUAcwCzAA EBAACJ
  6601   AUkAEQB2AM IAAQAQAJcB SQAFAHoAwg AAABAApQEe AQUAhQDQAA EA/AITAAEA CAMcAAEAMg MgAAEA
  6602   RQMkAFWAwg NkAAUA1gMc AAEA5AN6AA EA8gNkAAEA +AN+AAEAAQ SBAAEACQRk AAEAGQSEAA EAJwSI
  6603   AAEAMgSMAA EAMgMgAAEA RgYuAQEAVA ZkAAEAXgZ+ AAEAawZ+AA EAdgZ+AAEA iwZ+AAEAmw ZkAAEA
  6604   rwZkAAEAxA YyAQEAzgYy AQEA3QY5AQ EA6AY5AQEA CgdBAQEAFg dBAQEAIwd+ AAEAOgd+AA EATgdF
  6605   AQEAYwdkAA EAhAdkAAEA qwdJAQEAsw d+AAEAzQeB AAEA6gdkAA EAAghkAAEA HAhkAAEAOg hkAAEA
  6606   UghkAAEAag hkAAEAgAhk AAEAlwhkAA EArQhkAAEA xwhkAAEA4g hkAAEA/AiB AAYGiQp+AF aAkQpd
  6607   AVaAmQpdAQ YGiQp+AFaA oQouAVaApQ ouAVaAqgou AVaArgouAQ EAxAp1AQEA 8gpFAQEACg ulAQYA
  6608   ewtkAAYAiw tkAAYAmAtk AFaAqQtkAF aAtAtkAFaA wgtkAFaAzA tkAFaA1Qtk AFaA3gtkAF aA6gtk
  6609   AAEA9gulAQ EACAzqAQEA EwzqAQEAHg zqAQEAKgzq AQEANgzqAQ EAQwzqAQEA WwzuAQEAbQ zuAQEA
  6610   fwzuAVGA6g 1kAFGA9Q1k AFGABA5kAF GAEQ5kAFGA Gg5kAFGAKA 5kAFGANw5k AFGAQQ5kAA EASg56
  6611   AAEAXQ56AA EAdA56AAEA iQ6EAAEAnA 6EAAEAsw6E AAEACAMcAA EAMgMgAFWA QBJkAFWASx JkAAEA
  6612   ZxJdBgEAcB JkAAEAghJh BgYAjBKBAB EABhO1BgEA 8gpFAQEAKh OlAQEANxN+ AAEAPBN+AA EAQRNk
  6613   AAEASBNkAA EAUhNkAAEA WxNkAAEAZR N6AAEA8gpF AQEAJwSlAQ EA8gpFAQEA vRWlAQEAMg MgAAYG
  6614   iQp+AFaALx YCB1aAORYC B1aAShYCBw EACAMcAAEA URZ6AAEAXh Z6AAEAcBZ6 AAEAexZ6AA EAiRaE
  6615   AAEAlhaEAA EAqBaEAAEA /AIGBwEAMg MgAAEAsxYK BxEA+Rc4Bx EAJhg8B1Ag AAAAAIUYVQ MoAAEA
  6616   TCIAAAAAhg hbAy4AAgBZ IgAAAADmAX EDMgACAHAi AAAAAIYAfw M3AAIAcCQA AAAAhQCPAz 0AAwAM
  6617   JQAAAACGAK IDQgADAM4l AAAAAIYIqQ NHAAQA3CUA AAAAhgipAz cABQBAJgAA AACGALIDTQ AGAEwm
  6618   AAAAAIUYVQ OQAAgAgSYA AAAAhQhABJ wADgCJJgAA AACFCH0Eqg AOAKEmAAAA AIUIhgSvAA 4AqSYA
  6619   AAAAhQiZBC 4ADgC0JgAA AACGCKUEsw AOAPYmAAAA AIYIugS4AA 4AEicAAAAA hgjDBK8ADg AcJwAA
  6620   AACGCMwEvQ AOAIQnAAAA AIYI1QTCAA 8AjCcAAAAA hgjgBMYADw D8JwAAAACG COsELgAQAE woAAAA
  6621   AIYIAAVCAB AAzCgAAAAA hggVBT0AEQ AgKQAAAACG CCYFywARAI wpAAAAAIYA NwXQABEAli kAAAAA
  6622   hgA8BdcAEw CfKQAAAACG AEAF3QAUAK gpAAAAAIYA RwXjABUAHC sAAAAAhgBb BesAFwDsLQ AAAACG
  6623   AHcFQgAaAM AvAAAAAIYA gQX0ABsAOD EAAAAAhQCL BfoAHQBwMg AAAACBAJAF +gAdAPAzAA AAAIEA
  6624   ogX6AB0ArD UAAAAAhQC4 Bf4AHQCQNg AAAACFAMUF AwEeADA3AA AAAIYADwn6 AB8AXDgAAA AAgQAU
  6625   CfoAHwCMOQ AAAACBACcJ +gAfABQ9AA AAAJEATwlN AR8AHD4AAA AAgQBjCcIA HwC8QAAAAA CBAIQJ
  6626   +gAfAOBCAA AAAIEAnQlS AR8ABEUAAA AAgQDBCfoA IACYRgAAAA CBANgJ+gAg AKRIAAAAAI EA6wn6
  6627   ACAAsEoAAA AAgQABCvoA IACYTQAAAA CBAAwK+gAg AJhOAAAAAI EAIQpYASAA HFAAAAAAgQ A9CsIA
  6628   IQDkUQAAAA CBAFQK+gAh AJxTAAAAAI EAcAr6ACEA PFoAAAAAgQ CACvoAIQAc WwAAAACGGF UD+gAh
  6629   AEdcAAAAAI YYVQN5ASEA VlwAAAAAxg DSCn8BIgBy XAAAAADGAN oKiwEpAI5c AAAAAMYA6A qZATEA
  6630   qFwAAAAAhR hVA6kBOAD4 XQAAAACFCB YLsAE6AABe AAAAAIYI1Q TCADoANV4A AAAAhgjgBM YAOgBo
  6631   XgAAAACGCB 8LtQE7AKVe AAAAAIYIKg u5ATsA014A AAAAhgg1C6 8APADmXgAA AACGCD8LvQ A8APxe
  6632   AAAAAIYISQ suAD0AMV8A AAAAhghVC0 IAPQBfXwAA AACGGFUD+g A+AGhfAAAA AIUYVQP1AT 4AxF8A
  6633   AAAAhgiPDM IAPwA0YAAA AACGCKQMxg A/AKxgAAAA AIYIuQzCAE AAHGEAAAAA hgjODMYAQA CUYQAA
  6634   AACGCOMMwg BBAARiAAAA AIYI9gzGAE EAe2IAAAAA hggJDfsBQg CWYgAAAACG CBcN+wFCAL FiAAAA
  6635   AIYIJQ37AU IA02IAAAAA hgg0DfsBQg D1YgAAAACG CEMN+wFCAB djAAAAAIYI Uw37AUIAPG MAAAAA
  6636   hQCLBfoAQg DgZAAAAACF AGMNAAJCAE RlAAAAAIYY VQMoAEMAYG YAAAAAhQjI DpwARABoZg AAAACF
  6637   CN4OnABEAH BmAAAAAIUI +A6cAEQAeG YAAAAAhggQ Dz0ARADBZw AAAACGCCYP rwBEANNnAA AAAIYI
  6638   MA+9AEQA5m cAAAAAhgg6 D68ARQD4Zw AAAACGCEYP vQBFAAtoAA AAAIYIUg+v AEYAHWgAAA AAhghd
  6639   D70ARgAwaA AAAACGCGgP rwBHAEJoAA AAAIYIdQ+9 AEcAVWgAAA AAhgiCD68A SABnaAAAAA CGCI8P
  6640   vQBIAHpoAA AAAIYInA+v AEkAjGgAAA AAhgivD70A SQCfaAAAAA CGCMIPrwBK ALFoAAAAAI YI0g+9
  6641   AEoAxGgAAA AAhgjiD68A SwDWaAAAAA CGCO8PvQBL AOloAAAAAI YI/A+vAEwA +2gAAAAAhg gHEL0A
  6642   TAAQaQAAAA CBABIQSQVN AExpAAAAAI EAJxBPBU8A HGoAAAAAhg g8ED0AUgAl awAAAACGCF YQrwBS
  6643   ADJrAAAAAI YIZhCcAFIA RGsAAAAAhg h4EFYFUgBX awAAAACGCI oQrwBTAGRr AAAAAIYImR CvAFMA
  6644   cWsAAAAAhg ilEL0AUwB/ awAAAACGCL EQrwBUAIxr AAAAAIYIvR C9AFQAnGsA AAAAgQDJEF gBVQDY
  6645   awAAAACBAO IQXAVWADRs AAAAAIYI+x A9AFgAQG0A AAAAhgATEV gBWACAbQAA AACGACoRXA VZAOhu
  6646   AAAAAIUAiw X6AFsApG8A AAAAhhhVA2 UGWwBIcAAA AACGGFUDaw ZcANBwAAAA AIYIlhJzBl 4A2HAA
  6647   AAAAhgiiEn gGXgD0cAAA AACFAK8SfQ ZeAIRxAAAA AIUAvhKFBm EA9HEAAAAA lQDLEo0GYw AscgAA
  6648   AACVAMsSlQ ZmAGByAAAA AIUA3hKcBm gAiHIAAAAA 5gHnEvoAag CVcgAAAACG AIsF+gBqAK RyAAAA
  6649   AIUA7xKkBm oA0XIAAAAA lggWE7kGaw DkcgAAAACG GFUD+gBrAN hyAAAAAJEY MiViDWsA7H IAAAAA
  6650   hhhVA/oAaw D0cgAAAACF GFUDwwZrAE xzAAAAAIUI cBPLBm4AVH MAAAAAhgh8 Ey4AbgBccw AAAACG
  6651   CIQTLgBuAG RzAAAAAIYI jxOvAG4Ad3 MAAAAAhgif E8IAbgCEcw AAAACGCK0T rwBuADx0AA AAAIYI
  6652   txO9AG4ATH UAAAAAhgjB E68AbwCAdQ AAAACGCM4T vQBvANx1AA AAAIYINQuv AHAA73UAAA AAhgg/
  6653   C70AcAAEdg AAAACGCEkL LgBxADl2AA AAAIYIVQtC AHEAVHYAAA AAhgjbE5wA cgDsdgAAAA CGCOkT
  6654   VgVyAAB5AA AAAIYI9xOv AHMA/HkAAA AAhggDFL0A cwB0egAAAA CGCA8UrwB0 AIB6AAAAAI YAGxT6
  6655   AHQAuXoAAA AAxgAnFK8A dADEegAAAA CWADAU0AZ0 APx6AAAAAI EAPxQDAXUA 3HsAAAAAgQ BPFP4A
  6656   dgA0fAAAAA CFAF8UywZ3 AJx8AAAAAI EAcRTVBncA wH0AAAAAlQ CIFN4GegA8 fgAAAACWAJ gU4wZ7
  6657   AHx/AAAAAJ YAqBTjBnwA 5X8AAAAAlg C1FOgGfQD8 fwAAAACWAM QU0AZ/ACyA AAAAAJYA1x TuBoAA
  6658   joEAAAAAhR hVA/wGhQCd gQAAAACFCD YVywaGANiB AAAAAIYISx XCAIYACIIA AAAAhghbFc YAhgCk
  6659   ggAAAACGCG sVwgCHANSC AAAAAIYIfh XGAIcAAIMA AAAAhRhVA6 kBiADshAAA AACFCHATyw aKAPSE
  6660   AAAAAIYIyR UuAIoAC4UA AAAAhgjXFU IAigAkhQAA AACGCOUVLg CLADuFAAAA AIYI8xVCAI sAVIUA
  6661   AAAAhgjVBM IAjACJhQAA AACGCOAExg CMALyFAAAA AIYIARa1AY 0A+oUAAAAA hggLFrkBjQ AThgAA
  6662   AACGCDULrw COACaGAAAA AIYIPwu9AI 4APIYAAAAA hghJCy4Ajw BxhgAAAACG CFULQgCPAI qGAAAA
  6663   AMYAJxSvAJ AAuIYAAAAA hRhVAygAkA A9hwAAAACG CL8WDgeRAF 6HAAAAAIUI zhacAJEAZo cAAAAA
  6664   hQjeFpwAkQ BuhwAAAACF COwWnACRAH aHAAAAAIUI fQSqAJEAkI cAAAAAhggB Fz0AkQDMiA AAAACF
  6665   CBEXPQCRAO yJAAAAAIYI Jhc9AJEAlI wAAAAAhgg0 FxMHkQCdjA AAAACGCEIX GQeSAMCMAA AAAIYI
  6666   URceB5IAPI 0AAAAAhghe FyMHkgCkjQ AAAACFAIsF +gCTAJSPAA AAAIMYVQP6 AJMAnI8AAA AAkwg2
  6667   GEAHkwDVjw AAAACTCEoY RQeTANyPAA AAAJMIVhhK B5MAAAABAN YDAAABAA8G AAABAGoYAA ABAHUY
  6668   AAABAA8GAA ABAA8GAAAC AIAYAAABAI gYAAACAOIF AAADAJgYAA AEAKIYAAAF APEFAAAGAK 8YAAAB
  6669   ALQYAAABAL QYAAABALQY AAABALoYAA ACAL4YAAAB ALoYAAABAL 4YAAABAMIY AAACAMwYAA ABAMIY
  6670   AAACAMwYAA ADANQYAAAB ANoYAAABAO MYAAACAO8Y AAABAHMLAA ABAAAZAAAB AAoZAAABAA 0ZAAAB
  6671   AMQKAAABAB wZAAACACMZ AAADAC0ZAA AEADoZAAAF AEYZAAAGAE 8ZAAAHAFsZ AAABABwZAA ACAHIZ
  6672   AAADAC0ZAA AEADoZAAAF AEYZAAAGAE 8ZAAAHAFsZ AAAIAIIZAA ABABwZAAAC AIwZAAADAC 0ZAAAE
  6673   ADoZAAAFAE YZAAAGAE8Z AAAHAFsZAA ABAJgZAAAC ALoYAAABAL QYAAABALQY AAABALQYAA ABALQY
  6674   AAABAKIZAA ABALQYAAAB ALQYAAABAL QYAAABALMZ AAABANYDAA ABALQYAAAB ALQYAAABAL QYAAAB
  6675   ALQYAAABAL QYAAABALQY AAABALQYAA ABALQYAAAB ALQYAAABAL wZAAACAMYZ AAABALwZAA ACAMYZ
  6676   AAADANMZAA ABALQYAAAB ALQYAAABAL QYAAABAMYZ AAABAMYZAA ACANMZAAAB AMYZAAABAM YZAAAC
  6677   ANMZAAABAN 0ZAAABAN0Z AAACAOUZAA ABAO4ZAAAC APUZAAADAN ULAAABAP8Z AAACAAkaAA ABABYa
  6678   AAACABsaAA ADALwZAAAB ABYaAAACAB saAAABACIa AAACACoaAA ABACIaAAAB ADIaAAACAL oYAAAD
  6679   AL4YAAABAL QYAAABALQY AAABALQYAA ABALQYAAAB ALQYAAABAL QYAAABAA0V AAABAA0VAA ABAD4a
  6680   AAABADIaAA ACALoYAAAD AL4YAAABAE caAAABAFUa AAABAFUaAA ABAGEaAAAC AGYaAAABAF UaAAAB
  6681   ACYVAAACAG 4aAAADAHsa AAAEAIgaAA AFAJEaAAAB ADIaAAABAL QYAAABALQY AAABAJgZAA ACAL4Y
  6682   AAABALQYAA ABALQYAAAB ALQYAAABAL QYAAABALQY AAABALQYAA ABANYDAAAB ALQYAAABAL QYAAAB
  6683   ALQYAgAJAA wAGQDRAFUD vQDZAFUDvQ DhAFUDvQDp AFUDvQDxAF UDvQD5AFUD vQABAVUDvQ AJAVUD
  6684   vQARAVUDvQ AZAVUDQgAh AVUD+gApAV UDvQAJAFUD +gAxAVUD+g BJAFUDZAdJ AFMcXAVRAG Acawdh
  6685   AHEccwdhAH 8cywZRAJMc egcMAFUD+g BRAKsciQdB AXEDMgBZAL ocjwdRAN0c kwdJAfkcmQ dRAK0T
  6686   rwBZAQwd4w ZZARQd0AZx ADIdoAdhAU IdnABpAV4d pwcMAH8DsA dZAG0dwgAx AOcS+gAMAF sDLgAM
  6687   AIYd0AcUAH ED5QeBAawd +geJAb8d4w aRAcwdAAiZ AVUDvQCJAS cUrwCRAeId BghpAFUDDQ i5APEd
  6688   FQhxABceHQ jBAVUDKQhh AIsFMAjJAT ke+gC5AD8e +gBxAFAeNw ipAGMeXAVh AXAerwCpAG MeQwhh
  6689   AFUD+gAMAK kDdgi5AHce VgVxAIIevQ CRAZUefQhR AJweegcMAK gegwgcALoc kggcAG0dwg C5AK8e
  6690   pghRALcTvQ DZAScUrwCp AL8eWAGRAc weAAhRANoe wghxABce0g hhAOYeKQhR AOse4giRAZ Ue6whh
  6691   APcemQdJAQ cfBAlBAVsD LgBBAfkcHQ lZAScU3gZR AA4frwBRAB wfvQCBAawd WAlJAageBA kJACcU
  6692   rwCRASofSQ WRAeIdXwlh AIsFKQiRAe IdZQmBAVsD LgCBAb0DHQ lJATIfkwnh AVUDvQAZAF sfEAqZ
  6693   AGMfQgCZAH IfLgDpAa4f FQr5AcIfrw ABAtQfHAoJ AvkfIQoJAi cUWAEBAgEg HAqRAeIdJw oRAhMg
  6694   LwoBAhggHA qZASQgrwAk AFUD+gAkAD AggwgsADkg TAqRAUUgLg DJAFAgRQdZ AXUgVQoJAn 4gXQqR
  6695   AeIdZAoJAl UDagqRAJsg cQohAn8Ddw oxAlsDLgCR AFUD+gCRAN wgowpBAv8g qQo5An8Dsg oRAich
  6696   wQqpAUUgyA qpATUhzAqp ATke+gBpAl UDvQBxAlUD vQBxAoAh1A p5An8D2gqJ AsUh4gpxAt Uh6QqZ
  6697   AvEh+gCJAv YhLgCJAgYi jwdZAQwd8A qhAiwi9QoR ArIDEguBAF UDvQAsADIi gwipAlUDvQ CpAkoi
  6698   vQAxAnEDMg CpAoYiKwux An8DMQupAr IiUgGZAMoi TwvBAqkDVQ vJAq0Tjwf5 AcMErwCRAe EirwCR
  6699   AeYirwAkAH 8DZQssAH8D sAckAFsDLg CRAe4irwCR ATAgeAvRAl UD+gDRAgEj hQvpAkQjkg sBAkwj
  6700   HAoRAl0j0A ZxAnIjygsR A40jAwERA5 gj/gARAzUh wgAsAFsDLg AkAHED4gs0 ALoc8wshA7 gj+gB5
  6701   Ar4j2gqZAj ke+gA0AG0d wgCZAcsj+A txAlUDEwwp A1UDGwwxA/ sjIgwpAqkD KAyRAeIdLQ wsAFUD
  6702   +gCJAAAkWA wZAFUD+gAp AFUD+gCZAB wkXQw5Ayck Yww5AzEkbA w5A0EkdwxR ADIfwgipAL 8eSQVB
  6703   A78dkwxBAy cUrwBRAMME rwA8AFQkwg A8AFUDZQs8 AK0T8wtRAG EkPQC5AHMk sgy5AFAeNw hhAHEc
  6704   yQxpAFUDvQ BRAH4ksAGB AIwkrwD5AZ 4kwgC5APEh 9gz5AaID+g CZAVUDBw2B AKkkDw2BAL AkxgBJ
  6705   A1UDvQBJA8 0k+gBhAIsF vQBxAPIkJQ 1RA3EDLA1E ALoc8wthAP ceUg25ADke +gBhA1UD+g A5AFUD
  6706   +gCBATkl+g dpAMwdgg1p AMwegg2BAT klWAlpA1UD vQBpA24leA tZAQwd7Q1Z AXUg8g1xAy cUrwCR
  6707   AXsl/w1xA4 clBA6RAZAl CQ5pA1UDMQ 5pAyofSQWR AaclOQ6pAK 0lvQBxAL0l uw6BA1UD+g BBAgcm
  6708   1w7BAFUD3Q 6RA1UD6g4O ABQAZwAIAM wAYQEIANAA ZgEIANgAYQ EIANwAZgEI AOAAawEIAO QAcAEO
  6709   AAABxwEOAA QBzAEOAAgB 0QEOAAwB1g EOABAB2wEO ABQB4AEOAB gB5QEOAEQB CwIOAEgBmw IOAEwB
  6710   LwMOAFABvw MOAFQBAAQO AFgBMwQOAF wBbAQOAGAB vwQOAIQBYg UOAIgB1QUI ANwBYQEIAO ABZgEI
  6711   AOQBawEuAB MAKg8uAFsA kg8uAAsA+g 4uABsAKg8u ACMAMA8uAC sA+g4uADMA VA8uADsAKg 8uAFMA
  6712   iQ9DAGMAWg eDAOMC1gmD AlsHZgGJCn MH8Q6pCnMH 8Q7hDMMGZg G4B0oIaQiJ CJcIrQizCL sIywjY
  6713   CN0I8ggNCS MJPwlsCXwJ nwm5CckJNQ p/CrwK+goZ CzkLXAtrC3 0LpQu0C9AL /gszDE8MgA yODJgM
  6714   nQyoDK4MuA zCDNEM2Qzf DAINFQ0bDU ANWw1mDW8N ew2KDZcNqA 22DbsNxA3P DdgN9w0PDi IOLA5A
  6715   DloOYw5+Do 4OqA6zDsEO 5Q4CAAEAAw AEAAgADwAK ABQACwAdAA wAMQANADMA DwA0ABAAQA ARAEMA
  6716   EwBKABQAVA AAALcDVAAA AL0DWAAAAL 0DXgAAANAF CAEAAN0FDQ EAAOIFEgEA APEFVAAAAP kFFgEA
  6717   AAoGGwEAAA 8GEgEAABQG IAEAABsGVA AAACwGJAEA ADkGKQEAAG ELvgEAABQG IAEAAGYLww EAAG0L
  6718   EgEAAHMLVA AAAHcNIAEA AIgNIAEAAJ kNIAEAAKgN BgIAALINBg IAALwNBgIA AMcNBgIAAN INBgIA
  6719   AN4NBgIAAE ERCAEAAFMR CAEAAGkRCA EAAH0RJAEA AI8REgEAAJ UREgEAAJ0R EgEAAKQREg EAAK0R
  6720   EgEAALYREg EAAMUREgEA ANEREgEAAN oREgEAAOER JAEAAPcREg EAAAMSCAEA ABESEgEAAB wSEgEA
  6721   ACQSEgEAAC wSJAEAAF8S qwYAAP0SsA YAACITvgYA AO8U9wYAAD wFVAAAAEAF VAAAAPcUEg EAAAMV
  6722   IAEAAA0VEg EAABMVEgEA AG0LEgEAAH MLVAAAABwV CAEAACYVEg EAAC4VEgEA AJEV9wYAAK IVIAEA
  6723   AK4VIAEAAO 8U9wYAABUW VAAAAB8WVA AAABQGIAEA ACkWwwEAAG 0LEgEAAHML VAAAAGsXKQ cAAHYX
  6724   CAEAAIIXCA EAAIwXCAEA AN0FDQEAAJ 0XJAEAAKkX JAEAALoXJA EAAMQXLgcA AM8XMwcAAO kXUAcA
  6725   AGIYVQcCAA IAAwACAAcA BQACAAgABw ACAAsACQAC AAwACwACAA 0ADQACAA4A DwACAA8AEQ ACABAA
  6726   EwACABEAFQ ABABIAFQAC ABMAFwABAB QAFwABABYA GQACABUAGQ ACABcAGwAC ABgAHQACAD wAHwAC
  6727   AD0AIQABAD 4AIQABAEAA IwACAD8AIw ACAEEAJQAB AEIAJQABAE QAJwACAEMA JwABAEgAKQ ACAEcA
  6728   KQACAEkAKw ABAEoAKwAC AEsALQABAE wALQACAE0A LwACAE4AMQ ACAE8AMwAC AFAANQACAF EANwAC
  6729   AFIAOQACAF YAOwACAFcA PQACAFgAPw ACAFkAQQAC AFoAQwABAF sAQwABAF0A RQACAFwARQ ACAF4A
  6730   RwABAF8ARw ACAGAASQAB AGEASQACAG IASwABAGMA SwACAGQATQ ABAGUATQAC AGYATwABAG cATwAC
  6731   AGgAUQABAG kAUQACAGoA UwABAGsAUw ACAG4AVQAC AG8AVwACAH AAWQABAHEA WQACAHIAWw ACAHMA
  6732   XQABAHQAXQ ABAHYAXwAC AHUAXwACAH kAYQACAH8A YwACAIAAZQ ACAIkAZwAC AI4AaQACAI 8AawAC
  6733   AJAAbQACAJ EAbwACAJIA cQACAJMAcw ABAJQAcwAC AJUAdQABAJ YAdQACAJcA dwABAJgAdw ACAJkA
  6734   eQABAJoAeQ ACAJsAewAB AJwAewACAJ 0AfQABAJ4A fQACAJ8Afw ACAK4AgQAC AK8AgwABAL AAgwAB
  6735   ALIAhQACAL EAhQACALQA hwACALUAiQ ABALYAiQAC ALcAiwABAL gAiwACALkA jQABALoAjQ ACALsA
  6736   jwABALwAjw ACAL0AkQAB AL4AkQABAM AAkwACAL8A kwACAMMAlQ ACAMQAlwAC AMUAmQACAM YAmwAC
  6737   AMcAnQACAM gAnwACAMkA oQACAMoAow ABAMsAowAC AMwApQACAM 0ApwABAM4A pwACANEAqQ ACANIA
  6738   qwABANMAqw CBB9wH8Qc/ CkUK7AuiDD cNBIAAAAEA AAD7FbJ1AA AAAAAA+hsA AAIAAAAAAA AAAAAA
  6739   AAEArwEAAA AACgAAAAAA AAAAAAAACg DlAQAAAAAK AAAAAAAAAA AAAAAKAE4C AAAAAAIAAA AAAAAA
  6740   AAAAAAEAuA EAAAAAAgAA AAAAAAAAAA AAAQATAwAA AAADAAAAAA AAAAAAAACh AFEEAAAAAA IAAAAA
  6741   AAAAAAAAAA EAOQkAAAAA AwAFAAAAAA AAAAAAAQA/ HwAAAAACAA AAAAAAAAAA AAABAIEfAA AAAAAA
  6742   AAABAAAAWC YAAAUABAAA AAA8TW9kdW xlPgBTVF9m Y2U2ODYzY2 Q4Yzk0MTg3 YjdiZDI1Mj gxMzA2
  6743   MzRlMS5jc3 Byb2ouZGxs AEV4Y2VsV2 9ya3NoZWV0 cwBPZmZpY2 VPcGVuWG1s AEV4Y2VsV2 9ya3No
  6744   ZWV0AFNjcm lwdE1haW4A U1RfYzA4Yj k2MWViYWMz NGNhNzk5Mz gxMTM3M2Fm Y2M2NjMuY3 Nwcm9q
  6745   AFNjcmlwdF Jlc3VsdHMA RmlsZVR5cG UAQ2hpbGRF dmVudExpc3 RlbmVyAEV4 Y2VsUm93AE V4Y2Vs
  6746   SGVhZGVyRm 9vdGVyVGV4 dABFeGNlbE hlYWRlckZv b3RlcgBPZm ZpY2VQcm9w ZXJ0aWVzAE V4Y2Vs
  6747   UGFja2FnZQ BTZXR0aW5n cwBTVF9mY2 U2ODYzY2Q4 Yzk0MTg3Yj diZDI1Mjgx MzA2MzRlMS 5jc3By
  6748   b2ouUHJvcG VydGllcwBF eGNlbFN0eW xlcwBFeGNl bENlbGwARX hjZWxXb3Jr c2hlZXRWaW V3AEV4
  6749   Y2VsQ29sdW 1uAEV4Y2Vs Q2FsY01vZG UARXhjZWxX b3JrYm9vaw BSZXNvdXJj ZXMAbXNjb3 JsaWIA
  6750   U3lzdGVtAE 9iamVjdABT eXN0ZW0uQ2 9sbGVjdGlv bnMASUVudW 1lcmFibGUA TWljcm9zb2 Z0LlNx
  6751   bFNlcnZlci 5TY3JpcHRU YXNrAE1pY3 Jvc29mdC5T cWxTZXJ2ZX IuRHRzLlRh c2tzLlNjcm lwdFRh
  6752   c2sAVlNUQV JUU2NyaXB0 T2JqZWN0TW 9kZWxCYXNl AEVudW0ATW ljcm9zb2Z0 LlNxbFNlcn Zlci5N
  6753   YW5hZ2VkRF RTAE1pY3Jv c29mdC5TcW xTZXJ2ZXIu RHRzLlJ1bn RpbWUARGVm YXVsdEV2ZW 50cwBJ
  6754   RGlzcG9zYW JsZQBTeXN0 ZW0uQ29uZm lndXJhdGlv bgBBcHBsaW NhdGlvblNl dHRpbmdzQm FzZQBT
  6755   eXN0ZW0uQ2 9sbGVjdGlv bnMuR2VuZX JpYwBEaWN0 aW9uYXJ5YD IAX3dvcmtz aGVldHMAX3 hsUGFj
  6756   a2FnZQBTeX N0ZW0uWG1s AFhtbE5hbW VzcGFjZU1h bmFnZXIAX2 5zTWFuYWdl cgBYbWxOb2 RlAF93
  6757   b3Jrc2hlZX RzTm9kZQAu Y3RvcgBnZX RfQ291bnQA SUVudW1lcm F0b3IAR2V0 RW51bWVyYX RvcgBB
  6758   ZGQAWG1sRG 9jdW1lbnQA Q3JlYXRlTm V3V29ya3No ZWV0AERlbG V0ZQBnZXRf SXRlbQBDb3 B5AENv
  6759   dW50AEl0ZW 0AdGVtcENv bHVtbk51bW JlclRhZwB4 bFBhY2thZ2 UAVXJpAF93 b3Jrc2hlZX RVcmkA
  6760   X25hbWUAX3 NoZWV0SUQA X2hpZGRlbg BfcmVsYXRp b25zaGlwSU QAX3dvcmtz aGVldFhtbA Bfc2hl
  6761   ZXRWaWV3AF 9oZWFkZXJG b290ZXIAZ2 V0X1dvcmtz aGVldFVyaQ BXaW5kb3dz QmFzZQBTeX N0ZW0u
  6762   SU8uUGFja2 FnaW5nAFBh Y2thZ2VQYX J0AGdldF9Q YXJ0AGdldF 9SZWxhdGlv bnNoaXBJRA BnZXRf
  6763   U2hlZXRJRA BnZXRfTmFt ZVNwYWNlTW FuYWdlcgBn ZXRfVmlldw BnZXRfTmFt ZQBzZXRfTm FtZQBn
  6764   ZXRfSGlkZG VuAHNldF9I aWRkZW4AZ2 V0X2RlZmF1 bHRSb3dIZW lnaHQAc2V0 X2RlZmF1bH RSb3dI
  6765   ZWlnaHQAZ2 V0X1dvcmtz aGVldFhtbA BnZXRfSGVh ZGVyRm9vdG VyAENlbGwA Um93AENvbH VtbgBD
  6766   cmVhdGVTaG FyZWRGb3Jt dWxhAENyZW F0ZUNvbmRp dGlvbmFsRm 9ybWF0dGlu ZwBJbnNlcn RSb3cA
  6767   RGVsZXRlUm 93AFNhdmUA QWRkTnVtZX JpY0NlbGxJ RHMAUmVwbG FjZU51bWVy aWNDZWxsSU RzAEdl
  6768   dFN0eWxlTm FtZQBHZXRT dHlsZUlEAF dvcmtzaGVl dFVyaQBQYX J0AFJlbGF0 aW9uc2hpcE lEAFNo
  6769   ZWV0SUQATm FtZVNwYWNl TWFuYWdlcg BWaWV3AE5h bWUASGlkZG VuAGRlZmF1 bHRSb3dIZW lnaHQA
  6770   V29ya3NoZW V0WG1sAEhl YWRlckZvb3 RlcgBpbnB1 dEZpbGVUeX BlAGxvZ1N0 cmluZwBfZW RpcGlD
  6771   b2x1bW4AX3 NzbkNvbHVt bgBfbGFiUm Vwb3J0RGF0 ZUNvbHVtbg Bfa2V5Rmll bGRDb2x1bW 4AX2tl
  6772   eUZpZWxkQ2 9sdW1uTmFt ZQBpbnB1dE ZpbGVOYW1l AExpc3RgMQ ByYXdFZGlw aXMAdmFsaW RLZXlG
  6773   aWVsZHMAa2 V5VG9FZGlw aQB2YWxpZE VkaXBpSWNu cwBTeXN0ZW 0uSU8ARmls ZUluZm8AX2 lucHV0
  6774   RXhjZWwAX2 JhY2t1cEV4 Y2VsAF9pbn B1dEV4Y2Vs Q29sdW1uQ2 91bnQAX2lu cHV0RXhjZW xSb3dD
  6775   b3VudABfaW 5wdXRFeGNl bFdvcmtzaG VldABfY29u bmVjdGlvbl N0cmluZ1N0 YWdpbmdEYX RhYmFz
  6776   ZQBfY29ubm VjdGlvblN0 cmluZ1JlZ2 lzdHJ5RGF0 YWJhc2UAR3 VpZABfZ3Vp ZElkAF9kb2 RfZnJh
  6777   Z21lbnRfcm F3X2RhdGFf aWQAZWZyRG 9ERnJhZ0xv Z0FsbFRyYW 5zYWN0aW9u cwBlZnJEb0 RGcmFn
  6778   Q3JzTXZpRX RsTmFtZQBl ZnJEb0RGcm FnRWRpcGlD b2x1bW5OYW 1lAGVmckRv REZyYWdMYW JSZXBv
  6779   cnRDb2x1bW 5OYW1lAGVm ckRvREZyYW dTc25Db2x1 bW5OYW1lAG VmckRvREZy YWdBcmNoaX ZlRm9s
  6780   ZGVyAGVmck RvREZyYWdK cGNLZXlGaW VsZABlZnJE b0RGcmFnVX NhZktleUZp ZWxkAGVmck RvREZy
  6781   YWdFbWZLZX lGaWVsZABl ZnJEb0RGcm FnSnBjTGFi RGF0ZUZpZW xkAGVmckRv REZyYWdVc2 FmTGFi
  6782   RGF0ZUZpZW xkAGVmckRv REZyYWdFbW ZMYWJEYXRl RmllbGQAZW ZyRG9ERnJh Z1Rlc3RNb2 RlAE1h
  6783   aW4ATW92ZU ZpbGVzVG9B cmNoaXZlAE luc2VydEZy YWdSYXdEYX RhAFN5c3Rl bS5EYXRhAE RhdGFU
  6784   YWJsZQBHZX REb0RGcmFn RGF0YVRhYm xlAEluc2Vy dFVwZGF0ZW RFeGNlbEZp bGVUb0RhdG FiYXNl
  6785   AEdlbmVyYX RlVXBkYXRl ZEV4Y2VsRm lsZQBpbnNl cnREb0RfRn JhZ21lbnRf RGF0YV9SZW NlaXZl
  6786   X0xvZwBzZX R1cENvbm5l Y3Rpb25TdH JpbmdzAGxv YWRJbnB1dE V4Y2VsRGF0 YQBzZXRSYX dFZGlw
  6787   aXNGcm9tSW 5wdXQAc2V0 Q29sdW1ucw BleGVjdXRl Q1JTTVZJUG Fja2FnZQBn ZW5lcmF0ZU JhY2t1
  6788   cEV4Y2VsRm lsZU5hbWUA cmV0cmlldm VEYXRhYmFz ZUVkaXBpcw BpbnNlcnRS YXdFZGlwaX NJbnRv
  6789   RGF0YWJhc2 UAc2V0Q29u ZmlnVmFsdW VzAHdyaXRl TG9nAHZhbH VlX18AU3Vj Y2VzcwBGYW lsdXJl
  6790   AEpQQwBVU0 FGAEVNRgBV TksAU2NyaX B0T2JqZWN0 TW9kZWwAZH RzAER0c09i amVjdABPbk Vycm9y
  6791   AE9uSW5mb3 JtYXRpb24A T25XYXJuaW 5nAF94bFdv cmtzaGVldA BYbWxFbGVt ZW50AF9yb3 dFbGVt
  6792   ZW50AGdldF 9Ob2RlAGdl dF9IZWlnaH QAc2V0X0hl aWdodABnZX RfU3R5bGUA c2V0X1N0eW xlAGdl
  6793   dF9TdHlsZU lEAHNldF9T dHlsZUlEAE 5vZGUASGVp Z2h0AFN0eW xlAFN0eWxl SUQATGVmdE FsaWdu
  6794   ZWRUZXh0AE NlbnRlcmVk VGV4dABSaW dodEFsaWdu ZWRUZXh0AF BhZ2VOdW1i ZXIATnVtYm VyT2ZQ
  6795   YWdlcwBTaG VldE5hbWUA RmlsZVBhdG gARmlsZU5h bWUAQ3Vycm VudERhdGUA Q3VycmVudF RpbWUA
  6796   X2hlYWRlck Zvb3Rlck5v ZGUAX29kZE hlYWRlcgBf b2RkRm9vdG VyAF9ldmVu SGVhZGVyAF 9ldmVu
  6797   Rm9vdGVyAF 9maXJzdEhl YWRlcgBfZm lyc3RGb290 ZXIATnVsbG FibGVgMQBf YWxpZ25XaX RoTWFy
  6798   Z2lucwBfZG lmZmVyZW50 T2RkRXZlbg BfZGlmZmVy ZW50Rmlyc3 QAZ2V0X0Fs aWduV2l0aE 1hcmdp
  6799   bnMAc2V0X0 FsaWduV2l0 aE1hcmdpbn MAZ2V0X2Rp ZmZlcmVudE 9kZEV2ZW4A c2V0X2RpZm ZlcmVu
  6800   dE9kZEV2ZW 4AZ2V0X2Rp ZmZlcmVudE ZpcnN0AHNl dF9kaWZmZX JlbnRGaXJz dABnZXRfb2 RkSGVh
  6801   ZGVyAGdldF 9vZGRGb290 ZXIAZ2V0X2 V2ZW5IZWFk ZXIAZ2V0X2 V2ZW5Gb290 ZXIAZ2V0X2 ZpcnN0
  6802   SGVhZGVyAG dldF9maXJz dEZvb3Rlcg BHZXRIZWFk ZXJGb290ZX JUZXh0AEFs aWduV2l0aE 1hcmdp
  6803   bnMAZGlmZm VyZW50T2Rk RXZlbgBkaW ZmZXJlbnRG aXJzdABvZG RIZWFkZXIA b2RkRm9vdG VyAGV2
  6804   ZW5IZWFkZX IAZXZlbkZv b3RlcgBmaX JzdEhlYWRl cgBmaXJzdE Zvb3RlcgBz Y2hlbWFDb3 JlAHNj
  6805   aGVtZUV4dG VuZGVkAHNj aGVtYUN1c3 RvbQBzY2hl bWFEYwBzY2 hlbWFEY1Rl cm1zAHNjaG VtYURj
  6806   bWlUeXBlAH NjaGVtYVhz aQBzY2hlbW FWdABfdXJp UHJvcGVydG llc0NvcmUA X3VyaVByb3 BlcnRp
  6807   ZXNFeHRlbm RlZABfdXJp UHJvcGVydG llc0N1c3Rv bQBfeG1sUH JvcGVydGll c0NvcmUAX3 htbFBy
  6808   b3BlcnRpZX NFeHRlbmRl ZABfeG1sUH JvcGVydGll c0N1c3RvbQ BnZXRfQ29y ZVByb3Blcn RpZXNV
  6809   cmkAZ2V0X0 V4dGVuZGVk UHJvcGVydG llc1VyaQBn ZXRfQ3VzdG 9tUHJvcGVy dGllc1VyaQ BnZXRf
  6810   Q29yZVByb3 BlcnRpZXNY bWwAZ2V0X1 RpdGxlAHNl dF9UaXRsZQ BnZXRfU3Vi amVjdABzZX RfU3Vi
  6811   amVjdABnZX RfQXV0aG9y AHNldF9BdX Rob3IAZ2V0 X0NvbW1lbn RzAHNldF9D b21tZW50cw BnZXRf
  6812   S2V5d29yZH MAc2V0X0tl eXdvcmRzAG dldF9MYXN0 TW9kaWZpZW RCeQBzZXRf TGFzdE1vZG lmaWVk
  6813   QnkAZ2V0X0 xhc3RQcmlu dGVkAHNldF 9MYXN0UHJp bnRlZABnZX RfQ2F0ZWdv cnkAc2V0X0 NhdGVn
  6814   b3J5AGdldF 9TdGF0dXMA c2V0X1N0YX R1cwBHZXRD b3JlUHJvcG VydHlWYWx1 ZQBTZXRDb3 JlUHJv
  6815   cGVydHlWYW x1ZQBnZXRf RXh0ZW5kZW RQcm9wZXJ0 aWVzWG1sAG dldF9BcHBs aWNhdGlvbg BnZXRf
  6816   SHlwZXJsaW 5rQmFzZQBz ZXRfSHlwZX JsaW5rQmFz ZQBnZXRfQX BwVmVyc2lv bgBnZXRfQ2 9tcGFu
  6817   eQBzZXRfQ2 9tcGFueQBn ZXRfTWFuYW dlcgBzZXRf TWFuYWdlcg BHZXRFeHRl bmRlZFByb3 BlcnR5
  6818   VmFsdWUAU2 V0RXh0ZW5k ZWRQcm9wZX J0eVZhbHVl AGdldF9DdX N0b21Qcm9w ZXJ0aWVzWG 1sAEdl
  6819   dEN1c3RvbV Byb3BlcnR5 VmFsdWUAU2 V0Q3VzdG9t UHJvcGVydH lWYWx1ZQBD b3JlUHJvcG VydGll
  6820   c1VyaQBFeH RlbmRlZFBy b3BlcnRpZX NVcmkAQ3Vz dG9tUHJvcG VydGllc1Vy aQBDb3JlUH JvcGVy
  6821   dGllc1htbA BUaXRsZQBT dWJqZWN0AE F1dGhvcgBD b21tZW50cw BLZXl3b3Jk cwBMYXN0TW 9kaWZp
  6822   ZWRCeQBMYX N0UHJpbnRl ZABDYXRlZ2 9yeQBTdGF0 dXMARXh0ZW 5kZWRQcm9w ZXJ0aWVzWG 1sAEFw
  6823   cGxpY2F0aW 9uAEh5cGVy bGlua0Jhc2 UAQXBwVmVy c2lvbgBDb2 1wYW55AE1h bmFnZXIAQ3 VzdG9t
  6824   UHJvcGVydG llc1htbABz Y2hlbWFNYW luAHNjaGVt YVJlbGF0aW 9uc2hpcHMA UGFja2FnZQ BfcGFj
  6825   a2FnZQBfb3 V0cHV0Rm9s ZGVyUGF0aA Bfd29ya2Jv b2sARGVidW dNb2RlAGdl dF9QYWNrYW dlAGdl
  6826   dF9Xb3JrYm 9vawBXcml0 ZURlYnVnRm lsZQBHZXRT aGFyZWRVcm kAQWRkU2No ZW1hQXR0cm lidXRl
  6827   AFNhdmVQYX J0AERpc3Bv c2UAR2V0WG 1sRnJvbVVy aQBXb3JrYm 9vawBkZWZh dWx0SW5zdG FuY2UA
  6828   Z2V0X0RlZm F1bHQARGVm YXVsdABfY2 VsbEVsZW1l bnQAX3Jvdw BfY29sAF92 YWx1ZQBfdm FsdWVS
  6829   ZWYAX2Zvcm 11bGEAX2Rh dGFUeXBlAF 9oeXBlcmxp bmsAZ2V0X0 VsZW1lbnQA Z2V0X1Jvdw BnZXRf
  6830   Q29sdW1uAG dldF9DZWxs QWRkcmVzcw BnZXRfSXNO dW1lcmljAG dldF9WYWx1 ZQBzZXRfVm FsdWUA
  6831   Z2V0X0RhdG FUeXBlAHNl dF9EYXRhVH lwZQBnZXRf SHlwZXJsaW 5rAHNldF9I eXBlcmxpbm sAZ2V0
  6832   X0Zvcm11bG EAc2V0X0Zv cm11bGEAZ2 V0X0NvbW1l bnQAUmVtb3 ZlVmFsdWUA VG9TdHJpbm cASXNO
  6833   dW1lcmljVm FsdWUAU2V0 U2hhcmVkU3 RyaW5nAEdl dFNoYXJlZF N0cmluZwBB ZGRGb3JtdW xhRWxl
  6834   bWVudABHZX RPckNyZWF0 ZUNlbGxFbG VtZW50AEdl dENvbHVtbk xldHRlcgBH ZXRDb2x1bW 5OdW1i
  6835   ZXIAR2V0Um 93TnVtYmVy AEdldENlbG xBZGRyZXNz AElzVmFsaW RDZWxsQWRk cmVzcwBVcG RhdGVG
  6836   b3JtdWxhUm VmZXJlbmNl cwBFbGVtZW 50AENlbGxB ZGRyZXNzAE lzTnVtZXJp YwBWYWx1ZQ BEYXRh
  6837   VHlwZQBIeX BlcmxpbmsA Rm9ybXVsYQ BDb21tZW50 AGdldF9TaG VldFZpZXdF bGVtZW50AG dldF9U
  6838   YWJTZWxlY3 RlZABzZXRf VGFiU2VsZW N0ZWQAZ2V0 X1BhZ2VMYX lvdXRWaWV3 AHNldF9QYW dlTGF5
  6839   b3V0Vmlldw BTaGVldFZp ZXdFbGVtZW 50AFRhYlNl bGVjdGVkAF BhZ2VMYXlv dXRWaWV3AF 9jb2xF
  6840   bGVtZW50AG dldF9Db2x1 bW5NaW4Ac2 V0X0NvbHVt bk1pbgBnZX RfQ29sdW1u TWF4AHNldF 9Db2x1
  6841   bW5NYXgAZ2 V0X1dpZHRo AHNldF9XaW R0aABDb2x1 bW5NaW4AQ2 9sdW1uTWF4 AFdpZHRoAE F1dG9t
  6842   YXRpYwBBdX RvbWF0aWNO b1RhYmxlAE 1hbnVhbABf dXJpV29ya2 Jvb2sAX3Vy aVNoYXJlZF N0cmlu
  6843   Z3MAX3VyaV N0eWxlcwBf dXJpQ2FsY0 NoYWluAF94 bWxXb3JrYm 9vawBfeG1s U2hhcmVkU3 RyaW5n
  6844   cwBfeG1sU3 R5bGVzAF9w cm9wZXJ0aW VzAGdldF9X b3Jrc2hlZX RzAGdldF9X b3JrYm9va1 VyaQBn
  6845   ZXRfU3R5bG VzVXJpAGdl dF9TaGFyZW RTdHJpbmdz VXJpAGdldF 9Xb3JrYm9v a1htbABnZX RfU2hh
  6846   cmVkU3RyaW 5nc1htbABn ZXRfU3R5bG VzWG1sAHNl dF9TdHlsZX NYbWwAZ2V0 X1Byb3Blcn RpZXMA
  6847   Z2V0X0NhbG NNb2RlAHNl dF9DYWxjTW 9kZQBXb3Jr c2hlZXRzAF dvcmtib29r VXJpAFN0eW xlc1Vy
  6848   aQBTaGFyZW RTdHJpbmdz VXJpAFdvcm tib29rWG1s AFNoYXJlZF N0cmluZ3NY bWwAU3R5bG VzWG1s
  6849   AFByb3Blcn RpZXMAQ2Fs Y01vZGUAU3 lzdGVtLlJl c291cmNlcw BSZXNvdXJj ZU1hbmFnZX IAcmVz
  6850   b3VyY2VNYW 4AU3lzdGVt Lkdsb2JhbG l6YXRpb24A Q3VsdHVyZU luZm8AcmVz b3VyY2VDdW x0dXJl
  6851   AGdldF9SZX NvdXJjZU1h bmFnZXIAZ2 V0X0N1bHR1 cmUAc2V0X0 N1bHR1cmUA Q3VsdHVyZQ Bwb3Np
  6852   dGlvbklEAF Bvc2l0aW9u SUQATmV3Tm FtZQBQYXJl bnRYbFBhY2 thZ2UAc2hl ZXROYW1lAH VyaVdv
  6853   cmtzaGVldA BIaWRlAHZh bHVlAHJvdw Bjb2wAc3Rh cnRDZWxsAG VuZENlbGwA Y29sb3IAcG 9zaXRp
  6854   b24Acm93VG 9EZWxldGUA c2hpZnRPdG hlclJvd3NV cABTdHlsZU 5hbWUAZHQA aW5wdXRFeG NlbEZp
  6855   bGUAc291cm NlAGVycm9y Q29kZQBzdW JDb21wb25l bnQAZGVzY3 JpcHRpb24A aGVscEZpbG UAaGVs
  6856   cENvbnRleH QAaWRvZklu dGVyZmFjZV dpdGhFcnJv cgBpbmZvcm 1hdGlvbkNv ZGUAZmlyZU FnYWlu
  6857   AHdhcm5pbm dDb2RlAFdv cmtzaGVldA BIZWFkZXJG b290ZXJOb2 RlAGluU3Ry dWN0AG5hbW VTcGFj
  6858   ZQBwcm9wZX J0eU5hbWUA cHJvcFZhbH VlAG5ld0Zp bGUAdGVtcG xhdGUAWG1s RG9jAHN1Yk ZvbGRl
  6859   cgB1cmlQYX JlbnQAUmVs YXRpb25zaG lwAHJvb3QA c2NoZW1hAH VyaVBhcnQA eG1sUGFydA B4bFdv
  6860   cmtzaGVldA BzdHJpbmdJ RABpQ29sdW 1uTnVtYmVy AGNlbGxBZG RyZXNzAGlS b3cAaUNvbH VtbgBy
  6861   b3dJbmNyZW 1lbnQAY29s SW5jcmVtZW 50AGFmdGVy Um93AGFmdG VyQ29sdW1u AFN5c3RlbS 5SZWZs
  6862   ZWN0aW9uAE Fzc2VtYmx5 VGl0bGVBdH RyaWJ1dGUA QXNzZW1ibH lEZXNjcmlw dGlvbkF0dH JpYnV0
  6863   ZQBBc3NlbW JseUNvbmZp Z3VyYXRpb2 5BdHRyaWJ1 dGUAQXNzZW 1ibHlDb21w YW55QXR0cm lidXRl
  6864   AEFzc2VtYm x5UHJvZHVj dEF0dHJpYn V0ZQBBc3Nl bWJseUNvcH lyaWdodEF0 dHJpYnV0ZQ BBc3Nl
  6865   bWJseVRyYW RlbWFya0F0 dHJpYnV0ZQ BBc3NlbWJs eUN1bHR1cm VBdHRyaWJ1 dGUAQXNzZW 1ibHlW
  6866   ZXJzaW9uQX R0cmlidXRl AFN5c3RlbS 5SdW50aW1l LkNvbXBpbG VyU2Vydmlj ZXMAQ29tcG lsYXRp
  6867   b25SZWxheG F0aW9uc0F0 dHJpYnV0ZQ BSdW50aW1l Q29tcGF0aW JpbGl0eUF0 dHJpYnV0ZQ BTVF9m
  6868   Y2U2ODYzY2 Q4Yzk0MTg3 YjdiZDI1Mj gxMzA2MzRl MS5jc3Byb2 oARGVmYXVs dE1lbWJlck F0dHJp
  6869   YnV0ZQBOYW 1lVGFibGUA WG1sTmFtZV RhYmxlAEFk ZE5hbWVzcG FjZQBTZWxl Y3RTaW5nbG VOb2Rl
  6870   AENyZWF0ZU VsZW1lbnQA Z2V0X0RvY3 VtZW50RWxl bWVudABBcH BlbmRDaGls ZABYbWxOb2 RlTGlz
  6871   dABnZXRfQ2 hpbGROb2Rl cwBnZXRfQ3 VycmVudABY bWxBdHRyaW J1dGVDb2xs ZWN0aW9uAG dldF9B
  6872   dHRyaWJ1dG VzAFhtbEF0 dHJpYnV0ZQ BnZXRfSXRl bU9mAENvbn ZlcnQAVG9J bnQzMgBUb0 Jvb2xl
  6873   YW4AUGFja2 FnZVJlbGF0 aW9uc2hpcA BHZXRSZWxh dGlvbnNoaX AAZ2V0X1Rh cmdldFVyaQ BQYWNr
  6874   VXJpSGVscG VyAFJlc29s dmVQYXJ0VX JpAE1vdmVO ZXh0AFZhbH VlQ29sbGVj dGlvbgBnZX RfVmFs
  6875   dWVzAEVudW 1lcmF0b3IA WG1sTmFtZW ROb2RlTWFw AEdldE5hbW VkSXRlbQBJ bnQzMgBQYX JzZQBT
  6876   dHJpbmcAb3 BfRXF1YWxp dHkARXhjZX B0aW9uAENv bmNhdABVcm lLaW5kAENy ZWF0ZVBhcn QAU3Ry
  6877   ZWFtAEZpbG VNb2RlAEZp bGVBY2Nlc3 MAR2V0U3Ry ZWFtAFN0cm VhbVdyaXRl cgBUZXh0V3 JpdGVy
  6878   AENsb3NlAE ZsdXNoAFRh cmdldE1vZG UAQ3JlYXRl UmVsYXRpb2 5zaGlwAFNl dEF0dHJpYn V0ZQBn
  6879   ZXRfSWQARG VsZXRlUGFy dABEZWxldG VSZWxhdGlv bnNoaXAARm 9ybWF0AFJl bW92ZUNoaW xkAFJl
  6880   bW92ZQBHZX RQYXJ0AEJv b2xlYW4AR2 V0QXR0cmli dXRlAG9wX0 luZXF1YWxp dHkASW5zZX J0QWZ0
  6881   ZXIATG9hZA BTZWxlY3RO b2RlcwBDcm VhdGVBdHRy aWJ1dGUAQX BwZW5kAGdl dF9Jbm5lcl RleHQA
  6882   c2V0X0lubm VyVGV4dABS ZXBsYWNlAE luc2VydEJl Zm9yZQBTeX N0ZW0uQWRk SW4AQWRkSW 5BdHRy
  6883   aWJ1dGUAZ2 V0X0R0cwBz ZXRfVGFza1 Jlc3VsdABn ZXRfVGFza1 Jlc3VsdABT eXN0ZW0uV2 luZG93
  6884   cy5Gb3Jtcw BNZXNzYWdl Qm94AERpYW xvZ1Jlc3Vs dABTaG93AE ZpbGVTeXN0 ZW1JbmZvAG dldF9G
  6885   dWxsTmFtZQ BQYXRoAEdl dEZpbGVOYW 1lV2l0aG91 dEV4dGVuc2 lvbgBEYXRl VGltZQBnZX RfTm93
  6886   AEdldEV4dG Vuc2lvbgBG aWxlAE1vdm UAR2V0Rmls ZU5hbWUAZ2 V0X01lc3Nh Z2UAQ29udG FpbnMA
  6887   VHJ5R2V0Vm FsdWUAZ2V0 X0xlbmd0aA BnZXRfSW52 YXJpYW50Q3 VsdHVyZQBJ Rm9ybWF0UH Jvdmlk
  6888   ZXIAVG9Eb3 VibGUARnJv bU9BRGF0ZQ BEYXRhUm93 Q29sbGVjdG lvbgBnZXRf Um93cwBEYX RhUm93
  6889   AEludGVybm FsRGF0YUNv bGxlY3Rpb2 5CYXNlAERh dGFDb2x1bW 5Db2xsZWN0 aW9uAGdldF 9Db2x1
  6890   bW5zAFR5cG UAUnVudGlt ZVR5cGVIYW 5kbGUAR2V0 VHlwZUZyb2 1IYW5kbGUA RGF0YUNvbH VtbgBG
  6891   aWxlU3RyZW FtAE9wZW5S ZWFkAEJ5dG UAUmVhZABT eXN0ZW0uRG F0YS5TcWxD bGllbnQAU3 FsQ29u
  6892   bmVjdGlvbg BTcWxDb21t YW5kAFNxbF BhcmFtZXRl ckNvbGxlY3 Rpb24AZ2V0 X1BhcmFtZX RlcnMA
  6893   U3FsUGFyYW 1ldGVyAFN5 c3RlbS5EYX RhLkNvbW1v bgBEYkNvbW 1hbmQAQ29t bWFuZFR5cG UAc2V0
  6894   X0NvbW1hbm RUeXBlAHNl dF9Db25uZW N0aW9uAERi Q29ubmVjdG lvbgBPcGVu AEV4ZWN1dG VOb25R
  6895   dWVyeQBFeG VjdXRlU2Nh bGFyAFN5c3 RlbS5UaHJl YWRpbmcAVG hyZWFkAFNs ZWVwAENvbn RhaW5z
  6896   S2V5AFNxbE J1bGtDb3B5 AHNldF9EZX N0aW5hdGlv blRhYmxlTm FtZQBTcWxC dWxrQ29weU NvbHVt
  6897   bk1hcHBpbm dDb2xsZWN0 aW9uAGdldF 9Db2x1bW5N YXBwaW5ncw BTcWxCdWxr Q29weUNvbH Vtbk1h
  6898   cHBpbmcAV3 JpdGVUb1Nl cnZlcgBWYX JpYWJsZXMA Z2V0X1Zhcm lhYmxlcwBW YXJpYWJsZQ BUcmlt
  6899   AFRvTG93ZX IAVG9VcHBl cgBJRFRTRX ZlbnRzAExv YWRGcm9tU3 FsU2VydmVy AEV4ZWN1dG FibGUA
  6900   RFRTRXhlY1 Jlc3VsdABD b25uZWN0aW 9ucwBJRFRT TG9nZ2luZw BFeGVjdXRl AEdldERpcm VjdG9y
  6901   eU5hbWUARX hpc3RzAFNx bERhdGFSZW FkZXIARXhl Y3V0ZVJlYW RlcgBEYkRh dGFSZWFkZX IAR2V0
  6902   T3JkaW5hbA BHZXRTdHJp bmcARGJQYX JhbWV0ZXJD b2xsZWN0aW 9uAENsZWFy AEFkZFdpdG hWYWx1
  6903   ZQBnZXRfSW 5uZXJFeGNl cHRpb24AU3 FsRGF0YUFk YXB0ZXIARG JEYXRhQWRh cHRlcgBGaW xsAE5l
  6904   d0d1aWQARX ZlbnRzT2Jq ZWN0V3JhcH BlcgBnZXRf RXZlbnRzAE ZpcmVFcnJv cgBGaXJlSW 5mb3Jt
  6905   YXRpb24ARm lyZVdhcm5p bmcARG91Ym xlAGdldF9I YXNWYWx1ZQ BnZXRfT3du ZXJEb2N1bW VudABQ
  6906   YXJ0RXhpc3 RzAGdldF9M YXN0Q2hpbG QAZ2V0X0Rp cmVjdG9yeU 5hbWUAZ2V0 X0V4aXN0cw BDb3B5
  6907   VG8Ac2V0X0 lzUmVhZE9u bHkARGlyZW N0b3J5SW5m bwBDcmVhdG UAUGFja2Fn ZVJlbGF0aW 9uc2hp
  6908   cENvbGxlY3 Rpb24AR2V0 UmVsYXRpb2 5zaGlwc0J5 VHlwZQBJRW 51bWVyYXRv cmAxAENvbX BpbGVy
  6909   R2VuZXJhdG VkQXR0cmli dXRlAC5jY3 RvcgBSZW1v dmVOYW1lZE l0ZW0AU3lz dGVtLlRleH QuUmVn
  6910   dWxhckV4cH Jlc3Npb25z AFJlZ2V4AE lzTWF0Y2gA Q2hhcgBUb0 NoYXJBcnJh eQBJc051bW JlcgBT
  6911   dWJzdHJpbm cAUmVnZXhP cHRpb25zAF NwbGl0AFJl bW92ZUF0dH JpYnV0ZQBH ZXRSZWxhdG lvbnNo
  6912   aXBzAFN5c3 RlbS5EaWFn bm9zdGljcw BEZWJ1Z2dl ck5vblVzZX JDb2RlQXR0 cmlidXRlAE Fzc2Vt
  6913   Ymx5AGdldF 9Bc3NlbWJs eQBTeXN0ZW 0uQ29tcG9u ZW50TW9kZW wARWRpdG9y QnJvd3NhYm xlQXR0
  6914   cmlidXRlAE VkaXRvckJy b3dzYWJsZV N0YXRlAFNU X2ZjZTY4Nj NjZDhjOTQx ODdiN2JkMj UyODEz
  6915   MDYzNGUxLm NzcHJvai5Q cm9wZXJ0aW VzLlJlc291 cmNlcy5yZX NvdXJjZXMA AAAAA2QAAH NoAHQA
  6916   dABwADoALw AvAHMAYwBo AGUAbQBhAH MALgBvAHAA ZQBuAHgAbQ BsAGYAbwBy AG0AYQB0AH MALgBv
  6917   AHIAZwAvAH MAcAByAGUA YQBkAHMAaA BlAGUAdABt AGwALwAyAD AAMAA2AC8A bQBhAGkAbg AAA3IA
  6918   AICHaAB0AH QAcAA6AC8A LwBzAGMAaA BlAG0AYQBz AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEA
  6919   dABzAC4Abw ByAGcALwBv AGYAZgBpAG MAZQBEAG8A YwB1AG0AZQ BuAHQALwAy ADAAMAA2AC 8AcgBl
  6920   AGwAYQB0AG kAbwBuAHMA aABpAHAAcw AAFS8ALwBk ADoAcwBoAG UAZQB0AHMA AA1zAGgAZQ BlAHQA
  6921   cwAACW4AYQ BtAGUAAAly ADoAaQBkAA APcwBoAGUA ZQB0AEkAZA AADWgAaQBk AGQAZQBuAA CAj0EA
  6922   ZABkACAAdw BvAHIAawBz AGgAZQBlAH QAIABFAHIA cgBvAHIAOg AgAGEAdAB0 AGUAbQBwAH QAaQBu
  6923   AGcAIAB0AG 8AIABjAHIA ZQBhAHQAZQ AgAHcAbwBy AGsAcwBoAG UAZQB0ACAA dwBpAHQAaA AgAGQA
  6924   dQBwAGwAaQ BjAGEAdABl ACAAbgBhAG 0AZQAAKS8A eABsAC8Adw BvAHIAawBz AGgAZQBlAH QAcwAv
  6925   AHMAaABlAG UAdAAACS4A eABtAGwAAI CTYQBwAHAA bABpAGMAYQ B0AGkAbwBu AC8AdgBuAG QALgBv
  6926   AHAAZQBuAH gAbQBsAGYA bwByAG0AYQ B0AHMALQBv AGYAZgBpAG MAZQBkAG8A YwB1AG0AZQ BuAHQA
  6927   LgBzAHAAcg BlAGEAZABz AGgAZQBlAH QAbQBsAC4A dwBvAHIAaw BzAGgAZQBl AHQAKwB4AG 0AbAAB
  6928   gJtoAHQAdA BwADoALwAv AHMAYwBoAG UAbQBhAHMA LgBvAHAAZQ BuAHgAbQBs AGYAbwByAG 0AYQB0
  6929   AHMALgBvAH IAZwAvAG8A ZgBmAGkAYw BlAEQAbwBj AHUAbQBlAG 4AdAAvADIA MAAwADYALw ByAGUA
  6930   bABhAHQAaQ BvAG4AcwBo AGkAcABzAC 8AdwBvAHIA awBzAGgAZQ BlAHQAAAtz AGgAZQBlAH QAAAVp
  6931   AGQAABN3AG 8AcgBrAHMA aABlAGUAdA AAD3gAbQBs AG4AcwA6AH IAABVzAGgA ZQBlAHQAVg BpAGUA
  6932   dwBzAAATcw BoAGUAZQB0 AFYAaQBlAH cAAB13AG8A cgBrAGIAbw BvAGsAVgBp AGUAdwBJAG QAAAMw
  6933   AAATcwBoAG UAZQB0AEQA YQB0AGEAAI DvRQByAHIA bwByADoAIA BZAG8AdQAg AGEAcgBlAC AAYQB0
  6934   AHQAZQBtAH AAdABpAG4A ZwAgAHQAbw AgAGQAZQBs AGUAdABlAC AAdABoAGUA IABsAGEAcw B0ACAA
  6935   dwBvAHIAaw BzAGgAZQBl AHQAIABpAG 4AIAB0AGgA ZQAgAHcAbw ByAGsAYgBv AG8AawAuAC AAIABP
  6936   AG4AZQAgAH cAbwByAGsA cwBoAGUAZQ B0ACAATQBV AFMAVAAgAG IAZQAgAHAA cgBlAHMAZQ BuAHQA
  6937   IABpAG4AIA B0AGgAZQAg AHcAbwByAG sAYgBvAG8A awAhAAArLw AvAGQAOgB3 AG8AcgBrAG IAbwBv
  6938   AGsALwBkAD oAcwBoAGUA ZQB0AHMAAC 8uAC8AZAA6 AHMAaABlAG UAdABbAEAA cwBoAGUAZQ B0AEkA
  6939   ZAA9AHsAMA B9AF0AAFdU AGgAZQAgAG 0AZQB0AGgA bwBkACAAbw ByACAAbwBw AGUAcgBhAH QAaQBv
  6940   AG4AIABpAH MAIABuAG8A dAAgAGkAbQ BwAGwAZQBt AGUAbgB0AG UAZAAuAAAv LwAvAGQAOg BzAGgA
  6941   ZQBlAHQAWw BAAHMAaABl AGUAdABJAG QAPQB7ADAA fQBdAAAjLw AvAGQAOgBz AGgAZQBlAH QARgBv
  6942   AHIAbQBhAH QAUAByAAAh ZABlAGYAYQ B1AGwAdABS AG8AdwBIAG UAaQBnAGgA dAAAAQAbcw BoAGUA
  6943   ZQB0AEYAbw ByAG0AYQB0 AFAAcgAAHS 8ALwBkADoA cwBoAGUAZQ B0AFYAaQBl AHcAcwAAIS 8ALwBk
  6944   ADoAaABlAG EAZABlAHIA RgBvAG8AdA BlAHIAABlo AGUAYQBkAG UAcgBGAG8A bwB0AGUAcg AAgIFD
  6945   AHIAZQBhAH QAZQBTAGgA YQByAGUAZA BGAG8AcgBt AHUAbABhAC AARQByAHIA bwByADoAIA BzAHQA
  6946   YQByAHQAQw BlAGwAbAAg AGQAbwBlAH MAIABuAG8A dAAgAGMAbw BuAHQAYQBp AG4AIABhAC AAZgBv
  6947   AHIAbQB1AG wAYQAhAAA/ LwAvAGQAOg BzAGgAZQBl AHQARABhAH QAYQAvAGQA OgByAG8Adw AvAGQA
  6948   OgBjAC8AZA A6AGYALwBA AHMAaQAACy 4ALwBkADoA ZgAAA3QAAA 1zAGgAYQBy AGUAZAAABX MAaQAA
  6949   B3IAZQBmAA APewAwAH0A OgB7ADEAfQ AAMy8ALwBk ADoAYwBvAG 4AZABpAHQA aQBvAG4AYQ BsAEYA
  6950   bwByAG0AYQ B0AHQAaQBu AGcAACtjAG 8AbgBkAGkA dABpAG8Abg BhAGwARgBv AHIAbQBhAH QAdABp
  6951   AG4AZwAAHS 8ALwBkADoA bQBlAHIAZw BlAEMAZQBs AGwAcwAAGy 8ALwBkADoA cwBoAGUAZQ B0AEQA
  6952   YQB0AGEAAA tzAHEAcgBl AGYAABUuAC 8AZAA6AGMA ZgBSAHUAbA BlAAANYwBm AFIAdQBsAG UAAAl0
  6953   AHkAcABlAA APZABhAHQA YQBCAGEAcg AAEXAAcgBp AG8AcgBpAH QAeQAAAzEA AA9kAGEAdA BhAGIA
  6954   YQByAAAJYw BmAHYAbwAA B20AaQBuAA AHdgBhAGwA AAdtAGEAeA AAC2MAbwBs AG8AcgAAB3 IAZwBi
  6955   AAAHcgBvAH cAABMuAC8A ZAA6AGMALw BkADoAZgAA Gy8ALwBkAD oAcABhAGcA ZQBTAGUAdA B1AHAA
  6956   AAcvAHgAbA AABS4ALgAA G3gAbABcAH cAbwByAGsA cwBoAGUAZQ B0AHMAACcv AC8AZAA6AH MAaABl
  6957   AGUAdABEAG EAdABhAC8A ZAA6AHIAbw B3AAALcwBw AGEAbgBzAA ALLgAvAGQA OgBjAAATYw BvAGwA
  6958   TgB1AG0AYg BlAHIAACEv AC8AZAA6AG MAZQBsAGwA WABmAHMALw BkADoAeABm AAA5LwAvAG QAOgBj
  6959   AGUAbABsAF MAdAB5AGwA ZQBbAEAAeA BmAEkAZAAg AD0AIAAnAH sAMAB9ACcA XQABCXgAZg BJAGQA
  6960   ADkvAC8AZA A6AGMAZQBs AGwAUwB0AH kAbABlAFsA QABuAGEAbQ BlACAAPQAg ACcAewAwAH 0AJwBd
  6961   AAE/LwAvAG QAOgBjAGUA bABsAFgAZg BzAC8AZAA6 AHgAZgBbAE AAeABmAEkA ZAAgAD0AIA AnAHsA
  6962   MAB9ACcAXQ ABL3AAcgBl AGMAZQBkAG kAbgBnAC0A cwBpAGIAbA BpAG4AZwA6 ADoAZAA6AH gAZgAB
  6963   Q0IAZQBnAG kAbgBuAGkA bgBnACAARA BvAEQARgBy AGEAZwBtAG UAbgB0AFMA YwByAGkAcA B0AFQA
  6964   YQBzAGsALg AgAAAzVQBw AGQAYQB0AG UAIABJAEMA TgAgAGEAbg BkACAATQBW AEkAIABzAH QAYQB0
  6965   AHUAcwAAE0 MATwBNAFAA TABFAFQARQ AuAAADXAAA A18AAB15AH kAeQB5AE0A TQBkAGQASA BIAG0A
  6966   bQBzAHMAAD VBAHIAYwBo AGkAdgBpAG 4AZwAgAGkA bgBwAHUAdA BFAHgAYwBl AGwAIAB0AG 8AIAA6
  6967   ACAAAAU7AC AAADdBAHIA YwBoAGkAdg BpAG4AZwAg AGIAYQBjAG sAdQBwAEUA eABjAGUAbA AgAHQA
  6968   bwAgADoAIA AAV0UAUgBS AE8AUgA6AC AATQBvAHYA ZQBGAGkAbA BlAHMAVABv AEEAcgBjAG gAaQB2
  6969   AGUAIAB0AG gAcgBlAHcA IABlAHgAYw BlAHAAdABp AG8AbgA6AC AAAD1DAG8A bQBwAGwAZQ B0AGUA
  6970   ZAAgAE0Abw B2AGUARgBp AGwAZQBzAF QAbwBBAHIA YwBoAGkAdg BlADsAIAAA G1AAcgBjAG UAcwBz
  6971   AGkAbgBnAG kAbgBnACAA ABEgACAAcg BvAHcAcwA7 ACAAAFlFAF IAUgBPAFIA IAB3AGkAdA BoACAA
  6972   bABhAGIAUg BlAHAAbwBy AHQARABhAH QAZQAgAGMA bwBuAHYAZQ ByAHMAaQBv AG4AIABvAG 4AIABy
  6973   AG8AdwA6AC AAABMgACAA VgBhAGwAdQ BlADoAIAAA GSAARQB4AG MAZQBwAHQA aQBvAG4AOg AgAAAZ
  6974   RABvAEQAIA BGAHIAYQBn ACAARQBUAE wAACtJAG4A dgBhAGwAaQ BkACAARQBE AEkAUABJAC AAZgBv
  6975   AHUAbgBkAD oAIAAAIyAA IAAgAEkAQw BOACAAcgBl AHQAdQByAG 4AZQBkADoA IAAADUEAZA BkAGUA
  6976   ZAAgAAA7IA ByAG8AdwBz ACAAdABvAC AAZABvAGQA IABmAHIAYQ BnACAAZABh AHQAYQB0AG EAYgBs
  6977   AGUAOwAgAA BVRQBSAFIA TwBSADoAIA BJAG4AcwBl AHIAdABGAH IAYQBnAFIA YQB3AEQAYQ B0AGEA
  6978   IAB0AGgAcg BlAHcAIABl AHgAYwBlAH AAdABpAG8A bgA6ACAAAD tDAG8AbQBw AGwAZQB0AG UAZAAg
  6979   AEkAbgBzAG UAcgB0AEYA cgBhAGcAUg BhAHcARABh AHQAYQA7AC AAABVQAEEA VABJAEUATg BUAFMA
  6980   UwBOAAAxRA BPAEQAXwBG AFIAQQBHAE 0ARQBOAFQA XwBSAEEAVw BfAEQAQQBU AEEAXwBJAE QAACNP
  6981   AFIASQBHAE kATgBBAEwA SQBOAFAAVQ BUAEQAQQBU AEUAAA9DAF IARQBBAFQA RQBEAAATQw BSAEUA
  6982   QQBUAEUARA BCAFkAAA9V AFAARABBAF QARQBEAAAT VQBQAEQAQQ BUAEUARABC AFkAAB9MAE EAQgBf
  6983   AHIAZQBwAG 8AcgB0AF8A RABBAFQARQ AAF1AAQQBU AEkARQBOAF QAXwBJAEMA TgAATUIAZQ BnAGkA
  6984   bgAgAEkAbg BzAGUAcgB0 AFUAcABkAG EAdABlAGQA RQB4AGMAZQ BsAEYAaQBs AGUAVABvAE QAYQB0
  6985   AGEAYgBhAH MAZQAAVUkA TgBTAEUAUg BUACAASQBO AFQATwAgAF sARQBGAFIA XQAuAFsARA BPAEQA
  6986   XwBGAFIAQQ BHAE0ARQBO AFQAXwBSAE EAVwBfAEQA QQBUAEEAXQ AgAABxKABb AFMATwBVAF IAQwBF
  6987   AF8ATABBAE IAXQAsAFsA RgBJAEwARQ BfAEQAQQBU AEEAXQAsAF sATwBSAEkA RwBJAE4AQQ BMAF8A
  6988   TgBBAE0ARQ BdACwAWwBD AE8ATgBUAE UATgBUAF8A VABZAFAARQ BdAABdLABb AEMAUgBFAE EAVABF
  6989   AEQAQgBZAF 0ALABbAEMA UgBFAEEAVA BFAEQAXQAs AFsAVQBQAE QAQQBUAEUA RABCAFkAXQ AsAFsA
  6990   VQBQAEQAQQ BUAEUARABd ACkAIAAAEV YAQQBMAFUA RQBTACAAKA AAAycAAQ8s AEAAYgB5AH QAZQBz
  6991   AAAFLAAnAA ERLAAnAEUA WABDAEUATA AnAAEnLAAn AEQATwBEAC AARgBSAEEA RwBNAEUATg BUACAA
  6992   RQBUAEwAJw ABFSwAZwBl AHQAZABhAH QAZQAoACkA ABcsAGcAZQ B0AGQAYQB0 AGUAKAApAC kAAA1A
  6993   AGIAeQB0AG UAcwAAFUkA bgBzAGUAcg B0AGUAZAA6 ACAAAEMgAG kAbgB0AG8A IABlAGYAcg AuAGQA
  6994   bwBkAF8AZg ByAGEAZwBt AGUAbgB0AF 8AcgBhAHcA XwBkAGEAdA BhADsAIAAA gOFzAGUAbA BlAGMA
  6995   dAAgAHQAbw BwACgAMQAp ACAAWwBEAE 8ARABfAEYA UgBBAEcATQ BFAE4AVABf AFIAQQBXAF 8ARABB
  6996   AFQAQQBfAE kARABdACAA ZgByAG8AbQ AgAEUARgBS AC4ARABPAE QAXwBGAFIA QQBHAE0ARQ BOAFQA
  6997   XwBSAEEAVw BfAEQAQQBU AEEAIABvAH IAZABlAHIA IABiAHkAIA BbAEQATwBE AF8ARgBSAE EARwBN
  6998   AEUATgBUAF 8AUgBBAFcA XwBEAEEAVA BBAF8ASQBE AF0AIABkAG UAcwBjAAA1 ZABvAGQAXw BmAHIA
  6999   YQBnAG0AZQ BuAHQAXwBy AGEAdwBfAG QAYQB0AGEA XwBpAGQAOg AgAABfRQBS AFIATwBSAD oAIABJ
  7000   AG4AcwBlAH IAdABVAHAA ZABhAHQAZQ BkAEUAeABj AGUAbABGAG kAbABlACAA dABoAHIAZQ B3ACAA
  7001   ZQB4AGMAZQ BwAHQAaQBv AG4AOgAgAA ApQwBvAHAA eQBpAG4AZw AgAGkAbgBw AHUAdAAgAG YAaQBs
  7002   AGUAOgAgAA AjIAB0AG8A IABiAGEAYw BrAHUAcAAg AGYAaQBsAG UAOgAgAAA3 RwBlAHQAIA BoAGEA
  7003   bgBkAGwAZQ AgAG8AbgAg AGIAYQBjAG sAdQBwACAA ZgBpAGwAZQ A7ACAAACtS AGUAbQBvAH YAZQAg
  7004   AGkAbgB2AG EAbABpAGQA IAByAG8Adw BzADsAIAAA Y0UAUgBSAE 8AUgA6ACAA RwBlAG4AZQ ByAGEA
  7005   dABlAFUAcA BkAGEAdABl AGQARQB4AG MAZQBsAEYA aQBsAGUAIA B0AGgAcgBl AHcAIABlAH gAYwBl
  7006   AHAAdABpAG 8AbgA6ACAA AElDAG8AbQ BwAGwAZQB0 AGUAZAAgAE cAZQBuAGUA cgBhAHQAZQ BVAHAA
  7007   ZABhAHQAZQ BkAEUAeABj AGUAbABGAG kAbABlADsA IAAAXVMAdA BhAHIAdABp AG4AZwAgAG kAbgBz
  7008   AGUAcgB0AE QAbwBEAF8A RgByAGEAZw BtAGUAbgB0 AF8ARABhAH QAYQBfAFIA ZQBjAGUAaQ B2AGUA
  7009   XwBMAG8AZw A7ACAAAEFF AEYAUgAuAE QAbwBEAF8A RgBSAEEARw BNAEUATgBU AF8ARABBAF QAQQBf
  7010   AFIARQBDAE UASQBWAEUA TABPAEcAAA cgACAAIAAA aUkAbgBzAG UAcgB0AGUA ZAAgAHIAZQ BjAG8A
  7011   cgBkAHMAIA BpAG4AdABv ACAARABvAE QAXwBGAFIA QQBHAE0ARQ BOAFQAXwBE AEEAVABBAF 8AUgBF
  7012   AEMARQBJAF YARQBMAE8A RwA7ACAAAF lVAFAARABB AFQARQAgAF sARQBGAFIA XQAuAFsARA BvAEQA
  7013   XwBGAFIAQQ BHAE0ARQBO AFQAXwBEAE EAVABBAF8A UgBFAEMARQ BJAFYARQBM AE8ARwBdAC AAADtT
  7014   AEUAVAAgAF sATABBAEIA XwBSAGUAcA BvAHIAdABf AEQAQQBUAE UAXQAgAD0A IABuAHUAbA BsACAA
  7015   AGlXAEgARQ BSAEUAIABb AEwAQQBCAF 8AUgBlAHAA bwByAHQAXw BEAEEAVABF AF0AIAA9AC AAJwAx
  7016   ADkAMAAwAC 0AMAAxAC0A MAAxACAAMA AwADoAMAAw ADoAMAAwAC 4AMAAwADAA JwAgAAETVQ BwAGQA
  7017   YQB0AGUAZA A6ACAAAE0g AGkAbgAgAG UAZgByAC4A RABvAEQAXw BGAFIAQQBH AE0ARQBOAF QAXwBE
  7018   AEEAVABBAF 8AUgBFAEMA RQBJAFYARQ BMAE8ARwA7 ACAAAICFRQ BSAFIATwBS ADoAIABpAG 4AcwBl
  7019   AHIAdABEAG 8ARABfAEYA cgBhAGcAbQ BlAG4AdABf AEQAYQB0AG EAXwBSAGUA YwBlAGkAdg BlAF8A
  7020   TABvAGcAXw BFAG4AdABy AHkAIAB0AG gAcgBlAHcA IABlAHgAYw BlAHAAdABp AG8AbgA6AC AAAFlF
  7021   AG4AZABpAG 4AZwAgAGkA bgBzAGUAcg B0AEQAbwBE AF8ARgByAG EAZwBtAGUA bgB0AF8ARA BhAHQA
  7022   YQBfAFIAZQ BjAGUAaQB2 AGUAXwBMAG 8AZwA7ACAA AEdTAHQAYQ ByAHQAaQBu AGcAIABzAG UAdAB1
  7023   AHAAQwBvAG 4AbgBlAGMA dABpAG8Abg BTAHQAcgBp AG4AZwBzAC gAKQA7ACAA ABlEAGEAdA BhACAA
  7024   UwBvAHUAcg BjAGUAPQAA J1UAcwBlAH IAOgA6AEwA bwBnAGcAaQ BuAGcAUwBl AHIAdgBlAH IAACM7
  7025   AEkAbgBpAH QAaQBhAGwA IABDAGEAdA BhAGwAbwBn AD0AACtVAH MAZQByADoA OgBMAG8AZw BnAGkA
  7026   bgBnAEQAYQ B0AGEAYgBh AHMAZQAAMz sASQBuAHQA ZQBnAHIAYQ B0AGUAZAAg AFMAZQBjAH UAcgBp
  7027   AHQAeQA9AF QAcgB1AGUA AENjAG8Abg BuAGUAYwB0 AGkAbwBuAF MAdAByAGkA bgBnAFMAdA BhAGcA
  7028   aQBuAGcARA BhAHQAYQBi AGEAcwBlAD oAIAAAKVUA cwBlAHIAOg A6AFIAZQBn AGkAcwB0AH IAeQBT
  7029   AGUAcgB2AG UAcgAALVUA cwBlAHIAOg A6AFIAZQBn AGkAcwB0AH IAeQBEAGEA dABhAGIAYQ BzAGUA
  7030   AEVjAG8Abg BuAGUAYwB0 AGkAbwBuAF MAdAByAGkA bgBnAFIAZQ BnAGkAcwB0 AHIAeQBEAG EAdABh
  7031   AGIAYQBzAG UAOgAgAAA/ UwB0AGEAcg B0AGkAbgBn ACAAbABvAG EAZABJAG4A cAB1AHQARQ B4AGMA
  7032   ZQBsAEQAYQ B0AGEAKAAp ADsAIAAAE2 YAaQBsAGUA TgBhAG0AZQ AyAAApVQBz AGkAbgBnAC AAcABh
  7033   AGMAawBhAG cAZQAgAGYA aQBsAGUAOg AgAABBQwBv AGwAdQBtAG 4AcwAgAGkA bgAgAGkAbg BwAHUA
  7034   dABFAHgAYw BlAGwARABh AHQAYQAgAG YAaQBsAGUA OgAgAABVRQ BSAFIATwBS ADoAIABOAG 8AIABD
  7035   AG8AbAB1AG 0AbgBzACAA aQBuACAAaQ BuAHAAdQB0 AEUAeABjAG UAbABEAGEA dABhACAAZg BpAGwA
  7036   ZQA7ACAAAF dFAFIAUgBP AFIAOgAgAG wAbwBhAGQA SQBuAHAAdQ B0AEUAeABj AGUAbABEAG EAdABh
  7037   ACAAdABoAH IAZQB3ACAA ZQB4AGMAZQ BwAHQAaQBv AG4AOgAgAA BFUwB0AGEA cgB0AGkAbg BnACAA
  7038   cwBlAHQAUg BhAHcARQBk AGkAcABpAH MARgByAG8A bQBJAG4AcA B1AHQAKAAp ADsAIAAAF3 IAYQB3
  7039   AEUAZABpAH AAaQBzADoA IAAAFVIAbw B3AEMAbwB1 AG4AdAA6AC AAADdFAFIA UgBPAFIAOg AgAE4A
  7040   bwAgAHIAYQ B3AEUAZABp AHAAaQBzAC AAZgBvAHUA bgBkAC4AIA AAXUUAUgBS AE8AUgA6AC AAcwBl
  7041   AHQAUgBhAH cARQBkAGkA cABpAHMARg ByAG8AbQBJ AG4AcAB1AH QAIAB0AGgA cgBlAHcAIA BlAHgA
  7042   YwBlAHAAdA BpAG8AbgA6 ACAAAC9TAH QAYQByAHQA aQBuAGcAIA BzAGUAdABD AG8AbAB1AG 0AbgBz
  7043   ACgAKQA7AC AAAAdKAFAA QwAAB0UATQ BGAAAJVQBT AEEARgAAgI VFAFIAUgBP AFIAOgAgAE MAbwB1
  7044   AGwAZAAgAG 4AbwB0ACAA ZABlAHQAZQ ByAG0AaQBu AGUAIABpAG 4AcAB1AHQA IABmAGkAbA BlACAA
  7045   dAB5AHAAZQ AgAGQAdQBl ACAAdABvAC AAZgBpAGwA ZQBuAGEAbQ BlACAAaQBz AHMAdQBlAD sAIAAA
  7046   HUUARABJAF AASQAgAGMA bwBsAHUAbQ BuADoAIAAA PUUAUgBSAE 8AUgA6ACAA RQBEAEkAUA BJACAA
  7047   YwBvAGwAdQ BtAG4AIABu AG8AdAAgAG YAbwB1AG4A ZAA7AAAtTA BhAGIAUgBl AHAAbwByAH QARABh
  7048   AHQAZQAgAG MAbwBsAHUA bQBuADoAIA AATUUAUgBS AE8AUgA6AC AATABhAGIA UgBlAHAAbw ByAHQA
  7049   RABhAHQAZQ AgAGMAbwBs AHUAbQBuAC AAbgBvAHQA IABmAG8AdQ BuAGQAOwAA GXMAcwBuAC AAYwBv
  7050   AGwAdQBtAG 4AOgAgAAA9 VwBBAFIATg BJAE4ARwA6 ACAAcwBzAG 4AIABjAG8A bAB1AG0Abg AgAG4A
  7051   bwB0ACAAZg BvAHUAbgBk ADsAAE9FAF IAUgBPAFIA OgAgAHMAZQ B0AEUAZABp AHAAaQBDAG 8AbAB1
  7052   AG0AbgAgAH QAaAByAGUA dwAgAGUAeA BjAGUAcAB0 AGkAbwBuAD oAIAAAR1MA dABhAHIAdA AgAHIA
  7053   dQBuAG4AaQ BuAGcAIABD AFIAUwBfAE 0AVgBJACAA cwBjAHIAaQ BwAHQAIAB0 AGEAcwBrAD sAIAAA
  7054   TUUAUgBSAE 8AUgA6ACAA RgBhAGkAbA B1AHIAZQAg AHIAdQBuAG 4AaQBuAGcA IABjAGgAaQ BsAGQA
  7055   IABwAGEAYw BrAGEAZwBl AC4AIAAAWU UAUgBSAE8A UgA6ACAARQ B4AGMAZQBw AHQAaQBvAG 4AIABp
  7056   AG4AIABlAH gAZQBjAHUA dABlAEMAUg BTAE0AVgBJ AFAAYQBjAG sAYQBnAGUA KAApADoAIA AAT0MA
  7057   bwBtAHAAbA BlAHQAZQBk ACAAcgB1AG 4AbgBpAG4A ZwAgAEMAUg BTAF8ATQBW AEkAIABzAG MAcgBp
  7058   AHAAdAAgAH QAYQBzAGsA OwAgAAAVXw BvAHIAaQBn AGkAbgBhAG wAXwAAG1MA bwB1AHIAYw BlACAA
  7059   RgBpAGwAZQ A6ACAAAB87 ACAAQgBhAG MAawB1AHAA IABGAGkAbA BlADoAIAAA aUUAUgBSAE 8AUgA6
  7060   ACAAZwBlAG 4AZQByAGEA dABlAE8AdQ B0AHAAdQB0 AEUAeABjAG UAbABGAGkA bABlAE4AYQ BtAGUA
  7061   IAB0AGgAcg BlAHcAIABl AHgAYwBlAH AAdABpAG8A bgA6ACAAAI CNcwBlAGwA ZQBjAHQAIA BQAGEA
  7062   dABpAGUAbg B0AF8ARQBk AGkAcABpAC wAIABNAFYA SQBfAFAAQQ BUAEkARQBO AFQAXwBJAE MATgBf
  7063   AE4ASQBfAE QATwBEACAA ZgByAG8AbQ AgAGUAdABs AF8AYwByAH MAXwBtAHYA aQBfAHAAYQ B0AGkA
  7064   ZQBuAHQAIA AANXcAaABl AHIAZQAgAE 0AVgBJAF8A UgBlAHMAcA BvAG4AcwBl ACAAPQAgAC cATwBL
  7065   ACcAIAABO2 EAbgBkACAA YwByAGUAYQ B0AGUAZABi AHkAIAA9AC AAJwBEAG8A RABGAHIAYQ BnAEUA
  7066   VABMACcAIA ABLWEAbgBk ACAAUgBVAE 4AXwBJAEQA RQBOAFQASQ BGAEkARQBS ACAAPQAgAC cAAQUn
  7067   ACAAAU1hAG 4AZAAgAE0A VgBJAF8AUA BBAFQASQBF AE4AVABfAE kAQwBOAF8A TgBJAF8ARA BPAEQA
  7068   IABpAHMAIA BuAG8AdAAg AG4AdQBsAG wAABtQAGEA dABpAGUAbg B0AF8ARQBk AGkAcABpAA AtTQBW
  7069   AEkAXwBQAE EAVABJAEUA TgBUAF8ASQ BDAE4AXwBO AEkAXwBEAE 8ARAAAISMA IAB2AGEAbA BpAGQA
  7070   IABlAGQAaQ BwAGkAcwA6 ACAAADFFAF IAUgBPAFIA OgAgAE4ATw AgAFYAQQBM AEkARAAgAE UARABJ
  7071   AFAASQBTAD sAIAAAX0UA UgBSAE8AUg A6ACAAcgBl AHQAcgBpAG UAdgBlAEQA YQB0AGEAYg BhAHMA
  7072   ZQBFAGQAaQ BwAGkAcwAg AHQAaAByAG UAdwAgAGUA eABjAGUAcA B0AGkAbwBu ADoAIAAAUV MAdABh
  7073   AHIAdABpAG 4AZwAgAGkA bgBzAGUAcg B0AFIAYQB3 AEUAZABpAH AAaQBzAEkA bgB0AG8ARA BhAHQA
  7074   YQBiAGEAcw BlACgAKQA7 ACAAAEFJAE 4AUwBFAFIA VAAgAEkATg BUAE8AIABF AFQATABfAE MAUgBT
  7075   AF8ATQBWAE kAXwBQAGEA dABpAGUAbg B0ACAAAEUo AFsAUABBAF QASQBFAE4A VABfAEUARA BJAFAA
  7076   SQBdACwAWw BSAFUATgBf AEkARABFAE 4AVABJAEYA SQBFAFIAXQ AsAABXWwBD AFIARQBBAF QARQBE
  7077   AF0ALABbAE MAUgBFAEEA VABFAEQAQg BZAF0ALABb AFUAUABEAE EAVABFAEQA XQAsAFsAVQ BQAEQA
  7078   QQBUAEUARA BCAFkAXQAA BSkAIAAAIV YAQQBMAFUA RQBTACAAKA BAAGUAZABp AHAAaQAsAC AAAGkn
  7079   ACwAIABnAG UAdABkAGEA dABlACgAKQ AsACAAJwBE AG8ARABGAH IAYQBnAEUA VABMACcALA AgAGcA
  7080   ZQB0AGQAYQ B0AGUAKAAp ACwAIAAnAE QAbwBEAEYA cgBhAGcARQ BUAEwAJwAp AAEnSQBuAH MAZQBy
  7081   AHQAIABlAG QAaQBwAGkA cwAgAHMAcQ BsADoAIAAA DUAAZQBkAG kAcABpAAA3 RgBpAG4AaQ BzAGgA
  7082   ZQBkACAAaQ BuAHMAZQBy AHQAaQBuAG cAIABlAGQA aQBwAGkAcw A6ACAAAGNF AFIAUgBPAF IAOgAg
  7083   AEUAeABjAG UAcAB0AGkA bwBuACAAdw ByAGkAdABp AG4AZwAgAG UAZABpAHAA aQBzACAAdA BvACAA
  7084   dABoAGUAIA BkAGEAdABh AGIAYQBzAG UAOgAgAAA5 UwB0AGEAcg B0AGkAbgBn ACAAcwBlAH QAQwBv
  7085   AG4AZgBpAG cAVgBhAGwA dQBlAHMAKA ApADsAIAAA gJVzAGUAbA BlAGMAdAAg AFsATgBBAE 0ARQBd
  7086   ACwAIABbAH YAYQBsAHUA ZQBdACAAZg ByAG8AbQAg AEMAUgBTAF 8AUwBFAFQA VABJAE4ARw BTACAA
  7087   dwBoAGUAcg BlACAAWwBO AEEATQBFAF 0AIABsAGkA awBlACAAKA AnAEUAZgBy AEQAbwBEAE YAcgBh
  7088   AGcAJQAnAC kAASVFAGYA cgBEAG8ARA BGAHIAYQBn AFQAZQBzAH QATQBvAGQA ZQAACXQAcg B1AGUA
  7089   ADlFAGYAcg BEAG8ARABG AHIAYQBnAE wAbwBnAEEA bABsAFQAcg BhAG4AcwBh AGMAdABpAG 8AbgBz
  7090   AAAvRQBmAH IARABvAEQA RgByAGEAZw BDAHIAcwBN AHYAaQBFAH QAbABOAGEA bQBlAAAzRQ BmAHIA
  7091   RABvAEQARg ByAGEAZwBF AGQAaQBwAG kAQwBvAGwA dQBtAG4ATg BhAG0AZQAA O0UAZgByAE QAbwBE
  7092   AEYAcgBhAG cATABhAGIA UgBlAHAAbw ByAHQAQwBv AGwAdQBtAG 4ATgBhAG0A ZQAAL0UAZg ByAEQA
  7093   bwBEAEYAcg BhAGcAUwBz AG4AQwBvAG wAdQBtAG4A TgBhAG0AZQ AAL0UAZgBy AEQAbwBEAE YAcgBh
  7094   AGcAQQByAG MAaABpAHYA ZQBGAG8AbA BkAGUAcgAA K0UAZgByAE QAbwBEAEYA cgBhAGcASg BwAGMA
  7095   SwBlAHkARg BpAGUAbABk AAAtRQBmAH IARABvAEQA RgByAGEAZw BVAHMAYQBm AEsAZQB5AE YAaQBl
  7096   AGwAZAAAK0 UAZgByAEQA bwBEAEYAcg BhAGcARQBt AGYASwBlAH kARgBpAGUA bABkAAAzRQ BmAHIA
  7097   RABvAEQARg ByAGEAZwBK AHAAYwBMAG EAYgBEAGEA dABlAEYAaQ BlAGwAZAAA NUUAZgByAE QAbwBE
  7098   AEYAcgBhAG cAVQBzAGEA ZgBMAGEAYg BEAGEAdABl AEYAaQBlAG wAZAAAM0UA ZgByAEQAbw BEAEYA
  7099   cgBhAGcARQ BtAGYATABh AGIARABhAH QAZQBGAGkA ZQBsAGQAAE 1EAHQAcwAu AFYAYQByAG kAYQBi
  7100   AGwAZQBzAF sAVQBzAGUA cgA6ADoAZg BpAGwAZQBO AGEAbQBlAD IAXQAuAFYA YQBsAHUAZQ A6ACAA
  7101   AB9VAHMAZQ ByADoAOgBm AGkAbABlAE 4AYQBtAGUA MgAAPUUAZg ByAEQAbwBE AEYAcgBhAG cATABv
  7102   AGcAQQBsAG wAVAByAGEA bgBzAGEAYw B0AGkAbwBu AHMAOgAgAA AzRQBmAHIA RABvAEQARg ByAGEA
  7103   ZwBDAHIAcw BNAHYAaQBF AHQAbABOAG EAbQBlADoA IAAAN0UAZg ByAEQAbwBE AEYAcgBhAG cARQBk
  7104   AGkAcABpAE MAbwBsAHUA bQBuAE4AYQ BtAGUAOgAg AAA/ZQBmAH IARABvAEQA RgByAGEAZw BMAGEA
  7105   YgBSAGUAcA BvAHIAdABD AG8AbAB1AG 0AbgBOAGEA bQBlADoAIA AAM2UAZgBy AEQAbwBEAE YAcgBh
  7106   AGcAUwBzAG 4AQwBvAGwA dQBtAG4ATg BhAG0AZQA6 ACAAADNlAG YAcgBEAG8A RABGAHIAYQ BnAEEA
  7107   cgBjAGgAaQ B2AGUARgBv AGwAZABlAH IAOgAgAAAv RQBmAHIARA BvAEQARgBy AGEAZwBKAH AAYwBL
  7108   AGUAeQBGAG kAZQBsAGQA OgAgAAAxRQ BmAHIARABv AEQARgByAG EAZwBVAHMA YQBmAEsAZQ B5AEYA
  7109   aQBlAGwAZA A6ACAAAC9F AGYAcgBEAG 8ARABGAHIA YQBnAEUAbQ BmAEsAZQB5 AEYAaQBlAG wAZAA6
  7110   ACAAADdFAG YAcgBEAG8A RABGAHIAYQ BnAEoAcABj AEwAYQBiAE QAYQB0AGUA RgBpAGUAbA BkADoA
  7111   IAAAOUUAZg ByAEQAbwBE AEYAcgBhAG cAVQBzAGEA ZgBMAGEAYg BEAGEAdABl AEYAaQBlAG wAZAA6
  7112   ACAAADdFAG YAcgBEAG8A RABGAHIAYQ BnAEUAbQBm AEwAYQBiAE QAYQB0AGUA RgBpAGUAbA BkADoA
  7113   IAAAEWcAdQ BpAGQASQBk ADoAIAAAO0 UAcgByAG8A cgAgAGcAZQ B0AHQAaQBu AGcAIABjAG 8AbgBm
  7114   AGkAZwAgAH YAYQBsAHUA ZQBzADoAIA AAgU1JAE4A UwBFAFIAVA AgAEkATgBU AE8AIABFAF QATABf
  7115   AEUAcgByAG 8AcgBMAG8A ZwBzACAAKA BQAGEAYwBr AGEAZwBlAE kARAAsACAA UAByAG8AYw BlAHMA
  7116   cwBJAEQALA AgAEUAcgBy AG8AcgBOAH UAbQBiAGUA cgAsACAARQ ByAHIAbwBy AEQAZQBzAG MAcgBp
  7117   AHAAdABpAG 8AbgAsACAA RQByAHIAbw ByAFQAaQBt AGUAKQAgAF YAQQBMAFUA RQBTACAAKA BAAFAA
  7118   YQBjAGsAYQ BnAGUASQBE ACwAIABAAF AAcgBvAGMA ZQBzAHMASQ BEACwAIABA AEUAcgByAG 8AcgBO
  7119   AHUAbQBiAG UAcgAsACAA QABFAHIAcg BvAHIARABl AHMAYwByAG kAcAB0AGkA bwBuACwAIA BnAGUA
  7120   dABkAGEAdA BlACgAKQAp AAAVQABQAG EAYwBrAGEA ZwBlAEkARA AAFUAAUABy AG8AYwBlAH MAcwBJ
  7121   AEQAABlAAE UAcgByAG8A cgBOAHUAbQ BiAGUAcgAA I0AARQByAH IAbwByAEQA ZQBzAGMAcg BpAHAA
  7122   dABpAG8Abg AAJUQAbwBE ACAARgByAG EAZwBtAGUA bgB0ACAARQ BUAEwAOgAg AAA7LwAvAG QAOgBz
  7123   AGgAZQBlAH QARABhAHQA YQAvAGQAOg ByAG8AdwBb AEAAcgA9AC cAewAwAH0A JwBdAAEFaA B0AAAZ
  7124   YwB1AHMAdA BvAG0ASABl AGkAZwBoAH QAAANzAAAZ YwB1AHMAdA BvAG0ARgBv AHIAbQBhAH QAAHNF
  7125   AHgAYwBlAG wASABlAGEA ZABlAHIARg BvAG8AdABl AHIAIABFAH IAcgBvAHIA OgAgAFAAYQ BzAHMA
  7126   ZQBkACAAaQ BuAHYAYQBs AGkAZAAgAG gAZQBhAGQA ZQByAEYAbw BvAHQAZQBy ACAAbgBvAG QAZQAA
  7127   IWEAbABpAG cAbgBXAGkA dABoAE0AYQ ByAGcAaQBu AHMAACFkAG kAZgBmAGUA cgBlAG4AdA BPAGQA
  7128   ZABFAHYAZQ BuAAAdZABp AGYAZgBlAH IAZQBuAHQA RgBpAHIAcw B0AAATbwBk AGQASABlAG EAZABl
  7129   AHIAABNvAG QAZABGAG8A bwB0AGUAcg AAFWUAdgBl AG4ASABlAG EAZABlAHIA ABVlAHYAZQ BuAEYA
  7130   bwBvAHQAZQ ByAAAXZgBp AHIAcwB0AE gAZQBhAGQA ZQByAAAXZg BpAHIAcwB0 AEYAbwBvAH QAZQBy
  7131   AAAFJgBMAA AFJgBDAAAF JgBSAAAlLw BkAG8AYwBQ AHIAbwBwAH MALwBjAG8A cgBlAC4AeA BtAGwA
  7132   ACMvAGQAbw BjAFAAcgBv AHAAcwAvAG EAcABwAC4A eABtAGwAAC kvAGQAbwBj AFAAcgBvAH AAcwAv
  7133   AGMAdQBzAH QAbwBtAC4A eABtAGwAAA V2AHQAAICJ aAB0AHQAcA A6AC8ALwBz AGMAaABlAG 0AYQBz
  7134   AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEAdABz AC4AbwByAG cALwBvAGYA ZgBpAGMAZQ BEAG8A
  7135   YwB1AG0AZQ BuAHQALwAy ADAAMAA2AC 8AZABvAGMA UAByAG8AcA BzAFYAVAB5 AHAAZQBzAA AFeABw
  7136   AACAk2gAdA B0AHAAOgAv AC8AcwBjAG gAZQBtAGEA cwAuAG8AcA BlAG4AeABt AGwAZgBvAH IAbQBh
  7137   AHQAcwAuAG 8AcgBnAC8A bwBmAGYAaQ BjAGUARABv AGMAdQBtAG UAbgB0AC8A MgAwADAANg AvAGUA
  7138   eAB0AGUAbg BkAGUAZAAt AHAAcgBvAH AAZQByAHQA aQBlAHMAAQ djAHQAcAAA gI9oAHQAdA BwADoA
  7139   LwAvAHMAYw BoAGUAbQBh AHMALgBvAH AAZQBuAHgA bQBsAGYAbw ByAG0AYQB0 AHMALgBvAH IAZwAv
  7140   AG8AZgBmAG kAYwBlAEQA bwBjAHUAbQ BlAG4AdAAv ADIAMAAwAD YALwBjAHUA cwB0AG8AbQ AtAHAA
  7141   cgBvAHAAZQ ByAHQAaQBl AHMAAQVjAH AAAICPaAB0 AHQAcAA6AC 8ALwBzAGMA aABlAG0AYQ BzAC4A
  7142   bwBwAGUAbg B4AG0AbABm AG8AcgBtAG EAdABzAC4A bwByAGcALw BwAGEAYwBr AGEAZwBlAC 8AMgAw
  7143   ADAANgAvAG 0AZQB0AGEA ZABhAHQAYQ AvAGMAbwBy AGUALQBwAH IAbwBwAGUA cgB0AGkAZQ BzAAEF
  7144   ZABjAABBaA B0AHQAcAA6 AC8ALwBwAH UAcgBsAC4A bwByAGcALw BkAGMALwBl AGwAZQBtAG UAbgB0
  7145   AHMALwAxAC 4AMQAvAAAP ZABjAHQAZQ ByAG0AcwAA M2gAdAB0AH AAOgAvAC8A cAB1AHIAbA AuAG8A
  7146   cgBnAC8AZA BjAC8AdABl AHIAbQBzAC 8AABFkAGMA bQBpAHQAeQ BwAGUAADlo AHQAdABwAD oALwAv
  7147   AHAAdQByAG wALgBvAHIA ZwAvAGQAYw AvAGQAYwBt AGkAdAB5AH AAZQAvAAAH eABzAGkAAF NoAHQA
  7148   dABwADoALw AvAHcAdwB3 AC4AdwAzAC 4AbwByAGcA LwAyADAAMA AxAC8AWABN AEwAUwBjAG gAZQBt
  7149   AGEALQBpAG 4AcwB0AGEA bgBjAGUAAX VhAHAAcABs AGkAYwBhAH QAaQBvAG4A LwB2AG4AZA AuAG8A
  7150   cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAtAHAA YQBjAGsAYQ BnAGUALgBj AG8AcgBlAC 0AcABy
  7151   AG8AcABlAH IAdABpAGUA cwArAHgAbQ BsAAEjYwBw ADoAYwBvAH IAZQBQAHIA bwBwAGUAcg B0AGkA
  7152   ZQBzAACAq2 gAdAB0AHAA OgAvAC8Acw BjAGgAZQBt AGEAcwAuAG 8AcABlAG4A eABtAGwAZg BvAHIA
  7153   bQBhAHQAcw AuAG8AcgBn AC8AcABhAG MAawBhAGcA ZQAvADIAMA AwADYALwBy AGUAbABhAH QAaQBv
  7154   AG4AcwBoAG kAcABzAC8A bQBlAHQAYQ BkAGEAdABh AC8AYwBvAH IAZQAtAHAA cgBvAHAAZQ ByAHQA
  7155   aQBlAHMAAQ t0AGkAdABs AGUAAA9zAH UAYgBqAGUA YwB0AAAPYw ByAGUAYQB0 AG8AcgAAF2 QAZQBz
  7156   AGMAcgBpAH AAdABpAG8A bgAAEWsAZQ B5AHcAbwBy AGQAcwAAHW wAYQBzAHQA TQBvAGQAaQ BmAGkA
  7157   ZQBkAEIAeQ AAF2wAYQBz AHQAUAByAG kAbgB0AGUA ZAAAEWMAYQ B0AGUAZwBv AHIAeQAAG2 MAbwBu
  7158   AHQAZQBuAH QAUwB0AGEA dAB1AHMAAD cvAC8AYwBw ADoAYwBvAH IAZQBQAHIA bwBwAGUAcg B0AGkA
  7159   ZQBzAC8Aew AwAH0AOgB7 ADEAfQAAgI thAHAAcABs AGkAYwBhAH QAaQBvAG4A LwB2AG4AZA AuAG8A
  7160   cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAtAG8A ZgBmAGkAYw BlAGQAbwBj AHUAbQBlAG 4AdAAu
  7161   AGUAeAB0AG UAbgBkAGUA ZAAtAHAAcg BvAHAAZQBy AHQAaQBlAH MAKwB4AG0A bAABFVAAcg BvAHAA
  7162   ZQByAHQAaQ BlAHMAAICv aAB0AHQAcA A6AC8ALwBz AGMAaABlAG 0AYQBzAC4A bwBwAGUAbg B4AG0A
  7163   bABmAG8Acg BtAGEAdABz AC4AbwByAG cALwBvAGYA ZgBpAGMAZQ BEAG8AYwB1 AG0AZQBuAH QALwAy
  7164   ADAAMAA2AC 8AcgBlAGwA YQB0AGkAbw BuAHMAaABp AHAAcwAvAG UAeAB0AGUA bgBkAGUAZA AtAHAA
  7165   cgBvAHAAZQ ByAHQAaQBl AHMAARdBAH AAcABsAGkA YwBhAHQAaQ BvAG4AABtI AHkAcABlAH IAbABp
  7166   AG4AawBCAG EAcwBlAAAV QQBwAHAAVg BlAHIAcwBp AG8AbgAAD0 MAbwBtAHAA YQBuAHkAAA 9NAGEA
  7167   bgBhAGcAZQ ByAAAtLwAv AHgAcAA6AF AAcgBvAHAA ZQByAHQAaQ BlAHMALwB4 AHAAOgB7AD AAfQAA
  7168   gIdhAHAAcA BsAGkAYwBh AHQAaQBvAG 4ALwB2AG4A ZAAuAG8AcA BlAG4AeABt AGwAZgBvAH IAbQBh
  7169   AHQAcwAtAG 8AZgBmAGkA YwBlAGQAbw BjAHUAbQBl AG4AdAAuAG MAdQBzAHQA bwBtAC0AcA ByAG8A
  7170   cABlAHIAdA BpAGUAcwAr AHgAbQBsAA GAq2gAdAB0 AHAAOgAvAC 8AcwBjAGgA ZQBtAGEAcw AuAG8A
  7171   cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAuAG8A cgBnAC8Abw BmAGYAaQBj AGUARABvAG MAdQBt
  7172   AGUAbgB0AC 8AMgAwADAA NgAvAHIAZQ BsAGEAdABp AG8AbgBzAG gAaQBwAHMA LwBjAHUAcw B0AG8A
  7173   bQAtAHAAcg BvAHAAZQBy AHQAaQBlAH MAAVkvAC8A YwB0AHAAOg BQAHIAbwBw AGUAcgB0AG kAZQBz
  7174   AC8AYwB0AH AAOgBwAHIA bwBwAGUAcg B0AHkALwBA AG4AYQBtAG UAWwAuAD0A JwB7ADAAfQ AnAF0A
  7175   ASEvAC8AYw B0AHAAOgBQ AHIAbwBwAG UAcgB0AGkA ZQBzAABhLw AvAGMAdABw ADoAUAByAG 8AcABl
  7176   AHIAdABpAG UAcwAvAGMA dABwADoAcA ByAG8AcABl AHIAdAB5AC 8AQABjAHQA cAA6AG4AYQ BtAGUA
  7177   WwAuAD0AJw B7ADAAfQAn AF0AAQdwAG kAZAAAEXAA cgBvAHAAZQ ByAHQAeQAA C2YAbQB0AG kAZAAA
  7178   TXsARAA1AE MARABEADUA MAA1AC0AMg BFADkAQwAt ADEAMAAxAE IALQA5ADMA OQA3AC0AMA A4ADAA
  7179   MAAyAEIAMg BDAEYAOQBB AEUAfQABDW wAcAB3AHMA dAByAAARZA BvAGMAUABy AG8AcABzAA ARYwBv
  7180   AHIAZQAuAH gAbQBsAAAP YQBwAHAALg B4AG0AbAAA FWMAdQBzAH QAbwBtAC4A eABtAGwAAB kvAGQA
  7181   ZQBmAGEAdQ BsAHQALgB4 AG0AbAAAH2 EAcABwAGwA aQBjAGEAdA BpAG8AbgAv AHgAbQBsAA CApWgA
  7182   dAB0AHAAOg AvAC8AcwBj AGgAZQBtAG EAcwAuAG8A cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAu
  7183   AG8AcgBnAC 8AbwBmAGYA aQBjAGUARA BvAGMAdQBt AGUAbgB0AC 8AMgAwADAA NgAvAHIAZQ BsAGEA
  7184   dABpAG8Abg BzAGgAaQBw AHMALwBvAG YAZgBpAGMA ZQBEAG8AYw B1AG0AZQBu AHQAAHtFAH gAYwBl
  7185   AGwAUABhAG MAawBhAGcA ZQAgAEUAcg ByAG8AcgA6 ACAAVABhAH IAZwBlAHQA IABmAGkAbA BlACAA
  7186   YQBsAHIAZQ BhAGQAeQAg AGUAeABpAH MAdABzACAA YQBuAGQAIA BpAHMAIABs AG8AYwBrAG UAZAAu
  7187   AACAg0UAeA BjAGUAbABQ AGEAYwBrAG EAZwBlACAA RQByAHIAbw ByADoAIABQ AGEAcwBzAG UAZAAg
  7188   AGkAbgB2AG EAbABpAGQA IABUAGUAbQ BwAGwAYQB0 AGUAUABhAH QAaAAgAHQA bwAgAEUAeA BjAGUA
  7189   bAAgAFQAZQ BtAHAAbABh AHQAZQAAAy 8AAICJaAB0 AHQAcAA6AC 8ALwBzAGMA aABlAG0AYQ BzAC4A
  7190   bwBwAGUAbg B4AG0AbABm AG8AcgBtAG EAdABzAC4A bwByAGcALw BvAGYAZgBp AGMAZQBEAG 8AYwB1
  7191   AG0AZQBuAH QALwAyADAA MAA2AC8Acg BlAGwAYQB0 AGkAbwBuAH MAaABpAHAA cwAvAAALeA BtAGwA
  7192   bgBzAAA7aA B0AHQAcAA6 AC8ALwB3AH cAdwAuAHcA MwAuAG8Acg BnAC8AMgAw ADAAMAAvAH gAbQBs
  7193   AG4AcwAvAA CAjUUAeABj AGUAbABDAG UAbABsACAA QwBvAG4Acw B0AHIAdQBj AHQAbwByAD oAIABO
  7194   AGUAZwBhAH QAaQB2AGUA IAByAG8Adw AgAGEAbgBk ACAAYwBvAG wAdQBtAG4A IABuAHUAbQ BiAGUA
  7195   cgBzACAAYQ ByAGUAIABu AG8AdAAgAG EAbABsAG8A dwBlAGQAAI CHRQB4AGMA ZQBsAEMAZQ BsAGwA
  7196   IABDAG8Abg BzAHQAcgB1 AGMAdABvAH IAOgAgAHgA bABXAG8Acg BrAHMAaABl AGUAdAAgAG 0AdQBz
  7197   AHQAIABiAG UAIABzAGUA dAAgAHQAbw AgAGEAIAB2 AGEAbABpAG QAIAByAGUA ZgBlAHIAZQ BuAGMA
  7198   ZQAACy4ALw BkADoAdgAA A3YAAFEvAC 8AZAA6AGgA eQBwAGUAcg BsAGkAbgBr AHMALwBkAD oAaAB5
  7199   AHAAZQByAG wAaQBuAGsA WwBAAHIAZQ BmACAAPQAg ACcAewAwAH 0AJwBdAAEd LwAvAGQAOg BoAHkA
  7200   cABlAHIAbA BpAG4AawBz AAAVaAB5AH AAZQByAGwA aQBuAGsAcw AANy4ALwBk ADoAaAB5AH AAZQBy
  7201   AGwAaQBuAG sAWwBAAHIA ZQBmACAAPQ AgACcAewAw AH0AJwBdAA ETaAB5AHAA ZQByAGwAaQ BuAGsA
  7202   AICbaAB0AH QAcAA6AC8A LwBzAGMAaA BlAG0AYQBz AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEA
  7203   dABzAC4Abw ByAGcALwBv AGYAZgBpAG MAZQBEAG8A YwB1AG0AZQ BuAHQALwAy ADAAMAA2AC 8AcgBl
  7204   AGwAYQB0AG kAbwBuAHMA aABpAHAAcw AvAGgAeQBw AGUAcgBsAG kAbgBrAACA oUUAeABjAG UAbABD
  7205   AGUAbABsAC AAZgBvAHIA bQB1AGwAYQ AgAG0AYQBy AGsAZQBkAC AAYQBzACAA cwBoAGEAcg BlAGQA
  7206   IABiAHUAdA AgAG4AbwAg AHIAZQBmAG UAcgBlAG4A YwBlACAASQ BEACAAZgBv AHUAbgBkAC AAKABp
  7207   AC4AZQAuAC AAcwBpACAA YQB0AHQAcg BpAGIAdQB0 AGUAKQAATS 8ALwBkADoA cwBoAGUAZQ B0AEQA
  7208   YQB0AGEALw BkADoAcgBv AHcALwBkAD oAYwAvAGQA OgBmAFsAQA BzAGkAPQAn AHsAMAB9AC cAXQAB
  7209   fUUAeABjAG UAbABDAGUA bABsACAAZg BvAHIAbQB1 AGwAYQAgAG 0AYQByAGsA ZQBkACAAYQ BzACAA
  7210   cwBoAGEAcg BlAGQAIABi AHUAdAAgAG 4AbwAgAHIA ZQBmAGUAcg BlAG4AYwBl ACAAbgBvAG QAZQAg
  7211   AGYAbwB1AG 4AZAAAO0YA dQBuAGMAdA BpAG8AbgAg AG4AbwB0AC AAeQBlAHQA IABpAG0AcA BsAGUA
  7212   bQBlAG4AdA BlAGQAIQAA E1sAXgAwAC 0AOQAsAC4A LQBdAAEtXg AtAFsAMAAt ADkALAAuAF 0AKwAk
  7213   AHwAXgBbAD AALQA5ACwA LgBdACsAJA ABIy8ALwBk ADoAcwBpAF sAZAA6AHQA PQAnAHsAMA B9ACcA
  7214   XQABL3AAcg BlAGMAZQBk AGkAbgBnAC 0AcwBpAGIA bABpAG4AZw A6ADoAZAA6 AHMAaQABDS 8ALwBk
  7215   ADoAcwBpAA ADZgAALy4A LwBkADoAYw BbAEAAYwBv AGwATgB1AG 0AYgBlAHIA PQAnAHsAMA B9ACcA
  7216   XQABA2MAAB lbAF4AYQAt AHoAQQAtAF oAMAAtADkA XQABF1sAYQ AtAHoAQQAt AFoAMAAtAD kAXQAB
  7217   AyAAAAUgAC AAABsvAC8A ZAA6AHMAaA BlAGUAdABW AGkAZQB3AA AXdABhAGIA UwBlAGwAZQ BjAHQA
  7218   ZQBkAAAJdg BpAGUAdwAA FXAAYQBnAG UATABhAHkA bwB1AHQAAB EvAC8AZAA6 AGMAbwBsAH MAAAlj
  7219   AG8AbABzAA AHYwBvAGwA AAt3AGkAZA B0AGgAADFD AG8AbAB1AG 0AbgAgAFIA YQBuAGcAZQ A6ACAA
  7220   ewAwAH0AIA B0AG8AIAB7 ADEAfQAAIS 8AeABsAC8A dwBvAHIAaw BiAG8AbwBr AC4AeABtAG wAACsv
  7221   AHgAbAAvAH MAaABhAHIA ZQBkAFMAdA ByAGkAbgBn AHMALgB4AG 0AbAAAHS8A eABsAC8Acw B0AHkA
  7222   bABlAHMALg B4AG0AbAAA Iy8AeABsAC 8AYwBhAGwA YwBDAGgAYQ BpAG4ALgB4 AG0AbAAAgJ VhAHAA
  7223   cABsAGkAYw BhAHQAaQBv AG4ALwB2AG 4AZAAuAG8A cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAt
  7224   AG8AZgBmAG kAYwBlAGQA bwBjAHUAbQ BlAG4AdAAu AHMAcAByAG UAYQBkAHMA aABlAGUAdA BtAGwA
  7225   LgBzAGgAZQ BlAHQALgBt AGEAaQBuAC sAeABtAGwA ARF3AG8Acg BrAGIAbwBv AGsAABNiAG 8AbwBr
  7226   AFYAaQBlAH cAcwAAGXcA bwByAGsAYg BvAG8AawBW AGkAZQB3AA CAm2EAcABw AGwAaQBjAG EAdABp
  7227   AG8AbgAvAH YAbgBkAC4A bwBwAGUAbg B4AG0AbABm AG8AcgBtAG EAdABzAC0A bwBmAGYAaQ BjAGUA
  7228   ZABvAGMAdQ BtAGUAbgB0 AC4AcwBwAH IAZQBhAGQA cwBoAGUAZQ B0AG0AbAAu AHMAaABhAH IAZQBk
  7229   AFMAdAByAG kAbgBnAHMA KwB4AG0AbA ABB3MAcwB0 AAALYwBvAH UAbgB0AAAX dQBuAGkAcQ B1AGUA
  7230   QwBvAHUAbg B0AACAo2gA dAB0AHAAOg AvAC8AcwBj AGgAZQBtAG EAcwAuAG8A cABlAG4AeA BtAGwA
  7231   ZgBvAHIAbQ BhAHQAcwAu AG8AcgBnAC 8AbwBmAGYA aQBjAGUARA BvAGMAdQBt AGUAbgB0AC 8AMgAw
  7232   ADAANgAvAH IAZQBsAGEA dABpAG8Abg BzAGgAaQBw AHMALwBzAG gAYQByAGUA ZABTAHQAcg BpAG4A
  7233   ZwBzAACAjW EAcABwAGwA aQBjAGEAdA BpAG8AbgAv AHYAbgBkAC 4AbwBwAGUA bgB4AG0AbA BmAG8A
  7234   cgBtAGEAdA BzAC0AbwBm AGYAaQBjAG UAZABvAGMA dQBtAGUAbg B0AC4AcwBw AHIAZQBhAG QAcwBo
  7235   AGUAZQB0AG 0AbAAuAHMA dAB5AGwAZQ BzACsAeABt AGwAARVzAH QAeQBsAGUA UwBoAGUAZQ B0AAAL
  7236   ZgBvAG4AdA BzAAAJZgBv AG4AdAAABX MAegAABTEA MQAAD0MAYQ BsAGkAYgBy AGkAABljAG UAbABs
  7237   AFMAdAB5AG wAZQBYAGYA cwAABXgAZg AAEW4AdQBt AEYAbQB0AE kAZAAADWYA bwBuAHQASQ BkAAAP
  7238   YwBlAGwAbA BYAGYAcwAA gJVoAHQAdA BwADoALwAv AHMAYwBoAG UAbQBhAHMA LgBvAHAAZQ BuAHgA
  7239   bQBsAGYAbw ByAG0AYQB0 AHMALgBvAH IAZwAvAG8A ZgBmAGkAYw BlAEQAbwBj AHUAbQBlAG 4AdAAv
  7240   ADIAMAAwAD YALwByAGUA bABhAHQAaQ BvAG4AcwBo AGkAcABzAC 8AcwB0AHkA bABlAHMAAB UvAC8A
  7241   ZAA6AGMAYQ BsAGMAUABy AAARYwBhAG wAYwBNAG8A ZABlAAAJYQ B1AHQAbwAA F2EAdQB0AG 8ATgBv
  7242   AFQAYQBiAG wAZQAADW0A YQBuAHUAYQ BsAACAjVcA bwByAGsAYg BvAG8AawAg AFMAYQB2AG UAIABF
  7243   AHIAcgBvAH IAOgAgAHQA aABlACAAdw BvAHIAawBi AG8AbwBrAC AAbQB1AHMA dAAgAGMAbw BuAHQA
  7244   YQBpAG4AIA BhAHQAIABs AGUAYQBzAH QAIABvAG4A ZQAgAHcAbw ByAGsAcwBo AGUAZQB0AC EAABtj
  7245   AGEAbABjAE MAaABhAGkA bgAuAHgAbQ BsAAAFeABs AAAZdwBvAH IAawBiAG8A bwBrAC4AeA BtAGwA
  7246   ABVzAHQAeQ BsAGUAcwAu AHgAbQBsAA AjcwBoAGEA cgBlAGQAcw B0AHIAaQBu AGcAcwAuAH gAbQBs
  7247   AAAJZABvAG 4AZQAAf1MA VABfAGYAYw BlADYAOAA2 ADMAYwBkAD gAYwA5ADQA MQA4ADcAYg A3AGIA
  7248   ZAAyADUAMg A4ADEAMwAw ADYAMwA0AG UAMQAuAGMA cwBwAHIAbw BqAC4AUABy AG8AcABlAH IAdABp
  7249   AGUAcwAuAF IAZQBzAG8A dQByAGMAZQ BzAAAAAABO SsVBdrSXT6 4PB5vOFHX2 AAi3elxWGT TgiQiJ
  7250   hF3NgIDMkQ gGFRIhAggS DAMGEjADBh IlAwYSKQUg AQESMAMgAA gEIAASLQUg ARIMDgQgAB IxBCAB
  7251   AQgFIAESDA gGIAISDA4O AygACAUoAR IMCAUoARIM DgIGDhJjAG 8AbABOAHUA bQBiAGUAcg ADBhI1
  7252   AgYIAgYCAw YSMQMGEkAD BhIoCyAGAR IwDg4SNQgC BCAAEjUIMb 84Vq02TjUE IAASOQMgAA 4EIAAS
  7253   JQQgABJABC ABAQ4DIAAC BCABAQIEIA ASKAYgAhI8 CAgFIAESIA gFIAESRAgH IAIBEjwSPA ggAwES
  7254   PBI8DgUgAg EIAgMgAAEE IAEOCAQgAQ gOBCgAEjUE KAASOQMoAA 4EKAASJQQo ABJAAygAAg QoABIx
  7255   BCgAEigDBh EYBgYVEj0B DgcGFRIhAg 4OAwYSQQMG EgwDBhFFBA AAEkkFIAEB EkkEIAEODg MGERQE
  7256   AAAAAAQBAA AABAIAAAAE AwAAAAMGEk 0FIAEBEk0L IAcCElEIDg 4OCA4NIAgB ElEIDg4OCA 4QAgsg
  7257   BwESUQgODg 4IDgMGElUG IAIBEgwIBC AAEikDIAAN BCABAQ0EKA ASKQMoAA0E JgBQAAQmAE 4ABCYA
  7258   QQAEJgBaAA QmAEYABCYA RAAEJgBUAA MGEiQGBhUR WQECBSABAR JVBCAAEiQF IAEOEiQEKA ASJICO
  7259   aAB0AHQAcA A6AC8ALwBz AGMAaABlAG 0AYQBzAC4A bwBwAGUAbg B4AG0AbABm AG8AcgBtAG EAdABz
  7260   AC4AbwByAG cALwBwAGEA YwBrAGEAZw BlAC8AMgAw ADAANgAvAG 0AZQB0AGEA ZABhAHQAYQ AvAGMA
  7261   bwByAGUALQ BwAHIAbwBw AGUAcgB0AG kAZQBzAICS aAB0AHQAcA A6AC8ALwBz AGMAaABlAG 0AYQBz
  7262   AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEAdABz AC4AbwByAG cALwBvAGYA ZgBpAGMAZQ BEAG8A
  7263   YwB1AG0AZQ BuAHQALwAy ADAAMAA2AC 8AZQB4AHQA ZQBuAGQAZQ BkAC0AcABy AG8AcABlAH IAdABp
  7264   AGUAcwCAjm gAdAB0AHAA OgAvAC8Acw BjAGgAZQBt AGEAcwAuAG 8AcABlAG4A eABtAGwAZg BvAHIA
  7265   bQBhAHQAcw AuAG8AcgBn AC8AbwBmAG YAaQBjAGUA RABvAGMAdQ BtAGUAbgB0 AC8AMgAwAD AANgAv
  7266   AGMAdQBzAH QAbwBtAC0A cAByAG8AcA BlAHIAdABp AGUAcwBAaA B0AHQAcAA6 AC8ALwBwAH UAcgBs
  7267   AC4AbwByAG cALwBkAGMA LwBlAGwAZQ BtAGUAbgB0 AHMALwAxAC 4AMQAvADJo AHQAdABwAD oALwAv
  7268   AHAAdQByAG wALgBvAHIA ZwAvAGQAYw AvAHQAZQBy AG0AcwAvAD hoAHQAdABw ADoALwAvAH AAdQBy
  7269   AGwALgBvAH IAZwAvAGQA YwAvAGQAYw BtAGkAdAB5 AHAAZQAvAF JoAHQAdABw ADoALwAvAH cAdwB3
  7270   AC4AdwAzAC 4AbwByAGcA LwAyADAAMA AxAC8AWABN AEwAUwBjAG gAZQBtAGEA LQBpAG4Acw B0AGEA
  7271   bgBjAGUAgI hoAHQAdABw ADoALwAvAH MAYwBoAGUA bQBhAHMALg BvAHAAZQBu AHgAbQBsAG YAbwBy
  7272   AG0AYQB0AH MALgBvAHIA ZwAvAG8AZg BmAGkAYwBl AEQAbwBjAH UAbQBlAG4A dAAvADIAMA AwADYA
  7273   LwBkAG8AYw BQAHIAbwBw AHMAVgBUAH kAcABlAHMA BSACDg4OBi ADAQ4ODgUg AQESNQUgAg EODnJo
  7274   AHQAdABwAD oALwAvAHMA YwBoAGUAbQ BhAHMALgBv AHAAZQBuAH gAbQBsAGYA bwByAG0AYQ B0AHMA
  7275   LgBvAHIAZw AvAHMAcABy AGUAYQBkAH MAaABlAGUA dABtAGwALw AyADAAMAA2 AC8AbQBhAG kAbgCA
  7276   hmgAdAB0AH AAOgAvAC8A cwBjAGgAZQ BtAGEAcwAu AG8AcABlAG 4AeABtAGwA ZgBvAHIAbQ BhAHQA
  7277   cwAuAG8Acg BnAC8AbwBm AGYAaQBjAG UARABvAGMA dQBtAGUAbg B0AC8AMgAw ADAANgAvAH IAZQBs
  7278   AGEAdABpAG 8AbgBzAGgA aQBwAHMAAw YSXQMGEkwF IAEBEkEHIA IBEkESQQQg ABJdBCAAEk wHIAMB
  7279   EjEODgcgAh I1EjUOBwAD ARJVDg4GAA IBElUOByAC ARI1EjEGIA ESMRI1BCgA El0EKAASTA MGEjQE
  7280   AAASNAQIAB I0ByADARIM CAgEIAASVQ QAAQIOCCAD ElUSDAgIBA ABDggEAAEI DgUAAg4ICA gABQ4O
  7281   CAgICAQoAB JVBSABARIM AwYRSAMGEg gDBhIsBCAA EggFIAEBEj EEIAASLAQg ABFIBSABAR FIBCgA
  7282   EggEKAASLA QoABFIAwYS YQMGEmUEAA ASYQQAABJl BQABARJlBA gAEmEECAAS ZQkBAARJdG VtAAAG
  7283   IAEBEoCdBy ACEikOEiUG IAISVQ4OBi ABEikSKQcV EiECCBIMBS AAEoChAyAA HAUgABKApQ YgARKA
  7284   qQ4GIAESgL EOCAACEjUS NRI1ByACAR MAEwEXBwwS gJkIEikODg gCEikSgLES NRItEhkLIA AVEoC5
  7285   AhMAEwEIFR KAuQIIEgwL IAAVEYC9Ah MAEwEIFRGA vQIIEgwFIA ESKQ4FAAIC Dg4GAAMODg 4OByAC
  7286   AQ4RgNEHIA ISORI1Dgsg AhKA1RGA2R GA3QYgAQES gNUGIAEBEo DlCyADEoCx EjURgOkOBi ADDg4O
  7287   Dh4HDggSKR KAqQgSNRI5 EoDhEjESgL ESVRIMCBIt EhkMBwUSMR JVElUSVRJV BiABEwETAA UAAg4O
  7288   HAUgAQITAA gHAxIMEikS KQQgABMBDg cDEgwSDBUR gL0CCBIMBi ABEjkSNQUH ARKAmQcHAh IpEoCp
  7289   BgcDCBJVDg ggAhIpEikS KQYHAhJVEi kFIAASgNUE BwESOQQHAR IpCCACEoCh DhIlBgADDg 4cHBEH
  7290   ChJVDggSKQ gICBI8Ei0S GQggARKAqR KAqQ8HBhIp EikSgKkSKR IpEikFIAES KQgbBw8SVR IpCBKA
  7291   oQgSKQgICA gIEoChEikS LRIZGAcNEi kSgKEICBIp CAgICBKAoR IpEi0SGQYg AhIpDg4FAA IODg4G
  7292   AAMOHBwcDw cGEikSgKkO EoCxEjUSOR YHChIpEoCp EikSgKkOCB ItEi0SGRIZ CyACEoCpEo CpEoCp
  7293   GQcNCBIpCA gSKRKAqQgO EoCpEi0SLR IZEhkPBwgO EikIEikOEi kSLRIZDAcG CA4SKQ4SKR KAoTkB
  7294   AApTY3JpcH RNYWluAwBU DgdWZXJzaW 9uAzEuMFQO CVB1Ymxpc2 hlcgBUDgtE ZXNjcmlwdG lvbgAE
  7295   IAASTQYAAR GA+Q4EAAEO DgUAABGBBQ cABA4ODg4O BQACAQ4OCQ cDDhKAzRGB BQUVEj0BDg YVEiEC
  7296   Dg4IIAICEw AQEwEHAAIN DhKBDQYAAR GBBQ0FAAEO HQ4GIAMBCA gIBSAAEoER ByABEoEVHR wjBxEO
  7297   Dg4VEj0BDh JJEYEFEjAS DAgSgM0SgM 0OHQ4dHA4d DggFIAASgR 0IAAESgSER gSUJIAISgS kOEoEh
  7298   BAcBEkkGAA ESgS0OAyAA CgcgAwgdBQ gIBSAAEoE9 ByACEoFBDh wGIAEBEYFJ BiABARKBNQ QAAQgc
  7299   BAABAQgXBw oCDhKBLR0F EoE1DhKBOQ gSgTkSgM0G AAMBDg4CEQ cKDg4IDhIw EgwIEoDNDh 0OBSAA
  7300   EoFZByACEo FdDg4VBwkS gVUcEoE1Dh KBOQgSgM0S LRIZBSAAEo FhBiABEoFl HAgHAxIwCB KAzQUg
  7301   AQETAAwHCA 4OCAgCCBKA zQgEIAECDg cHAw4IEoDN DCAFEoFtDg 4ODhKBcRIg BRGBeRKBfR KBYRKB
  7302   cRKBgRwOBw UOEoFtEoFp EhwSgM0VBw oODggSgM0d DhGBBR0OEY EFDh0OBSAA EoGFEQcHAh KBNQ4S
  7303   gTkSgYUSgM 0ICSAAFRGB jQETAAYVEY GNAQ4EIAAT AAUgABKAzR QHBw4IEoE1 EoE5DhKAzR URgY0B
  7304   DgcgAgEOEo E1BiABARKB OQUgAQgSSQ QgARwIBQAB Dh0cGwcLEo E1DhJJEoE5 EoGVEoEVEo DNEi0S
  7305   GRwdHAgHAh KBNRKBOQQA ABFFBSAAEo GdCCAFAggO Dg4ICiAGAQ gODg4IEAII IAUBCA4ODg gNBwYS
  7306   KRIpEikIEi 0SGQQHAgIO BAABDQ4EBw INDgQHAggO BRURWQECBQ cBEoCpAwcB DgUgAQISNQ kHAxI5
  7307   ElUSgOEGBw MODhIpByAD ElUODg4HBw QOEikODgUH Ag4SKRYHCw 4SKRIpCBIp EoCpCBJVEl USLRIZ
  7308   CwADEl0OEY DZEYDdBAcB EjUHIAIBDh KAzQUgARJB DgUHARKAzQ kHAxKBpRJB HQ4GIAESga kOCiAA
  7309   FRKBrQESgL EIFRKBrQES gLERBwQSNR I5EoCxFRKB rQESgLEIIA MSgKkODg4G BwISMRI5Aw AAAQgH
  7310   AwISKRKAqQ sHBBIpEoCp EoCpCAYHAg 4SgKkHAAIC EjUSNQwHBQ 4SKRKAqQ4S gLEQBwcSKR IpDhJV
  7311   EoCpEoCxDg 0HBRIpEoCp EoCpDhIpBA cBElUIBwIS gbUSgbUKBw QIEikSVRKA oQgHAw4SgK ESKRQH
  7312   CRJVEikSKR KAoRIpEikI Ei0SGQQAAQ gIBAABDQgH BwUIAwgIAw QgAB0DBAAB AgMFIAIOCA gSBw4I
  7313   CAIDDggIAw gdAwgdAwgI CQcGCAIDDh 0DCAQHAggI ByACAQ4Rgb 0GIAEdDh0D GQcQDhKBtR KBtQ4O
  7314   HQMICA4ICA 4IHQMdDggI BwMSDBItEh kaBwwSgJkS KRIpEoCpEo CpEikCEikI CBItEhkPBw YSORJV
  7315   ElUSVRJVEo DhGQcLEjkS VRJVElUSVR JVElUSVRJV ElUSgOEKBw QRSBIpEoCp DgcHAxJVDh FIBSAA
  7316   EoGpFQcGEj USgLESDBUS ga0BEoCxEi 0SGQUgABKB xQcgAgEOEo HFBAcBEmEG IAEBEYHNCA EAAgAA
  7317   AAAALwEAKl NUX2ZjZTY4 NjNjZDhjOT QxODdiN2Jk MjUyODEzMD YzNGUxLmNz cHJvagAABQ EAAAAA
  7318   IwEAHkRlcG FydG1lbnQg b2YgVmV0ZX JhbnMgQWZm YWlycwAANA EAL0NvcHly aWdodCBAIE RlcGFy
  7319   dG1lbnQgb2 YgVmV0ZXJh bnMgQWZmYW lycyAyMDE0 AAAIAQAIAA AAAAAeAQAB AFQCFldyYX BOb25F
  7320   eGNlcHRpb2 5UaHJvd3MB AAAAcDUBAA AAAAAAAAAA jjUBAAAgAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7321   AIA1AQAAAA AAAAAAAAAA AAAAAF9Db3 JEbGxNYWlu AG1zY29yZW UuZGxsAAAA AAD/JQAgQA AAAAAA
  7322   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7323   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AQAQAAAAGA AAgAAA
  7324   AAAAAAAAAA AAAAAAAQAB AAAAMAAAgA AAAAAAAAAA AAAAAAAAAQ AAAAAASAAA AFhAAQCMBA AAAAAA
  7325   AAAAAACMBD QAAABWAFMA XwBWAEUAUg BTAEkATwBO AF8ASQBOAE YATwAAAAAA vQTv/gAAAQ AAAAEA
  7326   snX7FQAAAQ CydfsVPwAA AAAAAAAEAA AAAgAAAAAA AAAAAAAAAA AAAEQAAAAB AFYAYQByAE YAaQBs
  7327   AGUASQBuAG YAbwAAAAAA JAAEAAAAVA ByAGEAbgBz AGwAYQB0AG kAbwBuAAAA AAAAALAE7A MAAAEA
  7328   UwB0AHIAaQ BuAGcARgBp AGwAZQBJAG 4AZgBvAAAA yAMAAAEAMA AwADAAMAAw ADQAYgAwAA AAYAAf
  7329   AAEAQwBvAG 0AcABhAG4A eQBOAGEAbQ BlAAAAAABE AGUAcABhAH IAdABtAGUA bgB0ACAAbw BmACAA
  7330   VgBlAHQAZQ ByAGEAbgBz ACAAQQBmAG YAYQBpAHIA cwAAAAAAgA ArAAEARgBp AGwAZQBEAG UAcwBj
  7331   AHIAaQBwAH QAaQBvAG4A AAAAAFMAVA BfAGYAYwBl ADYAOAA2AD MAYwBkADgA YwA5ADQAMQ A4ADcA
  7332   YgA3AGIAZA AyADUAMgA4 ADEAMwAwAD YAMwA0AGUA MQAuAGMAcw BwAHIAbwBq AAAAAABAAA 8AAQBG
  7333   AGkAbABlAF YAZQByAHMA aQBvAG4AAA AAADEALgAw AC4ANQA2AD IANwAuADMA MAAxADMAMA AAAAAA
  7334   gAAvAAEASQ BuAHQAZQBy AG4AYQBsAE 4AYQBtAGUA AABTAFQAXw BmAGMAZQA2 ADgANgAzAG MAZAA4
  7335   AGMAOQA0AD EAOAA3AGIA NwBiAGQAMg A1ADIAOAAx ADMAMAA2AD MANABlADEA LgBjAHMAcA ByAG8A
  7336   agAuAGQAbA BsAAAAAACE ADAAAQBMAG UAZwBhAGwA QwBvAHAAeQ ByAGkAZwBo AHQAAABDAG 8AcAB5
  7337   AHIAaQBnAG gAdAAgAEAA IABEAGUAcA BhAHIAdABt AGUAbgB0AC AAbwBmACAA VgBlAHQAZQ ByAGEA
  7338   bgBzACAAQQ BmAGYAYQBp AHIAcwAgAD IAMAAxADQA AACIAC8AAQ BPAHIAaQBn AGkAbgBhAG wARgBp
  7339   AGwAZQBuAG EAbQBlAAAA UwBUAF8AZg BjAGUANgA4 ADYAMwBjAG QAOABjADkA NAAxADgANw BiADcA
  7340   YgBkADIANQ AyADgAMQAz ADAANgAzAD QAZQAxAC4A YwBzAHAAcg BvAGoALgBk AGwAbAAAAA AAeAAr
  7341   AAEAUAByAG 8AZAB1AGMA dABOAGEAbQ BlAAAAAABT AFQAXwBmAG MAZQA2ADgA NgAzAGMAZA A4AGMA
  7342   OQA0ADEAOA A3AGIANwBi AGQAMgA1AD IAOAAxADMA MAA2ADMANA BlADEALgBj AHMAcAByAG 8AagAA
  7343   AAAARAAPAA EAUAByAG8A ZAB1AGMAdA BWAGUAcgBz AGkAbwBuAA AAMQAuADAA LgA1ADYAMg A3AC4A
  7344   MwAwADEAMw AwAAAAAABI AA8AAQBBAH MAcwBlAG0A YgBsAHkAIA BWAGUAcgBz AGkAbwBuAA AAMQAu
  7345   ADAALgA1AD YAMgA3AC4A MwAwADEAMw AwAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7346   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7347   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7348   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7349   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7350   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAw AQAMAAAAoD UAAAAAAAAA AAAAAAAAAA AAAAAA
  7351   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7352   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7353   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7354   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7355   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7356   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7357   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7358   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA
  7359   AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA</Bi naryItem>< /ScriptPro ject></DTS :ObjectDat a></DTS:Ex ecutable>
  7360   <DTS:Execu table DTS: Executable Type="SSIS .Pipeline. 2">
  7361   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  7362   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  7363   <DTS:Prope rty DTS:Na me="TaskCo ntact">Per forms high -performan ce data ex traction,  transforma tion and l oading;Mic rosoft Cor poration;  Microsoft  SQL Server  v10; (C)  2007 Micro soft Corpo ration; Al l Rights R eserved;ht tp://www.m icrosoft.c om/sql/sup port/defau lt.asp;1</ DTS:Proper ty>
  7364   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  7365   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  7366   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  7367   <DTS:Prope rty DTS:Na me="Disabl ed">-1</DT S:Property >
  7368   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  7369   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  7370   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  7371   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  7372   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  7373   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  7374   <DTS:Prope rty DTS:Na me="DelayV alidation" >-1</DTS:P roperty>
  7375   <DTS:Loggi ngOptions>
  7376   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  7377   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  7378   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  7379   <DTS:Prope rty DTS:Na me="Object Name">Load  data into  table EFR  DOD_FRAGM ENT_DATA_R ECEIVELOG< /DTS:Prope rty>
  7380   <DTS:Prope rty DTS:Na me="DTSID" >{74BD3D89 -C559-43CF -A691-80F7 ACDBD1EA}< /DTS:Prope rty>
  7381   <DTS:Prope rty DTS:Na me="Descri ption">Dat a Flow Tas k</DTS:Pro perty>
  7382   <DTS:Prope rty DTS:Na me="Creati onName">SS IS.Pipelin e.2</DTS:P roperty>
  7383   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><p ipeline id ="0" name= "pipelineX ml" descri ption="pip elineXml"  defaultBuf ferMaxRows ="10000" e ngineThrea ds="10" de faultBuffe rSize="104 85760" BLO BTempStora gePath=""  bufferTemp StoragePat h="" runIn OptimizedM ode="true" >
  7384   <component s>
  7385   <component  id="62" n ame="Scrip t Componen t" compone ntClassID= "{2E42D45B -F83C-400F -8D77-61DD E6A7DF29}"  descripti on="Execut es a custo m script."  localeId= "-1" usesD isposition s="false"  validateEx ternalMeta data="True " version= "4" pipeli neVersion= "0" contac tInfo="Exe cutes a cu stom scrip t.;Microso ft Corpora tion; Micr osoft SqlS erver v10;  Â© 2007 M icrosoft C orporation ; All Righ ts Reserve d; http:// www.micros oft.com/sq l/support; 4">
  7386   <propertie s>
  7387   <property  id="66" na me="Source Code" data Type="Syst em.String"  state="cd ata" isArr ay="true"  descriptio n="Stores  the source  code of t he compone nt" typeCo nverter=""  UITypeEdi tor="" con tainsID="f alse" expr essionType ="None"><a rrayElemen ts arrayEl ementCount ="40"><arr ayElement  dataType=" System.Str ing"><![CD ATA[\sc_c2 665656350f 46b691332e dfeaa51479 .csproj]]> </arrayEle ment><arra yElement d ataType="S ystem.Stri ng"><![CDA TA[<Projec t ToolsVer sion="3.5"  DefaultTa rgets="Bui ld" xmlns= "http://sc hemas.micr osoft.com/ developer/ msbuild/20 03">
  7388     <!-- Thi s section  defines pr oject-leve l properti es.
  7389  
  7390          Con figuration  - Specifi es whether  the defau lt configu ration is  Release or  Debug.
  7391          Pla tform - Sp ecifies wh at CPU the  output of  this proj ect can ru n on.
  7392          Out putType -  Must be "L ibrary" fo r VSTA.
  7393          NoS tandardLib raries - S et to "fal se" for VS TA.
  7394          Roo tNamespace  - In C#,  this speci fies the n amespace g iven to ne w files.
  7395                            In Visu al Basic,  all object s are wrap ped in thi s namespac e at runti me.
  7396          Ass emblyName  - Name of  the output  assembly.
  7397     -->
  7398     <Propert yGroup>
  7399       <Proje ctTypeGuid s>{A860303 F-1F3F-469 1-B57E-529 FC101A107} ;{FAE04EC0 -301F-11D3 -BF4B-00C0 4F79EFBC}< /ProjectTy peGuids>
  7400       <Confi guration C ondition="  '$(Config uration)'  == '' ">De bug</Confi guration>
  7401       <Platf orm Condit ion=" '$(P latform)'  == '' ">An yCPU</Plat form>
  7402       <Outpu tType>Libr ary</Outpu tType>
  7403       <NoSta ndardLibra ries>false </NoStanda rdLibrarie s>
  7404       <RootN amespace>S C_c2665656 350f46b691 332edfeaa5 1479.cspro j</RootNam espace>
  7405       <Assem blyName>SC _c26656563 50f46b6913 32edfeaa51 479.csproj </Assembly Name>
  7406       <Proje ctGuid>{33 860B0B-BE6 B-4FC7-BD4 4-393EDBC0 FB9B}</Pro jectGuid>
  7407     </Proper tyGroup>
  7408     <!-- Thi s section  defines pr operties t hat are se t when the  "Debug" c onfigurati on is
  7409          sel ected.
  7410  
  7411          Deb ugSymbols  - If true,  create sy mbols (.pd b). If fal se, do not  create sy mbols.
  7412          Opt imize - If  true, opt imize the  build outp ut. If fal se, do not  optimize.
  7413          Out putPath -  Output pat h of the p roject rel ative to t he project  file.
  7414          Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will  attach bot h managed  and unmana ged debugg ers.
  7415          Def ineConstan ts - Const ants defin ed for the  preproces sor.
  7416          War ning Level  - Warning  level for  the compi ler.
  7417     -->
  7418     <Propert yGroup Con dition=" ' $(Configur ation)' ==  'Debug' " >
  7419       <Debug Symbols>tr ue</DebugS ymbols>
  7420       <Optim ize>false< /Optimize>
  7421       <Outpu tPath>.\bi n\Debug\</ OutputPath >
  7422       <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g>
  7423       <Defin eConstants >DEBUG;TRA CE</Define Constants>
  7424       <Warni ngLevel>4< /WarningLe vel>
  7425     </Proper tyGroup>
  7426     <!-- Thi s section  defines pr operties t hat are se t when the  "Release"  configura tion is
  7427          sel ected.
  7428  
  7429          Deb ugSymbols  - If true,  create sy mbols (.pd b). If fal se, do not  create sy mbols.
  7430          Opt imize - If  true, opt imize the  build outp ut. If fal se, do not  optimize.
  7431          Out putPath -  Output pat h of the p roject rel ative to t he project  file.
  7432          Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will  attach bot h managed  and unmana ged debugg ers.
  7433          Def ineConstan ts - Const ants defin ed for the  preproces sor.
  7434          War ning Level  - Warning  level for  the compi ler.
  7435     -->
  7436     <Propert yGroup Con dition=" ' $(Configur ation)' ==  'Release'  ">
  7437       <Debug Symbols>fa lse</Debug Symbols>
  7438       <Optim ize>true</ Optimize>
  7439       <Outpu tPath>.\bi n\Release\ </OutputPa th>
  7440       <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g>
  7441       <Defin eConstants >TRACE</De fineConsta nts>
  7442       <Warni ngLevel>4< /WarningLe vel>
  7443     </Proper tyGroup>
  7444     <!-- Thi s section  enables pr e- and pos t-build st eps. Howev er,
  7445          it  is recomme nded that  MSBuild ta sks be use d instead  of these p roperties.
  7446     -->
  7447     <Propert yGroup>
  7448       <PreBu ildEvent>
  7449       </PreB uildEvent>
  7450       <PostB uildEvent>
  7451       </Post BuildEvent >
  7452     </Proper tyGroup>
  7453     <!-- Thi s sections  specifies  reference s for the  project. - ->
  7454     <ItemGro up>
  7455       <Refer ence Inclu de="Micros oft.SQLSer ver.Manage dDTS, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91, proces sorArchite cture=MSIL " />
  7456       <Refer ence Inclu de="System " />
  7457       <Refer ence Inclu de="System .Data" />
  7458       <Refer ence Inclu de="System .Drawing"  />
  7459       <Refer ence Inclu de="System .Windows.F orms" />
  7460       <Refer ence Inclu de="System .Xml" />
  7461       <Refer ence Inclu de="Micros oft.SqlSer ver.TxScri pt, Versio n=10.0.0.0 , Culture= neutral, P ublicKeyTo ken=89845d cd8080cc91 " />
  7462       <Refer ence Inclu de="Micros oft.SqlSer ver.DTSRun timeWrap,  Version=10 .0.0.0, Cu lture=neut ral, Publi cKeyToken= 89845dcd80 80cc91" />
  7463       <Refer ence Inclu de="Micros oft.SqlSer ver.DTSPip elineWrap,  Version=1 0.0.0.0, C ulture=neu tral, Publ icKeyToken =89845dcd8 080cc91" / >
  7464       <Refer ence Inclu de="Micros oft.SqlSer ver.Pipeli neHost, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91" />
  7465     </ItemGr oup>
  7466     <!-- Thi s section  defines th e user sou rce files  that are p art of the
  7467          pro ject.
  7468  
  7469          Com pile - Spe cifies a s ource file  to compil e.
  7470          Emb eddedResou rce - Spec ifies a .r esx file f or embedde d resource s.
  7471          Non e - Specif ies a file  that is n ot to be p assed to t he compile r (for ins tance,
  7472                  a text  file or X ML file).
  7473          App Designer -  Specifies  the direc tory where  the appli cation pro perties fi les can
  7474                          be found.
  7475     -->
  7476     <ItemGro up>
  7477       <AppDe signer Inc lude="Prop erties\" / >
  7478       <Compi le Include ="Alignmen t.cs" />
  7479       <Compi le Include ="BIFF.cs"  />
  7480       <Compi le Include ="BufferWr apper.cs"  />
  7481       <Compi le Include ="Cell.cs"  />
  7482       <Compi le Include ="CellInfo .cs" />
  7483       <Compi le Include ="ColumnIn fo.cs" />
  7484       <Compi le Include ="Componen tWrapper.c s" />
  7485       <Compi le Include ="ExcelCol or.cs" />
  7486       <Compi le Include ="ExcelDoc ument.cs"  />
  7487       <Compi le Include ="ExcelRea der.cs" />
  7488       <Compi le Include ="ExcelWri ter.cs" />
  7489       <Compi le Include ="FontInfo .cs" />
  7490       <Compi le Include ="FormatIn fo.cs" />
  7491       <Compi le Include ="main.cs"  />
  7492       <Compi le Include ="Properti es\Assembl yInfo.cs">
  7493         <Sub Type>Code< /SubType>
  7494       </Comp ile>
  7495       <Embed dedResourc e Include= "Propertie s\Resource s.resx">
  7496         <Gen erator>Res XFileCodeG enerator</ Generator>
  7497         <Las tGenOutput >Resources .Designer. cs</LastGe nOutput>
  7498       </Embe ddedResour ce>
  7499       <Compi le Include ="Properti es\Resourc es.Designe r.cs">
  7500         <Aut oGen>True< /AutoGen>
  7501         <Dep endentUpon >Resources .resx</Dep endentUpon >
  7502       </Comp ile>
  7503       <None  Include="P roperties\ Settings.s ettings">
  7504         <Gen erator>Set tingsSingl eFileGener ator</Gene rator>
  7505         <Las tGenOutput >Settings. Designer.c s</LastGen Output>
  7506       </None >
  7507       <Compi le Include ="Properti es\Setting s.Designer .cs">
  7508         <Aut oGen>True< /AutoGen>
  7509         <Dep endentUpon >Settings. settings</ DependentU pon>
  7510       </Comp ile>
  7511       <!-- I nclude the  default c onfigurati on informa tion and m etadata fi les for th e add-in.
  7512            T hese files  are copie d to the b uild outpu t director y when the  project i s
  7513            b uilt, and  the path t o the conf iguration  file is pa ssed to th e add-in o n the comm and
  7514            l ine when d ebugging.
  7515       -->
  7516     </ItemGr oup>
  7517     <!-- Inc lude the b uild rules  for a C#  project.-- >
  7518     <Import  Project="$ (MSBuildBi nPath)\Mic rosoft.CSh arp.target s" />
  7519     <!-- Thi s section  defines VS TA propert ies that d escribe th e host-cha ngable pro ject prope rties. -->
  7520     <Project Extensions >
  7521       <Visua lStudio>
  7522         <Fla vorPropert ies GUID=" {A860303F- 1F3F-4691- B57E-529FC 101A107}">
  7523           <P rojectProp erties Hos tName="VST AHostName"  HostPacka ge="{C1B21 C64-9E6F-4 923-A89D-9 F958503C1C E}" Applic ationType= "usd" Lang uage="cs"  TemplatesP ath="" />
  7524           <H ost Name=" SSIS_Scrip tComponent " IconInde x="0" />
  7525           <P rojectClie nt>
  7526              <HostIdent ifier>SSIS _ScriptCom ponent</Ho stIdentifi er>
  7527           </ ProjectCli ent>
  7528         </Fl avorProper ties>
  7529       </Visu alStudio>
  7530     </Projec tExtension s>
  7531   </Project> ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\mai n.cs]]></a rrayElemen t><arrayEl ement data Type="Syst em.String" ><![CDATA[ /*
  7532      Microso ft SQL Ser ver Integr ation Serv ices Scrip t Task
  7533      Write s cripts usi ng Microso ft Visual  C# 2008.
  7534      The Scr iptMain is  the entry  point cla ss of the  script.
  7535   */
  7536  
  7537   using Syst em;
  7538   using Syst em.Data;
  7539   using Syst em.Data.Sq lClient;
  7540   using Micr osoft.SqlS erver.Dts. Runtime;
  7541   using Syst em.Windows .Forms;
  7542   using Syst em.Data.Ol eDb;
  7543   using Syst em.Globali zation;
  7544   using Syst em.IO;
  7545   using Syst em.Collect ions.Gener ic;
  7546  
  7547   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  7548   {
  7549       //[Sys tem.AddIn. AddIn("Scr iptMain",  Version =  "1.0", Pub lisher = " ", Descrip tion = "") ]
  7550       public  partial c lass Scrip tMain : Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.V STARTScrip tObjectMod elBase
  7551       {
  7552           pr ivate stri ng logStri ng = "";
  7553           in t edipiCol umn = -1;
  7554           in t iLabDate Column = - 1;
  7555           Li st<string>  rawEdipis  = new Lis t<string>( );
  7556           Li st<string>  validEdip is = new L ist<string >();
  7557           pr ivate Exce lReader in putExcel =  null;
  7558           Da taTable in putExcelDa ta = new D ataTable() ;
  7559           pr ivate Exce lDocument  outputExce l = new Ex celDocumen t();
  7560           pr ivate stri ng connect ionString  = "";
  7561           pr ivate bool  efrDoDFra gTestMode  = false;
  7562           pr ivate stri ng efrDoDF ragTestFil e = "";
  7563           pr ivate bool  efrDoDFra gLogAllTra nsactions  = false;
  7564           pr ivate cons t string e dipiColumn Name = "ed ipi";
  7565           pr ivate stri ng efrDoDF ragCrsMviE tlName = " ";
  7566           pr ivate Guid  guidId =  Guid.NewGu id();
  7567           pr ivate Dict ionary<str ing, strin g> IcnEdip iMapping =  new Dicti onary<stri ng, string >();
  7568  
  7569  
  7570           #r egion VSTA  generated  code
  7571           en um ScriptR esults
  7572           {
  7573                Success  = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Su ccess,
  7574                Failure  = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Fa ilure
  7575           };
  7576           #e ndregion
  7577  
  7578           pu blic void  Main()
  7579           {
  7580                logStrin g = "Begin ning DoDFr agmentScri ptTask. ";
  7581                Dts.Task Result = ( int)Script Results.Su ccess;
  7582  
  7583                setConfi gValues();
  7584      
  7585                // Set u p connecti on string  for Regist ryStaging  database
  7586                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  7587                    setu pConnectio nString();
  7588  
  7589                // Load  input file  data 
  7590                //TODO:  Remove tes t data
  7591                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  7592                    load InputExcel Data();
  7593  
  7594                // find  EDIPI colu mn in inpu
  7595                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  7596                    setE dipiColumn ();
  7597  
  7598                // Get d istinct li st of edip i's in the  input fil e
  7599                if (Dts. TaskResult  == (int)S criptResul ts.Success
  7600                    setR awEdipisFr omInput();
  7601  
  7602                // Load  the CRS_MV I_Patient  table with  the EDIPI s
  7603                if (Dts. TaskResult  == (int)S criptResul ts.Success
  7604                    inse rtRawEdipi sIntoDatab ase();
  7605  
  7606                // Execu te the CRS MVI packag e
  7607                if (Dts. TaskResult  == (int)S criptResul ts.Success  && !efrDo DFragTestM ode)
  7608                    exec uteCRSMVIP ackage();
  7609  
  7610                MessageB ox.Show("S kip Execut e Package" );
  7611  
  7612                // Execu te the CRS MVI packag e
  7613                if (Dts. TaskResult  == (int)S criptResul ts.Success )
  7614                    retr ieveDataba seEdipis() ;
  7615  
  7616                // Gener ate an upd ated outpu t file to  continue p rocessing
  7617                if (Dts. TaskResult  == (int)S criptResul ts.Success
  7618                    Gene rateUpdate dExcelFile ();
  7619  
  7620                writeLog (logString );             
  7621           }
  7622  
  7623           pr ivate void  GenerateU pdatedExce lFile()
  7624           {
  7625                try
  7626                {
  7627                    // S ave off th e input fi le to a ba ckup
  7628                    stri ng fileNam e = Path.G etDirector yName(inpu tExcel.Exc elFilename ) +
  7629                         "\\" +
  7630                         Path.GetFi leNameWith outExtensi on(inputEx cel.ExcelF ilename) +  ".xls";
  7631                    stri ng backupF ileName =  generateBa ckupExcelF ileName(in putExcel.E xcelFilena me);
  7632                    File .Move(inpu tExcel.Exc elFilename , backupFi leName);
  7633  
  7634                    logS tring += " Backup fil e: " + bac kupFileNam e + "; ";
  7635                    logS tring += " Invalid ED IPIs: ";
  7636  
  7637                    int  outputRow  = 0;
  7638  
  7639                    // C opy valid  rows from  the input  file to ou tput file  row by row
  7640  
  7641                    for  (int r = 0 ; r < inpu tExcelData .Rows.Coun t; r++)
  7642                    {
  7643                         if (validE dipis.Cont ains(input ExcelData. Rows[r][ed ipiColumn] .ToString( )))
  7644                         {
  7645                             for (i nt c = 0;  c < inputE xcelData.C olumns.Cou nt; c++)
  7646                             {
  7647                                 ou tputExcel. WriteCell( outputRow,  c, inputE xcelData.R ows[r][c]) ;
  7648                             }
  7649  
  7650                             output Row++;
  7651                         }
  7652                         else
  7653                         {
  7654                             logStr ing += inp utExcelDat a.Rows[r][ edipiColum n].ToStrin g() + ": " ;
  7655                         }
  7656                    }
  7657  
  7658                    // W rite outpu t file to  the disk
  7659                    File Stream str eam = new  FileStream (fileName,  FileMode. Create);
  7660  
  7661                    // S ave and cl ose update d input fi le file
  7662                    outp utExcel.Sa ve(stream) ;
  7663                    stre am.Close() ;
  7664                }
  7665                catch (E xception e x)
  7666                {
  7667                    logS tring += " ERROR: cre ateUpdated OutputFile  threw exc eption: "  + ex.Messa ge.ToStrin g() + "; " ;
  7668                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7669                }
  7670  
  7671                logStrin g += "Comp leted Gene rateUpdate dExcelFile ; ";
  7672  
  7673                //try
  7674                //{
  7675                //    //  Copy vali d rows fro m the inpu t file to  output fil e row by r ow
  7676  
  7677                //    fo r (int r =  0; r < in putExcelDa ta.Rows.Co unt; r++)
  7678                //    {
  7679                //         if (vali dEdipis.Co ntains(inp utExcelDat a.Rows[r][ edipiColum n].ToStrin g()))
  7680                //         {
  7681                //             for  (int c = 0 ; c < inpu tExcelData .Columns.C ount; c++)
  7682                //             {
  7683                //                  outputExce l.WriteCel l(r, c, in putExcelDa ta.Rows[r] [c]);
  7684                //             }
  7685                //         }
  7686                //    }
  7687  
  7688                //    //  Write out put file t o the disk
  7689                //    Fi leStream s tream = ne w FileStre am(generat eOutputExc elFileName (inputExce l.ExcelFil ename), Fi leMode.Cre ate);
  7690  
  7691                //    //  Update th e output f ilename fo r the pack age
  7692  
  7693                //    Dt s.Variable s["User::f ileName2"] .Value = s tream.Name ;
  7694                //    //  Close out put file
  7695                //    ou tputExcel. Save(strea m);
  7696                //    st ream.Close ();
  7697                //}
  7698                //catch  (Exception  ex)
  7699                //{
  7700                //    lo gString +=  "ERROR: c reateUpdat edOutputFi le threw e xception:  " + ex.Mes sage.ToStr ing() + ";  ";
  7701                //    Dt s.TaskResu lt = (int) ScriptResu lts.Failur e;
  7702                //}
  7703           }
  7704  
  7705           pr ivate void  setupConn ectionStri ng()
  7706           {
  7707                connecti onString =  "Data Sou rce=";
  7708                connecti onString + = (string) Dts.Variab les["User: :LoggingSe rver"].Val ue;
  7709                connecti onString + = ";Initia l Catalog= ";
  7710                connecti onString + = (string) Dts.Variab les["User: :LoggingDa tabase"].V alue;
  7711                connecti onString + = ";Integr ated Secur ity=True";
  7712  
  7713                logStrin g += "Conn ectionStri ng: " + co nnectionSt ring + ";  ";
  7714           }
  7715  
  7716           pr ivate void  loadInput ExcelData( )
  7717           {
  7718                try
  7719                {
  7720                    inpu tExcel = n ew ExcelRe ader();
  7721  
  7722                    if ( efrDoDFrag TestMode)
  7723                    {
  7724                         //inputExc el.ExcelFi lename = " C:\\Users\ \vaaitcwhi tea\\Docum ents\\_Reg istries\\E FR\\DoD Fr ag File Te st__2.xlsx ";
  7725                         inputExcel .ExcelFile name = efr DoDFragTes tFile;
  7726  
  7727                         logString  += "Using  test file:  " + efrDo DFragTestF ile + "; " ;
  7728                    }
  7729                    else
  7730                    {
  7731                         inputExcel .ExcelFile name = Dts .Variables ["fileName 2"].Value. ToString() ;
  7732  
  7733                         logString  += "Using  package fi le: " + Dt s.Variable s["fileNam e2"].Value .ToString( ) + "; ";
  7734                    }
  7735  
  7736                    inpu tExcel.Hea ders = fal se;
  7737                    inpu tExcel.Mix edData = t rue;
  7738  
  7739                    // N eed the sh eetname fo r the firs t workshee t in the w orkbook
  7740                    stri ng[] sheet names = th is.inputEx cel.GetExc elSheetNam es();
  7741  
  7742                    if ( sheetnames .Length >  0)
  7743                    {
  7744                         inputExcel .SheetName  = sheetna mes[0];
  7745  
  7746                         logString  += "Sheetn ame: " + i nputExcel. SheetName  + "; ";
  7747                    }
  7748                    else
  7749                    {
  7750                         logString  += "ERROR:  Can't fin d sheetnam e; ";
  7751  
  7752                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  7753                    }
  7754  
  7755                    inpu tExcelData  = inputEx cel.GetTab le();
  7756  
  7757                    if ( inputExcel Data.Rows. Count > 0)
  7758                    {
  7759                         logString  += "Rows i n input fi le: " + in putExcelDa ta.Rows.Co unt.ToStri ng() + ";  ";
  7760                    }
  7761                    else
  7762                    {
  7763                         logString  += "ERORR:  No Rows i n inputExc elData fil e; ";
  7764                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  7765                    }
  7766                }
  7767                catch (E xception e x)
  7768                {
  7769                    logS tring += " ERROR: loa dInputExce lData thre w exceptio n: " + ex. Message.To String() +  "; ";
  7770  
  7771                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7772                }
  7773           }
  7774  
  7775           pr ivate void  setRawEdi pisFromInp ut()
  7776           {
  7777                try
  7778                {
  7779                    stri ng edipi =  "";
  7780  
  7781                    for  (int rowNu m = 1; row Num < inpu tExcelData .Rows.Coun t; rowNum+ +)
  7782                    {
  7783                         edipi = in putExcelDa ta.Rows[ro wNum][edip iColumn].T oString(). Trim();
  7784  
  7785                         // If we'v e already  checked th e edipi, n o need to  revalidate .
  7786                         if (rawEdi pis.Contai ns(edipi)  || edipi.T rim().Leng th == 0)
  7787                         {
  7788                             contin ue;
  7789                         }
  7790                         else
  7791                         {
  7792                             rawEdi pis.Add(ed ipi);
  7793                         }
  7794                    }
  7795  
  7796                    if ( rawEdipis. Count > 0)
  7797                    {
  7798                         logString  += "rawEdi pis.count:  " + rawEd ipis.Count .ToString( ) + "; ";
  7799                    }
  7800                    else
  7801                    {
  7802                         logString  += "ERROR:  No rawEdi pis found.  ";
  7803                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  7804                    }
  7805                }
  7806                catch (E xception e x)
  7807                {
  7808                    logS tring += " ERROR: set RawEdipisF romInput t hrew excep tion: " +  ex.Message .ToString( ) + "; ";
  7809                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7810                }
  7811           }
  7812  
  7813           pr ivate void  setEdipiC olumn()
  7814           {
  7815                try
  7816                {
  7817                    for  (int c = 0 ; c < inpu tExcelData .Columns.C ount; c++)
  7818                    {
  7819                         if (inputE xcelData.R ows[0][c]. ToString() .Trim().To Lower() ==  edipiColu mnName)
  7820                         {
  7821                             edipiC olumn = c;
  7822                             break;
  7823                         }
  7824                    }
  7825  
  7826                    if ( edipiColum n > -1)
  7827                    {
  7828                         logString  += "EDIPI  column: "  + edipiCol umn + "; " ;
  7829                    }
  7830                    else
  7831                    {
  7832                         logString  += "ERRROR : EDIPI co lumn not f ound;";
  7833                         Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  7834                    }
  7835                }
  7836                catch (E xception e x)
  7837                {
  7838                    logS tring += " ERROR: set EdipiColum n threw ex ception: "  + ex.Mess age.ToStri ng() + ";  ";
  7839                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7840                }
  7841           }
  7842  
  7843           pr ivate void  executeCR SMVIPackag e()
  7844           {
  7845                // Run s cripttask
  7846                logStrin g += "Star t running  CRS_MVI sc ript task;  ";
  7847  
  7848                try
  7849                {
  7850                    //TO DO: config  value
  7851                    //Se t up some  vars to id entify wha t child pa ckage we w ant to run .
  7852  
  7853                    Stri ng package Location =  Dts.Conne ctions[efr DoDFragCrs MviEtlName ].Connecti onString;
  7854                    Pack age oPkg;
  7855                    Micr osoft.SqlS erver.Dts. Runtime.Ap plication  oApp = new  Microsoft .SqlServer .Dts.Runti me.Applica tion();
  7856                    Chil dEventList ener event Listener =  new Child EventListe ner(Dts);
  7857  
  7858                    // L oad child  package.
  7859                    // L oadPackage  = file, L oadFromDts Server = p ackage sto re, or Loa dFromSqlSe rver = SQL  package s ources.
  7860                    oPkg  = oApp.Lo adPackage( packageLoc ation, eve ntListener );
  7861  
  7862                    // S et child p ackage var iables.
  7863                    // N OTE: Packa ge configu ration var iables are  set at pa ckage exec ution time , so make  sure the v ariables
  7864                    //        you'r e setting  here aren' t going to  be overwr itten by a  package c onfigurati on.
  7865  
  7866                    //Wr iteVariabl e("User::R unMode", " Main", oPk g);
  7867                    //Pk gVarsSet(o Pkg, "User ::loadYear ,User::loa dMonth");
  7868  
  7869                    // E xecute chi ld package .
  7870                    Dts. TaskResult  = (int)oP kg.Execute (null, nul l, eventLi stener, nu ll, null);
  7871  
  7872                    if ( Dts.TaskRe sult != (i nt)DTSExec Result.Fai lure)
  7873                    {
  7874                         // Maybe y ou want to  pull some  result va riables fr om the chi ld package  back into  the maste r here.
  7875                         //PkgVarsG et(oPkg, " User::rowC ountInsert ed,User::s tatusType, User::stat usMessage" );
  7876                    }
  7877                    else
  7878                    {
  7879                         // Perform  extra che cks or ove rride sett ings here  as necessa ry.
  7880                         // Ex: You  may not n ecessarily  want to f ail the sc ript task  if the chi ld package  failed.
  7881                         // Dts.Tas kResult =  (int)DTSEx ecResult.S uccess;
  7882  
  7883                         logString  += "ERROR:  Failure r unning chi ld package . ";
  7884                    }
  7885                }
  7886                catch (E xception e x)
  7887                {
  7888                    logS tring += " ERROR: Exc eption in  executeCRS MVIPackage (): " + ex .Message.T oString()  + "; ";
  7889                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7890                }
  7891  
  7892                logStrin g += "Comp leted runn ing CRS_MV I script t ask; ";
  7893           }
  7894  
  7895           pr ivate stri ng generat eBackupExc elFileName (string in putExcelFi le)
  7896           {
  7897                string n ewExcelFil eName = "" ;
  7898  
  7899                try
  7900                {
  7901                    stri ng filePat hName = in putExcelFi le;
  7902                    newE xcelFileNa me = Path. GetDirecto ryName(fil ePathName)  +
  7903                         "\\" +
  7904                         Path.GetFi leNameWith outExtensi on(filePat hName) +
  7905                         "_Backup"  +
  7906                       P ath.GetExt ension(fil ePathName) ;
  7907  
  7908                    int  fileIncrem ent = 1;
  7909                    whil e (File.Ex ists(newEx celFileNam e))
  7910                    {
  7911                         newExcelFi leName = P ath.GetDir ectoryName (filePathN ame) +
  7912                         "\\" +
  7913                         Path.GetFi leNameWith outExtensi on(filePat hName) +
  7914                         "_Backup"  +
  7915                         fileIncrem ent.ToStri ng() +
  7916                       P ath.GetExt ension(fil ePathName) ;
  7917  
  7918                         fileIncrem ent++;
  7919                    }
  7920  
  7921                    logS tring += " Source Fil e: " + inp utExcelFil e + "; " +  "Backup F ile: " + n ewExcelFil eName + ";  ";
  7922  
  7923                    outp utExcel.Us erName = " CRS";
  7924                    outp utExcel.Co dePage = C ultureInfo .CurrentCu lture.Text Info.ANSIC odePage;
  7925  
  7926                    outp utExcel.Co lumnWidth( 0, 120);
  7927                    outp utExcel.Co lumnWidth( 1, 80);
  7928  
  7929                    //ou tputExcel[ 0, 0].Valu e = "Excel Writer Dem o";
  7930                    //ou tputExcel[ 0, 0].Font  = new Sys tem.Drawin g.Font("Ta homa", 10,  System.Dr awing.Font Style.Bold );
  7931                    //ou tputExcel[ 0, 0].Fore Color = Ex celColor.D arkRed;
  7932                    //ou tputExcel[ 0, 0].Alig nment = Al ignment.Ce ntered;
  7933                    //ou tputExcel[ 0, 0].Back Color = Ex celColor.S ilver;
  7934  
  7935                    //ou tputExcel. WriteCell( 1, 0, "int ");
  7936                    //ou tputExcel. WriteCell( 1, 1, 10);
  7937  
  7938                    //ou tputExcel. Cell(2, 0) .Value = " double";
  7939                    //ou tputExcel. Cell(2, 1) .Value = 1 .5;
  7940  
  7941                    //ou tputExcel. Cell(3, 0) .Value = " date";
  7942                    //ou tputExcel. Cell(3, 1) .Value = D ateTime.No w;
  7943                    //ou tputExcel. Cell(3, 1) .Format =  @"dd/mm/yy yy";
  7944  
  7945                    //Me ssageBox.S how("Begin  creating  output fil e, before  setting up  stream");
  7946  
  7947                    //Fi leStream s tream = ne w FileStre am(newExce lFileName,  FileMode. Create);
  7948  
  7949                    //ou tputExcel. Save(strea m);
  7950                    //st ream.Close ();
  7951  
  7952  
  7953                    //Me ssageBox.S how("Done  creating o utput file ");
  7954                }
  7955                catch (E xception e x)
  7956                {
  7957                    logS tring += " ERROR: gen erateOutpu tExcelFile Name threw  exception : " + ex.M essage.ToS tring() +  "; ";
  7958                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  7959                }
  7960  
  7961                return n ewExcelFil eName;
  7962           }
  7963  
  7964           pr ivate bool  retrieveD atabaseEdi pis()
  7965           {
  7966                bool ret Value = tr ue;
  7967  
  7968                try
  7969                {
  7970                    usin g (SqlConn ection con nection =  new SqlCon nection(co nnectionSt ring))
  7971                    {
  7972                         string sql Cmd = "";
  7973                         sqlCmd +=  "select Pa tient_Edip i from etl _crs_mvi_p atient ";
  7974                         sqlCmd +=  "where MVI _Response  = 'OK' ";
  7975                         sqlCmd +=  "and creat edby = 'Do DFragETL'  ";
  7976                         sqlCmd +=  "and RUN_I DENTIFIER  = '" + gui dId.ToStri ng() + "'" ;
  7977                         logString  += sqlCmd  + "; ";
  7978  
  7979                         SqlCommand  cmd = new  SqlComman d(sqlCmd);
  7980                         cmd.Comman dType = Co mmandType. Text;
  7981                         cmd.Connec tion = con nection;
  7982                         connection .Open();
  7983  
  7984                         SqlDataRea der reader  = cmd.Exe cuteReader ();
  7985                        
  7986                         while (rea der.Read() )
  7987                         {
  7988                             validE dipis.Add( reader.Get String(rea der.GetOrd inal("Pati ent_Edipi" )));
  7989                             //Cons ole.WriteL ine(String .Format("{ 0}", reade r[0]));
  7990                             Messag eBox.Show( "EDIPI: "  + reader.G etString(r eader.GetO rdinal("Pa tient_Edip i")));
  7991                         }
  7992  
  7993                         logString  += "# vali d edipis:  " + validE dipis.Coun t.ToString () + "; ";
  7994                    }
  7995                }
  7996                catch (E xception e x)
  7997                {
  7998                    logS tring += " ERROR: ret rieveDatab aseEdipis  threw exce ption: " +  ex.Messag e.ToString () + "; ";
  7999                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  8000                    retV alue = fal se;
  8001                }
  8002  
  8003                return r etValue;
  8004           }
  8005  
  8006           pr ivate void  insertRaw EdipisInto Database()
  8007           {
  8008                string s ql = "";
  8009                sql += " INSERT INT O ETL_CRS_ MVI_Patien t ";
  8010                sql += " ([PATIENT_ EDIPI],[RU N_IDENTIFI ER],";
  8011                sql += " [CREATED], [CREATEDBY ],[UPDATED ],[UPDATED BY]";
  8012                sql += " ) ";
  8013                sql += " VALUES (@e dipi, ";
  8014                sql += " '" + guidI d.ToString () + "', g etdate(),  'DoDFragET L', getdat e(), 'DoDF ragETL')";
  8015  
  8016                //sql +=  "INSERT I NTO ETL_CR S_MVI_Pati ent ";
  8017                //sql +=  "([PATIEN T_ID],[SSN ],[PATIENT _ICN],[PAT IENT_EDIPI ],[QueryID _UniqueIde ntifierNum ber],";
  8018                //sql +=  "[CREATED ],[CREATED BY],[UPDAT ED],[UPDAT EDBY]";
  8019                
  8020                ////TODO : Remove t he next li ne, it is  for testin g only
  8021                //sql +=  ",[MVI_RE SPONSE]";
  8022                //sql +=  ") ";
  8023                //sql +=  "VALUES ( 12, @ssn,  @icn, @edi pi, '33333 33', ";
  8024                //sql +=  "getdate( ), 'DoDFra gETL', get date(), 'D oDFragETL' , null)";
  8025  
  8026                logStrin g += "Inse rt edipis  sql: " + s ql + "; ";
  8027  
  8028                try
  8029                {
  8030                    usin g (SqlConn ection con nection =  new SqlCon nection(co nnectionSt ring))
  8031                    {
  8032                         SqlCommand  cmd = new  SqlComman d(sql);
  8033                         cmd.Comman dType = Co mmandType. Text;
  8034                         cmd.Connec tion = con nection;
  8035  
  8036                         foreach (s tring edip i in rawEd ipis)
  8037                         {
  8038                             cmd.Pa rameters.C lear();
  8039  
  8040                             //Mess ageBox.Sho w("Inserti ng edipi:  " + edipi) ;
  8041  
  8042                             cmd.Pa rameters.A ddWithValu e("@edipi" , edipi);
  8043                             //cmd. Parameters .AddWithVa lue("@ssn" , edipi);
  8044                             //cmd. Parameters .AddWithVa lue("@icn" , edipi);
  8045  
  8046                             connec tion.Open( );
  8047                             cmd.Ex ecuteNonQu ery();
  8048                             connec tion.Close ();
  8049                         }
  8050                    }
  8051  
  8052                    logS tring += " Finished i nserting e dipis. ";
  8053                }
  8054                catch (E xception e )
  8055                {
  8056                    logS tring += " ERROR: Exc eption wri ting edipi s to the d atabase: "  + e.Inner Exception. ToString() ;
  8057                    Dts. TaskResult  = (int)Sc riptResult s.Failure;
  8058                }
  8059           }
  8060  
  8061           // private bo ol Validat eEDIPI(str ing edipi)  //(DataRo w row, int  edipiColu mn)
  8062           // {
  8063           //     bool r etValue =  true;
  8064  
  8065           //     //if ( row[edipiC olumn].ToS tring().Tr im().Lengt h == 0) 
  8066           //     if (ed ipi.Length  == 0)
  8067           //     {
  8068           //         re tValue = f alse;
  8069           //     }
  8070  
  8071           //     return  retValue;
  8072  
  8073           //     // TBD
  8074           //     // Is  this alway s 5 chars,  always nu mbers, etc ?
  8075           //     // Lon g-term:
  8076           //     //       1) Keep  a list of  EDIPI's th at we chec k so we on ly do one  check per  EDIPI 
  8077           //     //       2) Valid ate record  with MVI
  8078           //     //       3) ?
  8079  
  8080           // }
  8081  
  8082           pr ivate void  setConfig Values()
  8083           {
  8084                try
  8085                {
  8086                    stri ng connect ionString  = "Data So urce=";
  8087                    conn ectionStri ng += (str ing)Dts.Va riables["U ser::Regis tryServer" ].Value;
  8088                    conn ectionStri ng += ";In itial Cata log=";
  8089                    conn ectionStri ng += (str ing)Dts.Va riables["U ser::Regis tryDatabas e"].Value;
  8090                    conn ectionStri ng += ";In tegrated S ecurity=Tr ue";
  8091  
  8092                    logS tring += " Settings C onnection  String: "  + connecti onString +  "; ";
  8093  
  8094                    stri ng querySt ring = "se lect [NAME ], [value]  from CRS_ SETTINGS w here [NAME ] like ('E frDoDFrag% ')";
  8095                    Data Table resu lts = new  DataTable( );
  8096  
  8097                    usin g (SqlConn ection con n = new Sq lConnectio n(connecti onString))
  8098                    usin g (SqlComm and comman d = new Sq lCommand(q ueryString , conn))
  8099                    usin g (SqlData Adapter da taAdapter  = new SqlD ataAdapter (command))
  8100                    {
  8101                         dataAdapte r.Fill(res ults);
  8102  
  8103                         foreach (D ataRow dr  in results .Rows)
  8104                         {
  8105                             if (dr [0] != nul l)
  8106                             {
  8107                                 if  (dr[0].To String() = = "EfrDoDF ragTestMod e" && dr[1 ] != null)
  8108                                 {
  8109                                      if (dr[1 ].ToString ().Trim(). ToLower()  == "true")
  8110                                          efrD oDFragTest Mode = tru e;
  8111                                      else
  8112                                          efrD oDFragTest Mode = fal se;
  8113                                 }
  8114                                 el se if (dr[ 0].ToStrin g() == "Ef rDoDFragTe stFile" &&  dr[1] !=  null)
  8115                                 {
  8116                                      efrDoDFr agTestFile  = dr[1].T oString();
  8117                                 }
  8118                                 el se if (dr[ 0].ToStrin g() == "Ef rDoDFragLo gAllTransa ctions" &&  dr[1] !=  null)
  8119                                 {
  8120                                      if (dr[1 ].ToString ().Trim(). ToLower()  == "true")
  8121                                          efrD oDFragLogA llTransact ions = tru e;
  8122                                 }
  8123                                 el se if (dr[ 0].ToStrin g() == "Ef rDoDFragCr sMviEtlNam e" && dr[1 ] != null)
  8124                                 {
  8125                                      if (dr[1 ].ToString ().Trim(). ToLower()  == "true")
  8126                                          efrD oDFragCrsM viEtlName  = dr[1].To String();
  8127                                 }
  8128                             }
  8129                         }
  8130                    }
  8131                                      
  8132                    logS tring += " EfrDoDFrag TestMode:  " + efrDoD FragTestMo de + ";";
  8133                    logS tring += " EfrDoDFrag TestFolder : " + efrD oDFragTest File + ";" ;
  8134                    logS tring += " EfrDoDFrag LogAllTran sactions:  " + efrDoD FragLogAll Transactio ns + ";";
  8135                    logS tring += " EfrDoDFrag CrsMviEtlN ame: " + e frDoDFragC rsMviEtlNa me + ";";
  8136  
  8137                    logS tring += " guidId: "  + guidId.T oString()  + ";";
  8138                }
  8139                catch (E xception e )
  8140                {
  8141                    logS tring += " Error gett ing config  values: "  + e.Messa ge;
  8142                }
  8143           }
  8144  
  8145           pr ivate void  writeLog( string msg )
  8146           {
  8147                try
  8148                {
  8149                    usin g (SqlConn ection con nection =  new SqlCon nection(co nnectionSt ring))
  8150                    {
  8151                         SqlCommand  cmd = new  SqlComman d("INSERT  INTO ETL_E rrorLogs ( PackageID,  ProcessID , ErrorNum ber, Error Descriptio n, ErrorTi me) VALUES  (@Package ID, @Proce ssID, @Err orNumber,  @ErrorDesc ription, g etdate())" );
  8152                         cmd.Comman dType = Co mmandType. Text;
  8153                         cmd.Connec tion = con nection;
  8154                         cmd.Parame ters.AddWi thValue("@ PackageID" , 0);
  8155                         cmd.Parame ters.AddWi thValue("@ ProcessID" , 0);
  8156                         cmd.Parame ters.AddWi thValue("@ ErrorNumbe r", 0);
  8157                         cmd.Parame ters.AddWi thValue("@ ErrorDescr iption", " DoD Fragme nt ETL: "  + msg);
  8158                         connection .Open();
  8159                         cmd.Execut eNonQuery( );
  8160                    }
  8161  
  8162                    //Me ssageBox.S how("Finis hed writin g log");
  8163                }
  8164                catch (E xception e )
  8165                {
  8166                    //Me ssageBox.S how("Excep tion: " +  e.InnerExc eption.ToS tring());
  8167                    // n ot much to  do if we  can't writ e to the d atabase .. .
  8168                }
  8169           }
  8170       }
  8171  
  8172       #regio n ChildEve ntListener  - A custo m event li stener to  re-throw c hild packa ge events  in the mas ter.
  8173       ////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////
  8174       // Chi ldEventLis tener
  8175       //   A  custom Ev entListene r that re- throws chi ld package  events in  the maste r package.
  8176       //   U seful when  running a  master pa ckage for  identifyin g why a ch ild packag e failed i n the erro r
  8177       //   m essages vi ewable in  visual stu dio, SQL a gent job h istory log  file view er, etc.
  8178       //
  8179       class  ChildEvent Listener :  DefaultEv ents
  8180       {
  8181           //  The const ructor
  8182           //  Takes a d ts as an a rgument so  errors ca n be re-th rown again st the cur rently run ning dts.
  8183           Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.S criptObjec tModel dts ;
  8184           pu blic Child EventListe ner(Micros oft.SqlSer ver.Dts.Ta sks.Script Task.Scrip tObjectMod el dts)
  8185           {
  8186                this.dts  = dts;
  8187           }
  8188  
  8189           pu blic overr ide bool O nError(Dts Object sou rce, int e rrorCode,  string sub Component,  string de scription
  8190                                               , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error)
  8191           {
  8192                dts.Even ts.FireErr or(errorCo de, subCom ponent, de scription,  helpFile,  helpConte xt);
  8193                // Conti nue execut ing the ta sk even th ough an er ror was tr iggered.
  8194                return f alse;
  8195           }
  8196  
  8197           pu blic overr ide void O nInformati on(DtsObje ct source,  int infor mationCode , string s ubComponen t
  8198                                                   , stri ng descrip tion, stri ng helpFil e, int hel pContext
  8199                                                   , stri ng idofInt erfaceWith Error, ref  bool fire Again)
  8200           {
  8201                dts.Even ts.FireInf ormation(i nformation Code, subC omponent,  descriptio n, helpFil e, helpCon text, ref  fireAgain) ;
  8202           }
  8203  
  8204           pu blic overr ide void O nWarning(D tsObject s ource, int  warningCo de, string  subCompon ent, strin g descript ion
  8205                                               , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error)
  8206           {
  8207                dts.Even ts.FireWar ning(warni ngCode, su bComponent , descript ion, helpF ile, helpC ontext);
  8208           }
  8209       }
  8210       #endre gion //Chi ldEventLis tener - A  custom eve nt listene r to re-th row child  package ev ents in th e master.
  8211   }
  8212  
  8213  
  8214  
  8215   // Existin g code ... .
  8216  
  8217   /* Microso ft SQL Ser ver Integr ation Serv ices Scrip t Componen t
  8218   *  Write s cripts usi ng Microso ft Visual  C# 2008.
  8219   *  ScriptM ain is the  entry poi nt class o f the scri pt.*/
  8220  
  8221  
  8222   //using Sy stem;
  8223   //using Sy stem.Data;
  8224   //using Mi crosoft.Sq lServer.Dt s.Pipeline .Wrapper;
  8225   //using Mi crosoft.Sq lServer.Dt s.Runtime. Wrapper;
  8226   //using Sy stem.IO;
  8227   //using Sy stem.Data. SqlClient;
  8228   //using Sy stem.Data. OleDb;
  8229   //using Sy stem.Diagn ostics;
  8230   //using Sy stem.Colle ctions.Gen eric;
  8231   //using Sy stem.Windo ws.Forms;
  8232  
  8233   //namespac e ST_c08b9 61ebac34ca 7993811373 afcc663.cs proj
  8234   //{
  8235   //    [Mic rosoft.Sql Server.Dts .Pipeline. SSISScript ComponentE ntryPointA ttribute]
  8236   //    publ ic class S criptMain  : UserComp onent
  8237   //    {
  8238   //         //private  OleDbDataR eader exce lReader;
  8239   //         //private  OleDbConne ction exce lConnectio n;
  8240   //         //private  OleDbComma nd excelCo mmand;
  8241   //         private st ring logSt ring = "";
  8242   //         private st ring conne ctionStrin g = "";
  8243   //         int iEDIPI Column = 0 ;
  8244   //         int iLabDa teColumn =  0;
  8245   //         private Ex celReader  inputExcel  = null;
  8246   //         DataTable  inputExcel Data = new  DataTable ();
  8247   //         private Di ctionary<s tring, str ing> IcnEd ipiMapping  = new Dic tionary<st ring, stri ng>();
  8248  
  8249   //         public ove rride void  PreExecut e()
  8250   //         {
  8251   //             logStr ing += "St art PreExe cute" + ";  ";
  8252  
  8253   //             base.P reExecute( );
  8254   //             setCon nectionStr ing();
  8255   //             Popula teIcnEdipi Dictionary ();
  8256   //             GetDat aFromExcel ToReader(V ariables.f ileName2);
  8257   //             Create NewOutputR ows();
  8258   //             logStr ing += "En d PreExecu te" + "; " ;
  8259  
  8260   //             writeL og(logStri ng);
  8261   //         }
  8262  
  8263   //         public ove rride void  PostExecu te()
  8264   //         {
  8265   //             base.P ostExecute ();
  8266  
  8267   //             //exce lReader.Cl ose();
  8268  
  8269   //             //exce lConnectio n.Close();
  8270  
  8271   //         }
  8272  
  8273   //         private vo id setConn ectionStri ng()
  8274   //         {
  8275   //             connec tionString  = "Data S ource=";
  8276   //             connec tionString  += Variab les.Regist ryStagingS erver;
  8277   //             connec tionString  += ";Init ial Catalo g=";
  8278   //             connec tionString  += Variab les.Regist ryStagingD atabase;
  8279   //             connec tionString  += ";Inte grated Sec urity=True ";
  8280  
  8281   //             logStr ing += "Co nnectionSt ring: " +  connection String + " ; ";
  8282   //         }
  8283   //         private vo id Populat eIcnEdipiD ictionary( )
  8284   //         {
  8285   //             logStr ing += "St art Popula teIcnEdipi Dictionary ; ";
  8286  
  8287   //             try
  8288   //             {
  8289   //                 us ing (SqlCo nnection c onnection  = new SqlC onnection( connection String))
  8290   //                 {
  8291   //                      string s qlCmd = "" ;
  8292   //                      sqlCmd + = "select  Patient_IC N, Patient _EDIPI fro m etl_crs_ mvi_patien t ";
  8293   //                      sqlCmd + = "where M VI_Respons e = 'OK' " ;
  8294   //                      sqlCmd + = "and RUN _IDENTIFIE R = '" + V ariables.R unIdentifi er + "'";
  8295   //                      //logStr ing += sql Cmd + "; " ;
  8296  
  8297  
  8298   //                      logStrin g += "SqlC Md: " + sq lCmd + ";  ";
  8299  
  8300   //                      SqlComma nd cmd = n ew SqlComm and(sqlCmd );
  8301   //                      cmd.Comm andType =  CommandTyp e.Text;
  8302   //                      cmd.Conn ection = c onnection;
  8303   //                      connecti on.Open();
  8304  
  8305   //                      SqlDataR eader read er = cmd.E xecuteRead er();
  8306  
  8307  
  8308   //                      logStrin g += "Afte r execute  reader" +  "; ";
  8309  
  8310   //                      while (r eader.Read ())
  8311   //                      {
  8312   //                          logS tring += " ICN, EDIPI : " + read er.GetStri ng(reader. GetOrdinal ("Patient_ ICN")) + "   :  " + r eader.GetS tring(read er.GetOrdi nal("Patie nt_Edipi") ) + "; ";
  8313  
  8314   //                          IcnE dipiMappin g.Add(read er.GetStri ng(reader. GetOrdinal ("Patient_ ICN")), re ader.GetSt ring(reade r.GetOrdin al("Patien t_Edipi")) );
  8315   //                          //Co nsole.Writ eLine(Stri ng.Format( "{0}", rea der[0]));
  8316   //                          //lo gString +=  "EDIPI: "  + reader. GetString( reader.Get Ordinal("P atient_Edi pi")));
  8317   //                      }
  8318  
  8319   //                      //logStr ing += "#  valid edip is: " + va lidEdipis. Count.ToSt ring() + " ; ";
  8320   //                 }
  8321   //             }
  8322   //             catch  (Exception  ex)
  8323   //             {
  8324  
  8325   //             }
  8326   //             logStr ing += "En d PopIcnEd ipiDic" +  "; ";
  8327   //         }
  8328  
  8329   //         private vo id loadInp utExcelDat a(string p _strFileNa me1)
  8330   //         {
  8331   //             logStr ing += "St art LoadIn put" + ";  ";
  8332   //             try
  8333   //             {
  8334   //                 in putExcel =  new Excel Reader();
  8335  
  8336   //                 in putExcel.E xcelFilena me = p_str FileName1;
  8337   //                 in putExcel.H eaders = t rue;
  8338   //                 in putExcel.M ixedData =  true;
  8339  
  8340   //                 Me ssageBox.S how("Befor e sheetnam e");
  8341  
  8342  
  8343   //                 //  Need the  sheetname  for the fi rst worksh eet in the  workbook
  8344   //                 st ring[] she etnames =  this.input Excel.GetE xcelSheetN ames();
  8345  
  8346   //                 if  (sheetnam es.Length  > 0)
  8347   //                 {
  8348   //                      inputExc el.SheetNa me = sheet names[0];
  8349  
  8350   //                      logStrin g += "Shee tname: " +  inputExce l.SheetNam e + "; ";
  8351   //                 }
  8352   //                 el se
  8353   //                 {
  8354   //                      logStrin g += "ERRO R: Can't f ind sheetn ame; ";
  8355  
  8356   //                      //Dts.Ta skResult =  (int)Scri ptResults. Failure;
  8357   //                 }
  8358  
  8359   //                 lo gString +=  "GetTable ; ";
  8360   //                 in putExcelDa ta = input Excel.GetT able();
  8361  
  8362   //                 if  (inputExc elData !=  null && in putExcelDa ta.Rows !=  null && i nputExcelD ata.Rows.C ount > 0)
  8363   //                 {
  8364   //                      logStrin g += "Rows : " + inpu tExcelData .Rows.Coun t.ToString () + "; ";
  8365  
  8366   //                      //logStr ing += "Ro ws in inpu t file: "  + inputExc elData.Row s.Count.To String() +  "; ";
  8367   //                 }
  8368   //                 el se
  8369   //                 {
  8370   //                      logStrin g += "No r ows found"  + "; ";
  8371   //                      //logStr ing += "ER ORR: No Ro ws in inpu tExcelData  file; ";
  8372   //                      //Dts.Ta skResult =  (int)Scri ptResults. Failure;
  8373   //                 }
  8374   //             }
  8375   //             catch  (Exception  ex)
  8376   //             {
  8377   //                 Me ssageBox.S how("Excep tion: " +  ex.Message );
  8378  
  8379   //                 lo gString +=  "ERROR: l oadInputEx celData th rew except ion: " + e x.Message. ToString()  + "; ";
  8380  
  8381   //                 th row ex;
  8382   //                 // Microsoft. SqlServer. Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure;
  8383   //             }
  8384   //             finall y
  8385   //             {
  8386   //                 in putExcel.C lose();
  8387  
  8388   //                 lo gString +=  "End Load Input" + " ; ";
  8389   //             }
  8390   //         }
  8391  
  8392   //         private vo id GetData FromExcelT oReader(st ring p_str FileName)
  8393   //         {
  8394   //             logStr ing += "St art GetDat aFromReade r" + "; ";
  8395  
  8396   //             loadIn putExcelDa ta(p_strFi leName);
  8397  
  8398   //             //Data Table sDT;
  8399   //             //sDT  = excelCon nection.Ge tSchema("T ables");
  8400  
  8401   //             //Data Table DT;
  8402   //             //DT =  excelConn ection.Get Schema("Co lumns");
  8403   //             //// . Rows[0]["T ABLE_NAME" ].ToString ();
  8404  
  8405  
  8406   //             //exce lCommand =  excelConn ection.Cre ateCommand ();
  8407   //             //exce lCommand.C ommandText  = "SELECT  * FROM ["  + Variabl es.SheetNa me.ToStrin g() + "]";
  8408   //             ////ex celCommand .CommandTe xt = "SELE CT * FROM  [" + Varia bles.Sheet Name.ToStr ing() + "]  WHERE EDI PI IS NOT  NULL";
  8409   //             //exce lCommand.C ommandType  = Command Type.Text;
  8410   //             //exce lReader =  excelComma nd.Execute Reader();
  8411  
  8412   //             //int  i;
  8413   //             string  _EDIPI =  "EDIPI";
  8414   //             //stri ng
  8415   //             string  _LabRptDa te = "";
  8416  
  8417  
  8418   //             logStr ing += "Se t LabRptDa te, filena me: " + p_ strFileNam e + "; ";
  8419   //             if (p_ strFileNam e.Contains ("JPC"))
  8420   //             {
  8421   //                 // _EDIPI = " EDIPI";
  8422   //                 _L abRptDate  = "Report" ;
  8423  
  8424   //             }
  8425   //             else i f (p_strFi leName.Con tains("EMF "))
  8426   //             {
  8427  
  8428   //                 // _EDIPI = " EDIPI";
  8429   //                 _L abRptDate  = "Lab Rep ort Date";
  8430  
  8431   //             }
  8432   //             else i f (p_strFi leName.ToU pper().Con tains("USA F"))
  8433   //             {
  8434  
  8435   //                 // _EDIPI = " EDIPI";
  8436   //                 // _LabRptDat e = "DateR eported";  //WL 9/5/2 014
  8437   //                 _L abRptDate  = "Report  Date";
  8438  
  8439   //             }
  8440  
  8441   //             //for  (i = 0; i  < excelRea der.FieldC ount; i++)  WL 9/5/20 14
  8442   //             //for  (i = 0; i  < excelRea der.Visibl eFieldCoun t; i++)
  8443   //             for (i nt i = 0;  i < inputE xcelData.C olumns.Cou nt; i++)
  8444   //             {
  8445   //                 // System.Win dows.Forms .logString  += "popul ated the s tring " +  i.ToString () + "  "  + excelRea der.GetNam e(i)); //g et column  name
  8446   //                 lo gString +=  "GetDataI terator: "  + inputEx celData.Ro ws[0][i].T oString(). ToUpper(). Trim() + " ; ";
  8447   //                 // System.Win dows.Forms .logString  += excelR eader.GetN ame(i).ToU pper().Tri m());
  8448  
  8449   //                 if  (inputExc elData.Row s[0][i].To String().T oUpper().T rim() == _ EDIPI.ToUp per().Trim ())
  8450   //                 {
  8451   //                      iEDIPICo lumn = i;
  8452   //                 }
  8453   //                 el se if (inp utExcelDat a.Rows[0][ i].ToStrin g().ToUppe r().Trim()  == _LabRp tDate.ToUp per().Trim ())
  8454   //                 {
  8455   //                      iLabDate Column = i ;
  8456   //                 }
  8457   //             }
  8458  
  8459   //             logStr ing += "En d GetData.  Edipi col umn: " + i EDIPIColum n.ToString ()
  8460   //                 +  "    labda tecolumn:  " + iLabDa teColumn.T oString()  + "; ";
  8461   //         }
  8462  
  8463   //         public ove rride void  CreateNew OutputRows ()
  8464   //         {
  8465   //             logStr ing += "St art Create OutputRows " + "; ";
  8466   //             string  icn = "";
  8467  
  8468   //             for (i nt i = 0;  i < inputE xcelData.R ows.Count;  i++)
  8469   //             {
  8470   //                 st ring strED IPI = "";
  8471  
  8472   //                 st ring _temp EDIPI = in putExcelDa ta.Rows[i] [iEDIPICol umn].ToStr ing();
  8473   //                 st rEDIPI = _ tempEDIPI;
  8474   //                 ic n = "";
  8475   //                 Ic nEdipiMapp ing.TryGet Value(strE DIPI, out  icn);
  8476  
  8477  
  8478   //                 lo gString +=  "mapped:  " + _tempE DIPI + "    TO: " + i cn + "; ";
  8479  
  8480   //                 Ou tput0Buffe r.AddRow() ;
  8481  
  8482   //                 lo gString +=  "added to  output" +  "; ";
  8483  
  8484   //                 Ou tput0Buffe r.PatientI CN = icn;
  8485  
  8486   //                 if  (inputExc elData.Row s[i][iLabD ateColumn] .ToString( ).Trim().L ength > 0)
  8487   //                 {
  8488   //                      string t empDt = in putExcelDa ta.Rows[i] [iLabDateC olumn].ToS tring();
  8489   //                      DateTime  dt = Conv ert.ToDate Time("1776 /07/04");
  8490   //                      if (stri ng.IsNullO rEmpty(tem pDt) == fa lse)
  8491   //                      {
  8492   //                          try
  8493   //                          {
  8494   //                               //if (temp Dt.Contain s(" 0:00") )
  8495   //                               //{
  8496   //                               //    temp Dt.Replace (" 0:00",  "");
  8497   //                               // }
  8498   //                               dt = Conve rt.ToDateT ime(tempDt .Replace("  0:00", "  0:01"));
  8499   //                          }
  8500   //                          catc h (Excepti on e)
  8501   //                          {
  8502  
  8503   //                          }
  8504  
  8505   //                      }
  8506   //                      //Output 0Buffer.SS N = ssn.Re place("-",  ""); WL 9 /5/2014
  8507  
  8508  
  8509   //                      if (dt ! = Convert. ToDateTime ("1776-07- 04 00:00:0 0.000"))
  8510   //                      {
  8511   //                          Outp ut0Buffer. LabReportD ate = dt;
  8512   //                      }
  8513  
  8514   //                      //Output 0Buffer.ED IPI = strE DIPI;
  8515  
  8516  
  8517  
  8518  
  8519   //                      //System .Windows.F orms.logSt ring += "O utputBuffe r.EDIPI: "  + Output0 Buffer.ToS tring());
  8520   //                 }
  8521  
  8522   //             }
  8523  
  8524   //             logStr ing += "en d createne w output"  + "; ";
  8525   //         }
  8526  
  8527   //         private vo id writeLo g(string m sg)
  8528   //         {
  8529   //             try
  8530   //             {
  8531   //                 us ing (SqlCo nnection c onnection  = new SqlC onnection( connection String))
  8532   //                 {
  8533   //                      SqlComma nd cmd = n ew SqlComm and("INSER T INTO ETL _ErrorLogs  (PackageI D, Process ID, ErrorN umber, Err orDescript ion, Error Time) VALU ES (@Packa geID, @Pro cessID, @E rrorNumber , @ErrorDe scription,  getdate() )");
  8534   //                      cmd.Comm andType =  CommandTyp e.Text;
  8535   //                      cmd.Conn ection = c onnection;
  8536   //                      cmd.Para meters.Add WithValue( "@PackageI D", 0);
  8537   //                      cmd.Para meters.Add WithValue( "@ProcessI D", 0);
  8538   //                      cmd.Para meters.Add WithValue( "@ErrorNum ber", 0);
  8539   //                      cmd.Para meters.Add WithValue( "@ErrorDes cription",  "DoD Frag ment ETL:  " + msg);
  8540   //                      connecti on.Open();
  8541   //                      cmd.Exec uteNonQuer y();
  8542   //                 }
  8543  
  8544   //                 // MessageBox .Show("Fin ished writ ing log");
  8545   //             }
  8546   //             catch  (Exception  e)
  8547   //             {
  8548   //                 // MessageBox .Show("Exc eption: "  + e.InnerE xception.T oString()) ;
  8549   //                 //  not much  to do if w e can't wr ite to the  database  ...
  8550   //             }
  8551   //         }
  8552   //    }
  8553  
  8554   //}
  8555  
  8556  
  8557  
  8558  
  8559  
  8560   // older e xisting co de
  8561  
  8562   //using Sy stem;
  8563   //using Sy stem.Data;
  8564   //using Mi crosoft.Sq lServer.Dt s.Pipeline .Wrapper;
  8565   //using Mi crosoft.Sq lServer.Dt s.Runtime. Wrapper;
  8566   //using Sy stem.IO;
  8567   //using Sy stem.Data. SqlClient;
  8568   //using Sy stem.Data. OleDb;
  8569   //using Sy stem.Diagn ostics;
  8570   //using Sy stem.Windo ws.Forms;
  8571   //using Sy stem.Colle ctions.Gen eric;
  8572  
  8573   //[Microso ft.SqlServ er.Dts.Pip eline.SSIS ScriptComp onentEntry PointAttri bute]
  8574   //public c lass Scrip tMain : Us erComponen t
  8575   //{
  8576   //    priv ate OleDbD ataReader  excelReade r;
  8577   //    priv ate OleDbC onnection  excelConne ction;
  8578   //    priv ate OleDbC ommand exc elCommand;
  8579   //    int  iEDIPIColu mn = 0;
  8580   //    int  iLabDateCo lumn = 0;
  8581   //    priv ate Dictio nary<strin g, string>  IcnEdipiM apping = n ew Diction ary<string , string>( );
  8582  
  8583   //    publ ic overrid e void Pre Execute()
  8584   //    {
  8585   //         MessageBox .Show("Sta rting ");
  8586  
  8587   //         base.PreEx ecute();
  8588   //         PopulateIc nEdipiDict ionary();
  8589   //         MessageBox .Show("dic tionary po pulated  " );
  8590  
  8591   //         GetDataFro mExcelToRe ader(Varia bles.fileN ame2);
  8592  
  8593  
  8594   //         MessageBox .Show("Don e with pre execute ") ;
  8595   //    }
  8596  
  8597   //    publ ic overrid e void Pos tExecute()
  8598   //    {
  8599  
  8600   //         MessageBox .Show("Sta rting post execute");
  8601   //         base.PostE xecute();
  8602   //         excelReade r.Close();
  8603  
  8604   //         excelConne ction.Clos e();
  8605  
  8606   //         MessageBox .Show("don e post exe cute ");
  8607  
  8608   //    }
  8609   //    priv ate void G etDataFrom ExcelToRea der(string  p_strFile Name)
  8610   //    {
  8611  
  8612   //         MessageBox .Show("Sta rting getd atafromexc el to read er");
  8613   //         string l_s trConnecti onString;
  8614   //         if (File.E xists(p_st rFileName) )
  8615   //         {
  8616   //             string  extension  = Path.Ge tExtension (p_strFile Name);
  8617   //             extens ion = exte nsion.Repl ace(".", " ");
  8618  
  8619   //             if (ex tension.To Lower() ==  "xlsx")
  8620   //             {
  8621   //                 l_ strConnect ionString  = "Provide r=Microsof t.ACE.OLED B.12.0;Dat a Source="  + p_strFi leName + " ;Extended  Properties =\"EXCEL 1 2.0;HDR=YE S\"";
  8622  
  8623   //             }
  8624   //             else
  8625   //             {
  8626   //                 l_ strConnect ionString  = "Provide r=Microsof t.Jet.OLED B.4.0;" +
  8627   //                      "Data So urce=" + p _strFileNa me + ";Ext ended Prop erties=\"E xcel 4.0;H DR=YES;IME X=1\";";
  8628   //             }
  8629   //             excelC onnection  = new OleD bConnectio n(l_strCon nectionStr ing);
  8630   //             excelC onnection. Open();
  8631   //             DataTa ble sDT;
  8632   //             sDT =  excelConne ction.GetS chema("Tab les");
  8633  
  8634   //             DataTa ble DT;
  8635   //             DT = e xcelConnec tion.GetSc hema("Colu mns");
  8636   //             // .Ro ws[0]["TAB LE_NAME"]. ToString() ;
  8637  
  8638   //             Messag eBox.Show( " Set up d ata table  for sheet:  " + Varia bles.Sheet Name.ToStr ing());
  8639  
  8640  
  8641   //             excelC ommand = e xcelConnec tion.Creat eCommand() ;
  8642   //             // exc elCommand. CommandTex t = "SELEC T * FROM [ " + Variab les.SheetN ame.ToStri ng() + "]" ;
  8643   //             excelC ommand.Com mandText =  "SELECT *  FROM [" +  Variables .SheetName .ToString( ) + "] WHE RE EDIPI I S NOT NULL ";
  8644   //             excelC ommand.Com mandType =  CommandTy pe.Text;
  8645   //             excelR eader = ex celCommand .ExecuteRe ader();
  8646  
  8647   //             Messag eBox.Show( "read spre adsheet");
  8648  
  8649   //             int i;
  8650   //             string  _EDIPI =  "";
  8651   //             string  _LabRptDa te = "";
  8652   //             if (p_ strFileNam e.Contains ("JPC"))
  8653   //             {
  8654   //                 _E DIPI = "ED IPI";
  8655   //                 _L abRptDate  = "Report" ;
  8656  
  8657   //             }
  8658   //             if (p_ strFileNam e.Contains ("EMF"))
  8659   //             {
  8660  
  8661   //                 _E DIPI = "ED IPI";
  8662   //                 _L abRptDate  = "Lab Rep ort Date";
  8663  
  8664   //             }
  8665   //             if (p_ strFileNam e.ToUpper( ).Contains ("USAF"))
  8666   //             {
  8667  
  8668   //                 _E DIPI = "ED IPI";
  8669   //                 // _LabRptDat e = "DateR eported";  //WL 9/5/2 014
  8670   //                 _L abRptDate  = "Report  Date";
  8671  
  8672   //             }
  8673  
  8674  
  8675   //             Messag eBox.Show( "before lo oping over  visible f ields ");
  8676  
  8677   //             //for  (i = 0; i  < excelRea der.FieldC ount; i++)  WL 9/5/20 14
  8678   //             for (i  = 0; i <  excelReade r.VisibleF ieldCount;  i++)
  8679   //             {
  8680   //                 // System.Win dows.Forms .logString  += "popul ated the s tring " +  i.ToString () + "  "  + excelRea der.GetNam e(i)); //g et column  name
  8681   //                 // System.Win dows.Forms .logString  += excelR eader.GetN ame(i).ToU pper().Tri m());
  8682   //                 // System.Win dows.Forms .logString  += excelR eader.GetN ame(i).ToU pper().Tri m());
  8683  
  8684   //                 if  (excelRea der.GetNam e(i).ToUpp er().Trim( ) == _EDIP I.ToUpper( ).Trim())
  8685   //                 {
  8686   //                      iEDIPICo lumn = i;
  8687   //                 }
  8688   //                 if  (excelRea der.GetNam e(i).ToUpp er().Trim( ) == _LabR ptDate.ToU pper().Tri m())
  8689   //                 {
  8690  
  8691   //                      iLabDate Column = i ;
  8692   //                 }
  8693   //             }
  8694  
  8695  
  8696   //             Messag eBox.Show( "edipi col umn:  " +  iEDIPIColu mn.ToStrin g() + "      labdatec olumn: " +  iLabDateC olumn.ToSt ring());
  8697   //         }
  8698  
  8699   //    }
  8700  
  8701   //    publ ic overrid e void Cre ateNewOutp utRows()
  8702   //    {
  8703   //             if (ex celReader. HasRows)
  8704   //             {
  8705   //                 st ring strED IPI = "";
  8706   //                 st ring icn =  "";
  8707   //                 wh ile (excel Reader.Rea d())
  8708   //                 {
  8709  
  8710   //                      string _ tempEDIPI  = excelRea der.Visibl eFieldCoun t > iEDIPI Column ? e xcelReader [iEDIPICol umn].ToStr ing() : "" ;
  8711   //                      if (_tem pEDIPI.Len gth > 0) {  strEDIPI  = _tempEDI PI; }
  8712   //                      if (stri ng.IsNullO rEmpty(str EDIPI) ==  false)
  8713  
  8714   //                     {
  8715   //                          Outp ut0Buffer. AddRow();
  8716   //                          stri ng tempDt  = excelRea der[iLabDa teColumn]. ToString() ;
  8717   //                          Date Time dt=Co nvert.ToDa teTime("17 76/07/04") ;
  8718   //                          if ( string.IsN ullOrEmpty (tempDt) = = false)
  8719   //                          {
  8720   //                           try
  8721   //                           {
  8722   //                           //i f (tempDt. Contains("  0:00"))
  8723   //                           //{
  8724   //                           //     tempDt. Replace("  0:00", "") ;
  8725   //                           //  }
  8726   //                            dt  = Convert .ToDateTim e(tempDt.R eplace(" 0 :00"," 0:0 1"));
  8727   //                            }
  8728   //                               catch (Exc eption e)
  8729   //                               {
  8730  
  8731   //                               }
  8732  
  8733   //                          }
  8734   //                          //Ou tput0Buffe r.SSN = ss n.Replace( "-", "");  WL 9/5/201 4
  8735  
  8736  
  8737   //                          //lo gString +=  strEDIPI;
  8738   //                          if ( dt != Conv ert.ToDate Time("1776 -07-04 00: 00:00.000" ))
  8739   //                          {
  8740   //                               Output0Buf fer.LabRep ortDate =  dt;
  8741   //                          }
  8742   //                          //Ou tput0Buffe r.EDIPI =  strEDIPI;
  8743   //                          icn  = "";
  8744   //                         IcnEd ipiMapping .TryGetVal ue(strEDIP I, out icn );
  8745   //                         Outpu t0Buffer.P atientICN  = icn;
  8746   //                          //Sy stem.Windo ws.Forms.l ogString + = "OutputB uffer.EDIP I: " + Out put0Buffer .ToString( ));
  8747   //                         }
  8748  
  8749   //                 }
  8750   //             }
  8751   //         }
  8752  
  8753  
  8754   //    priv ate void P opulateIcn EdipiDicti onary()
  8755   //    {
  8756   //         //logStrin g += "Star t Populate IcnEdipiDi ctionary;  ";
  8757  
  8758   //         try
  8759   //         {
  8760   //             string  connectio nString =  "Data Sour ce=";
  8761   //             connec tionString  += Variab les.Regist ryStagingS erver;
  8762   //             connec tionString  += ";Init ial Catalo g=";
  8763   //             connec tionString  += Variab les.Regist ryStagingD atabase;
  8764   //             connec tionString  += ";Inte grated Sec urity=True ";
  8765  
  8766   //             using  (SqlConnec tion conne ction = ne w SqlConne ction(conn ectionStri ng))
  8767   //             {
  8768   //                 st ring sqlCm d = "";
  8769   //                 sq lCmd += "s elect Pati ent_ICN, P atient_EDI PI from et l_crs_mvi_ patient ";
  8770   //                 sq lCmd += "w here MVI_R esponse =  'OK' ";
  8771   //                 sq lCmd += "a nd RUN_IDE NTIFIER =  '" + Varia bles.RunId entifier +  "'";
  8772   //                 // logString  += sqlCmd  + "; ";
  8773  
  8774  
  8775   //                 // logString  += "SqlCMd : " + sqlC md + "; ";
  8776  
  8777   //                 Sq lCommand c md = new S qlCommand( sqlCmd);
  8778   //                 cm d.CommandT ype = Comm andType.Te xt;
  8779   //                 cm d.Connecti on = conne ction;
  8780   //                 co nnection.O pen();
  8781  
  8782   //                 Sq lDataReade r reader =  cmd.Execu teReader() ;
  8783  
  8784  
  8785   //                 // logString  += "After  execute re ader" + ";  ";
  8786  
  8787   //                 wh ile (reade r.Read())
  8788   //                 {
  8789   //                      //logStr ing += "IC N, EDIPI:  " + reader .GetString (reader.Ge tOrdinal(" Patient_IC N")) + "   :  " + rea der.GetStr ing(reader .GetOrdina l("Patient _Edipi"))  + "; ";
  8790  
  8791   //                      IcnEdipi Mapping.Ad d(reader.G etString(r eader.GetO rdinal("Pa tient_ICN" )), reader .GetString (reader.Ge tOrdinal(" Patient_Ed ipi")));
  8792   //                      //Consol e.WriteLin e(String.F ormat("{0} ", reader[ 0]));
  8793   //                      //logStr ing += "ED IPI: " + r eader.GetS tring(read er.GetOrdi nal("Patie nt_Edipi") ));
  8794   //                 }
  8795  
  8796   //                 // logString  += "# vali d edipis:  " + validE dipis.Coun t.ToString () + "; ";
  8797   //             }
  8798   //         }
  8799   //         catch (Exc eption ex)
  8800   //         {
  8801  
  8802   //         }
  8803   //         //logStrin g += "End  PopIcnEdip iDic" + ";  ";
  8804   //    }
  8805   //}
  8806  
  8807  
  8808  
  8809  
  8810  
  8811  
  8812  
  8813  
  8814  
  8815  
  8816  
  8817   /* Microso ft SQL Ser ver Integr ation Serv ices Scrip t Componen t
  8818   *  Write s cripts usi ng Microso ft Visual  C# 2008.
  8819   *  ScriptM ain is the  entry poi nt class o f the scri pt.*/
  8820  
  8821  
  8822  
  8823  
  8824  
  8825  
  8826  
  8827  
  8828   //using Sy stem;
  8829   //using Sy stem.Data;
  8830   //using Mi crosoft.Sq lServer.Dt s.Pipeline .Wrapper;
  8831   //using Mi crosoft.Sq lServer.Dt s.Runtime. Wrapper;
  8832   //using Sy stem.IO;
  8833   //using Sy stem.Data. SqlClient;
  8834   //using Sy stem.Data. OleDb;
  8835   //using Sy stem.Diagn ostics;
  8836  
  8837   //[Microso ft.SqlServ er.Dts.Pip eline.SSIS ScriptComp onentEntry PointAttri bute]
  8838   //public c lass Scrip tMain : Us erComponen t
  8839   //{
  8840   //    priv ate OleDbD ataReader  excelReade r;
  8841   //    priv ate OleDbC onnection  excelConne ction;
  8842   //    priv ate OleDbC ommand exc elCommand;
  8843   //    int  iEDIPI = 0 ;
  8844   //    int  iLabDate =  0;
  8845  
  8846   //    publ ic overrid e void Pre Execute()
  8847   //    {
  8848   //         base.PreEx ecute();
  8849   //         GetDataFro mExcelToRe ader(Varia bles.fileN ame2);
  8850  
  8851  
  8852   //    }
  8853  
  8854   //    publ ic overrid e void Pos tExecute()
  8855   //    {
  8856   //         base.PostE xecute();
  8857   //         excelReade r.Close();
  8858  
  8859   //         excelConne ction.Clos e();
  8860  
  8861   //    }
  8862   //    priv ate void G etDataFrom ExcelToRea der(string  p_strFile Name)
  8863   //    {
  8864   //         string l_s trConnecti onString;
  8865   //         if (File.E xists(p_st rFileName) )
  8866   //         {
  8867   //             string  extension  = Path.Ge tExtension (p_strFile Name);
  8868   //             extens ion = exte nsion.Repl ace(".", " ");
  8869  
  8870   //             if (ex tension.To Lower() ==  "xlsx")
  8871   //             {
  8872   //                 l_ strConnect ionString  = "Provide r=Microsof t.ACE.OLED B.12.0;Dat a Source="  + p_strFi leName + " ;Extended  Properties =\"EXCEL 1 2.0;HDR=YE S\"";
  8873  
  8874   //             }
  8875   //             else
  8876   //             {
  8877   //                 l_ strConnect ionString  = "Provide r=Microsof t.Jet.OLED B.4.0;" +
  8878   //                      "Data So urce=" + p _strFileNa me + ";Ext ended Prop erties=\"E xcel 4.0;H DR=YES;IME X=1\";";
  8879   //             }
  8880   //             excelC onnection  = new OleD bConnectio n(l_strCon nectionStr ing);
  8881   //             excelC onnection. Open();
  8882   //             DataTa ble sDT;
  8883   //             sDT =  excelConne ction.GetS chema("Tab les");
  8884  
  8885   //             DataTa ble DT;
  8886   //             DT = e xcelConnec tion.GetSc hema("Colu mns");
  8887   //             // .Ro ws[0]["TAB LE_NAME"]. ToString() ;
  8888  
  8889  
  8890   //             excelC ommand = e xcelConnec tion.Creat eCommand() ;
  8891   //             // exc elCommand. CommandTex t = "SELEC T * FROM [ " + Variab les.SheetN ame.ToStri ng() + "]" ;
  8892   //             excelC ommand.Com mandText =  "SELECT *  FROM [" +  Variables .SheetName .ToString( ) + "] WHE RE EDIPI I S NOT NULL ";
  8893   //             excelC ommand.Com mandType =  CommandTy pe.Text;
  8894   //             excelR eader = ex celCommand .ExecuteRe ader();
  8895  
  8896   //             int i;
  8897   //             string  _EDIPI =  "";
  8898   //             string  _LabRptDa te = "";
  8899   //             if (p_ strFileNam e.Contains ("JPC"))
  8900   //             {
  8901   //                 _E DIPI = "ED IPI";
  8902   //                 _L abRptDate  = "Report" ;
  8903  
  8904   //             }
  8905   //             if (p_ strFileNam e.Contains ("EMF"))
  8906   //             {
  8907  
  8908   //                 _E DIPI = "ED IPI";
  8909   //                 _L abRptDate  = "Lab Rep ort Date";
  8910  
  8911   //             }
  8912   //             if (p_ strFileNam e.ToUpper( ).Contains ("USAF"))
  8913   //             {
  8914  
  8915   //                 _E DIPI = "ED IPI";
  8916   //                 // _LabRptDat e = "DateR eported";  //WL 9/5/2 014
  8917   //                 _L abRptDate  = "Report  Date";
  8918  
  8919   //             }
  8920  
  8921   //             //for  (i = 0; i  < excelRea der.FieldC ount; i++)  WL 9/5/20 14
  8922   //             for (i  = 0; i <  excelReade r.VisibleF ieldCount;  i++)
  8923   //             {
  8924   //                 // System.Win dows.Forms .logString  += "popul ated the s tring " +  i.ToString () + "  "  + excelRea der.GetNam e(i)); //g et column  name
  8925   //                 // System.Win dows.Forms .logString  += excelR eader.GetN ame(i).ToU pper().Tri m());
  8926   //                 // System.Win dows.Forms .logString  += excelR eader.GetN ame(i).ToU pper().Tri m());
  8927  
  8928   //                 if  (excelRea der.GetNam e(i).ToUpp er().Trim( ) == _EDIP I.ToUpper( ).Trim())
  8929   //                 {
  8930   //                      iEDIPI =  i;
  8931   //                 }
  8932   //                 if  (excelRea der.GetNam e(i).ToUpp er().Trim( ) == _LabR ptDate.ToU pper().Tri m())
  8933   //                 {
  8934  
  8935   //                      iLabDate  = i;
  8936   //                 }
  8937   //             }
  8938   //         }
  8939  
  8940   //    }
  8941  
  8942   //    publ ic overrid e void Cre ateNewOutp utRows()
  8943   //    {
  8944   //                if  (excelRead er.HasRows )
  8945   //             {
  8946   //                 st ring strED IPI = "";
  8947   //                 wh ile (excel Reader.Rea d())
  8948   //                 {
  8949                        
  8950   //                      string _ tempEDIPI  = excelRea der.Visibl eFieldCoun t > iEDIPI  ? excelRe ader[iEDIP I].ToStrin g() : "";
  8951   //                      if (_tem pEDIPI.Len gth > 0) {  strEDIPI  = _tempEDI PI; }
  8952   //                      if (stri ng.IsNullO rEmpty(str EDIPI) ==  false)
  8953  
  8954   //                     {
  8955   //                          Outp ut0Buffer. AddRow();
  8956   //                          stri ng tempDt  = excelRea der[iLabDa te].ToStri ng();
  8957   //                          Date Time dt=Co nvert.ToDa teTime("17 76/07/04") ;
  8958   //                          if ( string.IsN ullOrEmpty (tempDt) = = false)
  8959   //                          {
  8960   //                           try
  8961   //                           {
  8962   //                           //i f (tempDt. Contains("  0:00"))
  8963   //                           //{
  8964   //                           //     tempDt. Replace("  0:00", "") ;
  8965   //                           //  }
  8966   //                            dt  = Convert .ToDateTim e(tempDt.R eplace(" 0 :00"," 0:0 1"));
  8967   //                            }
  8968   //                               catch (Exc eption e)
  8969   //                               {
  8970  
  8971   //                               }
  8972                                      
  8973   //                          }
  8974   //                          //Ou tput0Buffe r.SSN = ss n.Replace( "-", "");  WL 9/5/201 4
  8975  
  8976                            
  8977   //                          Syst em.Windows .Forms.log String +=  strEDIPI);
  8978   //                          if ( dt != Conv ert.ToDate Time("1776 -07-04 00: 00:00.000" ))
  8979   //                          {
  8980   //                               Output0Buf fer.LabRep ortDate =  dt;
  8981   //                          }
  8982   //                          Outp ut0Buffer. EDIPI = st rEDIPI;
  8983  
  8984   //                          //Sy stem.Windo ws.Forms.l ogString + = "OutputB uffer.EDIP I: " + Out put0Buffer .ToString( ));
  8985   //                         }
  8986  
  8987   //                 }
  8988  
  8989  
  8990  
  8991   //             }
  8992   //         }
  8993   //}]]></ar rayElement ><arrayEle ment dataT ype="Syste m.String"> <![CDATA[\ properties \resources .resx]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [<?xml ver sion="1.0"  encoding= "utf-8"?>
  8994   <root>
  8995     <!-- 
  8996       Micros oft ResX S chema 
  8997       
  8998       Versio n 2.0
  8999       
  9000       The pr imary goal s of this  format is  to allow a  simple XM L format 
  9001       that i s mostly h uman reada ble. The g eneration  and parsin g of the 
  9002       variou s data typ es are don e through  the TypeCo nverter cl asses 
  9003       associ ated with  the data t ypes.
  9004       
  9005       Exampl e:
  9006       
  9007       ... ad o.net/XML  headers &  schema ...
  9008       <reshe ader name= "resmimety pe">text/m icrosoft-r esx</reshe ader>
  9009       <reshe ader name= "version"> 2.0</reshe ader>
  9010       <reshe ader name= "reader">S ystem.Reso urces.ResX ResourceRe ader, Syst em.Windows .Forms, .. .</reshead er>
  9011       <reshe ader name= "writer">S ystem.Reso urces.ResX ResourceWr iter, Syst em.Windows .Forms, .. .</reshead er>
  9012       <data  name="Name 1"><value> this is my  long stri ng</value> <comment>t his is a c omment</co mment></da ta>
  9013       <data  name="Colo r1" type=" System.Dra wing.Color , System.D rawing">Bl ue</data>
  9014       <data  name="Bitm ap1" mimet ype="appli cation/x-m icrosoft.n et.object. binary.bas e64">
  9015           <v alue>[base 64 mime en coded seri alized .NE T Framewor k object]< /value>
  9016       </data >
  9017       <data  name="Icon 1" type="S ystem.Draw ing.Icon,  System.Dra wing" mime type="appl ication/x- microsoft. net.object .bytearray .base64">
  9018           <v alue>[base 64 mime en coded stri ng represe nting a by te array f orm of the  .NET Fram ework obje ct]</value >
  9019           <c omment>Thi s is a com ment</comm ent>
  9020       </data >
  9021                    
  9022       There  are any nu mber of "r esheader"  rows that  contain si mple 
  9023       name/v alue pairs .
  9024       
  9025       Each d ata row co ntains a n ame, and v alue. The  row also c ontains a 
  9026       type o r mimetype . Type cor responds t o a .NET c lass that  support 
  9027       text/v alue conve rsion thro ugh the Ty peConverte r architec ture. 
  9028       Classe s that don 't support  this are  serialized  and store d with the  
  9029       mimety pe set.
  9030       
  9031       The mi metype is  used for s erialized  objects, a nd tells t he 
  9032       ResXRe sourceRead er how to  depersist  the object . This is  currently  not 
  9033       extens ible. For  a given mi metype the  value mus t be set a ccordingly :
  9034       
  9035       Note -  applicati on/x-micro soft.net.o bject.bina ry.base64  is the for mat 
  9036       that t he ResXRes ourceWrite r will gen erate, how ever the r eader can 
  9037       read a ny of the  formats li sted below .
  9038       
  9039       mimety pe: applic ation/x-mi crosoft.ne t.object.b inary.base 64
  9040       value    : The ob ject must  be seriali zed with 
  9041                : System .Serializa tion.Forma tters.Bina ry.BinaryF ormatter
  9042                : and th en encoded  with base 64 encodin g.
  9043       
  9044       mimety pe: applic ation/x-mi crosoft.ne t.object.s oap.base64
  9045       value    : The ob ject must  be seriali zed with 
  9046                : System .Runtime.S erializati on.Formatt ers.Soap.S oapFormatt er
  9047                : and th en encoded  with base 64 encodin g.
  9048  
  9049       mimety pe: applic ation/x-mi crosoft.ne t.object.b ytearray.b ase64
  9050       value    : The ob ject must  be seriali zed into a  byte arra
  9051                : using  a System.C omponentMo del.TypeCo nverter
  9052                : and th en encoded  with base 64 encodin g.
  9053       -->
  9054     <xsd:sch ema id="ro ot" xmlns= "" xmlns:x sd="http:/ /www.w3.or g/2001/XML Schema" xm lns:msdata ="urn:sche mas-micros oft-com:xm l-msdata">
  9055       <xsd:e lement nam e="root" m sdata:IsDa taSet="tru e">
  9056         <xsd :complexTy pe>
  9057           <x sd:choice  maxOccurs= "unbounded ">
  9058              <xsd:eleme nt name="m etadata">
  9059                <xsd:com plexType>
  9060                  <xsd:s equence>
  9061                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" />
  9062                  </xsd: sequence>
  9063                  <xsd:a ttribute n ame="name"  type="xsd :string" / >
  9064                  <xsd:a ttribute n ame="type"  type="xsd :string" / >
  9065                  <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" />
  9066                </xsd:co mplexType>
  9067              </xsd:elem ent>
  9068              <xsd:eleme nt name="a ssembly">
  9069                <xsd:com plexType>
  9070                  <xsd:a ttribute n ame="alias " type="xs d:string"  />
  9071                  <xsd:a ttribute n ame="name"  type="xsd :string" / >
  9072                </xsd:co mplexType>
  9073              </xsd:elem ent>
  9074              <xsd:eleme nt name="d ata">
  9075                <xsd:com plexType>
  9076                  <xsd:s equence>
  9077                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" msdata :Ordinal=" 1" />
  9078                    <xsd :element n ame="comme nt" type=" xsd:string " minOccur s="0" msda ta:Ordinal ="2" />
  9079                  </xsd: sequence>
  9080                  <xsd:a ttribute n ame="name"  type="xsd :string" m sdata:Ordi nal="1" />
  9081                  <xsd:a ttribute n ame="type"  type="xsd :string" m sdata:Ordi nal="3" />
  9082                  <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" msdata: Ordinal="4 " />
  9083                </xsd:co mplexType>
  9084              </xsd:elem ent>
  9085              <xsd:eleme nt name="r esheader">
  9086                <xsd:com plexType>
  9087                  <xsd:s equence>
  9088                    <xsd :element n ame="value " type="xs d:string"  minOccurs= "0" msdata :Ordinal=" 1" />
  9089                  </xsd: sequence>
  9090                  <xsd:a ttribute n ame="name"  type="xsd :string" u se="requir ed" />
  9091                </xsd:co mplexType>
  9092              </xsd:elem ent>
  9093           </ xsd:choice >
  9094         </xs d:complexT ype>
  9095       </xsd: element>
  9096     </xsd:sc hema>
  9097     <reshead er name="r esmimetype ">
  9098       <value >text/micr osoft-resx </value>
  9099     </reshea der>
  9100     <reshead er name="v ersion">
  9101       <value >2.0</valu e>
  9102     </reshea der>
  9103     <reshead er name="r eader">
  9104       <value >System.Re sources.Re sXResource Reader, Sy stem.Windo ws.Forms,  Version=2. 0.0.0, Cul ture=neutr al, Public KeyToken=b 77a5c56193 4e089</val ue>
  9105     </reshea der>
  9106     <reshead er name="w riter">
  9107       <value >System.Re sources.Re sXResource Writer, Sy stem.Windo ws.Forms,  Version=2. 0.0.0, Cul ture=neutr al, Public KeyToken=b 77a5c56193 4e089</val ue>
  9108     </reshea der>
  9109   </root>]]> </arrayEle ment><arra yElement d ataType="S ystem.Stri ng"><![CDA TA[\proper ties\setti ngs.design er.cs]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [//------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -
  9110   // <auto-g enerated>
  9111   //     Thi s code was  generated  by a tool .
  9112   //
  9113   //     Cha nges to th is file ma y cause in correct be havior and  will be l ost if
  9114   //     the  code is r egenerated .
  9115   // </auto- generated>
  9116   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  9117  
  9118   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "SC_c26 65656350f4 6b691332ed feaa51479. csproj.Pro perties.Se ttings.get _Default() :SC_c26656 56350f46b6 91332edfea a51479.csp roj.Proper ties.Sett"  +
  9119       "ings" )]
  9120  
  9121   namespace  SC_c266565 6350f46b69 1332edfeaa 51479.cspr oj.Propert ies
  9122   {
  9123  
  9124  
  9125       intern al sealed  partial cl ass Settin gs : globa l::System. Configurat ion.Applic ationSetti ngsBase
  9126       {
  9127  
  9128           [g lobal::Sys tem.Runtim e.Compiler Services.C ompilerGen eratedAttr ibute()]
  9129           pr ivate stat ic Setting s defaultI nstance =  new Settin gs();
  9130  
  9131           pu blic stati c Settings  Default
  9132           {
  9133                get
  9134                {
  9135                    retu rn default Instance;
  9136                }
  9137           }
  9138       }
  9139   }
  9140   ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\pro perties\se ttings.set tings]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [<?xml ver sion='1.0'  encoding= 'iso-8859- 1'?>
  9141   <SettingsF ile xmlns= "uri:setti ngs" Curre ntProfile= "(Default) ">
  9142     <Profile s>
  9143       <Profi le Name="( Default)"  />
  9144     </Profil es>
  9145     <Setting s />
  9146   </Settings File>]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [\properti es\assembl yinfo.cs]] ></arrayEl ement><arr ayElement  dataType=" System.Str ing"><![CD ATA[using  System.Ref lection;
  9147   using Syst em.Runtime .CompilerS ervices;
  9148  
  9149   //
  9150   // General  Informati on about a n assembly  is contro lled throu gh the fol lowing 
  9151   // set of  attributes . Change t hese attri bute value s to modif y the info rmation
  9152   // associa ted with a n assembly .
  9153   //
  9154   [assembly:  AssemblyT itle("SC_c 2665656350 f46b691332 edfeaa5147 9.csproj") ]
  9155   [assembly:  AssemblyD escription ("")]
  9156   [assembly:  AssemblyC onfigurati on("")]
  9157   [assembly:  AssemblyC ompany("De partment o f Veterans  Affairs") ]
  9158   [assembly:  AssemblyP roduct("SC _c26656563 50f46b6913 32edfeaa51 479.csproj ")]
  9159   [assembly:  AssemblyC opyright(" Copyright  @ Departme nt of Vete rans Affai rs 2012")]
  9160   [assembly:  AssemblyT rademark(" ")]
  9161   [assembly:  AssemblyC ulture("") ]
  9162   //
  9163   // Version  informati on for an  assembly c onsists of  the follo wing four  values:
  9164   //
  9165   //      Ma jor Versio n
  9166   //      Mi nor Versio
  9167   //      Bu ild Number
  9168   //      Re vision
  9169   //
  9170   // You can  specify a ll the val ues or you  can defau lt the Rev ision and  Build Numb ers 
  9171   // by usin g the '*'  as shown b elow:
  9172  
  9173   [assembly:  AssemblyV ersion("1. 0.*")]
  9174   ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\pro perties\re sources.de signer.cs] ]></arrayE lement><ar rayElement  dataType= "System.St ring"><![C DATA[//--- ---------- ---------- ---------- ---------- ---------- ---------- ---------- -----
  9175   // <auto-g enerated>
  9176   //     Thi s code was  generated  by a tool .
  9177   //
  9178   //     Cha nges to th is file ma y cause in correct be havior and  will be l ost if
  9179   //     the  code is r egenerated .
  9180   // </auto- generated>
  9181   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  9182  
  9183   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "SC_c26 65656350f4 6b691332ed feaa51479. csproj.Pro perties.Re sources.ge t_Resource Manager(): System.Res ources.Res ou" +
  9184       "rceMa nager")]
  9185   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "SC_c26 65656350f4 6b691332ed feaa51479. csproj.Pro perties.Re sources.ge t_Culture( ):System.G lobalizati on.Culture In" +
  9186       "fo")]
  9187   [assembly:  global::S ystem.Diag nostics.Co deAnalysis .SuppressM essageAttr ibute("Mic rosoft.Per formance",  "CA1811:A voidUncall edPrivateC ode", Scop e = "membe r", Target  = "SC_c26 65656350f4 6b691332ed feaa51479. csproj.Pro perties.Re sources.se t_Culture( System.Glo balization .CultureIn fo" +
  9188       "):Voi d")]
  9189  
  9190   namespace  SC_c266565 6350f46b69 1332edfeaa 51479.cspr oj.Propert ies
  9191   {
  9192  
  9193  
  9194       /// <s ummary>
  9195       ///    A strongly -typed res ource clas s, for loo king up lo calized st rings, etc .
  9196       /// </ summary>
  9197       // Thi s class wa s auto-gen erated by  the Strong lyTypedRes ourceBuild er
  9198       // cla ss via a t ool like R esGen or V isual Stud io.
  9199       // To  add or rem ove a memb er, edit y our .ResX  file then  rerun ResG en
  9200       // wit h the /str  option, o r rebuild  your VS pr oject.
  9201       [globa l::System. Diagnostic s.Debugger NonUserCod eAttribute ()]
  9202       intern al class R esources
  9203       {
  9204  
  9205           pr ivate stat ic global: :System.Re sources.Re sourceMana ger resour ceMan;
  9206  
  9207           pr ivate stat ic global: :System.Gl obalizatio n.CultureI nfo resour ceCulture;
  9208  
  9209           [g lobal::Sys tem.Diagno stics.Code Analysis.S uppressMes sageAttrib ute("Micro soft.Perfo rmance", " CA1811:Avo idUncalled PrivateCod e")]
  9210           in ternal Res ources()
  9211           {
  9212           }
  9213  
  9214           // / <summary >
  9215           // /   Return s the cach ed Resourc eManager i nstance us ed by this  class.
  9216           // / </summar y>
  9217           [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)]
  9218           in ternal sta tic global ::System.R esources.R esourceMan ager Resou rceManager
  9219           {
  9220                get
  9221                {
  9222                    if ( (resourceM an == null ))
  9223                    {
  9224                         global::Sy stem.Resou rces.Resou rceManager  temp = ne w global:: System.Res ources.Res ourceManag er("SC_c26 65656350f4 6b691332ed feaa51479. csproj.Pro perties.Re sources",  typeof(Res ources).As sembly);
  9225                         resourceMa n = temp;
  9226                    }
  9227                    retu rn resourc eMan;
  9228                }
  9229           }
  9230  
  9231           // / <summary >
  9232           // /   Overri des the cu rrent thre ad's Curre ntUICultur e property  for all
  9233           // /   resour ce lookups  using thi s strongly  typed res ource clas s.
  9234           // / </summar y>
  9235           [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)]
  9236           in ternal sta tic global ::System.G lobalizati on.Culture Info Cultu re
  9237           {
  9238                get
  9239                {
  9240                    retu rn resourc eCulture;
  9241                }
  9242                set
  9243                {
  9244                    reso urceCultur e = value;
  9245                }
  9246           }
  9247       }
  9248   }
  9249   ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\buf ferwrapper .cs]]></ar rayElement ><arrayEle ment dataT ype="Syste m.String"> <![CDATA[/ * THIS IS  AUTO-GENER ATED CODE  THAT WILL  BE OVERWRI TTEN! DO N OT EDIT!
  9250   *  Microso ft SQL Ser ver Integr ation Serv ices buffe r wrappers
  9251   *  This mo dule defin es classes  for acces sing data  flow buffe rs
  9252   *  THIS IS  AUTO-GENE RATED CODE  THAT WILL  BE OVERWR ITTEN! DO  NOT EDIT!  */
  9253  
  9254  
  9255  
  9256   using Syst em;
  9257   using Syst em.Data;
  9258   using Micr osoft.SqlS erver.Dts. Pipeline;
  9259   using Micr osoft.SqlS erver.Dts. Pipeline.W rapper;
  9260  
  9261   public cla ss Output0 Buffer: Sc riptBuffer
  9262  
  9263   {
  9264       public  Output0Bu ffer(Pipel ineBuffer  Buffer, in t[] Buffer ColumnInde xes)
  9265           :  base(Buffe r, BufferC olumnIndex es)
  9266       {
  9267       }
  9268  
  9269       public  DateTime  LabReportD ate
  9270       {
  9271           se t
  9272           {
  9273                this[0]  = value;
  9274           }
  9275       }
  9276       public  bool LabR eportDate_ IsNull
  9277       {
  9278           se t
  9279           {
  9280                if (valu e)
  9281                {
  9282                    SetN ull(0);
  9283                }
  9284                else
  9285                {
  9286                    thro w new Inva lidOperati onExceptio n("IsNull  property c annot be s et to Fals e. Assign  a value to  the colum n instead. ");
  9287                }
  9288           }
  9289       }
  9290  
  9291       public  String Pa tientICN
  9292       {
  9293           se t
  9294           {
  9295                this[1]  = value;
  9296           }
  9297       }
  9298       public  bool Pati entICN_IsN ull
  9299       {
  9300           se t
  9301           {
  9302                if (valu e)
  9303                {
  9304                    SetN ull(1);
  9305                }
  9306                else
  9307                {
  9308                    thro w new Inva lidOperati onExceptio n("IsNull  property c annot be s et to Fals e. Assign  a value to  the colum n instead. ");
  9309                }
  9310           }
  9311       }
  9312  
  9313       new pu blic void  AddRow()
  9314       {
  9315           ba se.AddRow( );
  9316       }
  9317  
  9318       new pu blic void  SetEndOfRo wset()
  9319       {
  9320           ba se.SetEndO fRowset();
  9321       }
  9322  
  9323       new pu blic bool  EndOfRowse t()
  9324       {
  9325           re turn base. EndOfRowse t();
  9326       }
  9327  
  9328   }
  9329   ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\com ponentwrap per.cs]]>< /arrayElem ent><array Element da taType="Sy stem.Strin g"><![CDAT A[/* THIS  IS AUTO-GE NERATED CO DE THAT WI LL BE OVER WRITTEN! D O NOT EDIT !
  9330   *  Microso ft SQL Ser ver Integr ation Serv ices compo nent wrapp er
  9331   *  This mo dule defin es the bas e class fo r your com ponent
  9332   *  THIS IS  AUTO-GENE RATED CODE  THAT WILL  BE OVERWR ITTEN! DO  NOT EDIT!  */
  9333  
  9334   using Syst em;
  9335   using Syst em.Data;
  9336   using Micr osoft.SqlS erver.Dts. Pipeline;
  9337   using Micr osoft.SqlS erver.Dts. Pipeline.W rapper;
  9338   using Micr osoft.SqlS erver.Dts. Runtime.Wr apper;
  9339  
  9340   public cla ss UserCom ponent: Sc riptCompon ent
  9341   {
  9342       public  Connectio ns Connect ions;
  9343       public  Variables  Variables ;
  9344       public  UserCompo nent()
  9345       {
  9346           Co nnections  = new Conn ections(th is);
  9347           Va riables =  new Variab les(this);
  9348       }
  9349  
  9350       public  Output0Bu ffer Outpu t0Buffer;
  9351  
  9352       public  virtual v oid Finish Outputs()
  9353       {
  9354       }
  9355  
  9356       privat e void Mar kOutputsFi nished()
  9357       {
  9358  
  9359           if  (null !=  Output0Buf fer)
  9360           {
  9361                Output0B uffer.SetE ndOfRowset ();
  9362                Output0B uffer = nu ll;
  9363           }
  9364  
  9365       }
  9366  
  9367       public  override  void Prime Output(int  Outputs,  int[] Outp utIDs, Pip elineBuffe r[] Buffer s)
  9368       {
  9369          for (int Idx =  0; Idx <  Outputs; I dx++)
  9370          {
  9371                if(Outpu tIDs[Idx]  == 65)
  9372                {
  9373                    Outp ut0Buffer  = new Outp ut0Buffer( Buffers[Id x], GetCol umnIndexes (OutputIDs [Idx]));
  9374                }
  9375           }
  9376  
  9377           Cr eateNewOut putRows();
  9378  
  9379           Fi nishOutput s();
  9380           Ma rkOutputsF inished();
  9381  
  9382       }
  9383  
  9384       public  virtual v oid Create NewOutputR ows()
  9385       {
  9386       }
  9387  
  9388   }
  9389  
  9390   public cla ss Connect ions
  9391   {
  9392       Script Component  ParentComp onent;
  9393  
  9394       public  Connectio ns(ScriptC omponent C omponent)
  9395       {
  9396           Pa rentCompon ent = Comp onent;
  9397       }
  9398  
  9399   }
  9400  
  9401   public cla ss Variabl es
  9402   {
  9403       Script Component  ParentComp onent;
  9404  
  9405       public  Variables (ScriptCom ponent Com ponent)
  9406       {
  9407           Pa rentCompon ent = Comp onent;
  9408       }
  9409  
  9410       public  String fi leName2
  9411       {
  9412           ge t
  9413           {
  9414                return ( String)(Pa rentCompon ent.ReadOn lyVariable s["fileNam e2"].Value );
  9415           }
  9416       }
  9417  
  9418       public  String Re gistryStag ingDatabas e
  9419       {
  9420           ge t
  9421           {
  9422                return ( String)(Pa rentCompon ent.ReadOn lyVariable s["Registr yStagingDa tabase"].V alue);
  9423           }
  9424       }
  9425  
  9426       public  String Re gistryStag ingServer
  9427       {
  9428           ge t
  9429           {
  9430                return ( String)(Pa rentCompon ent.ReadOn lyVariable s["Registr yStagingSe rver"].Val ue);
  9431           }
  9432       }
  9433  
  9434       public  String Ru nIdentifie r
  9435       {
  9436           ge t
  9437           {
  9438                return ( String)(Pa rentCompon ent.ReadOn lyVariable s["RunIden tifier"].V alue);
  9439           }
  9440       }
  9441  
  9442       public  String Sh eetName
  9443       {
  9444           ge t
  9445           {
  9446                return ( String)(Pa rentCompon ent.ReadOn lyVariable s["SheetNa me"].Value );
  9447           }
  9448       }
  9449  
  9450   }
  9451   ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[\exc elreader.c s]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[usi ng System;
  9452   using Syst em.Data;
  9453   using Syst em.Data.Ol eDb;
  9454   using Syst em.IO;
  9455   using Syst em.Windows .Forms;
  9456  
  9457   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  9458   {
  9459       /// <s ummary>
  9460       /// Su mmary desc ription fo r ExcelRea der.
  9461       /// ht tp://www.c odeproject .com/KB/of fice/Excel _using_OLE DB/leesexc el.zip
  9462       /// </ summary>
  9463       public  class Exc elReader :  IDisposab le
  9464       {
  9465           #r egion Vari ables
  9466           pr ivate int[ ] _PKCol;
  9467           pr ivate stri ng _strExc elFilename ;
  9468           pr ivate bool  _blnMixed Data = tru e;
  9469           pr ivate bool  _blnHeade rs = false ;
  9470           pr ivate stri ng _strShe etName;
  9471           pr ivate stri ng _strShe etRange;
  9472           pr ivate bool  _blnKeepC onnectionO pen = fals e;
  9473           pr ivate OleD bConnectio n _oleConn ;
  9474           pr ivate OleD bCommand _ oleCmdSele ct;
  9475           pr ivate OleD bCommand _ oleCmdUpda te;
  9476           #e ndregion
  9477  
  9478           //  #region p roperties
  9479  
  9480           pu blic int[]  PKCols
  9481           {
  9482                get { re turn _PKCo l; }
  9483                set { _P KCol = val ue; }
  9484           }
  9485  
  9486           pu blic strin g ColName( int intCol )
  9487           {
  9488                string s ColName =  "";
  9489                if (intC ol < 26)
  9490                    sCol Name = Con vert.ToStr ing(Conver t.ToChar(( Convert.To Byte((char )'A') + in tCol)));
  9491                else
  9492                {
  9493                    int  intFirst =  ((int)int Col / 26);
  9494                    int  intSecond  = ((int)in tCol % 26) ;
  9495                    sCol Name = Con vert.ToStr ing(Conver t.ToByte(( char)'A')  + intFirst );
  9496                    sCol Name += Co nvert.ToSt ring(Conve rt.ToByte( (char)'A')  + intSeco nd);
  9497                }
  9498                return s ColName;
  9499           }
  9500  
  9501           pu blic int C olNumber(s tring strC ol)
  9502           {
  9503                strCol =  strCol.To Upper();
  9504                int intC olNumber =  0;
  9505                if (strC ol.Length  > 1)
  9506                {
  9507                    intC olNumber =  Convert.T oInt16(Con vert.ToByt e(strCol[1 ]) - 65);
  9508                    intC olNumber + = Convert. ToInt16(Co nvert.ToBy te(strCol[ 1]) - 64)  * 26;
  9509                }
  9510                else
  9511                    intC olNumber =  Convert.T oInt16(Con vert.ToByt e(strCol[0 ]) - 65);
  9512                return i ntColNumbe r;
  9513           }
  9514  
  9515  
  9516  
  9517           pu blic Strin g[] GetExc elSheetNam es()
  9518           {
  9519                System.D ata.DataTa ble dt = n ull;
  9520  
  9521                try
  9522                {
  9523                    if ( _oleConn = = null)
  9524                    {
  9525                         Open();
  9526                    }
  9527  
  9528                    // G et the dat a table co ntaining t he schema
  9529                    dt =  _oleConn. GetOleDbSc hemaTable( OleDbSchem aGuid.Tabl es, null);
  9530  
  9531                    if ( dt == null )
  9532                    {
  9533                         return nul l;
  9534                    }
  9535  
  9536                    Stri ng[] excel Sheets = n ew String[ dt.Rows.Co unt];
  9537                    int  i = 0;
  9538  
  9539                    Mess ageBox.Sho w("after s heets, num  rows: " +  dt.Rows.C ount.ToStr ing());
  9540  
  9541                    // A dd the she et name to  the strin g array.
  9542                    fore ach (DataR ow row in  dt.Rows)
  9543                    {
  9544                         MessageBox .Show("in  loop");
  9545                         string str SheetTable Name = row ["TABLE_NA ME"].ToStr ing();
  9546  
  9547                         MessageBox .Show("nam e: " + str SheetTable Name);
  9548  
  9549                         excelSheet s[i] = str SheetTable Name.Subst ring(0, st rSheetTabl eName.Leng th - 1);
  9550                         i++;
  9551                    }
  9552  
  9553                    Mess ageBox.Sho w("before  return");
  9554                    
  9555                    retu rn excelSh eets;
  9556                }
  9557                catch (E xception)
  9558                {
  9559                    retu rn null;
  9560                }
  9561                finally
  9562                {
  9563                    // C lean up.
  9564                    if ( this.KeepC onnectionO pen == fal se)
  9565                    {
  9566                         this.Close ();
  9567                    }
  9568                    if ( dt != null )
  9569                    {
  9570                         dt.Dispose ();
  9571                         dt = null;
  9572                    }
  9573                }
  9574           }
  9575  
  9576           pu blic strin g ExcelFil ename
  9577           {
  9578                get { re turn _strE xcelFilena me; }
  9579                set { _s trExcelFil ename = va lue; }
  9580           }
  9581  
  9582           pu blic strin g SheetNam e
  9583           {
  9584                get { re turn _strS heetName;  }
  9585                set { _s trSheetNam e = value;  }
  9586           }
  9587  
  9588           pu blic strin g SheetRan ge
  9589           {
  9590                get { re turn _strS heetRange;  }
  9591                set
  9592                {
  9593                    if ( value.Inde xOf(":") = = -1) thro w new Exce ption("Inv alid range  length");
  9594                    _str SheetRange  = value;
  9595                }
  9596           }
  9597  
  9598           pu blic bool  KeepConnec tionOpen
  9599           {
  9600                get { re turn _blnK eepConnect ionOpen; }
  9601                set { _b lnKeepConn ectionOpen  = value;  }
  9602           }
  9603  
  9604           pu blic bool  Headers
  9605           {
  9606                get { re turn _blnH eaders; }
  9607                set { _b lnHeaders  = value; }
  9608           }
  9609  
  9610           pu blic bool  MixedData
  9611           {
  9612                get { re turn _blnM ixedData;  }
  9613                set { _b lnMixedDat a = value;  }
  9614           }
  9615           //  #endregio n
  9616  
  9617           //  #region M ethods
  9618  
  9619  
  9620  
  9621           //  #region E xcel Conne ction
  9622           pr ivate stri ng ExcelCo nnectionOp tions()
  9623           {
  9624                string s trOpts = " ";
  9625                if (this .MixedData  == true)
  9626                    strO pts += "Im ex=2;";
  9627                if (this .Headers = = true)
  9628                    strO pts += "HD R=Yes;";
  9629                else
  9630                    strO pts += "HD R=No;";
  9631                return s trOpts;
  9632           }
  9633  
  9634  
  9635  
  9636           pr ivate stri ng ExcelCo nnection()
  9637           {
  9638                string e xtension =  Path.GetE xtension(_ strExcelFi lename);
  9639                //extens ion = _str ExcelFilen ame.Substr ing(_strEx celFilenam e.IndexOf( ".") + 1,  _strExcelF ilename.Le ngth - (_s trExcelFil ename.Inde xOf(".") +  1));
  9640                extensio n = extens ion.Replac e(".", "") ;
  9641  
  9642                string c onString =  "";
  9643  
  9644                if (exte nsion.ToLo wer() == " xlsx")
  9645                {
  9646                    conS tring =
  9647                         @"Provider =Microsoft .ACE.OLEDB .12.0;" +
  9648                         @"Data Sou rce=" + _s trExcelFil ename + "; " +
  9649                         @"Extended  Propertie s=" + Conv ert.ToChar (34).ToStr ing() +
  9650                         @"Excel 12 .0;" + Exc elConnecti onOptions( ) + Conver t.ToChar(3 4).ToStrin g();
  9651  
  9652                    //co nString =  "Provider= Microsoft. ACE.OLEDB. 12.0;Data  Source=" +  _strExcel Filename +  ";Extende d Properti es=\"EXCEL  12.0;HDR= YES\"";
  9653  
  9654  
  9655                    //IM EX=3 for w riting?
  9656  
  9657  
  9658                    //co nString =  "Provider= Microsoft. ACE.OLEDB. 12.0;Data  Source=" +  _strExcel Filename +  ";Extende d Properti es=\"EXCEL  12.0;HDR= NO\"";
  9659                }
  9660                else
  9661                {
  9662                    conS tring =
  9663                         @"Provider =Microsoft .Jet.OLEDB .4.0;" +
  9664                         @"Data Sou rce=" + _s trExcelFil ename + "; " +
  9665                         @"Extended  Propertie s=" + Conv ert.ToChar (34).ToStr ing() +
  9666                         @"Excel 8. 0;" + "HDR =YES;IMEX= 1" + Conve rt.ToChar( 34).ToStri ng(); //Ex celConnect ionOptions () + Conve rt.ToChar( 34).ToStri ng();
  9667  
  9668                    Mess ageBox.Sho w("conStri ng: " + co nString);
  9669  
  9670                    //co nString =  "Provider= Microsoft. Jet.OLEDB. 4.0;" +
  9671                    //    "Data Sou rce=" + _s trExcelFil ename + "; Extended P roperties= \"Excel 4. 0;HDR=YES; IMEX=1\";" ;
  9672                }
  9673                //return
  9674                //    @" Provider=M icrosoft.J et.OLEDB.4 .0;" +
  9675                //    @" Data Sourc e=" + _str ExcelFilen ame + ";"  +
  9676                //    @" Extended P roperties= " + Conver t.ToChar(3 4).ToStrin g() +
  9677                //    @" Excel 8.0; " + ExcelC onnectionO ptions() +  Convert.T oChar(34). ToString() ;
  9678  
  9679                return c onString;
  9680           }
  9681           //  #endregio n
  9682  
  9683  
  9684           //  #region O pen / Clos e
  9685           pu blic void  Open()
  9686           {
  9687                try
  9688                {
  9689                    if ( _oleConn ! = null)
  9690                    {
  9691                         if (_oleCo nn.State = = Connecti onState.Op en)
  9692                         {
  9693                             _oleCo nn.Close() ;
  9694                         }
  9695                         _oleConn =  null;
  9696                    }
  9697  
  9698                    if ( System.IO. File.Exist s(_strExce lFilename)  == false)
  9699                    {
  9700                         throw new  Exception( "Excel fil e " + _str ExcelFilen ame + "cou ld not be  found.");
  9701                    }
  9702  
  9703                    _ole Conn = new  OleDbConn ection(Exc elConnecti on());
  9704                    _ole Conn.Open( );
  9705                }
  9706                catch (E xception e x)
  9707                {
  9708                    Mess ageBox.Sho w("Excepti on: " + ex .ToString( ));
  9709  
  9710                    thro w ex;
  9711                }
  9712           }
  9713  
  9714           pu blic void  Close()
  9715           {
  9716                if (_ole Conn != nu ll)
  9717                {
  9718                    if ( _oleConn.S tate != Co nnectionSt ate.Closed )
  9719                         _oleConn.C lose();
  9720                    _ole Conn.Dispo se();
  9721                    _ole Conn = nul l;
  9722                }
  9723           }
  9724           //  #endregio n
  9725  
  9726           //  #region C ommand Sel ect
  9727           pr ivate bool  SetSheetQ uerySelect ()
  9728           {
  9729                try
  9730                {
  9731                    if ( _oleConn = = null)
  9732                    {
  9733                         throw new  Exception( "Connectio n is unass igned or c losed.");
  9734                    }
  9735  
  9736                    if ( _strSheetN ame.Length  == 0)
  9737                    {
  9738                         throw new  Exception( "Sheetname  was not a ssigned.") ;
  9739                    }
  9740  
  9741                    _ole CmdSelect  = new OleD bCommand(
  9742                         @"SELECT *  FROM ["
  9743                         + _strShee tName
  9744                         + "$" + _s trSheetRan ge
  9745                         + "]", _ol eConn);
  9746  
  9747                    retu rn true;
  9748                }
  9749                catch (E xception e x)
  9750                {
  9751                    thro w ex;
  9752                }
  9753           }
  9754           //  #endregio n
  9755  
  9756           //  #region s imple util ities
  9757           pr ivate stri ng AddWith Comma(stri ng strSour ce, string  strAdd)
  9758           {
  9759                if (strS ource != " ") strSour ce = strSo urce += ",  ";
  9760                return s trSource +  strAdd;
  9761           }
  9762  
  9763           pr ivate stri ng AddWith And(string  strSource , string s trAdd)
  9764           {
  9765                if (strS ource != " ") strSour ce = strSo urce += "  and ";
  9766                return s trSource +  strAdd;
  9767           }
  9768           //  #endregio n
  9769  
  9770           pr ivate OleD bDataAdapt er SetShee tQueryAdap ter(DataTa ble dt)
  9771           {
  9772                // Delet ing in Exc el workboo k is not p ossible
  9773                //So thi s command  is not def ined
  9774                try
  9775                {
  9776  
  9777  
  9778  
  9779  
  9780                    if ( _oleConn = = null)
  9781                    {
  9782                         throw new  Exception( "Connectio n is unass igned or c losed.");
  9783                    }
  9784  
  9785  
  9786                    if ( _strSheetN ame.Length  == 0)
  9787                         throw new  Exception( "Sheetname  was not a ssigned.") ;
  9788  
  9789                    if ( PKCols ==  null)
  9790                         throw new  Exception( "Cannot up date excel  sheet wit h no prima rykey set. ");
  9791                    if ( PKCols.Len gth < 1)
  9792                         throw new  Exception( "Cannot up date excel  sheet wit h no prima rykey set. ");
  9793  
  9794                    OleD bDataAdapt er oleda =  new OleDb DataAdapte r(_oleCmdS elect);
  9795                    stri ng strUpda te = "";
  9796                    stri ng strInse rtPar = "" ;
  9797                    stri ng strInse rt = "";
  9798                    stri ng strWher e = "";
  9799  
  9800  
  9801                    for  (int iPK =  0; iPK <  PKCols.Len gth; iPK++ )
  9802                    {
  9803                         strWhere =  AddWithAn d(strWhere , dt.Colum ns[iPK].Co lumnName +  "=?");
  9804                    }
  9805                    strW here = " W here " + s trWhere;
  9806  
  9807                    for  (int iCol  = 0; iCol  < dt.Colum ns.Count;  iCol++)
  9808                    {
  9809                         strInsert  = AddWithC omma(strIn sert, dt.C olumns[iCo l].ColumnN ame);
  9810                         strInsertP ar = AddWi thComma(st rInsertPar , "?");
  9811                         strUpdate  = AddWithC omma(strUp date, dt.C olumns[iCo l].ColumnN ame) + "=? ";
  9812                    }
  9813  
  9814                    stri ng strTabl e = "[" +  this.Sheet Name + "$"  + this.Sh eetRange +  "]";
  9815                    strI nsert = "I NSERT INTO  " + strTa ble + "("  + strInser t + ") Val ues (" + s trInsertPa r + ")";
  9816                    strU pdate = "U pdate " +  strTable +  " Set " +  strUpdate  + strWher e;
  9817  
  9818  
  9819                    oled a.InsertCo mmand = ne w OleDbCom mand(strIn sert, _ole Conn);
  9820                    oled a.UpdateCo mmand = ne w OleDbCom mand(strUp date, _ole Conn);
  9821                    OleD bParameter  oleParIns  = null;
  9822                    OleD bParameter  oleParUpd  = null;
  9823                    for  (int iCol  = 0; iCol  < dt.Colum ns.Count;  iCol++)
  9824                    {
  9825                         oleParIns  = new OleD bParameter ("?", dt.C olumns[iCo l].DataTyp e.ToString ());
  9826                         oleParUpd  = new OleD bParameter ("?", dt.C olumns[iCo l].DataTyp e.ToString ());
  9827                         oleParIns. SourceColu mn = dt.Co lumns[iCol ].ColumnNa me;
  9828                         oleParUpd. SourceColu mn = dt.Co lumns[iCol ].ColumnNa me;
  9829                         oleda.Inse rtCommand. Parameters .Add(olePa rIns);
  9830                         oleda.Upda teCommand. Parameters .Add(olePa rUpd);
  9831                         oleParIns  = null;
  9832                         oleParUpd  = null;
  9833                    }
  9834  
  9835                    for  (int iPK =  0; iPK <  PKCols.Len gth; iPK++ )
  9836                    {
  9837                         oleParUpd  = new OleD bParameter ("?", dt.C olumns[iPK ].DataType .ToString( ));
  9838                         oleParUpd. SourceColu mn = dt.Co lumns[iPK] .ColumnNam e;
  9839                         oleParUpd. SourceVers ion = Data RowVersion .Original;
  9840                         oleda.Upda teCommand. Parameters .Add(olePa rUpd);
  9841                    }
  9842                    retu rn oleda;
  9843                }
  9844                catch (E xception e x)
  9845                {
  9846                    thro w ex;
  9847                }
  9848  
  9849           }
  9850  
  9851           #r egion comm and Singe  Value Upda te
  9852           pr ivate bool  SetSheetQ uerySingel ValUpdate( string str Val)
  9853           {
  9854                try
  9855                {
  9856                    if ( _oleConn = = null)
  9857                    {
  9858                         throw new  Exception( "Connectio n is unass igned or c losed.");
  9859                    }
  9860  
  9861                    if ( _strSheetN ame.Length  == 0)
  9862                         throw new  Exception( "Sheetname  was not a ssigned.") ;
  9863  
  9864                    _ole CmdUpdate  = new OleD bCommand(
  9865                         @" Update  ["
  9866                         + _strShee tName
  9867                         + "$" + _s trSheetRan ge
  9868                         + "] set F 1=" + strV al, _oleCo nn);
  9869                    retu rn true;
  9870                }
  9871                catch (E xception e x)
  9872                {
  9873                    thro w ex;
  9874                }
  9875  
  9876  
  9877           }
  9878           #e ndregion
  9879  
  9880  
  9881  
  9882           pu blic void  SetPrimary Key(int in tCol)
  9883           {
  9884                _PKCol =  new int[1 ] { intCol  };
  9885           }
  9886  
  9887           pu blic DataT able GetTa ble()
  9888           {
  9889                return G etTable("E xcelTable" );
  9890           }
  9891  
  9892           pr ivate void  SetPrimar yKey(DataT able dt)
  9893           {
  9894                try
  9895                {
  9896                    if ( PKCols !=  null)
  9897                    {
  9898                         //set the  primary ke y
  9899                         if (PKCols .Length >  0)
  9900                         {
  9901                             DataCo lumn[] dc;
  9902                             dc = n ew DataCol umn[PKCols .Length];
  9903                             for (i nt i = 0;  i < PKCols .Length; i ++)
  9904                             {
  9905                                 dc [i] = dt.C olumns[PKC ols[i]];
  9906                             }
  9907  
  9908                             dt.Pri maryKey =  dc;
  9909                         }
  9910                    }
  9911                }
  9912                catch (E xception e x)
  9913                {
  9914                    thro w ex;
  9915                }
  9916           }
  9917  
  9918           pu blic DataT able GetTa ble(string  strTableN ame)
  9919           {
  9920                try
  9921                {
  9922                    //Op en and que ry
  9923                    if ( _oleConn = = null) Op en();
  9924  
  9925                    if ( _oleConn.S tate != Co nnectionSt ate.Open)
  9926                    {
  9927                         throw new  Exception( "Connectio n cannot o pen error. ");
  9928                    }
  9929                    if ( SetSheetQu erySelect( ) == false )
  9930                    {
  9931                         return nul l;
  9932                    }
  9933  
  9934                    //Fi ll table
  9935                    OleD bDataAdapt er oleAdap ter = new  OleDbDataA dapter();
  9936                    oleA dapter.Sel ectCommand  = _oleCmd Select;
  9937                    Data Table dt =  new DataT able(strTa bleName);
  9938                    oleA dapter.Fil lSchema(dt , SchemaTy pe.Source) ;
  9939                    oleA dapter.Fil l(dt);
  9940  
  9941                    //if  (this.Hea ders == fa lse)
  9942                    //{
  9943                    //     MessageB ox.Show("G etTable: N o Headers" );
  9944                    //     MessageB ox.Show("G etTable: r ange: " +  _strSheetR ange.ToStr ing());
  9945  
  9946                    //     if (_str SheetRange .IndexOf(" :") > 0)
  9947                    //     {
  9948  
  9949                    //         Mess ageBox.Sho w("GetTabl e: found c olon");
  9950  
  9951                    //         stri ng FirstCo l = _strSh eetRange.S ubstring(0 , _strShee tRange.Ind exOf(":")  - 1);
  9952  
  9953                    //         Mess ageBox.Sho w("GetTabl e: FirstCo l: " + Fir stCol);
  9954  
  9955                    //         int  intCol = t his.ColNum ber(FirstC ol);
  9956  
  9957                    //         Mess ageBox.Sho w("GetTabl e: Setting  captions" );
  9958  
  9959                    //         for  (int intI  = 0; intI  < dt.Colum ns.Count;  intI++)
  9960                    //         {
  9961                    //              dt.Columns [intI].Cap tion = Col Name(intCo l + intI);
  9962                    //         }
  9963                    //     }
  9964                    //}
  9965  
  9966                    SetP rimaryKey( dt);
  9967  
  9968                    //Ca nnot delet e rows in  Excel work book
  9969                    //dt .DefaultVi ew.AllowDe lete = fal se;   Need  to allow  deletes
  9970  
  9971                    //Cl ean up
  9972                    _ole CmdSelect. Dispose();
  9973                    _ole CmdSelect  = null;
  9974                    oleA dapter.Dis pose();
  9975                    oleA dapter = n ull;
  9976  
  9977                    if ( KeepConnec tionOpen = = false) C lose();
  9978                    retu rn dt;
  9979  
  9980                }
  9981                catch (E xception e x)
  9982                {
  9983                    thro w ex;
  9984                }
  9985           }
  9986  
  9987  
  9988           pr ivate void  CheckPKEx ists(DataT able dt)
  9989           {
  9990                if (dt.P rimaryKey. Length ==  0)
  9991                    if ( this.PKCol s != null)
  9992                    {
  9993                         SetPrimary Key(dt);
  9994                    }
  9995                    else
  9996                         throw new  Exception( "Provide a n primary  key to the  datatable ");
  9997           }
  9998           pu blic DataT able SetTa ble(DataTa ble dt)
  9999           {
  10000                try
  10001                {
  10002                    Data Table dtCh anges = dt .GetChange s();
  10003                    if ( dtChanges  == null) t hrow new E xception(" There are  no changes  to be sav ed!");
  10004                    Chec kPKExists( dt);
  10005                    //Op en and que ry
  10006                    if ( _oleConn = = null) Op en();
  10007                    if ( _oleConn.S tate != Co nnectionSt ate.Open)
  10008                         throw new  Exception( "Connectio n cannot o pen error. ");
  10009                    if ( SetSheetQu erySelect( ) == false ) return n ull;
  10010  
  10011                    //Fi ll table
  10012                    OleD bDataAdapt er oleAdap ter = SetS heetQueryA dapter(dtC hanges);
  10013  
  10014                    oleA dapter.Upd ate(dtChan ges);
  10015                    //Cl ean up
  10016                    _ole CmdSelect. Dispose();
  10017                    _ole CmdSelect  = null;
  10018                    oleA dapter.Dis pose();
  10019                    oleA dapter = n ull;
  10020                    if ( KeepConnec tionOpen = = false) C lose();
  10021                    retu rn dt;
  10022                }
  10023                catch (E xception e x)
  10024                {
  10025                    thro w ex;
  10026                }
  10027           }
  10028  
  10029           #r egion Get/ Set Single  Value
  10030  
  10031           pu blic void  SetSingleC ellRange(s tring strC ell)
  10032           {
  10033                _strShee tRange = s trCell + " :" + strCe ll;
  10034           }
  10035  
  10036           pu blic objec t GetValue (string st rCell)
  10037           {
  10038                SetSingl eCellRange (strCell);
  10039                object o bjValue =  null;
  10040                //Open a nd query
  10041                if (_ole Conn == nu ll) Open() ;
  10042                if (_ole Conn.State  != Connec tionState. Open)
  10043                    thro w new Exce ption("Con nection is  not open  error.");
  10044  
  10045                if (SetS heetQueryS elect() ==  false) re turn null;
  10046                objValue  = _oleCmd Select.Exe cuteScalar ();
  10047  
  10048                _oleCmdS elect.Disp ose();
  10049                _oleCmdS elect = nu ll;
  10050                if (Keep Connection Open == fa lse) Close ();
  10051                return o bjValue;
  10052           }
  10053  
  10054           pu blic void  SetValue(s tring strC ell, objec t objValue )
  10055           {
  10056                try
  10057                {
  10058                    SetS ingleCellR ange(strCe ll);
  10059                    //Op en and que ry
  10060                    if ( _oleConn = = null) Op en();
  10061                    if ( _oleConn.S tate != Co nnectionSt ate.Open)
  10062                         throw new  Exception( "Connectio n is not o pen error. ");
  10063  
  10064                    if ( SetSheetQu erySingelV alUpdate(o bjValue.To String())  == false)  return;
  10065                    objV alue = _ol eCmdUpdate .ExecuteNo nQuery();
  10066  
  10067                    _ole CmdUpdate. Dispose();
  10068                    _ole CmdUpdate  = null;
  10069                    if ( KeepConnec tionOpen = = false) C lose();
  10070                }
  10071                catch (E xception e x)
  10072                {
  10073                    thro w ex;
  10074                }
  10075                finally
  10076                {
  10077                    if ( _oleCmdUpd ate != nul l)
  10078                    {
  10079                         _oleCmdUpd ate.Dispos e();
  10080                         _oleCmdUpd ate = null ;
  10081                    }
  10082                }
  10083  
  10084           }
  10085           #e ndregion
  10086  
  10087  
  10088           //  #endregio n
  10089  
  10090           pu blic
  10091  
  10092           #r egion Disp ose / Dest ructor
  10093    void Disp ose()
  10094           {
  10095                if (_ole Conn != nu ll)
  10096                {
  10097                    _ole Conn.Dispo se();
  10098                    _ole Conn = nul l;
  10099                }
  10100                if (_ole CmdSelect  != null)
  10101                {
  10102                    _ole CmdSelect. Dispose();
  10103                    _ole CmdSelect  = null;
  10104                }
  10105                // Dispo se of rema ining obje cts.
  10106           }
  10107           #e ndregion
  10108  
  10109           #r egion CTOR
  10110           pu blic Excel Reader()
  10111           {
  10112                //
  10113                // 
  10114                //
  10115           }
  10116           #e ndregion
  10117       }
  10118   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\ex celdocumen t.cs]]></a rrayElemen t><arrayEl ement data Type="Syst em.String" ><![CDATA[ // C# Exce l Writer l ibrary v2. 0
  10119   // by Serh iy Perevoz nyk, 2008- 2011
  10120  
  10121   using Syst em;
  10122   using Syst em.Collect ions.Gener ic;
  10123   using Syst em.Text;
  10124   using Syst em.Drawing ;
  10125   using Syst em.IO;
  10126   using Syst em.Collect ions;
  10127   using Syst em.Globali zation;
  10128  
  10129   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10130   {
  10131  
  10132       public  class Exc elDocument
  10133       {
  10134           pr ivate usho rt[] clBeg in = { BIF F.BOFRecor d, 0x8, 0x 0, 0x10, 0 x0, 0x0 };
  10135           pr ivate usho rt[] clEnd  = { BIFF. EOFRecord,  00 };
  10136  
  10137           pr ivate Dict ionary<Int 64, CellIn fo> cells;
  10138           pr ivate List <string> f ormats;
  10139           pr ivate List <FontInfo>  fonts;
  10140           pr ivate List <FormatInf o> fx;
  10141           pr ivate List <int> rows ;
  10142           pr ivate List <ColumnInf o> columns ;
  10143           pr ivate Font  defaultFo nt = new F ont("Arial ", 10);
  10144  
  10145           pu blic Excel Document()
  10146           {
  10147                CodePage  = Culture Info.Curre ntCulture. TextInfo.A NSICodePag e;
  10148                rows = n ew List<in t>();
  10149                columns  = new List <ColumnInf o>();
  10150                cells =  new Dictio nary<Int64 , CellInfo >();
  10151                fonts =  new List<F ontInfo>() ;
  10152  
  10153                fonts.Ad d(new Font Info(Defau ltFont, Ex celColor.A utomatic)) ;
  10154                fonts.Ad d(new Font Info(Defau ltFont, Ex celColor.A utomatic)) ;
  10155                fonts.Ad d(new Font Info(Defau ltFont, Ex celColor.A utomatic)) ;
  10156                fonts.Ad d(new Font Info(Defau ltFont, Ex celColor.A utomatic)) ;
  10157  
  10158                fx = new  List<Form atInfo>();
  10159  
  10160                formats  = new List <string>() ;
  10161                formats. Add("Gener al");
  10162                formats. Add("0");
  10163                formats. Add("0.00" );
  10164                formats. Add("#,##0 ");
  10165                formats. Add("#,##0 .00");
  10166                formats. Add("($#,# #0_);($#,# #0)");
  10167                formats. Add("($#,# #0_);[Red] ($#,##0)") ;
  10168                formats. Add("($#,# #0.00_);($ #,##0.00)" );
  10169                formats. Add("($#,# #0.00_);[R ed]($#,##0 .00)");
  10170                formats. Add("0%");
  10171                formats. Add("0.00% ");
  10172                formats. Add("0.00E +00");
  10173                formats. Add("# ?/? ");
  10174                formats. Add("# ??/ ??");
  10175                formats. Add("m/d/y y");
  10176                formats. Add("d-mmm -yy");
  10177                formats. Add("d-mmm ");
  10178                formats. Add("mmm-y y");
  10179                formats. Add("h:mm  AM/PM");
  10180                formats. Add("h:mm: ss AM/PM") ;
  10181                formats. Add("h:mm" );
  10182                formats. Add("h:mm: ss");
  10183                formats. Add("m/d/y y h:mm");
  10184                formats. Add("(#,## 0_);(#,##0 )");
  10185                formats. Add("(#,## 0_);[Red]( #,##0)");
  10186                formats. Add("(#,## 0.00_);(#, ##0.00)");
  10187                formats. Add("(#,## 0.00_);[Re d](#,##0.0 0)");
  10188                formats. Add("_(* # ,##0_);_(*  (#,##0);_ (* \"-\"_) ;_(@_)");
  10189                formats. Add("_($*  #,##0_);_( $* (#,##0) ;_($* \"-\ "_);_(@_)" );
  10190                formats. Add("_(* # ,##0.00_); _(* (#,##0 .00);_(* \ "-\"??_);_ (@_)");
  10191                formats. Add("_($*  #,##0.00_) ;_($* (#,# #0.00);_($ * \"-\"??_ );_(@_)");
  10192                formats. Add("mm:ss ");
  10193                formats. Add("[h]:m m:ss");
  10194                formats. Add("mm:ss .0");
  10195                formats. Add("##0.0 E+0");
  10196                formats. Add("@");
  10197           }
  10198  
  10199           in ternal Cel lInfo GetC ellInfo(in t row, int  column)
  10200           {
  10201                Int64 ke y = HashCo de(row, co lumn);
  10202                CellInfo  result;
  10203                if (cell s.TryGetVa lue(key, o ut result) )
  10204                    retu rn result;
  10205                else
  10206                {
  10207                    if ( rows.Index Of(row) ==  -1)
  10208                         rows.Add(r ow);
  10209                    resu lt = new C ellInfo(th is);
  10210                    resu lt.Row = r ow;
  10211                    resu lt.Column  = column;
  10212                    cell s.Add(key,  result);
  10213                    retu rn result;
  10214                }
  10215           }
  10216  
  10217           in ternal Lis t<string>  Formats
  10218           {
  10219                get { re turn forma ts; }
  10220           }
  10221  
  10222           in ternal Lis t<FontInfo > Fonts
  10223           {
  10224                get { re turn fonts ; }
  10225           }
  10226  
  10227           in ternal Lis t<FormatIn fo> FX
  10228           {
  10229                get { re turn fx; }
  10230           }
  10231  
  10232           pr ivate stat ic Int64 H ashCode(in t row, int  column)
  10233           {
  10234                return ( ((Int64)ro w << 32) +  (Int64)co lumn);
  10235           }
  10236  
  10237           pu blic Cell  Cell(int r ow, int co lumn)
  10238           {
  10239                return n ew Cell(ro w, column,  this);
  10240           }
  10241  
  10242           pu blic Cell  this[int r ow, int co lumn]
  10243           {
  10244                get { re turn Cell( row, colum n); }
  10245           }
  10246  
  10247           pu blic void  WriteCell( int row, i nt column,  object va lue)
  10248           {
  10249                Cell(row , column). Value = va lue;
  10250           }
  10251  
  10252           pu blic void  ColumnWidt h(int colu mn, int wi dth)
  10253           {
  10254                int idx;
  10255                ColumnIn fo info =  new Column Info();
  10256                info.Ind ex = colum n;
  10257                info.Wid th = width ;
  10258                idx = co lumns.Inde xOf(info);
  10259                if (idx  == -1)
  10260                {
  10261                    colu mns.Add(in fo);
  10262                    idx  = columns. IndexOf(in fo);
  10263                }
  10264                else
  10265                    colu mns[idx].W idth = wid th;
  10266           }
  10267  
  10268           pu blic Font  DefaultFon t
  10269           {
  10270                get { re turn defau ltFont; }
  10271           }
  10272  
  10273           // / <summary >
  10274           // / Gets or  sets the c ode page.
  10275           // / </summar y>
  10276           // / <value>T he code pa ge.</value >
  10277           pu blic int C odePage {  get; set;  }
  10278  
  10279           // / <summary >
  10280           // / Gets or  sets the n ame of the  user.
  10281           // / </summar y>
  10282           // / <value>T he name of  the user. </value>
  10283           pu blic strin g UserName  { get; se t; }
  10284  
  10285           pr ivate stat ic void Wr iteUshortA rray(Binar yWriter wr iter, usho rt[] value )
  10286           {
  10287                for (int  i = 0; i  < value.Le ngth; i++)
  10288                    writ er.Write(v alue[i]);
  10289           }
  10290  
  10291           pr ivate stat ic void Wr iteByteArr ay(BinaryW riter writ er, byte[]  value)
  10292           {
  10293                for (int  i = 0; i  < value.Le ngth; i++)
  10294                    writ er.Write(v alue[i]);
  10295           }
  10296  
  10297           pr ivate void  WriteEmpt yCell(Bina ryWriter w riter, Cel lInfo cell )
  10298           {
  10299                ushort[]  clData =  { 0x0201,  6, 0, 0, 1 5 };
  10300                clData[2 ] = (ushor t)cell.Row ;
  10301                clData[3 ] = (ushor t)cell.Col umn;
  10302                WriteUsh ortArray(w riter, clD ata);
  10303           }
  10304  
  10305           pr ivate stat ic bool Is Number(obj ect value)
  10306           {
  10307                if (valu e is sbyte ) return t rue;
  10308                if (valu e is byte)  return tr ue;
  10309                if (valu e is short ) return t rue;
  10310                if (valu e is ushor t) return  true;
  10311                if (valu e is int)  return tru e;
  10312                if (valu e is uint)  return tr ue;
  10313                if (valu e is long)  return tr ue;
  10314                if (valu e is ulong ) return t rue;
  10315                if (valu e is float ) return t rue;
  10316                if (valu e is doubl e) return  true;
  10317                if (valu e is decim al) return  true;
  10318                return f alse;
  10319           }
  10320  
  10321           pr ivate void  WriteCell Value(Bina ryWriter w riter, Cel lInfo cell )
  10322           {
  10323                if (cell .Value ==  null)
  10324                    Writ eEmptyCell (writer, c ell);
  10325                else
  10326                    if ( cell.Value  is string )
  10327                         WriteStrin gCell(writ er, cell);
  10328                    else
  10329                         if (IsNumb er(cell.Va lue))
  10330                             WriteN umberCell( writer, ce ll);
  10331                         else
  10332                             if (ce ll.Value i s DateTime )
  10333                                 Wr iteDateCel l(writer,  cell);
  10334                             else
  10335                                 Wr iteStringC ell(writer , cell);
  10336           }
  10337  
  10338           pr ivate void  WriteStri ngCell(Bin aryWriter  writer, Ce llInfo cel l)
  10339           {
  10340                string v alue;
  10341                if (cell .Value is  string)
  10342                    valu e = (strin g)cell.Val ue;
  10343                else
  10344                    valu e = cell.V alue.ToStr ing();
  10345                if (valu e.Length >  255)
  10346                    valu e = value. Substring( 0, 255);
  10347                ushort[]  clData =  { BIFF.Lab elRecord,  0, 0, 0, 0 , 0 };
  10348                byte[] p lainText =  Encoding. GetEncodin g(CodePage ).GetBytes (value);
  10349                int iLen  = plainTe xt.Length;
  10350                clData[1 ] = (ushor t)(8 + iLe n);
  10351                clData[2 ] = (ushor t)cell.Row ;
  10352                clData[3 ] = (ushor t)cell.Col umn;
  10353                clData[4 ] = (ushor t)cell.FXI ndex;
  10354                clData[5 ] = (ushor t)iLen;
  10355                WriteUsh ortArray(w riter, clD ata);
  10356                writer.W rite(plain Text);
  10357           }
  10358  
  10359           pr ivate void  WriteDate Cell(Binar yWriter wr iter, Cell Info cell)
  10360           {
  10361                DateTime  value;
  10362                if (cell .Value is  DateTime)
  10363                {
  10364                    valu e = (DateT ime)cell.V alue;
  10365                    Date Time baseD ate = new  DateTime(1 899, 12, 3 1);
  10366                    Time Span ts =  value - ba seDate;
  10367  
  10368                    doub le days =  (double)(t s.Days + 1 );
  10369                    if ( days >= 60 )
  10370                    {
  10371                         days += 1;
  10372                    }
  10373  
  10374                    usho rt[] clDat a = { BIFF .NumberRec ord, 14, ( ushort)cel l.Row, (us hort)cell. Column, (u short)cell .FXIndex } ;
  10375                    Writ eUshortArr ay(writer,  clData);
  10376                    writ er.Write(d ays);
  10377                }
  10378           }
  10379  
  10380  
  10381           pr ivate void  WriteNumb erCell(Bin aryWriter  writer, Ce llInfo cel l)
  10382           {
  10383                double d Value = Co nvert.ToDo uble(cell. Value);
  10384                ushort[]  clData =  { BIFF.Num berRecord,  14, (usho rt)cell.Ro w, (ushort )cell.Colu mn, (ushor t)cell.FXI ndex };
  10385                WriteUsh ortArray(w riter, clD ata);
  10386                writer.W rite(dValu e);
  10387           }
  10388  
  10389           pu blic void  Save(Strea m stream)
  10390           {
  10391                if (Code Page == 0)
  10392                    Code Page = Cul tureInfo.C urrentCult ure.TextIn fo.ANSICod ePage;
  10393  
  10394                BuildInt ernalTable s();
  10395  
  10396                BinaryWr iter write r = new Bi naryWriter (stream);
  10397                WriteUsh ortArray(w riter, clB egin);
  10398  
  10399                WriteAut horRecord( writer);
  10400                WriteCod epageRecor d(writer);
  10401                WriteFon tTable(wri ter);
  10402                WriteHea derRecord( writer);
  10403                WriteFoo terRecord( writer);
  10404                WriteFor matTable(w riter);
  10405                WriteWin dowProtect Record(wri ter);
  10406                WriteXFT able(write r);
  10407                WriteSty leTable(wr iter);
  10408  
  10409                for (int  i = 0; i  < columns. Count; i++ )
  10410                {
  10411                    Writ eColumnInf oRecord(wr iter, colu mns[i]);
  10412                }
  10413  
  10414                rows.Sor t();
  10415  
  10416                for (int  i = 0; i  < rows.Cou nt; i++)
  10417                {
  10418                    fore ach (var c ell in cel ls)
  10419                    {
  10420                         if (cell.V alue.Row = = rows[i])
  10421                             WriteC ellValue(w riter, cel l.Value);
  10422                    }
  10423                }
  10424  
  10425  
  10426                WriteUsh ortArray(w riter, clE nd);
  10427                writer.F lush();
  10428           }
  10429  
  10430           pr ivate void  BuildInte rnalTables ()
  10431           {
  10432                FormatIn fo info;
  10433  
  10434                foreach  (var cell  in cells)
  10435                {
  10436                    info  = new For matInfo(ce ll.Value);
  10437                    if ( cell.Value .Document. FX.IndexOf (info) ==  -1)
  10438                         cell.Value .Document. FX.Add(inf o);
  10439  
  10440                    cell .Value.FXI ndex = (by te)(cell.V alue.Docum ent.FX.Ind exOf(info)  + 21);
  10441                }
  10442           }
  10443  
  10444  
  10445           pr ivate void  WriteAuth orRecord(B inaryWrite r writer)
  10446           {
  10447                ushort[]  clData =  { 0x005c,  32 };
  10448                string w riterName;
  10449                if (stri ng.IsNullO rEmpty(Use rName))
  10450                    writ erName = s tring.Empt y.PadRight (31);
  10451                else
  10452                {
  10453                    writ erName = U serName.Su bstring(0,  UserName. Length > 3 1 ? 31 : U serName.Le ngth);
  10454                    writ erName = w riterName. PadRight(3 1);
  10455                }
  10456  
  10457                WriteUsh ortArray(w riter, clD ata);
  10458                writer.W rite(write rName);
  10459           }
  10460  
  10461           pr ivate void  WriteCode pageRecord (BinaryWri ter writer )
  10462           {
  10463                ushort[]  clData =  { BIFF.Cod epageRecor d, 0x2, 0  };
  10464                clData[2 ] = (ushor t)CodePage ;
  10465                WriteUsh ortArray(w riter, clD ata);
  10466           }
  10467  
  10468           pr ivate void  WriteHead erRecord(B inaryWrite r writer)
  10469           {
  10470                ushort[]  clData =  { BIFF.Hea derRecord,  0 };
  10471                WriteUsh ortArray(w riter, clD ata);
  10472           }
  10473  
  10474           pr ivate void  WriteFoot erRecord(B inaryWrite r writer)
  10475           {
  10476                ushort[]  clData =  { BIFF.Foo terRecord,  0 };
  10477                WriteUsh ortArray(w riter, clD ata);
  10478           }
  10479  
  10480           pr ivate void  WriteForm at(BinaryW riter writ er, string  value)
  10481           {
  10482                ushort[]  clData =  { BIFF.For matRecord,  0 };
  10483                byte[] p lainText =  Encoding. ASCII.GetB ytes(value );
  10484                int iLen  = plainTe xt.Length;
  10485                clData[1 ] = (ushor t)(1 + iLe n);
  10486                WriteUsh ortArray(w riter, clD ata);
  10487                writer.W rite((byte )iLen);
  10488                writer.W rite(plain Text);
  10489           }
  10490  
  10491           pr ivate void  WriteForm atTable(Bi naryWriter  writer)
  10492           {
  10493                for (int  i = 0; i  < formats. Count; i++ )
  10494                {
  10495                    Writ eFormat(wr iter, form ats[i]);
  10496                }
  10497           }
  10498  
  10499           pr ivate void  WriteWind owProtectR ecord(Bina ryWriter w riter)
  10500           {
  10501                ushort[]  clData =  { BIFF.Win dowProtect Record, 2,  0 };
  10502                WriteUsh ortArray(w riter, clD ata);
  10503           }
  10504  
  10505           pr ivate void  WriteColu mnInfoReco rd(BinaryW riter writ er, Column Info info)
  10506           {
  10507                ushort[]  clData =  { BIFF.Col umnInfoRec ord, 12, ( ushort)inf o.Index, ( ushort)inf o.Index, ( ushort)(in fo.Width *  256 / 7),  15, 0, 0  };
  10508                WriteUsh ortArray(w riter, clD ata);
  10509           }
  10510  
  10511           pr ivate void  WriteFont Record(Bin aryWriter  writer, Fo nt font, E xcelColor  color)
  10512           {
  10513                ushort[]  clData =  { BIFF.Fon tRecord, 0 , 0, 0, co lor.Index  };
  10514                byte[] p lainText =  Encoding. ASCII.GetB ytes(font. FontFamily .Name);
  10515                int iLen  = plainTe xt.Length;
  10516                clData[1 ] = (ushor t)(7 + iLe n);
  10517                clData[2 ] = (ushor t)(font.Si zeInPoints  * 20);
  10518                int Flag s = 0;
  10519                if (font .Bold)
  10520                    Flag s |= 1;
  10521                if (font .Italic)
  10522                    Flag s |= 2;
  10523                if (font .Underline )
  10524                    Flag s |= 4;
  10525                if (font .Strikeout )
  10526                    Flag s |= 8;
  10527                clData[3 ] = (ushor t)Flags;
  10528  
  10529                WriteUsh ortArray(w riter, clD ata);
  10530                writer.W rite((byte )iLen);
  10531                writer.W rite(plain Text);
  10532           }
  10533  
  10534           pr ivate void  WriteFont Table(Bina ryWriter w riter)
  10535           {
  10536                foreach  (var font  in fonts)
  10537                {
  10538                    Writ eFontRecor d(writer,  font.Font,  font.Colo r);
  10539                }
  10540           }
  10541  
  10542           pr ivate void  WriteXFTa ble(Binary Writer wri ter)
  10543           {
  10544                ushort[] [] clData  = { new us hort[] {0x 0243, 0x00 C, 0x0000,  0x03F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10545                                        new us hort[] {0x 0243, 0x00 C, 0x0001,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10546                                        new us hort[] {0x 0243, 0x00 C, 0x0001,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10547                                        new us hort[] {0x 0243, 0x00 C, 0x0002,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10548                                        new us hort[] {0x 0243, 0x00 C, 0x0002,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10549                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10550                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10551                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10552                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10553                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10554                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10555                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10556                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10557                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10558                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0xF7F5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10559                                        new us hort[] {0x 0243, 0x00 C, 0x0000,  0x0001, 0 x0000, 0xC E00, 0x000 0, 0x0000} ,
  10560                                        new us hort[] {0x 0243, 0x00 C, 0x2101,  0xFBF5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10561                                        new us hort[] {0x 0243, 0x00 C, 0x1F01,  0xFBF5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10562                                        new us hort[] {0x 0243, 0x00 C, 0x2001,  0xFBF5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10563                                        new us hort[] {0x 0243, 0x00 C, 0x1E01,  0xFBF5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} ,
  10564                                        new us hort[] {0x 0243, 0x00 C, 0x0901,  0xFBF5, 0 xFFF0, 0xC E00, 0x000 0, 0x0000} };
  10565                for (int  i = 0; i  < 21; i++)
  10566                {
  10567                    Writ eUshortArr ay(writer,  clData[i] );
  10568                }
  10569  
  10570                foreach  (var info  in fx)
  10571                {
  10572                    Writ eFXRecord( writer, in fo);
  10573                }
  10574           }
  10575  
  10576           pr ivate void  WriteFXRe cord(Binar yWriter wr iter, Form atInfo inf o)
  10577           {
  10578                ushort[]  clData =  new ushort [2];
  10579                clData[0 ] = BIFF.E xtendedRec ord;
  10580                clData[1 ] = 0x00C;
  10581                WriteUsh ortArray(w riter, clD ata);
  10582  
  10583                byte[] c lValue = n ew byte[4] ;
  10584                clValue[ 0] = (byte )info.Font Index;
  10585                clValue[ 1] = (byte )info.Form atIndex;
  10586                clValue[ 2] = (byte )0x01;
  10587  
  10588                byte att r = 0;
  10589                if (info .FontIndex  > 0)
  10590                    attr  |= 0x02;
  10591                if (info .Horizonta lAlignment  != Alignm ent.Genera l)
  10592                    attr  |= 0x04;
  10593                if (info .BackColor .Index !=  ExcelColor .Automatic .Index)
  10594                    attr  |= 0x10;
  10595                attr = ( byte)(attr  << 2);
  10596                clValue[ 3] = attr;
  10597                WriteByt eArray(wri ter, clVal ue);
  10598  
  10599                //(orig  & ~mask) |  (input &  mask)
  10600  
  10601                ushort h orizontalA lignment =  (ushort)i nfo.Horizo ntalAlignm ent;
  10602  
  10603                ushort b ackgroundA rea = 1;
  10604                if (info .BackColor .Index !=  ExcelColor .Automatic .Index)
  10605                {
  10606                    back groundArea  = (ushort )((backgro undArea &  ~(ushort)0 x07C0) | ( info.BackC olor.Index  & (ushort )0x07C0 >>  6) << 6);
  10607                    back groundArea  = (ushort )((backgro undArea &  ~(ushort)0 xF800) | ( ExcelColor .WindowTex t.Index &  (ushort)0x F800 >> 11 ) << 11);
  10608                }
  10609                else
  10610                    back groundArea  = 0xCE00;
  10611  
  10612                ushort[]  rest = {  horizontal Alignment,  backgroun dArea, 0x0 000, 0x000 0 };
  10613                WriteUsh ortArray(w riter, res t);
  10614           }
  10615  
  10616           pr ivate void  WriteStyl eTable(Bin aryWriter  writer)
  10617           {
  10618                byte[][]  clData =  {
  10619                                        new by te[] {0x10 ,0x80,0x03 ,0xFF},
  10620                                        new by te[] {0x11 ,0x00,0x09 ,0x43,0x6F ,0x6D,0x6D ,0x61,0x20 ,0x5B,0x30 ,0x5D},
  10621                                        new by te[] {0x12 ,0x80,0x04 ,0xFF},
  10622                                        new by te[] {0x13 ,0x00,0x0C ,0x43,0x75 ,0x72,0x72 ,0x65,0x6E ,0x63,0x79 ,0x20,0x5B ,0x30,0x5D },
  10623                                        new by te[] {0x00 ,0x80,0x00 ,0xFF},
  10624                                        new by te[] {0x14 ,0x80,0x05 ,0xFF}
  10625                                     };
  10626  
  10627                ushort[]  clHeader  = new usho rt[2];
  10628                clHeader [0] = BIFF .StyleReco rd;
  10629  
  10630                for (int  i = 0; i  < 6; i++)
  10631                {
  10632                    clHe ader[1] =  (ushort)cl Data[i].Le ngth;
  10633                    Writ eUshortArr ay(writer,  clHeader) ;
  10634                    Writ eByteArray (writer, c lData[i]);
  10635                }
  10636  
  10637           }
  10638  
  10639       }
  10640   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\ex celcolor.c s]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[//  C# Excel W riter libr ary v2.0
  10641   // by Serh iy Perevoz nyk, 2008- 2011
  10642  
  10643   using Syst em;
  10644   using Syst em.Collect ions.Gener ic;
  10645   using Syst em.Text;
  10646   using Syst em.Drawing ;
  10647  
  10648   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10649   {
  10650       public  struct Ex celColor
  10651       {
  10652           pr ivate Colo r color;
  10653           pr ivate usho rt index;
  10654  
  10655  
  10656           in ternal Exc elColor(Co lor color,  ushort in dex)
  10657           {
  10658                this.col or = color ;
  10659                this.ind ex = index ;
  10660           }
  10661  
  10662           pu blic ushor t Index
  10663           {
  10664                get { re turn this. index; }
  10665           }
  10666  
  10667           pu blic Color  Color
  10668           {
  10669                get { re turn this. color; }
  10670           }
  10671  
  10672           pu blic stati c ExcelCol or Black
  10673           {
  10674                get { re turn new E xcelColor( Color.Blac k, 0); }
  10675           }
  10676  
  10677           pu blic stati c ExcelCol or White
  10678           {
  10679                get { re turn new E xcelColor( Color.Whit e, 1); }
  10680           }
  10681  
  10682           pu blic stati c ExcelCol or Red
  10683           {
  10684                get { re turn new E xcelColor( Color.Red,  2); }
  10685           }
  10686  
  10687           pu blic stati c ExcelCol or Green
  10688           {
  10689                get { re turn new E xcelColor( Color.Gree n, 3); }
  10690           }
  10691  
  10692           pu blic stati c ExcelCol or Blue
  10693           {
  10694                get { re turn new E xcelColor( Color.Blue , 4); }
  10695           }
  10696  
  10697           pu blic stati c ExcelCol or Yellow
  10698           {
  10699                get { re turn new E xcelColor( Color.Yell ow, 5); }
  10700           }
  10701  
  10702           pu blic stati c ExcelCol or Magenta
  10703           {
  10704                get { re turn new E xcelColor( Color.Mage nta, 6); }
  10705           }
  10706  
  10707           pu blic stati c ExcelCol or Cyan
  10708           {
  10709                get { re turn new E xcelColor( Color.Cyan , 7); }
  10710           }
  10711  
  10712           pu blic stati c ExcelCol or DarkRed
  10713           {
  10714                get { re turn new E xcelColor( Color.Dark Red, 0x10) ; }
  10715           }
  10716  
  10717           pu blic stati c ExcelCol or DarkGre en
  10718           {
  10719                get { re turn new E xcelColor( Color.Dark Green, 0x1 1); }
  10720           }
  10721  
  10722           pu blic stati c ExcelCol or DarkBlu e
  10723           {
  10724                get { re turn new E xcelColor( Color.Dark Blue, 0x12 ); }
  10725           }
  10726  
  10727           pu blic stati c ExcelCol or Olive
  10728           {
  10729                get { re turn new E xcelColor( Color.Oliv e, 0x13);  }
  10730           }
  10731  
  10732           pu blic stati c ExcelCol or Purple
  10733           {
  10734                get { re turn new E xcelColor( Color.Purp le, 0x14);  }
  10735           }
  10736  
  10737           pu blic stati c ExcelCol or Teal
  10738           {
  10739                get { re turn new E xcelColor( Color.Teal , 0x15); }
  10740           }
  10741  
  10742           pu blic stati c ExcelCol or Silver
  10743           {
  10744                get { re turn new E xcelColor( Color.Silv er, 0x16);  }
  10745           }
  10746  
  10747           pu blic stati c ExcelCol or Gray
  10748           {
  10749                get { re turn new E xcelColor( Color.Gray , 0x17); }
  10750           }
  10751  
  10752           pu blic stati c ExcelCol or WindowT ext
  10753           {
  10754                get { re turn new E xcelColor( Color.From KnownColor (KnownColo r.WindowTe xt), 0x18) ; }
  10755           }
  10756  
  10757           pu blic stati c ExcelCol or WindowB ackground
  10758           {
  10759                get { re turn new E xcelColor( Color.From KnownColor (KnownColo r.Window),  0x19); }
  10760           }
  10761  
  10762           pu blic stati c ExcelCol or Automat ic
  10763           {
  10764                get { re turn new E xcelColor( Color.From KnownColor (KnownColo r.WindowTe xt), BIFF. DefaultCol or); }
  10765           }
  10766  
  10767           pu blic overr ide bool E quals(obje ct obj)
  10768           {
  10769                if (obj  is ExcelCo lor)
  10770                {
  10771                    retu rn (this.i ndex == (( ExcelColor )obj).inde x);
  10772                }
  10773                else
  10774                    retu rn false;
  10775           }
  10776  
  10777           pu blic overr ide int Ge tHashCode( )
  10778           {
  10779                return t his.index;
  10780           }
  10781       }
  10782   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\fo ntinfo.cs] ]></arrayE lement><ar rayElement  dataType= "System.St ring"><![C DATA[// C#  Excel Wri ter librar y v2.0
  10783   // by Serh iy Perevoz nyk, 2008- 2011
  10784  
  10785   using Syst em;
  10786   using Syst em.Collect ions.Gener ic;
  10787   using Syst em.Text;
  10788   using Syst em.Drawing ;
  10789  
  10790   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10791   {
  10792       intern al class F ontInfo
  10793       {
  10794           pu blic FontI nfo(Font f ont, Excel Color colo r)
  10795           {
  10796                this.Fon t = font;
  10797                this.Col or = color ;
  10798           }
  10799  
  10800           pu blic Font  Font { get ; set; }
  10801           pu blic Excel Color Colo r { get; s et; }
  10802  
  10803           pu blic overr ide bool E quals(obje ct obj)
  10804           {
  10805                if (obj  is FontInf o)
  10806                {
  10807                    Font Info info  = (FontInf o)obj;
  10808                    retu rn (this.F ont.Equals (info.Font ) && (this .Color.Equ als(info.C olor)));
  10809                }
  10810                return f alse;
  10811           }
  10812  
  10813           pu blic overr ide int Ge tHashCode( )
  10814           {
  10815                return t his.Font.G etHashCode () ^ this. Color.GetH ashCode();
  10816           }
  10817       }
  10818   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\al ignment.cs ]]></array Element><a rrayElemen t dataType ="System.S tring"><![ CDATA[// C # Excel Wr iter libra ry v2.0
  10819   // by Serh iy Perevoz nyk, 2008- 2011
  10820  
  10821   using Syst em;
  10822   using Syst em.Collect ions.Gener ic;
  10823   using Syst em.Text;
  10824  
  10825   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10826   {
  10827       public  enum Alig nment
  10828       {
  10829           Ge neral,
  10830           Le ft,
  10831           Ce ntered,
  10832           Ri ght,
  10833           Fi lled
  10834       }
  10835   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\co lumninfo.c s]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[//  C# Excel W riter libr ary v2.0
  10836   // by Serh iy Perevoz nyk, 2008- 2011
  10837  
  10838   using Syst em;
  10839   using Syst em.Collect ions.Gener ic;
  10840   using Syst em.Text;
  10841  
  10842   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10843   {
  10844       intern al class C olumnInfo
  10845       {
  10846           pu blic int W idth { get ; set; }
  10847           pu blic int I ndex { get ; set; }
  10848  
  10849           pu blic overr ide bool E quals(obje ct obj)
  10850           {
  10851                if (obj  is ColumnI nfo)
  10852                {
  10853                    retu rn (this.I ndex == (( ColumnInfo )obj).Inde x);
  10854                }
  10855                return b ase.Equals (obj);
  10856           }
  10857  
  10858           pu blic overr ide int Ge tHashCode( )
  10859           {
  10860                return b ase.GetHas hCode();
  10861           }
  10862       }
  10863   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\ce llinfo.cs] ]></arrayE lement><ar rayElement  dataType= "System.St ring"><![C DATA[// C#  Excel Wri ter librar y v2.0
  10864   // by Serh iy Perevoz nyk, 2008- 2011
  10865  
  10866   using Syst em;
  10867   using Syst em.Collect ions.Gener ic;
  10868   using Syst em.Text;
  10869   using Syst em.Drawing ;
  10870  
  10871   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10872   {
  10873       intern al class C ellInfo
  10874       {
  10875           pr ivate obje ct value;
  10876  
  10877           pu blic CellI nfo(ExcelD ocument do cument)
  10878           {
  10879                BackColo r = ExcelC olor.Autom atic;
  10880                ForeColo r = ExcelC olor.Autom atic;
  10881                Font = d ocument.De faultFont;
  10882                this.Doc ument = do cument;
  10883           }
  10884  
  10885           in ternal byt e FXIndex  { get; set ; }
  10886           pu blic Excel Document D ocument {  get; set;  }
  10887  
  10888           pu blic objec t Value
  10889           {
  10890                get { re turn value ; }
  10891                set
  10892                {
  10893                    this .value = v alue;
  10894                    if ( value is D ateTime)
  10895                         this.Forma t = Docume nt.Formats [15];
  10896                }
  10897           }
  10898  
  10899           pu blic strin g Format {  get; set;  }
  10900           pu blic Excel Color Back Color { ge t; set; }
  10901           pu blic Excel Color Fore Color { ge t; set; }
  10902           pu blic int R ow { get;  set; }
  10903           pu blic int C olumn { ge t; set; }
  10904           pu blic Font  Font { get ; set; }
  10905           pu blic Align ment Align ment { get ; set; }
  10906       }
  10907   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\fo rmatinfo.c s]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[//  C# Excel W riter libr ary v2.0
  10908   // by Serh iy Perevoz nyk, 2008- 2011
  10909  
  10910   using Syst em;
  10911   using Syst em.Collect ions.Gener ic;
  10912   using Syst em.Text;
  10913   using Syst em.Drawing ;
  10914  
  10915   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  10916   {
  10917       intern al class F ormatInfo
  10918       {
  10919           pr ivate Cell Info cell;
  10920           pr ivate int  formatInde x;
  10921           pr ivate int  fontIndex;
  10922  
  10923           pu blic Forma tInfo(Cell Info cell)
  10924           {
  10925                this.cel l = cell;
  10926                if (stri ng.IsNullO rEmpty(cel l.Format))
  10927                    form atIndex =  0;
  10928                else
  10929                    form atIndex =  cell.Docum ent.Format s.IndexOf( cell.Forma t);
  10930  
  10931                FontInfo  fontInfo  = new Font Info(cell. Font, cell .ForeColor );
  10932                fontInde x = cell.D ocument.Fo nts.IndexO f(fontInfo );
  10933                if (font Index == - 1)
  10934                {
  10935                    cell .Document. Fonts.Add( fontInfo);
  10936                    font Index = ce ll.Documen t.Fonts.In dexOf(font Info);
  10937                }
  10938  
  10939                if (font Index > 3)
  10940                    font Index++;
  10941  
  10942           }
  10943  
  10944           pu blic overr ide bool E quals(obje ct obj)
  10945           {
  10946                if (obj  is FormatI nfo)
  10947                {
  10948                    Form atInfo inf o = (Forma tInfo)obj;
  10949                    retu rn ((this. fontIndex  == info.fo ntIndex) & & (this.fo rmatIndex  == info.fo rmatIndex)
  10950                         && (this.F oreColor.I ndex == in fo.ForeCol or.Index)  && (this.B ackColor.I ndex == in fo.BackCol or.Index)
  10951                         && (this.H orizontalA lignment = = info.Hor izontalAli gnment));
  10952  
  10953                }
  10954                else
  10955                    retu rn false;
  10956           }
  10957  
  10958           pu blic overr ide int Ge tHashCode( )
  10959           {
  10960                return b ase.GetHas hCode();
  10961           }
  10962  
  10963           pu blic Excel Color Back Color
  10964           {
  10965                get { re turn cell. BackColor;  }
  10966           }
  10967  
  10968           pu blic Excel Color Fore Color
  10969           {
  10970                get { re turn cell. ForeColor;  }
  10971           }
  10972  
  10973           pu blic Font  Font
  10974           {
  10975                get { re turn cell. Font; }
  10976           }
  10977  
  10978           pu blic strin g Format
  10979           {
  10980                get { re turn cell. Format; }
  10981           }
  10982  
  10983           pu blic Align ment Horiz ontalAlign ment
  10984           {
  10985                get { re turn cell. Alignment;  }
  10986           }
  10987  
  10988           pu blic int F ormatIndex
  10989           {
  10990                get { re turn forma tIndex; }
  10991           }
  10992  
  10993           pu blic int F ontIndex
  10994           {
  10995                get { re turn fontI ndex; }
  10996           }
  10997       }
  10998   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\ce ll.cs]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [// C# Exc el Writer  library v2 .0
  10999   // by Serh iy Perevoz nyk, 2008- 2011
  11000  
  11001   using Syst em;
  11002   using Syst em.Collect ions.Gener ic;
  11003   using Syst em.Text;
  11004   using Syst em.Drawing ;
  11005  
  11006   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  11007   {
  11008       public  class Cel l
  11009       {
  11010           pr ivate Exce lDocument  document;
  11011           pr ivate Cell Info cellI nfo;
  11012  
  11013           in ternal Cel l(int row,  int colum n, ExcelDo cument doc ument)
  11014           {
  11015                this.doc ument = do cument;
  11016                cellInfo  = documen t.GetCellI nfo(row, c olumn);
  11017           }
  11018  
  11019           in ternal Exc elDocument  Document
  11020           {
  11021                get { re turn this. document;  }
  11022           }
  11023  
  11024           pu blic objec t Value
  11025           {
  11026                get { re turn cellI nfo.Value;  }
  11027                set { ce llInfo.Val ue = value ; }
  11028           }
  11029  
  11030           pu blic strin g Format
  11031           {
  11032                get { re turn cellI nfo.Format ; }
  11033                set
  11034                {
  11035                    cell Info.Forma t = value;
  11036                    if ( !document. Formats.Co ntains(val ue))
  11037                         document.F ormats.Add (value);
  11038                }
  11039           }
  11040  
  11041           pu blic Excel Color Back Color
  11042           {
  11043                get { re turn cellI nfo.BackCo lor; }
  11044                set { ce llInfo.Bac kColor = v alue; }
  11045           }
  11046  
  11047           pu blic Excel Color Fore Color
  11048           {
  11049                get { re turn cellI nfo.ForeCo lor; }
  11050                set { ce llInfo.For eColor = v alue; }
  11051           }
  11052  
  11053           pu blic Font  Font
  11054           {
  11055                get { re turn cellI nfo.Font;  }
  11056                set { ce llInfo.Fon t = value;  }
  11057           }
  11058  
  11059           pu blic Align ment Align ment
  11060           {
  11061                get { re turn cellI nfo.Alignm ent; }
  11062                set { ce llInfo.Ali gnment = v alue; }
  11063           }
  11064  
  11065           pu blic int R ow
  11066           {
  11067                get { re turn cellI nfo.Row; }
  11068           }
  11069  
  11070           pu blic int C olumn
  11071           {
  11072                get { re turn cellI nfo.Column ; }
  11073           }
  11074       }
  11075   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\bi ff.cs]]></ arrayEleme nt><arrayE lement dat aType="Sys tem.String "><![CDATA [// C# Exc el Writer  library v2 .0
  11076   // by Serh iy Perevoz nyk, 2008- 2011
  11077  
  11078   using Syst em;
  11079   using Syst em.Collect ions.Gener ic;
  11080   using Syst em.Text;
  11081  
  11082   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  11083   {
  11084       intern al sealed  class BIFF
  11085       {
  11086           pu blic const  ushort De faultColor  = 0x7fff;
  11087  
  11088           pu blic const  ushort BO FRecord =  0x0209;
  11089           pu blic const  ushort EO FRecord =  0x0A;
  11090  
  11091           pu blic const  ushort Fo ntRecord =  0x0231;
  11092           pu blic const  ushort Fo rmatRecord  = 0x001E;
  11093           pu blic const  ushort La belRecord  = 0x0204;
  11094           pu blic const  ushort Wi ndowProtec tRecord =  0x0019;
  11095           pu blic const  ushort XF Record = 0 x0243;
  11096           pu blic const  ushort He aderRecord  = 0x0014;
  11097           pu blic const  ushort Fo oterRecord  = 0x0015;
  11098           pu blic const  ushort Ex tendedReco rd = 0x024 3;
  11099           pu blic const  ushort St yleRecord  = 0x0293;
  11100           pu blic const  ushort Co depageReco rd = 0x004 2;
  11101           pu blic const  ushort Nu mberRecord  = 0x0203;
  11102           pu blic const  ushort Co lumnInfoRe cord = 0x0 07D;
  11103  
  11104       }
  11105   }]]></arra yElement>< arrayEleme nt dataTyp e="System. String"><! [CDATA[\ex celwriter. cs]]></arr ayElement> <arrayElem ent dataTy pe="System .String">< ![CDATA[//  C# Excel  Writer lib rary v2.0
  11106   // by Serh iy Perevoz nyk, 2008- 2011
  11107  
  11108   using Syst em;
  11109   using Syst em.Collect ions.Gener ic;
  11110   using Syst em.Text;
  11111   using Syst em.IO;
  11112  
  11113   namespace  ST_c08b961 ebac34ca79 93811373af cc663.cspr oj
  11114   {
  11115       /// <s ummary>
  11116       /// Pr oduces Exc el file wi thout usin g Excel
  11117       /// </ summary>
  11118       public  class Exc elWriter
  11119       {
  11120           pr ivate Stre am stream;
  11121           pr ivate Bina ryWriter w riter;
  11122  
  11123           pr ivate usho rt[] clBeg in = { 0x0 809, 8, 0,  0x10, 0,  0 };
  11124           pr ivate usho rt[] clEnd  = { 0x0A,  00 };
  11125  
  11126  
  11127           pr ivate void  WriteUsho rtArray(us hort[] val ue)
  11128           {
  11129                for (int  i = 0; i  < value.Le ngth; i++)
  11130                    writ er.Write(v alue[i]);
  11131           }
  11132  
  11133           // / <summary >
  11134           // / Initiali zes a new  instance o f the <see  cref="Exc elWriter"/ > class.
  11135           // / </summar y>
  11136           // / <param n ame="strea m">The str eam.</para m>
  11137           pu blic Excel Writer(Str eam stream )
  11138           {
  11139                this.str eam = stre am;
  11140                writer =  new Binar yWriter(st ream);
  11141           }
  11142  
  11143           // / <summary >
  11144           // / Writes t he text ce ll value.
  11145           // / </summar y>
  11146           // / <param n ame="row"> The row.</ param>
  11147           // / <param n ame="col"> The col.</ param>
  11148           // / <param n ame="value ">The stri ng value.< /param>
  11149           pu blic void  WriteCell( int row, i nt col, st ring value )
  11150           {
  11151                ushort[]  clData =  { 0x0204,  0, 0, 0, 0 , 0 };
  11152                int iLen  = value.L ength;
  11153                byte[] p lainText =  Encoding. ASCII.GetB ytes(value );
  11154                clData[1 ] = (ushor t)(8 + iLe n);
  11155                clData[2 ] = (ushor t)row;
  11156                clData[3 ] = (ushor t)col;
  11157                clData[5 ] = (ushor t)iLen;
  11158                WriteUsh ortArray(c lData);
  11159                writer.W rite(plain Text);
  11160           }
  11161  
  11162           // / <summary >
  11163           // / Writes t he date fo rmat.
  11164           // / </summar y>
  11165           // / <param n ame="value ">The date  format va lue.</para m>
  11166           pu blic void  WriteForma t(string v alue)
  11167           {
  11168                ushort[]  clData =  { 0x001E,  0 };
  11169                byte[] p lainText =  Encoding. ASCII.GetB ytes(value );
  11170                int iLen  = plainTe xt.Length;
  11171                clData[1 ] = (ushor t)(1 + iLe n);
  11172                WriteUsh ortArray(c lData);
  11173                writer.W rite((byte )iLen);
  11174                writer.W rite(plain Text);
  11175           }
  11176  
  11177           // / <summary >
  11178           // / Writes t he integer  cell valu e.
  11179           // / </summar y>
  11180           // / <param n ame="row"> The row nu mber.</par am>
  11181           // / <param n ame="col"> The column  number.</ param>
  11182           // / <param n ame="value ">The valu e.</param>
  11183           pu blic void  WriteCell( int row, i nt col, in t value)
  11184           {
  11185                ushort[]  clData =  { 0x027E,  10, 0, 0,  0 };
  11186                clData[2 ] = (ushor t)row;
  11187                clData[3 ] = (ushor t)col;
  11188                WriteUsh ortArray(c lData);
  11189                int iVal ue = (valu e << 2) |  2;
  11190                writer.W rite(iValu e);
  11191           }
  11192  
  11193           // / <summary >
  11194           // / Writes t he cell.
  11195           // / </summar y>
  11196           // / <param n ame="row"> The row.</ param>
  11197           // / <param n ame="col"> The col.</ param>
  11198           // / <param n ame="value ">The valu e.</param>
  11199           // / <param n ame="forma tIndex">In dex of the  date form at.</param >
  11200           pu blic void  WriteCell( int row, i nt col, Da teTime val ue, int fo rmatIndex)
  11201           {
  11202                DateTime  baseDate  = new Date Time(1899,  12, 31);
  11203                TimeSpan  ts = valu e - baseDa te;
  11204  
  11205                ushort d ays = (ush ort)(ts.Da ys + 1);
  11206                ushort[]  clData =  { 0x0002,  09, 0, 0 } ;
  11207                clData[2 ] = (ushor t)row;
  11208                clData[3 ] = (ushor t)col;
  11209                WriteUsh ortArray(c lData);
  11210                writer.W rite((byte )0x0);
  11211                byte ind exValue =  (byte)(for matIndex &  0x3F);
  11212                writer.W rite((byte )indexValu e);
  11213                writer.W rite((byte )0x0);
  11214                writer.W rite(days) ;
  11215           }
  11216  
  11217           // / <summary >
  11218           // / Writes t he double  cell value .
  11219           // / </summar y>
  11220           // / <param n ame="row"> The row nu mber.</par am>
  11221           // / <param n ame="col"> The column  number.</ param>
  11222           // / <param n ame="value ">The valu e.</param>
  11223           pu blic void  WriteCell( int row, i nt col, do uble value )
  11224           {
  11225                ushort[]  clData =  { 0x0203,  14, 0, 0,  0 };
  11226                clData[2 ] = (ushor t)row;
  11227                clData[3 ] = (ushor t)col;
  11228                WriteUsh ortArray(c lData);
  11229                writer.W rite(value );
  11230           }
  11231  
  11232           // / <summary >
  11233           // / Writes t he empty c ell.
  11234           // / </summar y>
  11235           // / <param n ame="row"> The row nu mber.</par am>
  11236           // / <param n ame="col"> The column  number.</ param>
  11237           pu blic void  WriteCell( int row, i nt col)
  11238           {
  11239                ushort[]  clData =  { 0x0201,  6, 0, 0, 0 x17 };
  11240                clData[2 ] = (ushor t)row;
  11241                clData[3 ] = (ushor t)col;
  11242                WriteUsh ortArray(c lData);
  11243           }
  11244  
  11245           // / <summary >
  11246           // / Must be  called onc e for crea ting XLS f ile header
  11247           // / </summar y>
  11248           pu blic void  BeginWrite ()
  11249           {
  11250                WriteUsh ortArray(c lBegin);
  11251           }
  11252  
  11253           // / <summary >
  11254           // / Ends the  writing o peration,  but do not  close the  stream
  11255           // / </summar y>
  11256           pu blic void  EndWrite()
  11257           {
  11258                WriteUsh ortArray(c lEnd);
  11259                writer.F lush();
  11260           }
  11261       }
  11262   }]]></arra yElement>< /arrayElem ents></pro perty>
  11263   <property  id="67" na me="Binary Code" data Type="Syst em.String"  state="cd ata" isArr ay="true"  descriptio n="Stores  the binary  represent ation of t he compone nt" typeCo nverter=""  UITypeEdi tor="" con tainsID="f alse" expr essionType ="None"><a rrayElemen ts arrayEl ementCount ="0"/></pr operty>
  11264   <property  id="68" na me="VSTAPr ojectName"  dataType= "System.St ring" stat e="default " isArray= "false" de scription= "Specifies  the name  of the Mic rosoft Vis ual Studio  Tools for  Applicati ons projec t. Project  names mus t be uniqu e within a  package."  typeConve rter="NOTB ROWSABLE"  UITypeEdit or="" cont ainsID="fa lse" expre ssionType= "None">SC_ c266565635 0f46b69133 2edfeaa514 79</proper ty>
  11265   <property  id="69" na me="Script Language"  dataType=" System.Str ing" state ="default"  isArray=" false" des cription=" Specifies  the progra mming lang uage used  by the scr ipt." type Converter= "Microsoft .SqlServer .VSTAHosti ng.Scripti ngLanguage s, Microso ft.SqlServ er.VSTAScr iptingLib,  Version=1 0.0.0.0, C ulture=neu tral, Publ icKeyToken =89845dcd8 080cc91" U ITypeEdito r="" conta insID="fal se" expres sionType=" None">CSha rp</proper ty>
  11266   <property  id="70" na me="ReadOn lyVariable s" dataTyp e="System. String" st ate="defau lt" isArra y="false"  descriptio n="Specifi es a comma -separated  list of r ead-only v ariables."  typeConve rter="" UI TypeEditor ="Microsof t.SqlServe r.Dts.Pipe line.Scrip tUIVariabl ePickerDlg , Microsof t.SqlServe r.TxScript , Version= 10.0.0.0,  Culture=ne utral, Pub licKeyToke n=89845dcd 8080cc91"  containsID ="false" e xpressionT ype="None" >User::fil eName2,Use r::Registr yStagingDa tabase,Use r::Registr yStagingSe rver,User: :RunIdenti fier,User: :SheetName </property >
  11267   <property  id="71" na me="ReadWr iteVariabl es" dataTy pe="System .String" s tate="defa ult" isArr ay="false"  descripti on="Specif ies a comm a-separate d list of  read/write  variables ." typeCon verter=""  UITypeEdit or="Micros oft.SqlSer ver.Dts.Pi peline.Scr iptUIVaria blePickerD lg, Micros oft.SqlSer ver.TxScri pt, Versio n=10.0.0.0 , Culture= neutral, P ublicKeyTo ken=89845d cd8080cc91 " contains ID="false"  expressio nType="Non e"></prope rty>
  11268   <property  id="72" na me="Breakp ointCollec tion" data Type="Syst em.String"  state="de fault" isA rray="true " descript ion="List  of breakpo ints prese nt on the  script." t ypeConvert er="NOTBRO WSABLE" UI TypeEditor ="" contai nsID="fals e" express ionType="N one"><arra yElements  arrayEleme ntCount="0 "/></prope rty>
  11269   <property  id="73" na me="UserCo mponentTyp eName" dat aType="Sys tem.String " state="d efault" is Array="fal se" descri ption="" t ypeConvert er="" UITy peEditor=" " contains ID="false"  expressio nType="Non e">Microso ft.SqlServ er.Dts.Pip eline.Scri ptComponen tHost, Mic rosoft.Sql Server.TxS cript, Ver sion=10.0. 0.0, Cultu re=neutral , PublicKe yToken=898 45dcd8080c c91</prope rty></prop erties>
  11270   <outputs>
  11271   <output id ="65" name ="Output 0 " descript ion="" exc lusionGrou p="0" sync hronousInp utId="0" d eleteOutpu tOnPathDet ached="fal se" hasSid eEffects=" true" dang ling="fals e" isError Out="false " isSorted ="false" e rrorOrTrun cationOper ation="" e rrorRowDis position=" NotUsed" t runcationR owDisposit ion="NotUs ed"><outpu tColumns>
  11272   <outputCol umn id="74 " name="La bReportDat e" descrip tion="" li neageId="7 4" precisi on="0" sca le="0" len gth="0" da taType="db TimeStamp"  codePage= "0" sortKe yPosition= "0" compar isonFlags= "0" specia lFlags="0"  errorOrTr uncationOp eration=""  errorRowD isposition ="NotUsed"  truncatio nRowDispos ition="Not Used" exte rnalMetada taColumnId ="0" mappe dColumnId= "0"/>
  11273   <outputCol umn id="33 1" name="P atient_ICN " descript ion="" lin eageId="33 1" precisi on="0" sca le="0" len gth="50" d ataType="s tr" codePa ge="1252"  sortKeyPos ition="0"  comparison Flags="0"  specialFla gs="0" err orOrTrunca tionOperat ion="" err orRowDispo sition="No tUsed" tru ncationRow Dispositio n="NotUsed " external MetadataCo lumnId="0"  mappedCol umnId="0"/ ></outputC olumns><ex ternalMeta dataColumn s isUsed=" False"/></ output>
  11274   </outputs>
  11275   </componen t>
  11276   <component  id="90" n ame="OLE D B Destinat ion" compo nentClassI D="{5A0B62 E8-D91D-49 F5-94A5-7B E58DE508F0 }" descrip tion="OLE  DB Destina tion" loca leId="-1"  usesDispos itions="tr ue" valida teExternal Metadata=" False" ver sion="4" p ipelineVer sion="0" c ontactInfo ="OLE DB D estination ;Microsoft  Corporati on; Micros oft SqlSer ver v10; ( C) Microso ft Corpora tion; All  Rights Res erved; htt p://www.mi crosoft.co m/sql/supp ort;4">
  11277   <propertie s>
  11278   <property  id="91" na me="Comman dTimeout"  dataType=" System.Int 32" state= "default"  isArray="f alse" desc ription="T he number  of seconds  before a  command ti mes out.   A value of  0 indicat es an infi nite time- out." type Converter= "" UITypeE ditor="" c ontainsID= "false" ex pressionTy pe="None"> 0</propert y>
  11279   <property  id="92" na me="OpenRo wset" data Type="Syst em.String"  state="de fault" isA rray="fals e" descrip tion="Spec ifies the  name of th e database  object us ed to open  a rowset. " typeConv erter="" U ITypeEdito r="" conta insID="fal se" expres sionType=" None">[EFR ].[DoD_FRA GMENT_DATA _RECEIVELO G]</proper ty>
  11280   <property  id="93" na me="OpenRo wsetVariab le" dataTy pe="System .String" s tate="defa ult" isArr ay="false"  descripti on="Specif ies the va riable tha t contains  the name  of the dat abase obje ct used to  open a ro wset." typ eConverter ="" UIType Editor=""  containsID ="false" e xpressionT ype="None" ></propert y>
  11281   <property  id="94" na me="SqlCom mand" data Type="Syst em.String"  state="de fault" isA rray="fals e" descrip tion="The  SQL comman d to be ex ecuted." t ypeConvert er="" UITy peEditor=" Microsoft. DataTransf ormationSe rvices.Con trols.Moda lMultiline StringEdit or, Micros oft.DataTr ansformati onServices .Controls,  Version=1 0.0.0.0, C ulture=neu tral, Publ icKeyToken =89845dcd8 080cc91" c ontainsID= "false" ex pressionTy pe="None"> </property >
  11282   <property  id="95" na me="Defaul tCodePage"  dataType= "System.In t32" state ="default"  isArray=" false" des cription=" Specifies  the column  code page  to use wh en code pa ge informa tion is un available  from the d ata source ." typeCon verter=""  UITypeEdit or="" cont ainsID="fa lse" expre ssionType= "None">125 2</propert y>
  11283   <property  id="96" na me="Always UseDefault CodePage"  dataType=" System.Boo lean" stat e="default " isArray= "false" de scription= "Forces th e use of t he Default CodePage p roperty va lue when d escribing  character  data." typ eConverter ="" UIType Editor=""  containsID ="false" e xpressionT ype="None" >false</pr operty>
  11284   <property  id="97" na me="Access Mode" data Type="Syst em.Int32"  state="def ault" isAr ray="false " descript ion="Speci fies the m ode used t o access t he databas e." typeCo nverter="A ccessMode"  UITypeEdi tor="" con tainsID="f alse" expr essionType ="None">3< /property>
  11285   <property  id="99" na me="FastLo adKeepIden tity" data Type="Syst em.Boolean " state="d efault" is Array="fal se" descri ption="Ind icates whe ther the v alues supp lied for i dentity co lumns will  be copied  to the de stination.  If false,  values fo r identity  columns w ill be aut o-generate d at the d estination . Applies  only if fa st load is  turned on ." typeCon verter=""  UITypeEdit or="" cont ainsID="fa lse" expre ssionType= "None">fal se</proper ty>
  11286   <property  id="100" n ame="FastL oadKeepNul ls" dataTy pe="System .Boolean"  state="def ault" isAr ray="false " descript ion="Indic ates wheth er the col umns conta ining null  will have  null inse rted in th e destinat ion. If fa lse, colum ns contain ing null w ill have t heir defau lt values  inserted a t the dest ination. A pplies onl y if fast  load is tu rned on."  typeConver ter="" UIT ypeEditor= "" contain sID="false " expressi onType="No ne">false< /property>
  11287   <property  id="101" n ame="FastL oadOptions " dataType ="System.S tring" sta te="defaul t" isArray ="false" d escription ="Specifie s options  to be used  with fast  load.  Ap plies only  if fast l oad is tur ned on." t ypeConvert er="" UITy peEditor=" " contains ID="false"  expressio nType="Non e">TABLOCK ,CHECK_CON STRAINTS</ property>
  11288   <property  id="102" n ame="FastL oadMaxInse rtCommitSi ze" dataTy pe="System .Int32" st ate="defau lt" isArra y="false"  descriptio n="Specifi es when co mmits are  issued dur ing data i nsertion.   A value o f 0 specif ies that o ne commit  will be is sued at th e end of d ata insert ion.  Appl ies only i f fast loa d is turne d on." typ eConverter ="" UIType Editor=""  containsID ="false" e xpressionT ype="None" >214748364 7</propert y></proper ties>
  11289   <connectio ns>
  11290   <connectio n id="98"  name="OleD bConnectio n" descrip tion="The  OLE DB run time conne ction used  to access  the datab ase." conn ectionMana gerID="{0F B7D2FF-214 5-4DDE-84E B-BD10F921 8E70}"/></ connection s>
  11291   <inputs>
  11292   <input id= "103" name ="OLE DB D estination  Input" de scription= "" hasSide Effects="t rue" dangl ing="false " errorOrT runcationO peration=" Insert" er rorRowDisp osition="F ailCompone nt" trunca tionRowDis position=" NotUsed">< inputColum ns>
  11293   <inputColu mn id="142 " name=""  descriptio n="" linea geId="137"  usageType ="readOnly " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="119" ma ppedColumn Id="0"/>
  11294   <inputColu mn id="158 " name=""  descriptio n="" linea geId="152"  usageType ="readOnly " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="124" ma ppedColumn Id="0"/>
  11295   <inputColu mn id="159 " name=""  descriptio n="" linea geId="155"  usageType ="readOnly " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="122" ma ppedColumn Id="0"/>
  11296   <inputColu mn id="336 " name=""  descriptio n="" linea geId="331"  usageType ="readOnly " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="335" ma ppedColumn Id="0"/>
  11297   </inputCol umns><exte rnalMetada taColumns  isUsed="Tr ue">
  11298   <externalM etadataCol umn id="11 7" name="D oD_FRAGMEN T_DATA_REC EIVELOG_ID " descript ion="" pre cision="0"  scale="0"  length="0 " dataType ="i4" code Page="0" m appedColum nId="0"/>
  11299   <externalM etadataCol umn id="11 8" name="P ATIENTSSN"  descripti on="" prec ision="0"  scale="0"  length="20 " dataType ="str" cod ePage="125 2" mappedC olumnId="0 "/>
  11300   <externalM etadataCol umn id="11 9" name="D OD_FRAGMEN T_RAW_DATA _ID" descr iption=""  precision= "0" scale= "0" length ="0" dataT ype="i4" c odePage="0 " mappedCo lumnId="0" />
  11301   <externalM etadataCol umn id="12 0" name="O RIGINALINP UTDATE" de scription= "" precisi on="0" sca le="0" len gth="0" da taType="db TimeStamp"  codePage= "0" mapped ColumnId=" 0"/>
  11302   <externalM etadataCol umn id="12 1" name="C REATED" de scription= "" precisi on="0" sca le="0" len gth="0" da taType="db TimeStamp"  codePage= "0" mapped ColumnId=" 0"/>
  11303   <externalM etadataCol umn id="12 2" name="C REATEDBY"  descriptio n="" preci sion="0" s cale="0" l ength="30"  dataType= "str" code Page="1252 " mappedCo lumnId="0" />
  11304   <externalM etadataCol umn id="12 3" name="U PDATED" de scription= "" precisi on="0" sca le="0" len gth="0" da taType="db TimeStamp"  codePage= "0" mapped ColumnId=" 0"/>
  11305   <externalM etadataCol umn id="12 4" name="U PDATEDBY"  descriptio n="" preci sion="0" s cale="0" l ength="30"  dataType= "str" code Page="1252 " mappedCo lumnId="0" />
  11306   <externalM etadataCol umn id="33 4" name="L AB_REPORT_ DATE" desc ription=""  precision ="0" scale ="0" lengt h="0" data Type="dbTi meStamp" c odePage="0 " mappedCo lumnId="0" />
  11307   <externalM etadataCol umn id="33 5" name="P ATIENT_ICN " descript ion="" pre cision="0"  scale="0"  length="5 0" dataTyp e="str" co dePage="12 52" mapped ColumnId=" 0"/></exte rnalMetada taColumns> </input>
  11308   </inputs>
  11309   <outputs>
  11310   <output id ="104" nam e="OLE DB  Destinatio n Error Ou tput" desc ription=""  exclusion Group="1"  synchronou sInputId=" 103" delet eOutputOnP athDetache d="false"  hasSideEff ects="fals e" danglin g="false"  isErrorOut ="true" is Sorted="fa lse" error OrTruncati onOperatio n="" error RowDisposi tion="NotU sed" trunc ationRowDi sposition= "NotUsed"> <outputCol umns>
  11311   <outputCol umn id="10 5" name="E rrorCode"  descriptio n="" linea geId="105"  precision ="0" scale ="0" lengt h="0" data Type="i4"  codePage=" 0" sortKey Position=" 0" compari sonFlags=" 0" special Flags="1"  errorOrTru ncationOpe ration=""  errorRowDi sposition= "NotUsed"  truncation RowDisposi tion="NotU sed" exter nalMetadat aColumnId= "0" mapped ColumnId=" 0"/>
  11312   <outputCol umn id="10 6" name="E rrorColumn " descript ion="" lin eageId="10 6" precisi on="0" sca le="0" len gth="0" da taType="i4 " codePage ="0" sortK eyPosition ="0" compa risonFlags ="0" speci alFlags="2 " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="0" mapp edColumnId ="0"/></ou tputColumn s><externa lMetadataC olumns isU sed="False "/></outpu t>
  11313   </outputs>
  11314   </componen t>
  11315   <component  id="107"  name="Deri ved Column " componen tClassID=" {2932025B- AB99-40F6- B5B8-783A7 3F80E24}"  descriptio n="Updates  column va lues using  expressio ns" locale Id="-1" us esDisposit ions="true " validate ExternalMe tadata="Tr ue" versio n="0" pipe lineVersio n="0" cont actInfo="D erived Col umn;Micros oft Corpor ation; Mic rosoft Sql Server v10 ; (C) Micr osoft Corp oration; A ll Rights  Reserved;  http://www .microsoft .com/sql/s upport;0">
  11316   <inputs>
  11317   <input id= "108" name ="Derived  Column Inp ut" descri ption="Inp ut to the  Derived Co lumn Trans formation"  hasSideEf fects="fal se" dangli ng="false"  errorOrTr uncationOp eration=""  errorRowD isposition ="NotUsed"  truncatio nRowDispos ition="Not Used"><ext ernalMetad ataColumns  isUsed="F alse"/></i nput>
  11318   </inputs>
  11319   <outputs>
  11320   <output id ="109" nam e="Derived  Column Ou tput" desc ription="D efault Out put of the  Derived C olumn Tran sformation " exclusio nGroup="1"  synchrono usInputId= "108" dele teOutputOn PathDetach ed="false"  hasSideEf fects="fal se" dangli ng="false"  isErrorOu t="false"  isSorted=" false" err orOrTrunca tionOperat ion="" err orRowDispo sition="No tUsed" tru ncationRow Dispositio n="NotUsed "><outputC olumns>
  11321   <outputCol umn id="13 7" name="F ileID" des cription=" " lineageI d="137" pr ecision="0 " scale="0 " length=" 0" dataTyp e="i4" cod ePage="0"  sortKeyPos ition="0"  comparison Flags="0"  specialFla gs="0" err orOrTrunca tionOperat ion="Compu tation" er rorRowDisp osition="F ailCompone nt" trunca tionRowDis position=" FailCompon ent" exter nalMetadat aColumnId= "0" mapped ColumnId=" 0"><proper ties>
  11322   <property  id="138" n ame="Expre ssion" dat aType="Sys tem.String " state="d efault" is Array="fal se" descri ption="Der ived Colum n Expressi on" typeCo nverter=""  UITypeEdi tor="" con tainsID="t rue" expre ssionType= "None">@[U ser::RawDa taID]</pro perty>
  11323   <property  id="139" n ame="Frien dlyExpress ion" dataT ype="Syste m.String"  state="def ault" isAr ray="false " descript ion="Deriv ed Column  Friendly E xpression"  typeConve rter="" UI TypeEditor ="" contai nsID="true " expressi onType="No tify">@[Us er::RawDat aID]</prop erty></pro perties></ outputColu mn>
  11324   <outputCol umn id="15 2" name="U pdatedby"  descriptio n="" linea geId="152"  precision ="0" scale ="0" lengt h="25" dat aType="str " codePage ="1252" so rtKeyPosit ion="0" co mparisonFl ags="0" sp ecialFlags ="0" error OrTruncati onOperatio n="Computa tion" erro rRowDispos ition="Fai lComponent " truncati onRowDispo sition="Fa ilComponen t" externa lMetadataC olumnId="0 " mappedCo lumnId="0" ><properti es>
  11325   <property  id="153" n ame="Expre ssion" dat aType="Sys tem.String " state="d efault" is Array="fal se" descri ption="Der ived Colum n Expressi on" typeCo nverter=""  UITypeEdi tor="" con tainsID="t rue" expre ssionType= "None">(DT _STR,25,12 52)"DoDFra gment_Impo rt_ETL"</p roperty>
  11326   <property  id="154" n ame="Frien dlyExpress ion" dataT ype="Syste m.String"  state="def ault" isAr ray="false " descript ion="Deriv ed Column  Friendly E xpression"  typeConve rter="" UI TypeEditor ="" contai nsID="true " expressi onType="No tify">(DT_ STR,25,125 2)"DoDFrag ment_Impor t_ETL"</pr operty></p roperties> </outputCo lumn>
  11327   <outputCol umn id="15 5" name="C reatedby"  descriptio n="" linea geId="155"  precision ="0" scale ="0" lengt h="25" dat aType="str " codePage ="1252" so rtKeyPosit ion="0" co mparisonFl ags="0" sp ecialFlags ="0" error OrTruncati onOperatio n="Computa tion" erro rRowDispos ition="Fai lComponent " truncati onRowDispo sition="Fa ilComponen t" externa lMetadataC olumnId="0 " mappedCo lumnId="0" ><properti es>
  11328   <property  id="156" n ame="Expre ssion" dat aType="Sys tem.String " state="d efault" is Array="fal se" descri ption="Der ived Colum n Expressi on" typeCo nverter=""  UITypeEdi tor="" con tainsID="t rue" expre ssionType= "None">(DT _STR,25,12 52)"DoDFra gment_Impo rt_ETL"</p roperty>
  11329   <property  id="157" n ame="Frien dlyExpress ion" dataT ype="Syste m.String"  state="def ault" isAr ray="false " descript ion="Deriv ed Column  Friendly E xpression"  typeConve rter="" UI TypeEditor ="" contai nsID="true " expressi onType="No tify">(DT_ STR,25,125 2)"DoDFrag ment_Impor t_ETL"</pr operty></p roperties> </outputCo lumn></out putColumns ><external MetadataCo lumns isUs ed="False" /></output >
  11330   <output id ="110" nam e="Derived  Column Er ror Output " descript ion="Error  Output of  the Deriv ed Column  Transforma tion" excl usionGroup ="1" synch ronousInpu tId="108"  deleteOutp utOnPathDe tached="fa lse" hasSi deEffects= "false" da ngling="fa lse" isErr orOut="tru e" isSorte d="false"  errorOrTru ncationOpe ration=""  errorRowDi sposition= "NotUsed"  truncation RowDisposi tion="NotU sed"><outp utColumns>
  11331   <outputCol umn id="11 1" name="E rrorCode"  descriptio n="" linea geId="111"  precision ="0" scale ="0" lengt h="0" data Type="i4"  codePage=" 0" sortKey Position=" 0" compari sonFlags=" 0" special Flags="1"  errorOrTru ncationOpe ration=""  errorRowDi sposition= "NotUsed"  truncation RowDisposi tion="NotU sed" exter nalMetadat aColumnId= "0" mapped ColumnId=" 0"/>
  11332   <outputCol umn id="11 2" name="E rrorColumn " descript ion="" lin eageId="11 2" precisi on="0" sca le="0" len gth="0" da taType="i4 " codePage ="0" sortK eyPosition ="0" compa risonFlags ="0" speci alFlags="2 " errorOrT runcationO peration=" " errorRow Dispositio n="NotUsed " truncati onRowDispo sition="No tUsed" ext ernalMetad ataColumnI d="0" mapp edColumnId ="0"/></ou tputColumn s><externa lMetadataC olumns isU sed="False "/></outpu t>
  11333   </outputs>
  11334   </componen t>
  11335   </componen ts>
  11336   <paths>
  11337   <path id=" 293" name= "Output 0"  descripti on="" star tId="65" e ndId="108" />
  11338   <path id=" 303" name= "Derived C olumn Outp ut" descri ption="" s tartId="10 9" endId=" 103"/>
  11339   </paths></ pipeline>< /DTS:Objec tData></DT S:Executab le>
  11340   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" DTS:Th readHint=" 0">
  11341   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11342   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11343   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  11344   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11345   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11346   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11347   <DTS:Prope rty DTS:Na me="Disabl ed">-1</DT S:Property >
  11348   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11349   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11350   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11351   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11352   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11353   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11354   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11355   <DTS:Loggi ngOptions>
  11356   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11357   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11358   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="SqlSta tementSour ce">"SELEC T '"+ REVE RSE(SUBSTR ING(REVERS E( @[User: :fileName2 ]  ),1,FIN DSTRING(RE VERSE(@[Us er::fileNa me2] ),"\\ ",1) -1))   +"'
  11359   "</DTS:Pro pertyExpre ssion>
  11360   <DTS:Prope rty DTS:Na me="Object Name">Get  File Name< /DTS:Prope rty>
  11361   <DTS:Prope rty DTS:Na me="DTSID" >{EB9A40E6 -F056-4EF1 -9E69-643B 82B814E5}< /DTS:Prope rty>
  11362   <DTS:Prope rty DTS:Na me="Descri ption">Exe cute SQL T ask</DTS:P roperty>
  11363   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  11364   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 813D3C09-0 407-425C-8 131-F95490 FA76BC}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="SELEC T '*.xlsx' &#xA;" SQL Task:CodeP age="1252"  SQLTask:R esultType= "ResultSet Type_Singl eRow" xmln s:SQLTask= "www.micro soft.com/s qlserver/d ts/tasks/s qltask"><S QLTask:Res ultBinding  SQLTask:R esultName= "0" SQLTas k:DtsVaria bleName="U ser::Sourc eFileName" /></SQLTas k:SqlTaskD ata></DTS: ObjectData ></DTS:Exe cutable>
  11365   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" DTS:Th readHint=" 0">
  11366   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11367   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11368   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  11369   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11370   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11371   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11372   <DTS:Prope rty DTS:Na me="Disabl ed">-1</DT S:Property >
  11373   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11374   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11375   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11376   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11377   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11378   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11379   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11380   <DTS:Loggi ngOptions>
  11381   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11382   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11383   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="SqlSta tementSour ce">"DECLA RE @Doc AS  VARBINARY (MAX)
  11384  
  11385   SELECT @do c = CAST(b ulkcolumn  AS VARBINA RY(MAX))
  11386   FROM OPENR OWSET( BUL K '" + @[U ser::fileN ame2]  +"' , SINGLE_B LOB ) AS x   
  11387  
  11388   INSERT INT O [EFR].[D OD_FRAGMEN T_RAW_DATA ]
  11389               ([SOURCE_ LAB]
  11390               ,[FILE_DA TA]
  11391               ,[ORIGINA L_NAME]
  11392               ,[CONTENT _TYPE]
  11393               ,[CREATED BY]
  11394               ,[CREATED ]
  11395               ,[UPDATED BY]
  11396               ,[UPDATED ])
  11397        VALUE S
  11398               (replace( '"+ REVERS E(SUBSTRIN G(REVERSE(  @[User::f ileName2]   ),1,FINDS TRING(REVE RSE(@[User ::fileName 2] ),"\\", 1) -1))  + "','"+ REV ERSE(SUBST RING(REVER SE( @[User ::fileName 2]  ),1,FI NDSTRING(R EVERSE(@[U ser::fileN ame2] ),". ",1) ))  + "','')
  11399               ,@Doc
  11400               ,'"+ REVE RSE(SUBSTR ING(REVERS E( @[User: :fileName2 ]  ),1,FIN DSTRING(RE VERSE(@[Us er::fileNa me2] ),"\\ ",1) -1))   +"'
  11401               ,'Excel'
  11402               ,'ETL Pro cess'
  11403               ,GetDate( )
  11404               ,'ETL Pro cess'
  11405               ,GetDate( ));
  11406   SELECT T=C ast(isnull (IDENT_CUR RENT('EFR. DOD_Fragme nt_Raw_Dat a'),0) as  int)
  11407   "</DTS:Pro pertyExpre ssion>
  11408   <DTS:Prope rty DTS:Na me="Object Name">Inse rt row int o table EF R DOD_FRAG MENT_RAW_D ATA</DTS:P roperty>
  11409   <DTS:Prope rty DTS:Na me="DTSID" >{51BC1AEC -FD3D-4C1F -A13A-8514 3BD098A9}< /DTS:Prope rty>
  11410   <DTS:Prope rty DTS:Na me="Descri ption">Ins ert row in to table E FR DOD_FRA GMENT_RAW_ DATA</DTS: Property>
  11411   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  11412   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 0FB7D2FF-2 145-4DDE-8 4EB-BD10F9 218E70}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="DECLA RE @Doc AS  VARBINARY (MAX)&#xA; &#xA;SELEC T @doc = C AST(bulkco lumn AS VA RBINARY(MA X))&#xA;FR OM OPENROW SET( BULK  '\\vacrssq l40\nds_et l2$\prePro duction\Do DFragment_ Import\*.x lsx', SING LE_BLOB )  AS x  &#xA ;&#xA;INSE RT INTO [E FR].[DOD_F RAGMENT_RA W_DATA]&#x A;            ([SOURC E_LAB]&#xA ;            ,[FILE_D ATA]&#xA;             ,[ORIGINAL _NAME]&#xA ;            ,[CONTEN T_TYPE]&#x A;            ,[CREAT EDBY]&#xA;             ,[CREATED ]&#xA;            ,[U PDATEDBY]& #xA;            ,[UPD ATED])&#xA ;     VALU ES&#xA;            (r eplace('*. xlsx','.xl sx','')&#x A;            ,@Doc&# xA;            ,'*.xl sx'&#xA;            , 'Excel'&#x A;            ,'ETL P rocess'&#x A;            ,GetDat e()&#xA;            , 'ETL Proce ss'&#xA;            , GetDate()) ;&#xA;SELE CT T=Cast( isnull(IDE NT_CURRENT ('EFR.DOD_ Fragment_R aw_Data'), 0) as int) &#xA;" SQL Task:CodeP age="1252"  SQLTask:R esultType= "ResultSet Type_Singl eRow" xmln s:SQLTask= "www.micro soft.com/s qlserver/d ts/tasks/s qltask"><S QLTask:Res ultBinding  SQLTask:R esultName= "0" SQLTas k:DtsVaria bleName="U ser::RawDa taID"/></S QLTask:Sql TaskData>< /DTS:Objec tData></DT S:Executab le>
  11413   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.File SystemTask .FileSyste mTask, Mic rosoft.Sql Server.Fil eSystemTas k, Version =10.0.0.0,  Culture=n eutral, Pu blicKeyTok en=89845dc d8080cc91"  DTS:Threa dHint="0">
  11414   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11415   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11416   <DTS:Prope rty DTS:Na me="TaskCo ntact">Fil e System T ask;Micros oft Corpor ation; Mic rosoft SQL  Server 20 08; Â© 200 7 Microsof t Corporat ion; All R ights Rese rved;http: //www.micr osoft.com/ sql/suppor t/default. asp;1</DTS :Property>
  11417   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11418   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11419   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11420   <DTS:Prope rty DTS:Na me="Disabl ed">-1</DT S:Property >
  11421   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11422   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11423   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11424   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11425   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11426   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11427   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11428   <DTS:Loggi ngOptions>
  11429   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11430   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11431   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  11432   <DTS:Prope rty DTS:Na me="Object Name">Rena me and Mov e file in  Archive di rectory</D TS:Propert y>
  11433   <DTS:Prope rty DTS:Na me="DTSID" >{0EB8D847 -B611-442D -A488-2B32 B4AD0BE3}< /DTS:Prope rty>
  11434   <DTS:Prope rty DTS:Na me="Descri ption">Ren ame and Mo ve file in  Archive d irectory</ DTS:Proper ty>
  11435   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Fi leSystemTa sk.FileSys temTask, M icrosoft.S qlServer.F ileSystemT ask, Versi on=10.0.0. 0, Culture =neutral,  PublicKeyT oken=89845 dcd8080cc9 1</DTS:Pro perty>
  11436   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><F ileSystemD ata TaskOp erationTyp e="RenameF ile" Opera tionName=" " TaskOver writeDestF ile="True"  TaskSourc ePath="Use r::fileNam e2" TaskIs SourceVari able="True " TaskDest inationPat h="User::D estination " TaskIsDe stinationV ariable="T rue" TaskF ileAttribu tes="Norma l"/></DTS: ObjectData ></DTS:Exe cutable>
  11437   <DTS:Prece denceConst raint>
  11438   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11439   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11440   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11441   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{74BD3 D89-C559-4 3CF-A691-8 0F7ACDBD1E A}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{EB9A4 0E6-F056-4 EF1-9E69-6 43B82B814E 5}" DTS:Is From="0"/>
  11442   <DTS:Prope rty DTS:Na me="Object Name">Cons traint</DT S:Property >
  11443   <DTS:Prope rty DTS:Na me="DTSID" >{11F7A73E -B05C-4CD8 -A5F3-8800 D7410426}< /DTS:Prope rty>
  11444   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11445   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11446   <DTS:Prece denceConst raint>
  11447   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11448   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11449   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11450   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{EB9A4 0E6-F056-4 EF1-9E69-6 43B82B814E 5}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{51BC1 AEC-FD3D-4 C1F-A13A-8 5143BD098A 9}" DTS:Is From="0"/>
  11451   <DTS:Prope rty DTS:Na me="Object Name">Cons traint 1</ DTS:Proper ty>
  11452   <DTS:Prope rty DTS:Na me="DTSID" >{027ACA1A -4953-4EFD -B701-F133 E98257B2}< /DTS:Prope rty>
  11453   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11454   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11455   <DTS:Prece denceConst raint>
  11456   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11457   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11458   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11459   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{51BC1 AEC-FD3D-4 C1F-A13A-8 5143BD098A 9}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{0EB8D 847-B611-4 42D-A488-2 B32B4AD0BE 3}" DTS:Is From="0"/>
  11460   <DTS:Prope rty DTS:Na me="Object Name">Cons traint 2</ DTS:Proper ty>
  11461   <DTS:Prope rty DTS:Na me="DTSID" >{E18F93D5 -B763-4566 -A2EC-C06E 4EFFAD0D}< /DTS:Prope rty>
  11462   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11463   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11464   <DTS:Prece denceConst raint>
  11465   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11466   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11467   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11468   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{C6BE0 400-BE02-4 059-810C-D 62CF3DED1A A}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{74BD3 D89-C559-4 3CF-A691-8 0F7ACDBD1E A}" DTS:Is From="0"/>
  11469   <DTS:Prope rty DTS:Na me="Object Name">Cons traint 5</ DTS:Proper ty>
  11470   <DTS:Prope rty DTS:Na me="DTSID" >{F75D04B1 -1EDB-463D -A818-3239 107E2799}< /DTS:Prope rty>
  11471   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11472   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11473   <DTS:Prope rty DTS:Na me="Object Name">Fore ach Loop C ontainer</ DTS:Proper ty>
  11474   <DTS:Prope rty DTS:Na me="DTSID" >{4AC9E9F7 -8B22-43B0 -9254-56C7 86896F83}< /DTS:Prope rty>
  11475   <DTS:Prope rty DTS:Na me="Descri ption">For each Loop  Container< /DTS:Prope rty>
  11476   <DTS:Prope rty DTS:Na me="Creati onName">ST OCK:FOREAC HLOOP</DTS :Property>
  11477   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y>
  11478   <DTS:ForEa chVariable Mapping>
  11479   <DTS:Prope rty DTS:Na me="Variab leName">Us er::fileNa me2</DTS:P roperty>
  11480   <DTS:Prope rty DTS:Na me="ValueI ndex" DTS: DataType=" 3">0</DTS: Property>
  11481   <DTS:Prope rty DTS:Na me="Object Name">{CAA 0966D-8A17 -4B0B-9F3D -D4F4AAD38 FDD}</DTS: Property>
  11482   <DTS:Prope rty DTS:Na me="DTSID" >{CAA0966D -8A17-4B0B -9F3D-D4F4 AAD38FDD}< /DTS:Prope rty>
  11483   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11484   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:F orEachVari ableMappin g></DTS:Ex ecutable>
  11485   <DTS:Prece denceConst raint>
  11486   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11487   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11488   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11489   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{5F604 A57-6EB7-4 CF1-B00C-B 03075D35E5 4}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{4AC9E 9F7-8B22-4 3B0-9254-5 6C786896F8 3}" DTS:Is From="0"/>
  11490   <DTS:Prope rty DTS:Na me="Object Name">Cons traint</DT S:Property >
  11491   <DTS:Prope rty DTS:Na me="DTSID" >{2875B41F -412C-430A -A33A-C469 614BDA68}< /DTS:Prope rty>
  11492   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11493   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11494   <DTS:Prope rty DTS:Na me="Object Name">Sequ ence Conta iner</DTS: Property>
  11495   <DTS:Prope rty DTS:Na me="DTSID" >{A0C0B676 -0A7F-4960 -9C69-3DEB B8E2E8A5}< /DTS:Prope rty>
  11496   <DTS:Prope rty DTS:Na me="Descri ption">Seq uence Cont ainer</DTS :Property>
  11497   <DTS:Prope rty DTS:Na me="Creati onName">ST OCK:SEQUEN CE</DTS:Pr operty>
  11498   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y></DTS:Ex ecutable>
  11499   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91" DTS:Th readHint=" 0">
  11500   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11501   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11502   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  11503   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11504   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11505   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11506   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  11507   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11508   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11509   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11510   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11511   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11512   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11513   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11514   <DTS:Loggi ngOptions>
  11515   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11516   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11517   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="SqlSta tementSour ce">"Decla re @Date d atetime=ge tdate() 
  11518   Exec dbo.u sp_ETL_Pac kageEnd "  + (DT_STR,  20,1252)  @[User::iP ackageID]  + ",@Date, 'Succeeded '"</DTS:Pr opertyExpr ession>
  11519   <DTS:Prope rty DTS:Na me="Object Name">LogP ackage End </DTS:Prop erty>
  11520   <DTS:Prope rty DTS:Na me="DTSID" >{a552ebd5 -5d67-4db9 -94a4-93f4 cf97dcc2}< /DTS:Prope rty>
  11521   <DTS:Prope rty DTS:Na me="Descri ption">Exe cute SQL T ask</DTS:P roperty>
  11522   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  11523   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 89847F46-E 6DC-4CA1-9 936-7405D1 665722}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="Decla re @Date d atetime=ge tdate() &# xA;Exec db o.usp_ETL_ PackageEnd  0,@Date,' Succeeded' " SQLTask: CodePage=" 1252" SQLT ask:Result Type="Resu ltSetType_ None" xmln s:SQLTask= "www.micro soft.com/s qlserver/d ts/tasks/s qltask"/>< /DTS:Objec tData></DT S:Executab le>
  11524   <DTS:Prece denceConst raint>
  11525   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11526   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11527   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11528   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{A0C0B 676-0A7F-4 960-9C69-3 DEBB8E2E8A 5}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{a552e bd5-5d67-4 db9-94a4-9 3f4cf97dcc 2}" DTS:Is From="0"/>
  11529   <DTS:Prope rty DTS:Na me="Object Name">Cons traint</DT S:Property >
  11530   <DTS:Prope rty DTS:Na me="DTSID" >{37DA3F27 -C935-40BF -96BB-14D1 CFBA7016}< /DTS:Prope rty>
  11531   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11532   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11533   <DTS:Prece denceConst raint>
  11534   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11535   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11536   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11537   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{22f4c 3e5-ee67-4 b59-9f02-3 20eb07c274 8}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{A0C0B 676-0A7F-4 960-9C69-3 DEBB8E2E8A 5}" DTS:Is From="0"/>
  11538   <DTS:Prope rty DTS:Na me="Object Name">Cons traint 1</ DTS:Proper ty>
  11539   <DTS:Prope rty DTS:Na me="DTSID" >{420F9BC6 -B9AF-48B4 -8C61-3747 B55ACA19}< /DTS:Prope rty>
  11540   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11541   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11542   <DTS:Prope rty DTS:Na me="Object Name">DoDF ragment_Im port</DTS: Property>
  11543   <DTS:Prope rty DTS:Na me="DTSID" >{95066CD4 -BDF9-47A7 -AE1C-EB9D ACDAB011}< /DTS:Prope rty>
  11544   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11545   <DTS:Prope rty DTS:Na me="Creati onName">SS IS.Package .2</DTS:Pr operty>
  11546   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y>
  11547   <DTS:Event Handler>
  11548   <DTS:Prope rty DTS:Na me="EventI D">6094914 </DTS:Prop erty>
  11549   <DTS:Prope rty DTS:Na me="EventN ame">OnErr or</DTS:Pr operty>
  11550   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11551   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11552   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11553   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  11554   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11555   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11556   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11557   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11558   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11559   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11560   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11561   <DTS:Varia ble>
  11562   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  11563   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  11564   <DTS:Prope rty DTS:Na me="Namesp ace">User< /DTS:Prope rty>
  11565   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  11566   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  11567   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">2345</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="8"> PII                     </DTS:Vari ableValue>
  11568   <DTS:Prope rty DTS:Na me="Object Name">Noti ficationGr oup</DTS:P roperty>
  11569   <DTS:Prope rty DTS:Na me="DTSID" >{942EB2F7 -5103-401E -B216-E3FB 2DFB80F3}< /DTS:Prope rty>
  11570   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11571   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  11572   <DTS:Varia ble>
  11573   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property >
  11574   <DTS:Prope rty DTS:Na me="Evalua teAsExpres sion">0</D TS:Propert y>
  11575   <DTS:Prope rty DTS:Na me="Namesp ace">Syste m</DTS:Pro perty>
  11576   <DTS:Prope rty DTS:Na me="ReadOn ly">0</DTS :Property>
  11577   <DTS:Prope rty DTS:Na me="RaiseC hangedEven t">0</DTS: Property>
  11578   <DTS:Prope rty DTS:Na me="Includ eInDebugDu mp">6789</ DTS:Proper ty><DTS:Va riableValu e DTS:Data Type="11"> -1</DTS:Va riableValu e>
  11579   <DTS:Prope rty DTS:Na me="Object Name">Prop agate</DTS :Property>
  11580   <DTS:Prope rty DTS:Na me="DTSID" >{38C7A4E8 -B485-4C89 -AA87-46F2 0060DA58}< /DTS:Prope rty>
  11581   <DTS:Prope rty DTS:Na me="Descri ption">The  propagate  property  of the eve nt</DTS:Pr operty>
  11582   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:V ariable>
  11583   <DTS:Loggi ngOptions>
  11584   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11585   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11586   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions>
  11587   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Send MailTask.S endMailTas k, Microso ft.SqlServ er.SendMai lTask, Ver sion=10.0. 0.0, Cultu re=neutral , PublicKe yToken=898 45dcd8080c c91">
  11588   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11589   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11590   <DTS:Prope rty DTS:Na me="TaskCo ntact">Sen d Mail Tas k; Microso ft Corpora tion; Micr osoft SQL  Server 200 8; Â© 2007  Microsoft  Corporati on; All Ri ghts Reser ved;http:/ /www.micro soft.com/s ql/support /default.a sp;1</DTS: Property>
  11591   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11592   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11593   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11594   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  11595   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11596   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11597   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11598   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11599   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11600   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11601   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11602   <DTS:Loggi ngOptions>
  11603   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11604   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11605   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="FromLi ne">@[Syst em::Packag eName] + " _Errors@VA .gov"</DTS :PropertyE xpression> <DTS:Prope rtyExpress ion DTS:Na me="Messag eSource">@ [System::P ackageName ] + " vers ion: " + ( DT_STR, 10 , 1252) @[ System::Ve rsionMajor ]+"."+(DT_ STR, 10, 1 252) @[Sys tem::Versi onMinor]+" ."+(DT_STR , 10, 1252 ) @[System ::VersionB uild]  + "  has Encou ntered the  following  Error
  11606   ErrorNumbe r: " + (DT _STR, 100,  1252) @[S ystem::Err orCode] +  "
  11607   ErrorDescr iption: '"  +  @[Syst em::ErrorD escription ] + "'"</D TS:Propert yExpressio n><DTS:Pro pertyExpre ssion DTS: Name="Subj ect">@[Sys tem::Packa geName] +  " version:  " + (DT_S TR, 10, 12 52) @[Syst em::Versio nMajor]+". "+(DT_STR,  10, 1252)  @[System: :VersionMi nor]+"."+( DT_STR, 10 , 1252) @[ System::Ve rsionBuild ]  + " has  Encounter ed an Erro r"</DTS:Pr opertyExpr ession><DT S:Property Expression  DTS:Name= "ToLine">@ [User::Not ificationG roup]</DTS :PropertyE xpression>
  11608   <DTS:Prope rty DTS:Na me="Object Name">Send  Mail Task </DTS:Prop erty>
  11609   <DTS:Prope rty DTS:Na me="DTSID" >{30e28df1 -dad7-4450 -a4f6-33f9 571b7327}< /DTS:Prope rty>
  11610   <DTS:Prope rty DTS:Na me="Descri ption">Sen d Mail Tas k</DTS:Pro perty>
  11611   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Se ndMailTask .SendMailT ask, Micro soft.SqlSe rver.SendM ailTask, V ersion=10. 0.0.0, Cul ture=neutr al, Public KeyToken=8 9845dcd808 0cc91</DTS :Property>
  11612   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S endMailTas k:SendMail TaskData S endMailTas k:SMTPServ er="{FEEAB 110-A4EE-4 071-A8C0-8 BEBEEF94DF D}" SendMa ilTask:Fro m=" P I                                " SendMail Task:To=" PII                     " SendMail Task:CC=""  SendMailT ask:BCC=""  SendMailT ask:Subjec t="DoDFrag ment_Impor t version:  1.0.865 h as Encount ered an Er ror" SendM ailTask:Pr iority="No rmal" Send MailTask:M essageSour ceType="Di rectInput"  SendMailT ask:Messag eSource="D oDFragment _Import ve rsion: 1.0 .865 has E ncountered  the follo wing Error &#xA;Error Number: 0& #xA;ErrorD escription : ''" xmln s:SendMail Task="www. microsoft. com/sqlser ver/dts/ta sks/sendma iltask"/>< /DTS:Objec tData></DT S:Executab le>
  11613   <DTS:Execu table DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=10.0.0 .0, Cultur e=neutral,  PublicKey Token=8984 5dcd8080cc 91">
  11614   <DTS:Prope rty DTS:Na me="Execut ionLocatio n">0</DTS: Property>
  11615   <DTS:Prope rty DTS:Na me="Execut ionAddress "></DTS:Pr operty>
  11616   <DTS:Prope rty DTS:Na me="TaskCo ntact">Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; Â© 20 07 Microso ft Corpora tion; All  Rights Res erved;http ://www.mic rosoft.com /sql/suppo rt/default .asp;1</DT S:Property >
  11617   <DTS:Prope rty DTS:Na me="ForceE xecValue"> 0</DTS:Pro perty>
  11618   <DTS:Prope rty DTS:Na me="ExecVa lue" DTS:D ataType="3 ">0</DTS:P roperty>
  11619   <DTS:Prope rty DTS:Na me="ForceE xecutionRe sult">-1</ DTS:Proper ty>
  11620   <DTS:Prope rty DTS:Na me="Disabl ed">0</DTS :Property>
  11621   <DTS:Prope rty DTS:Na me="FailPa ckageOnFai lure">0</D TS:Propert y>
  11622   <DTS:Prope rty DTS:Na me="FailPa rentOnFail ure">0</DT S:Property >
  11623   <DTS:Prope rty DTS:Na me="MaxErr orCount">1 </DTS:Prop erty>
  11624   <DTS:Prope rty DTS:Na me="ISOLev el">104857 6</DTS:Pro perty>
  11625   <DTS:Prope rty DTS:Na me="Locale ID">-1</DT S:Property >
  11626   <DTS:Prope rty DTS:Na me="Transa ctionOptio n">1</DTS: Property>
  11627   <DTS:Prope rty DTS:Na me="DelayV alidation" >0</DTS:Pr operty>
  11628   <DTS:Loggi ngOptions>
  11629   <DTS:Prope rty DTS:Na me="Loggin gMode">0</ DTS:Proper ty>
  11630   <DTS:Prope rty DTS:Na me="Filter Kind">1</D TS:Propert y>
  11631   <DTS:Prope rty DTS:Na me="EventF ilter" DTS :DataType= "8"></DTS: Property>< /DTS:Loggi ngOptions> <DTS:Prope rtyExpress ion DTS:Na me="SqlSta tementSour ce">"exec  dbo.usp_ET L_PackageE rror " + ( DT_WSTR, 5 0) @[User: :iPackageI D] + " ,'"  + @[Syste m::SourceN ame] + "', " + (DT_WS TR, 50) @[ System::Er rorCode] +  ",'" + @[ System::Er rorDescrip tion]  +"'
  11632   GO
  11633   Declare @D ate dateti me=getdate () 
  11634   Exec dbo.u sp_ETL_Pac kageEnd 0, @Date,'Fai led'
  11635   go
  11636   "</DTS:Pro pertyExpre ssion>
  11637   <DTS:Prope rty DTS:Na me="Object Name">Log  Package Er ror</DTS:P roperty>
  11638   <DTS:Prope rty DTS:Na me="DTSID" >{ff9b2dbc -4082-4b72 -946b-4bda a499b0b6}< /DTS:Prope rty>
  11639   <DTS:Prope rty DTS:Na me="Descri ption">Exe cute SQL T ask</DTS:P roperty>
  11640   <DTS:Prope rty DTS:Na me="Creati onName">Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=10.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91</DTS: Property>
  11641   <DTS:Prope rty DTS:Na me="Disabl eEventHand lers">0</D TS:Propert y><DTS:Obj ectData><S QLTask:Sql TaskData S QLTask:Con nection="{ 89847F46-E 6DC-4CA1-9 936-7405D1 665722}" S QLTask:Tim eOut="0" S QLTask:IsS toredProc= "False" SQ LTask:Bypa ssPrepare= "True" SQL Task:SqlSt mtSourceTy pe="Direct Input" SQL Task:SqlSt atementSou rce="exec  dbo.usp_ET L_PackageE rror 0 ,'' ,0,''&#xA; GO&#xA;Dec lare @Date  datetime= getdate()  &#xA;Exec  dbo.usp_ET L_PackageE nd 0,@Date ,'Failed'& #xA;go&#xA ;" SQLTask :CodePage= "1252" SQL Task:Resul tType="Res ultSetType _None" xml ns:SQLTask ="www.micr osoft.com/ sqlserver/ dts/tasks/ sqltask"/> </DTS:Obje ctData></D TS:Executa ble>
  11642   <DTS:Prece denceConst raint>
  11643   <DTS:Prope rty DTS:Na me="Value" >0</DTS:Pr operty>
  11644   <DTS:Prope rty DTS:Na me="EvalOp ">2</DTS:P roperty>
  11645   <DTS:Prope rty DTS:Na me="Logica lAnd">-1</ DTS:Proper ty>
  11646   <DTS:Prope rty DTS:Na me="Expres sion"></DT S:Property ><DTS:Exec utable IDR EF="{ff9b2 dbc-4082-4 b72-946b-4 bdaa499b0b 6}" DTS:Is From="-1"/ ><DTS:Exec utable IDR EF="{30e28 df1-dad7-4 450-a4f6-3 3f9571b732 7}" DTS:Is From="0"/>
  11647   <DTS:Prope rty DTS:Na me="Object Name">Cons traint</DT S:Property >
  11648   <DTS:Prope rty DTS:Na me="DTSID" >{94212ef8 -6f30-460e -a650-d7d8 a0dab23f}< /DTS:Prope rty>
  11649   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11650   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P recedenceC onstraint>
  11651   <DTS:Prope rty DTS:Na me="DTSID" >{10D189CF -4798-42C0 -A246-5F2A 12FB76B7}< /DTS:Prope rty>
  11652   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11653   <DTS:Prope rty DTS:Na me="Creati onName">On Error</DTS :Property> </DTS:Even tHandler>
  11654   <DTS:Packa geVariable >
  11655   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11656   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11657   <DTS:Prope rty DTS:Na me="Object Name">{027 ACA1A-4953 -4EFD-B701 -F133E9825 7B2}</DTS: Property>
  11658   <DTS:Prope rty DTS:Na me="DTSID" >{B97477CF -299A-41CF -B02D-A72A 28EE7CB5}< /DTS:Prope rty>
  11659   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11660   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11661   <DTS:Packa geVariable >
  11662   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Dts EventHandl er xmlns:x sd="http:/ /www.w3.or g/2001/XML Schema" xm lns:xsi="h ttp://www. w3.org/200 1/XMLSchem a-instance " xmlns:dd l2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2" xmlns :ddl2_2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2/2 " xmlns:dd l100_100=" http://sch emas.micro soft.com/a nalysisser vices/2008 /engine/10 0/100" xml ns:ddl200= "http://sc hemas.micr osoft.com/ analysisse rvices/201 0/engine/2 00" xmlns: ddl200_200 ="http://s chemas.mic rosoft.com /analysiss ervices/20 10/engine/ 200/200" x mlns:dwd=" http://sch emas.micro soft.com/D ataWarehou se/Designe r/1.0"&gt; &lt;dwd:Dt sEventHand lerDiagram &gt;&lt;dw d:Layout&g t;&lt;dds& gt;
  11663     &lt;diag ram fontcl sid="{0BE3 5203-8F91- 11CE-9DE3- 00AA004BB8 51}" mouse iconclsid= "{0BE35204 -8F91-11CE -9DE3-00AA 004BB851}"  defaultla yout="Micr osoft.Data Warehouse. Layout.Gra phLayout10 0" default lineroute= "Microsoft .DataWareh ouse.Layou t.GraphLay out100" ve rsion="7"  nextobject ="9" scale ="100" pag ebreakanch orx="0" pa gebreakanc hory="0" p agebreaksi zex="0" pa gebreaksiz ey="0" scr ollleft="0 " scrollto p="0" grid x="150" gr idy="150"  marginx="1 000" margi ny="1000"  zoom="100"  x="31829"  y="9604"  backcolor= "15334399"  defaultpe rsistence= "2" PrintP ageNumbers Mode="3" P rintMargin Top="0" Pr intMarginB ottom="635 " PrintMar ginLeft="0 " PrintMar ginRight=" 0" marquee selectionm ode="1" mo usepointer ="0" snapt ogrid="0"  autotypean notation=" 1" showscr ollbars="0 " viewpage breaks="0"  donotforc econnector sbehindsha pes="1" ba ckpicturec lsid="{000 00000-0000 -0000-0000 -000000000 000}"&gt;
  11664       &lt;fo nt&gt;
  11665         &lt; ddsxmlobje ctstreamwr apper bina ry="010100 0090018038 0100065461 686f6d61"  /&gt;
  11666       &lt;/f ont&gt;
  11667       &lt;mo useicon&gt ;&lt;ddsxm lobjectstr eamwrapper  binary="6 c740000000 00000" /&g t;
  11668       &lt;/m ouseicon&g t;
  11669     &lt;/dia gram&gt;
  11670     &lt;layo utmanager& gt;&lt;dds xmlobj /&g t;
  11671     &lt;/lay outmanager &gt;
  11672     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "2209" top ="3003" lo gicalid="4 " controli d="1" mast erid="0" h int1="0" h int2="0" w idth="3598 " height=" 1164" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;&lt; control&gt ;&lt;ddsxm lobjectstr eaminitwra pper binar y="0008000 00e0e00008 c040000" / &gt;
  11673       &lt;/c ontrol&gt;
  11674       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{ff9b2db c-4082-4b7 2-946b-4bd aa499b0b6} " vartype= "8" /&gt;
  11675           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11676         &lt; /ddsxmlobj &gt;
  11677       &lt;/l ayoutobjec t&gt;
  11678       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11679     &lt;/dds control&gt ;
  11680     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Sen d Mail Tas k" left="2 709" top=" 5505" logi calid="5"  controlid= "2" master id="0" hin t1="0" hin t2="0" wid th="3598"  height="11 64" noresi ze="0" nom ove="0" no defaultatt achpoints= "0" autodr ag="1" use defaultidd shape="1"  selectable ="1" shows electionha ndles="1"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;&lt;co ntrol&gt;& lt;ddsxmlo bjectstrea minitwrapp er binary= "000800000 e0e00008c0 40000" /&g t;
  11681       &lt;/c ontrol&gt;
  11682       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{30e28df 1-dad7-445 0-a4f6-33f 9571b7327} " vartype= "8" /&gt;
  11683           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11684         &lt; /ddsxmlobj &gt;
  11685       &lt;/l ayoutobjec t&gt;
  11686       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11687     &lt;/dds control&gt ;
  11688     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="3609"  top="3768"  logicalid ="6" contr olid="3" m asterid="0 " hint1="0 " hint2="0 " width="1 299" heigh t="2237" n oresize="0 " nomove=" 0" nodefau ltattachpo ints="1" a utodrag="0 " usedefau ltiddshape ="0" selec table="1"  showselect ionhandles ="0" allow nudging="1 " isannota tion="0" d ontautolay out="0" gr oupcollaps ed="0" tab stop="1" v isible="1"  snaptogri d="0"&gt;& lt;control &gt;&lt;dd sxmlobj&gt ;&lt;polyl ine endtyp edst="3" e ndtypesrc= "1" userco lor="32768 " linestyl e="0" line render="2"  customend typedstid= "0" custom endtypesrc id="0" ado rnsvisible ="1" /&gt;
  11689         &lt; /ddsxmlobj &gt;
  11690       &lt;/c ontrol&gt;
  11691       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{94212ef 8-6f30-460 e-a650-d7d 8a0dab23f} " vartype= "8" /&gt;
  11692           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  11693           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  11694         &lt; /ddsxmlobj &gt;
  11695       &lt;/l ayoutobjec t&gt;
  11696       &lt;co nnector so urceid="1"  destid="2 " sourceat tachpoint= "7" destat tachpoint= "6" segmen teditmode= "0" bendpo inteditmod e="0" bend pointvisib ility="2"  relatedid= "0" virtua l="0"&gt;& lt;point x ="4008" y= "4167" /&g t;
  11697         &lt; point x="4 008" y="48 36" /&gt;
  11698         &lt; point x="4 508" y="48 36" /&gt;
  11699         &lt; point x="4 508" y="55 05" /&gt;
  11700       &lt;/c onnector&g t;
  11701     &lt;/dds control&gt ;
  11702   &lt;/dds&g t;&lt;/dwd :Layout&gt ;&lt;/dwd: DtsEventHa ndlerDiagr am&gt;&lt; /DtsEventH andler&gt; </DTS:Prop erty>
  11703   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11704   <DTS:Prope rty DTS:Na me="Object Name">{10D 189CF-4798 -42C0-A246 -5F2A12FB7 6B7}</DTS: Property>
  11705   <DTS:Prope rty DTS:Na me="DTSID" >{7CFAD2E0 -4002-4CE4 -AF31-49D1 3F31EA3A}< /DTS:Prope rty>
  11706   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11707   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11708   <DTS:Packa geVariable >
  11709   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11710   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11711   <DTS:Prope rty DTS:Na me="Object Name">{11F 7A73E-B05C -4CD8-A5F3 -8800D7410 426}</DTS: Property>
  11712   <DTS:Prope rty DTS:Na me="DTSID" >{7C26CCC0 -278A-4B52 -AB53-0496 97B2DEA3}< /DTS:Prope rty>
  11713   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11714   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11715   <DTS:Packa geVariable >
  11716   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11717   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11718   <DTS:Prope rty DTS:Na me="Object Name">{287 5B41F-412C -430A-A33A -C469614BD A68}</DTS: Property>
  11719   <DTS:Prope rty DTS:Na me="DTSID" >{069E9F23 -08DC-4878 -8948-8569 5DA087A6}< /DTS:Prope rty>
  11720   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11721   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11722   <DTS:Packa geVariable >
  11723   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11724   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11725   <DTS:Prope rty DTS:Na me="Object Name">{37D A3F27-C935 -40BF-96BB -14D1CFBA7 016}</DTS: Property>
  11726   <DTS:Prope rty DTS:Na me="DTSID" >{3895D1F2 -38D1-458A -AD73-E6EE 6DB4FD97}< /DTS:Prope rty>
  11727   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11728   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11729   <DTS:Packa geVariable >
  11730   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11731   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11732   <DTS:Prope rty DTS:Na me="Object Name">{420 F9BC6-B9AF -48B4-8C61 -3747B55AC A19}</DTS: Property>
  11733   <DTS:Prope rty DTS:Na me="DTSID" >{3B0B53DB -8BF2-4E64 -B934-8C80 18262236}< /DTS:Prope rty>
  11734   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11735   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11736   <DTS:Packa geVariable >
  11737   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Tas kHost xmln s:xsd="htt p://www.w3 .org/2001/ XMLSchema"  xmlns:xsi ="http://w ww.w3.org/ 2001/XMLSc hema-insta nce" xmlns :ddl2="htt p://schema s.microsof t.com/anal ysisservic es/2003/en gine/2" xm lns:ddl2_2 ="http://s chemas.mic rosoft.com /analysiss ervices/20 03/engine/ 2/2" xmlns :ddl100_10 0="http:// schemas.mi crosoft.co m/analysis services/2 008/engine /100/100"  xmlns:ddl2 00="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2010/engin e/200" xml ns:ddl200_ 200="http: //schemas. microsoft. com/analys isservices /2010/engi ne/200/200 " xmlns:dw d="http:// schemas.mi crosoft.co m/DataWare house/Desi gner/1.0"& gt;&lt;dwd :DtsDataFl owDiagram& gt;&lt;dwd :Layout&gt ;&lt;dds&g t;
  11738     &lt;diag ram fontcl sid="{0BE3 5203-8F91- 11CE-9DE3- 00AA004BB8 51}" mouse iconclsid= "{0BE35204 -8F91-11CE -9DE3-00AA 004BB851}"  defaultla yout="Micr osoft.Data Warehouse. Layout.Gra phLayout10 0" default lineroute= "Microsoft .DataWareh ouse.Layou t.GraphLay out100" ve rsion="7"  nextobject ="15" scal e="100" pa gebreakanc horx="0" p agebreakan chory="0"  pagebreaks izex="0" p agebreaksi zey="0" sc rollleft=" -3795" scr olltop="-5 133" gridx ="150" gri dy="150" m arginx="10 00" margin y="1000" z oom="100"  x="18045"  y="10160"  backcolor= "15334399"  defaultpe rsistence= "2" PrintP ageNumbers Mode="3" P rintMargin Top="0" Pr intMarginB ottom="635 " PrintMar ginLeft="0 " PrintMar ginRight=" 0" marquee selectionm ode="1" mo usepointer ="0" snapt ogrid="0"  autotypean notation=" 1" showscr ollbars="0 " viewpage breaks="0"  donotforc econnector sbehindsha pes="0" ba ckpicturec lsid="{000 00000-0000 -0000-0000 -000000000 000}"&gt;
  11739       &lt;fo nt&gt;
  11740         &lt; ddsxmlobje ctstreamwr apper bina ry="010100 0090018038 0100065461 686f6d61"  /&gt;
  11741       &lt;/f ont&gt;
  11742       &lt;mo useicon&gt ;&lt;ddsxm lobjectstr eamwrapper  binary="6 c740000000 00000" /&g t;
  11743       &lt;/m ouseicon&g t;
  11744     &lt;/dia gram&gt;
  11745     &lt;layo utmanager& gt;&lt;dds xmlobj /&g t;
  11746     &lt;/lay outmanager &gt;
  11747     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cutes a cu stom scrip t." left=" -2743" top ="-4133" l ogicalid=" 6" control id="1" mas terid="0"  hint1="0"  hint2="0"  width="359 8" height= "1164" nor esize="0"  nomove="0"  nodefault attachpoin ts="0" aut odrag="1"  usedefault iddshape=" 1" selecta ble="1" sh owselectio nhandles=" 1" allownu dging="1"  isannotati on="0" don tautolayou t="0" grou pcollapsed ="0" tabst op="1" vis ible="1" s naptogrid= "0"&gt;&lt ;control&g t;&lt;ddsx mlobjectst reaminitwr apper bina ry="000800 000e0e0000 8c040000"  /&gt;
  11748       &lt;/c ontrol&gt;
  11749       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{74BD3D8 9-C559-43C F-A691-80F 7ACDBD1EA} /component s/62" vart ype="8" /& gt;
  11750           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11751         &lt; /ddsxmlobj &gt;
  11752       &lt;/l ayoutobjec t&gt;
  11753       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11754     &lt;/dds control&gt ;
  11755     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="OLE  DB Destin ation" lef t="-2795"  top="943"  logicalid= "7" contro lid="2" ma sterid="0"  hint1="0"  hint2="0"  width="35 98" height ="1164" no resize="0"  nomove="0 " nodefaul tattachpoi nts="0" au todrag="1"  usedefaul tiddshape= "1" select able="1" s howselecti onhandles= "1" allown udging="1"  isannotat ion="0" do ntautolayo ut="0" gro upcollapse d="0" tabs top="1" vi sible="1"  snaptogrid ="0"&gt;&l t;control& gt;&lt;dds xmlobjects treaminitw rapper bin ary="00080 0000e0e000 08c040000"  /&gt;
  11756       &lt;/c ontrol&gt;
  11757       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{74BD3D8 9-C559-43C F-A691-80F 7ACDBD1EA} /component s/90" vart ype="8" /& gt;
  11758           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11759         &lt; /ddsxmlobj &gt;
  11760       &lt;/l ayoutobjec t&gt;
  11761       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11762     &lt;/dds control&gt ;
  11763     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Upd ates colum n values u sing expre ssions" le ft="-2769"  top="-161 9" logical id="8" con trolid="3"  masterid= "0" hint1= "0" hint2= "0" width= "3598" hei ght="1164"  noresize= "0" nomove ="0" nodef aultattach points="0"  autodrag= "1" usedef aultiddsha pe="1" sel ectable="1 " showsele ctionhandl es="1" all ownudging= "1" isanno tation="0"  dontautol ayout="0"  groupcolla psed="0" t abstop="1"  visible=" 1" snaptog rid="0"&gt ;&lt;contr ol&gt;&lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800000e0e 00008c0400 00" /&gt;
  11764       &lt;/c ontrol&gt;
  11765       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{74BD3D8 9-C559-43C F-A691-80F 7ACDBD1EA} /component s/107" var type="8" / &gt;
  11766           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11767         &lt; /ddsxmlobj &gt;
  11768       &lt;/l ayoutobjec t&gt;
  11769       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11770     &lt;/dds control&gt ;
  11771     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-1369"  top="-336 8" logical id="9" con trolid="4"  masterid= "0" hint1= "0" hint2= "0" width= "825" heig ht="2249"  noresize=" 0" nomove= "0" nodefa ultattachp oints="1"  autodrag=" 0" usedefa ultiddshap e="0" sele ctable="1"  showselec tionhandle s="0" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt; &lt;contro l&gt;&lt;d dsxmlobj&g t;&lt;poly line endty pedst="3"  endtypesrc ="1" userc olor="3276 8" linesty le="0" lin erender="1 " customen dtypedstid ="0" custo mendtypesr cid="0" ad ornsvisibl e="1" /&gt ;
  11772         &lt; /ddsxmlobj &gt;
  11773       &lt;/c ontrol&gt;
  11774       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{74BD3D8 9-C559-43C F-A691-80F 7ACDBD1EA} /paths/293 " vartype= "8" /&gt;
  11775           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  11776           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  11777         &lt; /ddsxmlobj &gt;
  11778       &lt;/l ayoutobjec t&gt;
  11779       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "1" destid ="3" sourc eattachpoi nt="7" des tattachpoi nt="6" seg menteditmo de="0" ben dpointedit mode="0" b endpointvi sibility=" 2" related id="0" vir tual="0"&g t;&lt;poin t x="-944"  y="-2969"  /&gt;
  11780         &lt; point x="- 944" y="-2 294" /&gt;
  11781         &lt; point x="- 970" y="-2 294" /&gt;
  11782         &lt; point x="- 970" y="-1 619" /&gt;
  11783       &lt;/c onnector&g t;
  11784     &lt;/dds control&gt ;
  11785     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-1395"  top="-854 " logicali d="10" con trolid="5"  masterid= "0" hint1= "0" hint2= "0" width= "825" heig ht="2297"  noresize=" 0" nomove= "0" nodefa ultattachp oints="1"  autodrag=" 0" usedefa ultiddshap e="0" sele ctable="1"  showselec tionhandle s="0" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt; &lt;contro l&gt;&lt;d dsxmlobj&g t;&lt;poly line endty pedst="3"  endtypesrc ="1" userc olor="3276 8" linesty le="0" lin erender="1 " customen dtypedstid ="0" custo mendtypesr cid="0" ad ornsvisibl e="1" /&gt ;
  11786         &lt; /ddsxmlobj &gt;
  11787       &lt;/c ontrol&gt;
  11788       &lt;la youtobject &gt;&lt;dd sxmlobj&gt ;&lt;prope rty name=" LogicalObj ect" value ="{74BD3D8 9-C559-43C F-A691-80F 7ACDBD1EA} /paths/303 " vartype= "8" /&gt;
  11789           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  11790           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  11791         &lt; /ddsxmlobj &gt;
  11792       &lt;/l ayoutobjec t&gt;
  11793       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "3" destid ="2" sourc eattachpoi nt="7" des tattachpoi nt="6" seg menteditmo de="0" ben dpointedit mode="0" b endpointvi sibility=" 2" related id="0" vir tual="0"&g t;&lt;poin t x="-970"  y="-455"  /&gt;
  11794         &lt; point x="- 970" y="24 4" /&gt;
  11795         &lt; point x="- 996" y="24 4" /&gt;
  11796         &lt; point x="- 996" y="94 3" /&gt;
  11797       &lt;/c onnector&g t;
  11798     &lt;/dds control&gt ;
  11799   &lt;/dds&g t;&lt;/dwd :Layout&gt ;&lt;dwd:P ersistedVi ewPortLeft &gt;-3795& lt;/dwd:Pe rsistedVie wPortLeft& gt;&lt;dwd :Persisted ViewPortTo p&gt;-5133 &lt;/dwd:P ersistedVi ewPortTop& gt;&lt;/dw d:DtsDataF lowDiagram &gt;&lt;dw d:DtsCompo nentDesign erProperti esList&gt; &lt;dwd:Dt sComponent DesignTime Property&g t;&lt;dwd: key xsi:ty pe="xsd:st ring"&gt;9 0     Tabl eInfoObjec tType&lt;/ dwd:key&gt ;&lt;dwd:v alue xsi:t ype="xsd:s tring"&gt; Table&lt;/ dwd:value& gt;&lt;/dw d:DtsCompo nentDesign TimeProper ty&gt;&lt; dwd:DtsCom ponentDesi gnTimeProp erty&gt;&l t;dwd:key  xsi:type=" xsd:string "&gt;90    DataSource ViewID&lt; /dwd:key&g t;&lt;/dwd :DtsCompon entDesignT imePropert y&gt;&lt;/ dwd:DtsCom ponentDesi gnerProper tiesList&g t;&lt;/Tas kHost&gt;< /DTS:Prope rty>
  11800   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11801   <DTS:Prope rty DTS:Na me="Object Name">{74B D3D89-C559 -43CF-A691 -80F7ACDBD 1EA}</DTS: Property>
  11802   <DTS:Prope rty DTS:Na me="DTSID" >{E14FD5AB -DBD3-4285 -9A61-9EE0 F474F9D8}< /DTS:Prope rty>
  11803   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11804   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11805   <DTS:Packa geVariable >
  11806   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pip elinePath  xmlns:xsd= "http://ww w.w3.org/2 001/XMLSch ema" xmlns :xsi="http ://www.w3. org/2001/X MLSchema-i nstance" x mlns:ddl2= "http://sc hemas.micr osoft.com/ analysisse rvices/200 3/engine/2 " xmlns:dd l2_2="http ://schemas .microsoft .com/analy sisservice s/2003/eng ine/2/2" x mlns:ddl10 0_100="htt p://schema s.microsof t.com/anal ysisservic es/2008/en gine/100/1 00" xmlns: ddl200="ht tp://schem as.microso ft.com/ana lysisservi ces/2010/e ngine/200"  xmlns:ddl 200_200="h ttp://sche mas.micros oft.com/an alysisserv ices/2010/ engine/200 /200" xmln s:dwd="htt p://schema s.microsof t.com/Data Warehouse/ Designer/1 .0"&gt;&lt ;dwd:Sourc eName&gt;O utput 0&lt ;/dwd:Sour ceName&gt; &lt;dwd:De stinationN ame&gt;Der ived Colum n Input&lt ;/dwd:Dest inationNam e&gt;&lt;/ PipelinePa th&gt;</DT S:Property >
  11807   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11808   <DTS:Prope rty DTS:Na me="Object Name">{74B D3D89-C559 -43CF-A691 -80F7ACDBD 1EA}-293</ DTS:Proper ty>
  11809   <DTS:Prope rty DTS:Na me="DTSID" >{7379F63B -A3BD-48F7 -8AD6-6C08 C1AA5C53}< /DTS:Prope rty>
  11810   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11811   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11812   <DTS:Packa geVariable >
  11813   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pip elinePath  xmlns:xsd= "http://ww w.w3.org/2 001/XMLSch ema" xmlns :xsi="http ://www.w3. org/2001/X MLSchema-i nstance" x mlns:ddl2= "http://sc hemas.micr osoft.com/ analysisse rvices/200 3/engine/2 " xmlns:dd l2_2="http ://schemas .microsoft .com/analy sisservice s/2003/eng ine/2/2" x mlns:ddl10 0_100="htt p://schema s.microsof t.com/anal ysisservic es/2008/en gine/100/1 00" xmlns: ddl200="ht tp://schem as.microso ft.com/ana lysisservi ces/2010/e ngine/200"  xmlns:ddl 200_200="h ttp://sche mas.micros oft.com/an alysisserv ices/2010/ engine/200 /200" xmln s:dwd="htt p://schema s.microsof t.com/Data Warehouse/ Designer/1 .0"&gt;&lt ;dwd:Sourc eName&gt;D erived Col umn Output &lt;/dwd:S ourceName& gt;&lt;dwd :Destinati onName&gt; OLE DB Des tination I nput&lt;/d wd:Destina tionName&g t;&lt;/Pip elinePath& gt;</DTS:P roperty>
  11814   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11815   <DTS:Prope rty DTS:Na me="Object Name">{74B D3D89-C559 -43CF-A691 -80F7ACDBD 1EA}-303</ DTS:Proper ty>
  11816   <DTS:Prope rty DTS:Na me="DTSID" >{7971DCAD -2924-4955 -9A61-96A9 955FB3C3}< /DTS:Prope rty>
  11817   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11818   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11819   <DTS:Packa geVariable >
  11820   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  11821   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  11822   <DTS:Prope rty DTS:Na me="Object Name">{942 12ef8-6f30 -460e-a650 -d7d8a0dab 23f}</DTS: Property>
  11823   <DTS:Prope rty DTS:Na me="DTSID" >{EC0CCD28 -7B11-474A -BD78-BC52 DB0EBE82}< /DTS:Prope rty>
  11824   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  11825   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  11826   <DTS:Packa geVariable >
  11827   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pac kage xmlns :xsd="http ://www.w3. org/2001/X MLSchema"  xmlns:xsi= "http://ww w.w3.org/2 001/XMLSch ema-instan ce" xmlns: ddl2="http ://schemas .microsoft .com/analy sisservice s/2003/eng ine/2" xml ns:ddl2_2= "http://sc hemas.micr osoft.com/ analysisse rvices/200 3/engine/2 /2" xmlns: ddl100_100 ="http://s chemas.mic rosoft.com /analysiss ervices/20 08/engine/ 100/100" x mlns:ddl20 0="http:// schemas.mi crosoft.co m/analysis services/2 010/engine /200" xmln s:ddl200_2 00="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2010/engin e/200/200"  xmlns:dwd ="http://s chemas.mic rosoft.com /DataWareh ouse/Desig ner/1.0"&g t;&lt;dwd: DtsControl FlowDiagra m&gt;&lt;d wd:Boundin gLeft&gt;- 21139&lt;/ dwd:Boundi ngLeft&gt; &lt;dwd:Bo undingTop& gt;-11927& lt;/dwd:Bo undingTop& gt;&lt;dwd :Layout&gt ;&lt;dds&g t;
  11828     &lt;diag ram fontcl sid="{0BE3 5203-8F91- 11CE-9DE3- 00AA004BB8 51}" mouse iconclsid= "{0BE35204 -8F91-11CE -9DE3-00AA 004BB851}"  defaultla yout="Micr osoft.Data Warehouse. Layout.Gra phLayout10 0" default lineroute= "Microsoft .DataWareh ouse.Layou t.GraphLay out100" ve rsion="7"  nextobject ="37" scal e="100" pa gebreakanc horx="0" p agebreakan chory="0"  pagebreaks izex="0" p agebreaksi zey="0" sc rollleft=" -22139" sc rolltop="- 5861" grid x="150" gr idy="150"  marginx="1 000" margi ny="1000"  zoom="100"  x="16351"  y="12330"  backcolor ="15334399 " defaultp ersistence ="2" Print PageNumber sMode="3"  PrintMargi nTop="0" P rintMargin Bottom="63 5" PrintMa rginLeft=" 0" PrintMa rginRight= "0" marque eselection mode="1" m ousepointe r="0" snap togrid="0"  autotypea nnotation= "1" showsc rollbars=" 1" viewpag ebreaks="0 " donotfor ceconnecto rsbehindsh apes="1" b ackpicture clsid="{00 000000-000 0-0000-000 0-00000000 0000}"&gt;
  11829       &lt;fo nt&gt;
  11830         &lt; ddsxmlobje ctstreamwr apper bina ry="010100 0090018038 0100065461 686f6d61"  /&gt;
  11831       &lt;/f ont&gt;
  11832       &lt;mo useicon&gt ;
  11833         &lt; ddsxmlobje ctstreamwr apper bina ry="6c7400 0000000000 " /&gt;
  11834       &lt;/m ouseicon&g t;
  11835     &lt;/dia gram&gt;
  11836     &lt;layo utmanager& gt;
  11837       &lt;dd sxmlobj /& gt;
  11838     &lt;/lay outmanager &gt;
  11839     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Ins ert row in to table E FR DOD_FRA GMENT_RAW_ DATA" left ="-19728"  top="4594"  logicalid ="18" cont rolid="1"  masterid=" 5" hint1=" 0" hint2=" 0" width=" 5715" heig ht="1561"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  11840       &lt;co ntrol&gt;
  11841         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800005316 0000190600 00" /&gt;
  11842       &lt;/c ontrol&gt;
  11843       &lt;la youtobject &gt;
  11844         &lt; ddsxmlobj& gt;
  11845           &l t;property  name="Log icalObject " value="{ 51BC1AEC-F D3D-4C1F-A 13A-85143B D098A9}" v artype="8"  /&gt;
  11846           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11847         &lt; /ddsxmlobj &gt;
  11848       &lt;/l ayoutobjec t&gt;
  11849       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11850     &lt;/dds control&gt ;
  11851     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-18562" t op="-11927 " logicali d="19" con trolid="2"  masterid= "0" hint1= "0" hint2= "0" width= "3598" hei ght="1164"  noresize= "0" nomove ="0" nodef aultattach points="0"  autodrag= "1" usedef aultiddsha pe="1" sel ectable="1 " showsele ctionhandl es="1" all ownudging= "1" isanno tation="0"  dontautol ayout="0"  groupcolla psed="0" t abstop="1"  visible=" 1" snaptog rid="0"&gt ;
  11852       &lt;co ntrol&gt;
  11853         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800000e0e 00008c0400 00" /&gt;
  11854       &lt;/c ontrol&gt;
  11855       &lt;la youtobject &gt;
  11856         &lt; ddsxmlobj& gt;
  11857           &l t;property  name="Log icalObject " value="{ 22f4c3e5-e e67-4b59-9 f02-320eb0 7c2748}" v artype="8"  /&gt;
  11858           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11859         &lt; /ddsxmlobj &gt;
  11860       &lt;/l ayoutobjec t&gt;
  11861       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11862     &lt;/dds control&gt ;
  11863     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-17656" t op="14563"  logicalid ="20" cont rolid="3"  masterid=" 0" hint1=" 0" hint2=" 0" width=" 3598" heig ht="1164"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  11864       &lt;co ntrol&gt;
  11865         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800000e0e 00008c0400 00" /&gt;
  11866       &lt;/c ontrol&gt;
  11867       &lt;la youtobject &gt;
  11868         &lt; ddsxmlobj& gt;
  11869           &l t;property  name="Log icalObject " value="{ a552ebd5-5 d67-4db9-9 4a4-93f4cf 97dcc2}" v artype="8"  /&gt;
  11870           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11871         &lt; /ddsxmlobj &gt;
  11872       &lt;/l ayoutobjec t&gt;
  11873       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11874     &lt;/dds control&gt ;
  11875     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsConta inerObject ManagedBri dge.2" too ltip="Sequ ence Conta iner" left ="-21139"  top="-9120 " logicali d="21" con trolid="4"  masterid= "0" hint1= "0" hint2= "0" width= "8791" hei ght="18459 " noresize ="0" nomov e="0" node faultattac hpoints="0 " autodrag ="1" usede faultiddsh ape="1" se lectable=" 1" showsel ectionhand les="1" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  11876       &lt;co ntrol&gt;
  11877         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800005722 00001b4800 00" /&gt;
  11878       &lt;/c ontrol&gt;
  11879       &lt;la youtobject &gt;
  11880         &lt; ddsxmlobj& gt;
  11881           &l t;property  name="Cap tion" valu e="Sequenc e Containe r" vartype ="8" /&gt;
  11882           &l t;property  name="Cap tionHeight " value="1 164" varty pe="3" /&g t;
  11883           &l t;property  name="Col lapsed" va lue="0" va rtype="11"  /&gt;
  11884           &l t;property  name="Col lapsedWidt h" value=" 4339" vart ype="3" /& gt;
  11885           &l t;property  name="Log icalObject " value="{ A0C0B676-0 A7F-4960-9 C69-3DEBB8 E2E8A5}" v artype="8"  /&gt;
  11886           &l t;property  name="Rea lHeight" v alue="1121 4" vartype ="3" /&gt;
  11887           &l t;property  name="Rea lWidth" va lue="7415"  vartype=" 3" /&gt;
  11888           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11889         &lt; /ddsxmlobj &gt;
  11890       &lt;/l ayoutobjec t&gt;
  11891       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11892     &lt;/dds control&gt ;
  11893     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsConta inerObject ManagedBri dge.2" too ltip="Fore ach Loop C ontainer"  left="-206 37" top="- 4335" logi calid="22"  controlid ="5" maste rid="4" hi nt1="0" hi nt2="0" wi dth="7676"  height="1 3111" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  11894       &lt;co ntrol&gt;
  11895         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 080000fc1d 0000373300 00" /&gt;
  11896       &lt;/c ontrol&gt;
  11897       &lt;la youtobject &gt;
  11898         &lt; ddsxmlobj& gt;
  11899           &l t;property  name="Cap tion" valu e="Foreach  Loop Cont ainer" var type="8" / &gt;
  11900           &l t;property  name="Cap tionHeight " value="1 164" varty pe="3" /&g t;
  11901           &l t;property  name="Col lapsed" va lue="0" va rtype="11"  /&gt;
  11902           &l t;property  name="Col lapsedWidt h" value=" 4339" vart ype="3" /& gt;
  11903           &l t;property  name="Log icalObject " value="{ 4AC9E9F7-8 B22-43B0-9 254-56C786 896F83}" v artype="8"  /&gt;
  11904           &l t;property  name="Rea lHeight" v alue="8550 " vartype= "3" /&gt;
  11905           &l t;property  name="Rea lWidth" va lue="5061"  vartype=" 3" /&gt;
  11906           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11907         &lt; /ddsxmlobj &gt;
  11908       &lt;/l ayoutobjec t&gt;
  11909       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11910     &lt;/dds control&gt ;
  11911     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Ren ame and Mo ve file in  Archive d irectory"  left="-195 66" top="6 921" logic alid="23"  controlid= "6" master id="5" hin t1="0" hin t2="0" wid th="4762"  height="14 55" noresi ze="0" nom ove="0" no defaultatt achpoints= "0" autodr ag="1" use defaultidd shape="1"  selectable ="1" shows electionha ndles="1"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  11912       &lt;co ntrol&gt;
  11913         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800009a12 0000af0500 00" /&gt;
  11914       &lt;/c ontrol&gt;
  11915       &lt;la youtobject &gt;
  11916         &lt; ddsxmlobj& gt;
  11917           &l t;property  name="Log icalObject " value="{ 0EB8D847-B 611-442D-A 488-2B32B4 AD0BE3}" v artype="8"  /&gt;
  11918           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11919         &lt; /ddsxmlobj &gt;
  11920       &lt;/l ayoutobjec t&gt;
  11921       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11922     &lt;/dds control&gt ;
  11923     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Dat a Flow Tas k" left="- 19893" top ="312" log icalid="24 " controli d="7" mast erid="5" h int1="0" h int2="0" w idth="6428 " height=" 1667" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  11924       &lt;co ntrol&gt;
  11925         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800001c19 0000830600 00" /&gt;
  11926       &lt;/c ontrol&gt;
  11927       &lt;la youtobject &gt;
  11928         &lt; ddsxmlobj& gt;
  11929           &l t;property  name="Log icalObject " value="{ 74BD3D89-C 559-43CF-A 691-80F7AC DBD1EA}" v artype="8"  /&gt;
  11930           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11931         &lt; /ddsxmlobj &gt;
  11932       &lt;/l ayoutobjec t&gt;
  11933       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11934     &lt;/dds control&gt ;
  11935     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17143 " top="894 0" logical id="25" co ntrolid="8 " masterid ="0" hint1 ="0" hint2 ="0" width ="1686" he ight="6123 " noresize ="0" nomov e="0" node faultattac hpoints="1 " autodrag ="0" usede faultiddsh ape="0" se lectable=" 1" showsel ectionhand les="0" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  11936       &lt;co ntrol&gt;
  11937         &lt; ddsxmlobj& gt;
  11938           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  11939         &lt; /ddsxmlobj &gt;
  11940       &lt;/c ontrol&gt;
  11941       &lt;la youtobject &gt;
  11942         &lt; ddsxmlobj& gt;
  11943           &l t;property  name="Log icalObject " value="{ 37DA3F27-C 935-40BF-9 6BB-14D1CF BA7016}" v artype="8"  /&gt;
  11944           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  11945           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  11946         &lt; /ddsxmlobj &gt;
  11947       &lt;/l ayoutobjec t&gt;
  11948       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "4" destid ="3" sourc eattachpoi nt="15" de stattachpo int="6" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  11949         &lt; point x="- 16744" y=" 9339" /&gt ;
  11950         &lt; point x="- 16744" y=" 11951" /&g t;
  11951         &lt; point x="- 15857" y=" 11951" /&g t;
  11952         &lt; point x="- 15857" y=" 14563" /&g t;
  11953       &lt;/c onnector&g t;
  11954     &lt;/dds control&gt ;
  11955     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="ALT ER table E FR DOD_FRA GMENT_DATA _RECEIVELO G" left="- 20087" top ="-7465" l ogicalid=" 26" contro lid="9" ma sterid="4"  hint1="0"  hint2="0"  width="65 88" height ="1508" no resize="0"  nomove="0 " nodefaul tattachpoi nts="0" au todrag="1"  usedefaul tiddshape= "1" select able="1" s howselecti onhandles= "1" allown udging="1"  isannotat ion="0" do ntautolayo ut="0" gro upcollapse d="0" tabs top="1" vi sible="1"  snaptogrid ="0"&gt;
  11956       &lt;co ntrol&gt;
  11957         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 080000bc19 0000e40500 00" /&gt;
  11958       &lt;/c ontrol&gt;
  11959       &lt;la youtobject &gt;
  11960         &lt; ddsxmlobj& gt;
  11961           &l t;property  name="Log icalObject " value="{ 5F604A57-6 EB7-4CF1-B 00C-B03075 D35E54}" v artype="8"  /&gt;
  11962           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11963         &lt; /ddsxmlobj &gt;
  11964       &lt;/l ayoutobjec t&gt;
  11965       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11966     &lt;/dds control&gt ;
  11967     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17198 " top="-63 56" logica lid="27" c ontrolid=" 10" master id="0" hin t1="0" hin t2="0" wid th="805" h eight="252 1" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  11968       &lt;co ntrol&gt;
  11969         &lt; ddsxmlobj& gt;
  11970           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  11971         &lt; /ddsxmlobj &gt;
  11972       &lt;/c ontrol&gt;
  11973       &lt;la youtobject &gt;
  11974         &lt; ddsxmlobj& gt;
  11975           &l t;property  name="Log icalObject " value="{ 2875B41F-4 12C-430A-A 33A-C46961 4BDA68}" v artype="8"  /&gt;
  11976           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  11977           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  11978         &lt; /ddsxmlobj &gt;
  11979       &lt;/l ayoutobjec t&gt;
  11980       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "9" destid ="5" sourc eattachpoi nt="11" de stattachpo int="12" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  11981         &lt; point x="- 16793" y=" -5957" /&g t;
  11982         &lt; point x="- 16793" y=" -5146" /&g t;
  11983         &lt; point x="- 16799" y=" -5146" /&g t;
  11984         &lt; point x="- 16799" y=" -4335" /&g t;
  11985       &lt;/c onnector&g t;
  11986     &lt;/dds control&gt ;
  11987     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-19350" t op="2867"  logicalid= "28" contr olid="11"  masterid=" 5" hint1=" 0" hint2=" 0" width=" 4683" heig ht="1164"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  11988       &lt;co ntrol&gt;
  11989         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800004b12 00008c0400 00" /&gt;
  11990       &lt;/c ontrol&gt;
  11991       &lt;la youtobject &gt;
  11992         &lt; ddsxmlobj& gt;
  11993           &l t;property  name="Log icalObject " value="{ EB9A40E6-F 056-4EF1-9 E69-643B82 B814E5}" v artype="8"  /&gt;
  11994           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  11995         &lt; /ddsxmlobj &gt;
  11996       &lt;/l ayoutobjec t&gt;
  11997       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  11998     &lt;/dds control&gt ;
  11999     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17408 " top="158 0" logical id="29" co ntrolid="1 2" masteri d="0" hint 1="0" hint 2="0" widt h="1129" h eight="178 7" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  12000       &lt;co ntrol&gt;
  12001         &lt; ddsxmlobj& gt;
  12002           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12003         &lt; /ddsxmlobj &gt;
  12004       &lt;/c ontrol&gt;
  12005       &lt;la youtobject &gt;
  12006         &lt; ddsxmlobj& gt;
  12007           &l t;property  name="Log icalObject " value="{ 11F7A73E-B 05C-4CD8-A 5F3-8800D7 410426}" v artype="8"  /&gt;
  12008           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12009           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12010         &lt; /ddsxmlobj &gt;
  12011       &lt;/l ayoutobjec t&gt;
  12012       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "7" destid ="11" sour ceattachpo int="11" d estattachp oint="8" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12013         &lt; point x="- 16679" y=" 1979" /&gt ;
  12014         &lt; point x="- 16679" y=" 2423" /&gt ;
  12015         &lt; point x="- 17009" y=" 2423" /&gt ;
  12016         &lt; point x="- 17009" y=" 2867" /&gt ;
  12017       &lt;/c onnector&g t;
  12018     &lt;/dds control&gt ;
  12019     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17162 " top="-11 162" logic alid="30"  controlid= "13" maste rid="0" hi nt1="0" hi nt2="0" wi dth="818"  height="25 42" noresi ze="0" nom ove="0" no defaultatt achpoints= "1" autodr ag="0" use defaultidd shape="0"  selectable ="1" shows electionha ndles="0"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  12020       &lt;co ntrol&gt;
  12021         &lt; ddsxmlobj& gt;
  12022           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12023         &lt; /ddsxmlobj &gt;
  12024       &lt;/c ontrol&gt;
  12025       &lt;la youtobject &gt;
  12026         &lt; ddsxmlobj& gt;
  12027           &l t;property  name="Log icalObject " value="{ 420F9BC6-B 9AF-48B4-8 C61-3747B5 5ACA19}" v artype="8"  /&gt;
  12028           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12029           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12030         &lt; /ddsxmlobj &gt;
  12031       &lt;/l ayoutobjec t&gt;
  12032       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "2" destid ="4" sourc eattachpoi nt="7" des tattachpoi nt="14" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  12033         &lt; point x="- 16763" y=" -10763" /& gt;
  12034         &lt; point x="- 16763" y=" -9941" /&g t;
  12035         &lt; point x="- 16744" y=" -9941" /&g t;
  12036         &lt; point x="- 16744" y=" -9120" /&g t;
  12037       &lt;/c onnector&g t;
  12038     &lt;/dds control&gt ;
  12039     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17408 " top="363 2" logical id="31" co ntrolid="1 4" masteri d="0" hint 1="0" hint 2="0" widt h="937" he ight="1462 " noresize ="0" nomov e="0" node faultattac hpoints="1 " autodrag ="0" usede faultiddsh ape="0" se lectable=" 1" showsel ectionhand les="0" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  12040       &lt;co ntrol&gt;
  12041         &lt; ddsxmlobj& gt;
  12042           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12043         &lt; /ddsxmlobj &gt;
  12044       &lt;/c ontrol&gt;
  12045       &lt;la youtobject &gt;
  12046         &lt; ddsxmlobj& gt;
  12047           &l t;property  name="Log icalObject " value="{ 027ACA1A-4 953-4EFD-B 701-F133E9 8257B2}" v artype="8"  /&gt;
  12048           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12049           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12050         &lt; /ddsxmlobj &gt;
  12051       &lt;/l ayoutobjec t&gt;
  12052       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "11" desti d="1" sour ceattachpo int="9" de stattachpo int="10" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12053         &lt; point x="- 17009" y=" 4031" /&gt ;
  12054         &lt; point x="- 17009" y=" 4312" /&gt ;
  12055         &lt; point x="- 16871" y=" 4312" /&gt ;
  12056         &lt; point x="- 16871" y=" 4594" /&gt ;
  12057       &lt;/c onnector&g t;
  12058     &lt;/dds control&gt ;
  12059     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17584 " top="575 6" logical id="32" co ntrolid="1 5" masteri d="0" hint 1="0" hint 2="0" widt h="1113" h eight="166 5" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  12060       &lt;co ntrol&gt;
  12061         &lt; ddsxmlobj& gt;
  12062           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12063         &lt; /ddsxmlobj &gt;
  12064       &lt;/c ontrol&gt;
  12065       &lt;la youtobject &gt;
  12066         &lt; ddsxmlobj& gt;
  12067           &l t;property  name="Log icalObject " value="{ E18F93D5-B 763-4566-A 2EC-C06E4E FFAD0D}" v artype="8"  /&gt;
  12068           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12069           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12070         &lt; /ddsxmlobj &gt;
  12071       &lt;/l ayoutobjec t&gt;
  12072       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "1" destid ="6" sourc eattachpoi nt="11" de stattachpo int="8" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  12073         &lt; point x="- 16871" y=" 6155" /&gt ;
  12074         &lt; point x="- 16871" y=" 6538" /&gt ;
  12075         &lt; point x="- 17185" y=" 6538" /&gt ;
  12076         &lt; point x="- 17185" y=" 6921" /&gt ;
  12077       &lt;/c onnector&g t;
  12078     &lt;/dds control&gt ;
  12079     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Scr ipt Task"  left="-199 02" top="- 1833" logi calid="33"  controlid ="16" mast erid="5" h int1="0" h int2="0" w idth="5688 " height=" 1164" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  12080       &lt;co ntrol&gt;
  12081         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800003816 00008c0400 00" /&gt;
  12082       &lt;/c ontrol&gt;
  12083       &lt;la youtobject &gt;
  12084         &lt; ddsxmlobj& gt;
  12085           &l t;property  name="Log icalObject " value="{ C6BE0400-B E02-4059-8 10C-D62CF3 DED1AA}" v artype="8"  /&gt;
  12086           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12087         &lt; /ddsxmlobj &gt;
  12088       &lt;/l ayoutobjec t&gt;
  12089       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12090     &lt;/dds control&gt ;
  12091     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17457 " top="-10 68" logica lid="34" c ontrolid=" 17" master id="0" hin t1="0" hin t2="0" wid th="1178"  height="18 80" noresi ze="0" nom ove="0" no defaultatt achpoints= "1" autodr ag="0" use defaultidd shape="0"  selectable ="1" shows electionha ndles="0"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  12092       &lt;co ntrol&gt;
  12093         &lt; ddsxmlobj& gt;
  12094           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12095         &lt; /ddsxmlobj &gt;
  12096       &lt;/c ontrol&gt;
  12097       &lt;la youtobject &gt;
  12098         &lt; ddsxmlobj& gt;
  12099           &l t;property  name="Log icalObject " value="{ F75D04B1-1 EDB-463D-A 818-323910 7E2799}" v artype="8"  /&gt;
  12100           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12101           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12102         &lt; /ddsxmlobj &gt;
  12103       &lt;/l ayoutobjec t&gt;
  12104       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "16" desti d="7" sour ceattachpo int="9" de stattachpo int="10" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12105         &lt; point x="- 17058" y=" -669" /&gt ;
  12106         &lt; point x="- 17058" y=" -178" /&gt ;
  12107         &lt; point x="- 16679" y=" -178" /&gt ;
  12108         &lt; point x="- 16679" y=" 312" /&gt;
  12109       &lt;/c onnector&g t;
  12110     &lt;/dds control&gt ;
  12111   &lt;/dds&g t;&lt;/dwd :Layout&gt ;&lt;dwd:P ersistedVi ewPortLeft &gt;-22139 &lt;/dwd:P ersistedVi ewPortLeft &gt;&lt;dw d:Persiste dViewPortT op&gt;-586 1&lt;/dwd: PersistedV iewPortTop &gt;&lt;/d wd:DtsCont rolFlowDia gram&gt;&l t;/Package &gt;</DTS: Property>
  12112   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  12113   <DTS:Prope rty DTS:Na me="Object Name">{950 66CD4-BDF9 -47A7-AE1C -EB9DACDAB 011}</DTS: Property>
  12114   <DTS:Prope rty DTS:Na me="DTSID" >{030A4F2F -5DFA-4EB4 -9FC9-A5A8 227A0733}< /DTS:Prope rty>
  12115   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  12116   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  12117   <DTS:Packa geVariable >
  12118   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  12119   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  12120   <DTS:Prope rty DTS:Na me="Object Name">{E18 F93D5-B763 -4566-A2EC -C06E4EFFA D0D}</DTS: Property>
  12121   <DTS:Prope rty DTS:Na me="DTSID" >{FB03CC6C -3B81-4299 -BF9F-91BE 5309CC76}< /DTS:Prope rty>
  12122   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  12123   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  12124   <DTS:Packa geVariable >
  12125   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pre cedenceCon straint xm lns:xsd="h ttp://www. w3.org/200 1/XMLSchem a" xmlns:x si="http:/ /www.w3.or g/2001/XML Schema-ins tance" xml ns:ddl2="h ttp://sche mas.micros oft.com/an alysisserv ices/2003/ engine/2"  xmlns:ddl2 _2="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2003/engin e/2/2" xml ns:ddl100_ 100="http: //schemas. microsoft. com/analys isservices /2008/engi ne/100/100 " xmlns:dd l200="http ://schemas .microsoft .com/analy sisservice s/2010/eng ine/200" x mlns:ddl20 0_200="htt p://schema s.microsof t.com/anal ysisservic es/2010/en gine/200/2 00" xmlns: dwd="http: //schemas. microsoft. com/DataWa rehouse/De signer/1.0 "&gt;&lt;d wd:EvalOp& gt;Constra int&lt;/dw d:EvalOp&g t;&lt;/Pre cedenceCon straint&gt ;</DTS:Pro perty>
  12126   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  12127   <DTS:Prope rty DTS:Na me="Object Name">{F75 D04B1-1EDB -463D-A818 -3239107E2 799}</DTS: Property>
  12128   <DTS:Prope rty DTS:Na me="DTSID" >{D32D2B16 -AA82-4D47 -8525-317C 507F8838}< /DTS:Prope rty>
  12129   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  12130   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able>
  12131   <DTS:Packa geVariable >
  12132   <DTS:Prope rty DTS:Na me="Packag eVariableV alue" DTS: DataType=" 8">&lt;Pac kage xmlns :xsd="http ://www.w3. org/2001/X MLSchema"  xmlns:xsi= "http://ww w.w3.org/2 001/XMLSch ema-instan ce" xmlns: ddl2="http ://schemas .microsoft .com/analy sisservice s/2003/eng ine/2" xml ns:ddl2_2= "http://sc hemas.micr osoft.com/ analysisse rvices/200 3/engine/2 /2" xmlns: ddl100_100 ="http://s chemas.mic rosoft.com /analysiss ervices/20 08/engine/ 100/100" x mlns:ddl20 0="http:// schemas.mi crosoft.co m/analysis services/2 010/engine /200" xmln s:ddl200_2 00="http:/ /schemas.m icrosoft.c om/analysi sservices/ 2010/engin e/200/200"  xmlns:dwd ="http://s chemas.mic rosoft.com /DataWareh ouse/Desig ner/1.0"&g t;&lt;dwd: DtsControl FlowDiagra m&gt;&lt;d wd:Boundin gLeft&gt;- 21139&lt;/ dwd:Boundi ngLeft&gt; &lt;dwd:Bo undingTop& gt;-11927& lt;/dwd:Bo undingTop& gt;&lt;dwd :Layout&gt ;&lt;dds&g t;
  12133     &lt;diag ram fontcl sid="{0BE3 5203-8F91- 11CE-9DE3- 00AA004BB8 51}" mouse iconclsid= "{0BE35204 -8F91-11CE -9DE3-00AA 004BB851}"  defaultla yout="Micr osoft.Data Warehouse. Layout.Gra phLayout10 0" default lineroute= "Microsoft .DataWareh ouse.Layou t.GraphLay out100" ve rsion="7"  nextobject ="37" scal e="100" pa gebreakanc horx="0" p agebreakan chory="0"  pagebreaks izex="0" p agebreaksi zey="0" sc rollleft=" -22139" sc rolltop="- 5861" grid x="150" gr idy="150"  marginx="1 000" margi ny="1000"  zoom="100"  x="16351"  y="12330"  backcolor ="15334399 " defaultp ersistence ="2" Print PageNumber sMode="3"  PrintMargi nTop="0" P rintMargin Bottom="63 5" PrintMa rginLeft=" 0" PrintMa rginRight= "0" marque eselection mode="1" m ousepointe r="0" snap togrid="0"  autotypea nnotation= "1" showsc rollbars=" 1" viewpag ebreaks="0 " donotfor ceconnecto rsbehindsh apes="1" b ackpicture clsid="{00 000000-000 0-0000-000 0-00000000 0000}"&gt;
  12134       &lt;fo nt&gt;
  12135         &lt; ddsxmlobje ctstreamwr apper bina ry="010100 0090018038 0100065461 686f6d61"  /&gt;
  12136       &lt;/f ont&gt;
  12137       &lt;mo useicon&gt ;
  12138         &lt; ddsxmlobje ctstreamwr apper bina ry="6c7400 0000000000 " /&gt;
  12139       &lt;/m ouseicon&g t;
  12140     &lt;/dia gram&gt;
  12141     &lt;layo utmanager& gt;
  12142       &lt;dd sxmlobj /& gt;
  12143     &lt;/lay outmanager &gt;
  12144     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Ins ert row in to table E FR DOD_FRA GMENT_RAW_ DATA" left ="-19728"  top="4594"  logicalid ="18" cont rolid="1"  masterid=" 5" hint1=" 0" hint2=" 0" width=" 5715" heig ht="1561"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  12145       &lt;co ntrol&gt;
  12146         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800005316 0000190600 00" /&gt;
  12147       &lt;/c ontrol&gt;
  12148       &lt;la youtobject &gt;
  12149         &lt; ddsxmlobj& gt;
  12150           &l t;property  name="Log icalObject " value="{ 51BC1AEC-F D3D-4C1F-A 13A-85143B D098A9}" v artype="8"  /&gt;
  12151           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12152         &lt; /ddsxmlobj &gt;
  12153       &lt;/l ayoutobjec t&gt;
  12154       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12155     &lt;/dds control&gt ;
  12156     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-18562" t op="-11927 " logicali d="19" con trolid="2"  masterid= "0" hint1= "0" hint2= "0" width= "3598" hei ght="1164"  noresize= "0" nomove ="0" nodef aultattach points="0"  autodrag= "1" usedef aultiddsha pe="1" sel ectable="1 " showsele ctionhandl es="1" all ownudging= "1" isanno tation="0"  dontautol ayout="0"  groupcolla psed="0" t abstop="1"  visible=" 1" snaptog rid="0"&gt ;
  12157       &lt;co ntrol&gt;
  12158         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800000e0e 00008c0400 00" /&gt;
  12159       &lt;/c ontrol&gt;
  12160       &lt;la youtobject &gt;
  12161         &lt; ddsxmlobj& gt;
  12162           &l t;property  name="Log icalObject " value="{ 22f4c3e5-e e67-4b59-9 f02-320eb0 7c2748}" v artype="8"  /&gt;
  12163           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12164         &lt; /ddsxmlobj &gt;
  12165       &lt;/l ayoutobjec t&gt;
  12166       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12167     &lt;/dds control&gt ;
  12168     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-17656" t op="14563"  logicalid ="20" cont rolid="3"  masterid=" 0" hint1=" 0" hint2=" 0" width=" 3598" heig ht="1164"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  12169       &lt;co ntrol&gt;
  12170         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800000e0e 00008c0400 00" /&gt;
  12171       &lt;/c ontrol&gt;
  12172       &lt;la youtobject &gt;
  12173         &lt; ddsxmlobj& gt;
  12174           &l t;property  name="Log icalObject " value="{ a552ebd5-5 d67-4db9-9 4a4-93f4cf 97dcc2}" v artype="8"  /&gt;
  12175           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12176         &lt; /ddsxmlobj &gt;
  12177       &lt;/l ayoutobjec t&gt;
  12178       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12179     &lt;/dds control&gt ;
  12180     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsConta inerObject ManagedBri dge.2" too ltip="Sequ ence Conta iner" left ="-21139"  top="-9120 " logicali d="21" con trolid="4"  masterid= "0" hint1= "0" hint2= "0" width= "8791" hei ght="18459 " noresize ="0" nomov e="0" node faultattac hpoints="0 " autodrag ="1" usede faultiddsh ape="1" se lectable=" 1" showsel ectionhand les="1" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  12181       &lt;co ntrol&gt;
  12182         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800005722 00001b4800 00" /&gt;
  12183       &lt;/c ontrol&gt;
  12184       &lt;la youtobject &gt;
  12185         &lt; ddsxmlobj& gt;
  12186           &l t;property  name="Cap tion" valu e="Sequenc e Containe r" vartype ="8" /&gt;
  12187           &l t;property  name="Cap tionHeight " value="1 164" varty pe="3" /&g t;
  12188           &l t;property  name="Col lapsed" va lue="0" va rtype="11"  /&gt;
  12189           &l t;property  name="Col lapsedWidt h" value=" 4339" vart ype="3" /& gt;
  12190           &l t;property  name="Log icalObject " value="{ A0C0B676-0 A7F-4960-9 C69-3DEBB8 E2E8A5}" v artype="8"  /&gt;
  12191           &l t;property  name="Rea lHeight" v alue="1121 4" vartype ="3" /&gt;
  12192           &l t;property  name="Rea lWidth" va lue="7415"  vartype=" 3" /&gt;
  12193           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12194         &lt; /ddsxmlobj &gt;
  12195       &lt;/l ayoutobjec t&gt;
  12196       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12197     &lt;/dds control&gt ;
  12198     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsConta inerObject ManagedBri dge.2" too ltip="Fore ach Loop C ontainer"  left="-206 37" top="- 4335" logi calid="22"  controlid ="5" maste rid="4" hi nt1="0" hi nt2="0" wi dth="7676"  height="1 3111" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  12199       &lt;co ntrol&gt;
  12200         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 080000fc1d 0000373300 00" /&gt;
  12201       &lt;/c ontrol&gt;
  12202       &lt;la youtobject &gt;
  12203         &lt; ddsxmlobj& gt;
  12204           &l t;property  name="Cap tion" valu e="Foreach  Loop Cont ainer" var type="8" / &gt;
  12205           &l t;property  name="Cap tionHeight " value="1 164" varty pe="3" /&g t;
  12206           &l t;property  name="Col lapsed" va lue="0" va rtype="11"  /&gt;
  12207           &l t;property  name="Col lapsedWidt h" value=" 4339" vart ype="3" /& gt;
  12208           &l t;property  name="Log icalObject " value="{ 4AC9E9F7-8 B22-43B0-9 254-56C786 896F83}" v artype="8"  /&gt;
  12209           &l t;property  name="Rea lHeight" v alue="8550 " vartype= "3" /&gt;
  12210           &l t;property  name="Rea lWidth" va lue="5061"  vartype=" 3" /&gt;
  12211           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12212         &lt; /ddsxmlobj &gt;
  12213       &lt;/l ayoutobjec t&gt;
  12214       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12215     &lt;/dds control&gt ;
  12216     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Ren ame and Mo ve file in  Archive d irectory"  left="-195 66" top="6 921" logic alid="23"  controlid= "6" master id="5" hin t1="0" hin t2="0" wid th="4762"  height="14 55" noresi ze="0" nom ove="0" no defaultatt achpoints= "0" autodr ag="1" use defaultidd shape="1"  selectable ="1" shows electionha ndles="1"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  12217       &lt;co ntrol&gt;
  12218         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800009a12 0000af0500 00" /&gt;
  12219       &lt;/c ontrol&gt;
  12220       &lt;la youtobject &gt;
  12221         &lt; ddsxmlobj& gt;
  12222           &l t;property  name="Log icalObject " value="{ 0EB8D847-B 611-442D-A 488-2B32B4 AD0BE3}" v artype="8"  /&gt;
  12223           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12224         &lt; /ddsxmlobj &gt;
  12225       &lt;/l ayoutobjec t&gt;
  12226       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12227     &lt;/dds control&gt ;
  12228     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Dat a Flow Tas k" left="- 19893" top ="312" log icalid="24 " controli d="7" mast erid="5" h int1="0" h int2="0" w idth="6428 " height=" 1667" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  12229       &lt;co ntrol&gt;
  12230         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800001c19 0000830600 00" /&gt;
  12231       &lt;/c ontrol&gt;
  12232       &lt;la youtobject &gt;
  12233         &lt; ddsxmlobj& gt;
  12234           &l t;property  name="Log icalObject " value="{ 74BD3D89-C 559-43CF-A 691-80F7AC DBD1EA}" v artype="8"  /&gt;
  12235           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12236         &lt; /ddsxmlobj &gt;
  12237       &lt;/l ayoutobjec t&gt;
  12238       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12239     &lt;/dds control&gt ;
  12240     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17143 " top="894 0" logical id="25" co ntrolid="8 " masterid ="0" hint1 ="0" hint2 ="0" width ="1686" he ight="6123 " noresize ="0" nomov e="0" node faultattac hpoints="1 " autodrag ="0" usede faultiddsh ape="0" se lectable=" 1" showsel ectionhand les="0" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  12241       &lt;co ntrol&gt;
  12242         &lt; ddsxmlobj& gt;
  12243           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12244         &lt; /ddsxmlobj &gt;
  12245       &lt;/c ontrol&gt;
  12246       &lt;la youtobject &gt;
  12247         &lt; ddsxmlobj& gt;
  12248           &l t;property  name="Log icalObject " value="{ 37DA3F27-C 935-40BF-9 6BB-14D1CF BA7016}" v artype="8"  /&gt;
  12249           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12250           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12251         &lt; /ddsxmlobj &gt;
  12252       &lt;/l ayoutobjec t&gt;
  12253       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "4" destid ="3" sourc eattachpoi nt="15" de stattachpo int="6" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  12254         &lt; point x="- 16744" y=" 9339" /&gt ;
  12255         &lt; point x="- 16744" y=" 11951" /&g t;
  12256         &lt; point x="- 15857" y=" 11951" /&g t;
  12257         &lt; point x="- 15857" y=" 14563" /&g t;
  12258       &lt;/c onnector&g t;
  12259     &lt;/dds control&gt ;
  12260     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="ALT ER table E FR DOD_FRA GMENT_DATA _RECEIVELO G" left="- 20087" top ="-7465" l ogicalid=" 26" contro lid="9" ma sterid="4"  hint1="0"  hint2="0"  width="65 88" height ="1508" no resize="0"  nomove="0 " nodefaul tattachpoi nts="0" au todrag="1"  usedefaul tiddshape= "1" select able="1" s howselecti onhandles= "1" allown udging="1"  isannotat ion="0" do ntautolayo ut="0" gro upcollapse d="0" tabs top="1" vi sible="1"  snaptogrid ="0"&gt;
  12261       &lt;co ntrol&gt;
  12262         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 080000bc19 0000e40500 00" /&gt;
  12263       &lt;/c ontrol&gt;
  12264       &lt;la youtobject &gt;
  12265         &lt; ddsxmlobj& gt;
  12266           &l t;property  name="Log icalObject " value="{ 5F604A57-6 EB7-4CF1-B 00C-B03075 D35E54}" v artype="8"  /&gt;
  12267           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12268         &lt; /ddsxmlobj &gt;
  12269       &lt;/l ayoutobjec t&gt;
  12270       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12271     &lt;/dds control&gt ;
  12272     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17198 " top="-63 56" logica lid="27" c ontrolid=" 10" master id="0" hin t1="0" hin t2="0" wid th="805" h eight="252 1" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  12273       &lt;co ntrol&gt;
  12274         &lt; ddsxmlobj& gt;
  12275           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12276         &lt; /ddsxmlobj &gt;
  12277       &lt;/c ontrol&gt;
  12278       &lt;la youtobject &gt;
  12279         &lt; ddsxmlobj& gt;
  12280           &l t;property  name="Log icalObject " value="{ 2875B41F-4 12C-430A-A 33A-C46961 4BDA68}" v artype="8"  /&gt;
  12281           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12282           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12283         &lt; /ddsxmlobj &gt;
  12284       &lt;/l ayoutobjec t&gt;
  12285       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "9" destid ="5" sourc eattachpoi nt="11" de stattachpo int="12" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12286         &lt; point x="- 16793" y=" -5957" /&g t;
  12287         &lt; point x="- 16793" y=" -5146" /&g t;
  12288         &lt; point x="- 16799" y=" -5146" /&g t;
  12289         &lt; point x="- 16799" y=" -4335" /&g t;
  12290       &lt;/c onnector&g t;
  12291     &lt;/dds control&gt ;
  12292     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Exe cute SQL T ask" left= "-19350" t op="2867"  logicalid= "28" contr olid="11"  masterid=" 5" hint1=" 0" hint2=" 0" width=" 4683" heig ht="1164"  noresize=" 0" nomove= "0" nodefa ultattachp oints="0"  autodrag=" 1" usedefa ultiddshap e="1" sele ctable="1"  showselec tionhandle s="1" allo wnudging=" 1" isannot ation="0"  dontautola yout="0" g roupcollap sed="0" ta bstop="1"  visible="1 " snaptogr id="0"&gt;
  12293       &lt;co ntrol&gt;
  12294         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800004b12 00008c0400 00" /&gt;
  12295       &lt;/c ontrol&gt;
  12296       &lt;la youtobject &gt;
  12297         &lt; ddsxmlobj& gt;
  12298           &l t;property  name="Log icalObject " value="{ EB9A40E6-F 056-4EF1-9 E69-643B82 B814E5}" v artype="8"  /&gt;
  12299           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12300         &lt; /ddsxmlobj &gt;
  12301       &lt;/l ayoutobjec t&gt;
  12302       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12303     &lt;/dds control&gt ;
  12304     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17408 " top="158 0" logical id="29" co ntrolid="1 2" masteri d="0" hint 1="0" hint 2="0" widt h="1129" h eight="178 7" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  12305       &lt;co ntrol&gt;
  12306         &lt; ddsxmlobj& gt;
  12307           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12308         &lt; /ddsxmlobj &gt;
  12309       &lt;/c ontrol&gt;
  12310       &lt;la youtobject &gt;
  12311         &lt; ddsxmlobj& gt;
  12312           &l t;property  name="Log icalObject " value="{ 11F7A73E-B 05C-4CD8-A 5F3-8800D7 410426}" v artype="8"  /&gt;
  12313           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12314           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12315         &lt; /ddsxmlobj &gt;
  12316       &lt;/l ayoutobjec t&gt;
  12317       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "7" destid ="11" sour ceattachpo int="11" d estattachp oint="8" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12318         &lt; point x="- 16679" y=" 1979" /&gt ;
  12319         &lt; point x="- 16679" y=" 2423" /&gt ;
  12320         &lt; point x="- 17009" y=" 2423" /&gt ;
  12321         &lt; point x="- 17009" y=" 2867" /&gt ;
  12322       &lt;/c onnector&g t;
  12323     &lt;/dds control&gt ;
  12324     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17162 " top="-11 162" logic alid="30"  controlid= "13" maste rid="0" hi nt1="0" hi nt2="0" wi dth="818"  height="25 42" noresi ze="0" nom ove="0" no defaultatt achpoints= "1" autodr ag="0" use defaultidd shape="0"  selectable ="1" shows electionha ndles="0"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  12325       &lt;co ntrol&gt;
  12326         &lt; ddsxmlobj& gt;
  12327           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12328         &lt; /ddsxmlobj &gt;
  12329       &lt;/c ontrol&gt;
  12330       &lt;la youtobject &gt;
  12331         &lt; ddsxmlobj& gt;
  12332           &l t;property  name="Log icalObject " value="{ 420F9BC6-B 9AF-48B4-8 C61-3747B5 5ACA19}" v artype="8"  /&gt;
  12333           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12334           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12335         &lt; /ddsxmlobj &gt;
  12336       &lt;/l ayoutobjec t&gt;
  12337       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "2" destid ="4" sourc eattachpoi nt="7" des tattachpoi nt="14" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  12338         &lt; point x="- 16763" y=" -10763" /& gt;
  12339         &lt; point x="- 16763" y=" -9941" /&g t;
  12340         &lt; point x="- 16744" y=" -9941" /&g t;
  12341         &lt; point x="- 16744" y=" -9120" /&g t;
  12342       &lt;/c onnector&g t;
  12343     &lt;/dds control&gt ;
  12344     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17408 " top="363 2" logical id="31" co ntrolid="1 4" masteri d="0" hint 1="0" hint 2="0" widt h="937" he ight="1462 " noresize ="0" nomov e="0" node faultattac hpoints="1 " autodrag ="0" usede faultiddsh ape="0" se lectable=" 1" showsel ectionhand les="0" al lownudging ="1" isann otation="0 " dontauto layout="0"  groupcoll apsed="0"  tabstop="1 " visible= "1" snapto grid="0"&g t;
  12345       &lt;co ntrol&gt;
  12346         &lt; ddsxmlobj& gt;
  12347           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12348         &lt; /ddsxmlobj &gt;
  12349       &lt;/c ontrol&gt;
  12350       &lt;la youtobject &gt;
  12351         &lt; ddsxmlobj& gt;
  12352           &l t;property  name="Log icalObject " value="{ 027ACA1A-4 953-4EFD-B 701-F133E9 8257B2}" v artype="8"  /&gt;
  12353           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12354           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12355         &lt; /ddsxmlobj &gt;
  12356       &lt;/l ayoutobjec t&gt;
  12357       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "11" desti d="1" sour ceattachpo int="9" de stattachpo int="10" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12358         &lt; point x="- 17009" y=" 4031" /&gt ;
  12359         &lt; point x="- 17009" y=" 4312" /&gt ;
  12360         &lt; point x="- 16871" y=" 4312" /&gt ;
  12361         &lt; point x="- 16871" y=" 4594" /&gt ;
  12362       &lt;/c onnector&g t;
  12363     &lt;/dds control&gt ;
  12364     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17584 " top="575 6" logical id="32" co ntrolid="1 5" masteri d="0" hint 1="0" hint 2="0" widt h="1113" h eight="166 5" noresiz e="0" nomo ve="0" nod efaultatta chpoints=" 1" autodra g="0" used efaultidds hape="0" s electable= "1" showse lectionhan dles="0" a llownudgin g="1" isan notation=" 0" dontaut olayout="0 " groupcol lapsed="0"  tabstop=" 1" visible ="1" snapt ogrid="0"& gt;
  12365       &lt;co ntrol&gt;
  12366         &lt; ddsxmlobj& gt;
  12367           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12368         &lt; /ddsxmlobj &gt;
  12369       &lt;/c ontrol&gt;
  12370       &lt;la youtobject &gt;
  12371         &lt; ddsxmlobj& gt;
  12372           &l t;property  name="Log icalObject " value="{ E18F93D5-B 763-4566-A 2EC-C06E4E FFAD0D}" v artype="8"  /&gt;
  12373           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12374           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12375         &lt; /ddsxmlobj &gt;
  12376       &lt;/l ayoutobjec t&gt;
  12377       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "1" destid ="6" sourc eattachpoi nt="11" de stattachpo int="8" se gmenteditm ode="0" be ndpointedi tmode="0"  bendpointv isibility= "2" relate did="0" vi rtual="0"& gt;
  12378         &lt; point x="- 16871" y=" 6155" /&gt ;
  12379         &lt; point x="- 16871" y=" 6538" /&gt ;
  12380         &lt; point x="- 17185" y=" 6538" /&gt ;
  12381         &lt; point x="- 17185" y=" 6921" /&gt ;
  12382       &lt;/c onnector&g t;
  12383     &lt;/dds control&gt ;
  12384     &lt;ddsc ontrol con trolprogid ="DdsShape s.DdsObjec tManagedBr idge.2" to oltip="Scr ipt Task"  left="-199 02" top="- 1833" logi calid="33"  controlid ="16" mast erid="5" h int1="0" h int2="0" w idth="5688 " height=" 1164" nore size="0" n omove="0"  nodefaulta ttachpoint s="0" auto drag="1" u sedefaulti ddshape="1 " selectab le="1" sho wselection handles="1 " allownud ging="1" i sannotatio n="0" dont autolayout ="0" group collapsed= "0" tabsto p="1" visi ble="1" sn aptogrid=" 0"&gt;
  12385       &lt;co ntrol&gt;
  12386         &lt; ddsxmlobje ctstreamin itwrapper  binary="00 0800003816 00008c0400 00" /&gt;
  12387       &lt;/c ontrol&gt;
  12388       &lt;la youtobject &gt;
  12389         &lt; ddsxmlobj& gt;
  12390           &l t;property  name="Log icalObject " value="{ C6BE0400-B E02-4059-8 10C-D62CF3 DED1AA}" v artype="8"  /&gt;
  12391           &l t;property  name="Sho wConnector Source" va lue="0" va rtype="2"  /&gt;
  12392         &lt; /ddsxmlobj &gt;
  12393       &lt;/l ayoutobjec t&gt;
  12394       &lt;sh ape groups hapeid="0"  groupnode ="0" /&gt;
  12395     &lt;/dds control&gt ;
  12396     &lt;ddsc ontrol con trolprogid ="MSDDS.Po lyline" le ft="-17457 " top="-10 68" logica lid="34" c ontrolid=" 17" master id="0" hin t1="0" hin t2="0" wid th="1178"  height="18 80" noresi ze="0" nom ove="0" no defaultatt achpoints= "1" autodr ag="0" use defaultidd shape="0"  selectable ="1" shows electionha ndles="0"  allownudgi ng="1" isa nnotation= "0" dontau tolayout=" 0" groupco llapsed="0 " tabstop= "1" visibl e="1" snap togrid="0" &gt;
  12397       &lt;co ntrol&gt;
  12398         &lt; ddsxmlobj& gt;
  12399           &l t;polyline  endtypeds t="3" endt ypesrc="1"  usercolor ="32768" l inestyle=" 0" lineren der="2" cu stomendtyp edstid="0"  customend typesrcid= "0" adorns visible="1 " /&gt;
  12400         &lt; /ddsxmlobj &gt;
  12401       &lt;/c ontrol&gt;
  12402       &lt;la youtobject &gt;
  12403         &lt; ddsxmlobj& gt;
  12404           &l t;property  name="Log icalObject " value="{ F75D04B1-1 EDB-463D-A 818-323910 7E2799}" v artype="8"  /&gt;
  12405           &l t;property  name="Vir tual" valu e="0" vart ype="11" / &gt;
  12406           &l t;property  name="Vis ibleAP" va lue="0" va rtype="3"  /&gt;
  12407         &lt; /ddsxmlobj &gt;
  12408       &lt;/l ayoutobjec t&gt;
  12409       &lt;co nnector li neroutesty le="Micros oft.DataWa rehouse.La yout.Graph Layout100"  sourceid= "16" desti d="7" sour ceattachpo int="9" de stattachpo int="10" s egmentedit mode="0" b endpointed itmode="0"  bendpoint visibility ="2" relat edid="0" v irtual="0" &gt;
  12410         &lt; point x="- 17058" y=" -669" /&gt ;
  12411         &lt; point x="- 17058" y=" -178" /&gt ;
  12412         &lt; point x="- 16679" y=" -178" /&gt ;
  12413         &lt; point x="- 16679" y=" 312" /&gt;
  12414       &lt;/c onnector&g t;
  12415     &lt;/dds control&gt ;
  12416   &lt;/dds&g t;&lt;/dwd :Layout&gt ;&lt;dwd:P ersistedVi ewPortLeft &gt;-22139 &lt;/dwd:P ersistedVi ewPortLeft &gt;&lt;dw d:Persiste dViewPortT op&gt;-586 1&lt;/dwd: PersistedV iewPortTop &gt;&lt;/d wd:DtsCont rolFlowDia gram&gt;&l t;/Package &gt;</DTS: Property>
  12417   <DTS:Prope rty DTS:Na me="Namesp ace">dts-d esigner-1. 0</DTS:Pro perty>
  12418   <DTS:Prope rty DTS:Na me="Object Name">pack age-diagra m</DTS:Pro perty>
  12419   <DTS:Prope rty DTS:Na me="DTSID" >{A7E7AD96 -30F9-4DB8 -9FF6-5084 0DB1EDEB}< /DTS:Prope rty>
  12420   <DTS:Prope rty DTS:Na me="Descri ption"></D TS:Propert y>
  12421   <DTS:Prope rty DTS:Na me="Creati onName"></ DTS:Proper ty></DTS:P ackageVari able></DTS :Executabl e>