Produced by Araxis Merge on 4/12/2018 10:19:11 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.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | MSSRe Build 4.zip\ETL Packages\RegistriesETL\Release 11 | DoDFragment_Import.dtsx | Tue Apr 10 19:44:47 2018 UTC |
| 2 | MSSRe Build 4.zip\ETL Packages\RegistriesETL\Release 11 | DoDFragment_Import.dtsx | Thu Apr 12 12:31:59 2018 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 8 | 15026 |
| Changed | 7 | 16 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| 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 |
No regular expressions were active.
| 1 | <?xml vers ion="1.0"? > | |
| 2 | <DTS:Execu table xmln s:DTS="www .microsoft .com/SqlSe rver/Dts" | |
| 3 | DTS:refI d="Package " | |
| 4 | DTS:Crea tionDate=" 2/29/2012 8:08:36 AM " | |
| 5 | DTS:Crea tionName=" SSIS.Packa ge.3" | |
| 6 | DTS:Crea torCompute rName="NB2 B4054" | |
| 7 | DTS:Crea torName="H ARRIS\dhas sell" | |
| 8 | DTS:Dela yValidatio n="True" | |
| 9 | DTS:DTSI D="{42D7C8 3D-5B77-45 99-A447-78 DABE082E75 }" | |
| 10 | DTS:Exec utableType ="SSIS.Pac kage.3" | |
| 11 | DTS:Last ModifiedPr oductVersi on="11.0.6 020.0" | |
| 12 | DTS:Loca leID="1033 " | |
| 13 | DTS:Obje ctName="Do DFragment_ Import" | |
| 14 | DTS:Pack ageType="5 " | |
| 15 | DTS:Vers ionBuild=" 891" | |
| 16 | DTS:Vers ionGUID="{ C638F69E-0 2F2-4890-8 060-8CACE9 B82283}"> | |
| 17 | <DTS:Pro perty | |
| 18 | DTS:Na me="Packag eFormatVer sion">6</D TS:Propert y> | |
| 19 | <DTS:Con nectionMan agers> | |
| 20 | <DTS:C onnectionM anager | |
| 21 | DTS: refId="Pac kage.Conne ctionManag ers[Loggin g]" | |
| 22 | DTS: CreationNa me="OLEDB" | |
| 23 | DTS: DTSID="{D7 948F44-D7B E-4422-8F9 0-4A130AEC ABC9}" | |
| 24 | DTS: ObjectName ="Logging" > | |
| 25 | <DTS :PropertyE xpression | |
| 26 | DT S:Name="In itialCatal og">@[User ::LoggingD atabase]</ DTS:Proper tyExpressi on> | |
| 27 | <DTS :PropertyE xpression | |
| 28 | DT S:Name="Se rverName"> @[User::Lo ggingServe r]</DTS:Pr opertyExpr ession> | |
| 29 | <DTS :ObjectDat a> | |
| 30 | <D TS:Connect ionManager | |
| 31 | DTS:Connec tionString ="Data Sou rce= DNS ;Initial C atalog=pre prodRegist ryStaging; Provider=S QLNCLI11.1 ;Integrate d Security =SSPI;Auto Translate =False;App lication N ame=SSIS-P ackage-{D7 948F44-D7B E-4422-8F9 0-4A130AEC ABC9}patri ot-regdev. RegistrySt aging_Test ;" /> | |
| 32 | </DT S:ObjectDa ta> | |
| 33 | </DTS: Connection Manager> | |
| 34 | </DTS:Co nnectionMa nagers> | |
| 35 | <DTS:Con figuration s> | |
| 36 | <DTS:C onfigurati on | |
| 37 | DTS: Configurat ionString= "C:\Docume nts and Se ttings\vha iswhassed\ My Documen ts\Deploym entSolutio n\Deployme ntSolution \DoDFragme nt_Import. dtsConfig" | |
| 38 | DTS: Configurat ionType="1 " | |
| 39 | DTS: CreationNa me="" | |
| 40 | DTS: DTSID="{36 2B883D-605 4-40EF-B72 D-29515B28 7238}" | |
| 41 | DTS: ObjectName ="Configur ation 1" / > | |
| 42 | </DTS:Co nfiguratio ns> | |
| 43 | <DTS:Var iables> | |
| 44 | <DTS:V ariable | |
| 45 | DTS: CreationNa me="" | |
| 46 | DTS: DTSID="{4B E3288C-2EF 6-4115-9D4 D-3756F742 8123}" | |
| 47 | DTS: IncludeInD ebugDump=" 2345" | |
| 48 | DTS: Namespace= "User" | |
| 49 | DTS: ObjectName ="fileName 2"> | |
| 50 | <DTS :VariableV alue | |
| 51 | DT S:DataType ="8" | |
| 52 | xm l:space="p reserve">< /DTS:Varia bleValue> | |
| 53 | </DTS: Variable> | |
| 54 | <DTS:V ariable | |
| 55 | DTS: CreationNa me="" | |
| 56 | DTS: DTSID="{2A CF4A8E-DF9 6-4D9D-A5A 0-C70711EF 6B5F}" | |
| 57 | DTS: IncludeInD ebugDump=" 2345" | |
| 58 | DTS: Namespace= "User" | |
| 59 | DTS: ObjectName ="InputFil eExtension "> | |
| 60 | <DTS :VariableV alue | |
| 61 | DT S:DataType ="8">*.xls *</DTS:Var iableValue > | |
| 62 | </DTS: Variable> | |
| 63 | <DTS:V ariable | |
| 64 | DTS: CreationNa me="" | |
| 65 | DTS: DTSID="{4B 3B6902-8B1 8-4CC3-9AA D-A22D1642 608B}" | |
| 66 | DTS: IncludeInD ebugDump=" 2345" | |
| 67 | DTS: Namespace= "User" | |
| 68 | DTS: ObjectName ="InputFol der"> | |
| 69 | <DTS :VariableV alue | |
| 70 | DTS:DataTy pe="8">\\ DNS \nds_etl2$ \Productio n\DoDFragm ent_Import </DTS:Vari ableValue> | |
| 71 | </DTS: Variable> | |
| 72 | <DTS:V ariable | |
| 73 | DTS: CreationNa me="" | |
| 74 | DTS: DTSID="{AA 433FD3-D00 A-428E-AE5 C-ED9C704F A4CC}" | |
| 75 | DTS: IncludeInD ebugDump=" 6789" | |
| 76 | DTS: Namespace= "User" | |
| 77 | DTS: ObjectName ="iPackage ID"> | |
| 78 | <DTS :VariableV alue | |
| 79 | DT S:DataType ="3">0</DT S:Variable Value> | |
| 80 | </DTS: Variable> | |
| 81 | <DTS:V ariable | |
| 82 | DTS: CreationNa me="" | |
| 83 | DTS: DTSID="{C8 A32ED7-3AF A-4E06-AAB F-35351DE3 98C1}" | |
| 84 | DTS: IncludeInD ebugDump=" 2345" | |
| 85 | DTS: Namespace= "User" | |
| 86 | DTS: ObjectName ="LoggingD atabase"> | |
| 87 | <DTS :VariableV alue | |
| 88 | DT S:DataType ="8">prepr odRegistry Staging</D TS:Variabl eValue> | |
| 89 | </DTS: Variable> | |
| 90 | <DTS:V ariable | |
| 91 | DTS: CreationNa me="" | |
| 92 | DTS: DTSID="{2B 9089E3-8D5 7-433A-A09 9-DBE9E078 0F3D}" | |
| 93 | DTS: IncludeInD ebugDump=" 2345" | |
| 94 | DTS: Namespace= "User" | |
| 95 | DTS: ObjectName ="LoggingS erver"> | |
| 96 | <DTS :VariableV alue | |
| 97 | DTS:DataTy pe="8"> DNS </DTS:Vari ableValue> | |
| 98 | </DTS: Variable> | |
| 99 | <DTS:V ariable | |
| 100 | DTS: CreationNa me="" | |
| 101 | DTS: DTSID="{86 C54F04-55B 3-4029-988 8-72943EE6 4FD2}" | |
| 102 | DTS: IncludeInD ebugDump=" 2345" | |
| 103 | DTS: Namespace= "User" | |
| 104 | DTS: ObjectName ="Registry Database"> | |
| 105 | <DTS :VariableV alue | |
| 106 | DT S:DataType ="8">Regis try</DTS:V ariableVal ue> | |
| 107 | </DTS: Variable> | |
| 108 | <DTS:V ariable | |
| 109 | DTS: CreationNa me="" | |
| 110 | DTS: DTSID="{8D 2A9598-70E A-4C91-856 0-9506DF85 B2B9}" | |
| 111 | DTS: IncludeInD ebugDump=" 2345" | |
| 112 | DTS: Namespace= "User" | |
| 113 | DTS: ObjectName ="Registry Server"> | |
| 114 | <DTS :VariableV alue | |
| 115 | DT S:DataType ="8">vaaus crssql20</ DTS:Variab leValue> | |
| 116 | </DTS: Variable> | |
| 117 | <DTS:V ariable | |
| 118 | DTS: CreationNa me="" | |
| 119 | DTS: DTSID="{01 F1A00F-D95 A-465F-B79 F-88072BAD 0A76}" | |
| 120 | DTS: IncludeInD ebugDump=" 2345" | |
| 121 | DTS: Namespace= "User" | |
| 122 | DTS: ObjectName ="Registry StagingDat abase"> | |
| 123 | <DTS :VariableV alue | |
| 124 | DT S:DataType ="8">prepr odRegistry Staging</D TS:Variabl eValue> | |
| 125 | </DTS: Variable> | |
| 126 | <DTS:V ariable | |
| 127 | DTS: CreationNa me="" | |
| 128 | DTS: DTSID="{E8 EB3FDF-7F8 D-4EB8-925 B-6FE440B0 FDEB}" | |
| 129 | DTS: IncludeInD ebugDump=" 2345" | |
| 130 | DTS: Namespace= "User" | |
| 131 | DTS: ObjectName ="Registry StagingSer ver"> | |
| 132 | <DTS :VariableV alue | |
| 133 | DTS:DataTy pe="8"> DNS </DTS:Vari ableValue> | |
| 134 | </DTS: Variable> | |
| 135 | <DTS:V ariable | |
| 136 | DTS: CreationNa me="" | |
| 137 | DTS: DTSID="{DD 64EA12-384 5-4683-BDB 0-0F708DB0 CEA8}" | |
| 138 | DTS: IncludeInD ebugDump=" 2345" | |
| 139 | DTS: Namespace= "User" | |
| 140 | DTS: ObjectName ="RunIdent ifier"> | |
| 141 | <DTS :VariableV alue | |
| 142 | DT S:DataType ="8" | |
| 143 | xm l:space="p reserve">< /DTS:Varia bleValue> | |
| 144 | </DTS: Variable> | |
| 145 | </DTS:Va riables> | |
| 146 | <DTS:Exe cutables> | |
| 147 | <DTS:E xecutable | |
| 148 | DTS: refId="Pac kage\Log P ackage Be gan" | |
| 149 | DTS: CreationNa me="Micros oft.SqlSer ver.Dts.Ta sks.Execut eSQLTask.E xecuteSQLT ask, Micro soft.SqlSe rver.SQLTa sk, Versio n=11.0.0.0 , Culture= neutral, P ublicKeyTo ken=89845d cd8080cc91 " | |
| 150 | DTS: DelayValid ation="Tru e" | |
| 151 | DTS: Descriptio n="Execute SQL Task" | |
| 152 | DTS: DTSID="{8B 98966E-FE5 2-4BD3-B77 7-E702F853 5A0C}" | |
| 153 | DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=11.0.0 .0, Cultur e=neutral, PublicKey Token=8984 5dcd8080cc 91" | |
| 154 | DTS: LocaleID=" -1" | |
| 155 | DTS: ObjectName ="Log Pack age Began " | |
| 156 | DTS: TaskContac t="Execute SQL Task; Microsoft Corporati on; Micros oft SQL Se rver 2008; © 2007 Mi crosoft Co rporation; All Right s Reserved ;http://ww w.microsof t.com/sql/ support/de fault.asp; 1" | |
| 157 | DTS: ThreadHint ="0"> | |
| 158 | <DTS :Variables /> | |
| 159 | <DTS :PropertyE xpression | |
| 160 | DT S:Name="Sq lStatement Source">"E xec dbo.us p_ETL_Pack ageStart 0 , '" + @[ System::Pa ckageName] + "','" + (DT_STR, 25, 1252) @[System:: StartTime] + "','Sta rted', '"+ (DT_STR, 1 0, 1252) @ [System::V ersionMajo r]+"."+(DT _STR, 10, 1252) @[Sy stem::Vers ionMinor]+ "."+(DT_ST R, 10, 125 2) @[Syste m::Version Build]+"'" </DTS:Prop ertyExpres sion> | |
| 161 | <DTS :ObjectDat a> | |
| 162 | <S QLTask:Sql TaskData | |
| 163 | SQLTask:Co nnection=" {D7948F44- D7BE-4422- 8F90-4A130 AECABC9}" | |
| 164 | SQLTask:Sq lStatement Source="Ex ec dbo.usp _ETL_Packa geStart 0, 'DoDFragm ent_Import ','11/10/2 016 10:56: 59 AM','St arted', '1 .0.891'" | |
| 165 | SQLTask:Re sultType=" ResultSetT ype_Single Row" xmlns :SQLTask=" www.micros oft.com/sq lserver/dt s/tasks/sq ltask"> | |
| 166 | <SQLTask:R esultBindi ng | |
| 167 | SQLTask: ResultName ="0" | |
| 168 | SQLTask: DtsVariabl eName="Use r::iPackag eID" /> | |
| 169 | </ SQLTask:Sq lTaskData> | |
| 170 | </DT S:ObjectDa ta> | |
| 171 | </DTS: Executable > | |
| 172 | <DTS:E xecutable | |
| 173 | DTS: refId="Pac kage\LogPa ckage End" | |
| 174 | DTS: CreationNa me="Micros oft.SqlSer ver.Dts.Ta sks.Execut eSQLTask.E xecuteSQLT ask, Micro soft.SqlSe rver.SQLTa sk, Versio n=11.0.0.0 , Culture= neutral, P ublicKeyTo ken=89845d cd8080cc91 " | |
| 175 | DTS: Descriptio n="Execute SQL Task" | |
| 176 | DTS: DTSID="{F2 2E3DEB-498 3-450B-AC3 F-089C27E3 F6F8}" | |
| 177 | DTS: Executable Type="Micr osoft.SqlS erver.Dts. Tasks.Exec uteSQLTask .ExecuteSQ LTask, Mic rosoft.Sql Server.SQL Task, Vers ion=11.0.0 .0, Cultur e=neutral, PublicKey Token=8984 5dcd8080cc 91" | |
| 178 | DTS: LocaleID=" -1" | |
| 179 | DTS: ObjectName ="LogPacka ge End" | |
| 180 | DTS: TaskContac t="Execute SQL Task; Microsoft Corporati on; Micros oft SQL Se rver 2008; © 2007 Mi crosoft Co rporation; All Right s Reserved ;http://ww w.microsof t.com/sql/ support/de fault.asp; 1" | |
| 181 | DTS: ThreadHint ="0"> | |
| 182 | <DTS :Variables /> | |
| 183 | <DTS :PropertyE xpression | |
| 184 | DT S:Name="Sq lStatement Source">"D eclare @Da te datetim e=getdate( ) | |
| 185 | Exec dbo.u sp_ETL_Pac kageEnd " + (DT_STR, 20,1252) @[User::iP ackageID] + ",@Date, 'Succeeded '"</DTS:Pr opertyExpr ession> | |
| 186 | <DTS :ObjectDat a> | |
| 187 | <S QLTask:Sql TaskData | |
| 188 | SQLTask:Co nnection=" {D7948F44- D7BE-4422- 8F90-4A130 AECABC9}" | |
| 189 | SQLTask:Sq lStatement Source="De clare @Dat e datetime =getdate() 
Exec dbo.usp_E TL_Package End 0,@Dat e,'Succeed ed'" xmlns :SQLTask=" www.micros oft.com/sq lserver/dt s/tasks/sq ltask" /> | |
| 190 | </DT S:ObjectDa ta> | |
| 191 | </DTS: Executable > | |
| 192 | <DTS:E xecutable | |
| 193 | DTS: refId="Pac kage\Seque nce Contai ner" | |
| 194 | DTS: CreationNa me="STOCK: SEQUENCE" | |
| 195 | DTS: Descriptio n="Sequenc e Containe r" | |
| 196 | DTS: DTSID="{6F 84A9A0-E31 7-42CE-8C5 5-36615FEC 9C59}" | |
| 197 | DTS: Executable Type="STOC K:SEQUENCE " | |
| 198 | DTS: LocaleID=" -1" | |
| 199 | DTS: ObjectName ="Sequence Container "> | |
| 200 | <DTS :Variables /> | |
| 201 | <DTS :Executabl es> | |
| 202 | <D TS:Executa ble | |
| 203 | DTS:refId= "Package\S equence Co ntainer\Fo reach Loop Container " | |
| 204 | DTS:Creati onName="ST OCK:FOREAC HLOOP" | |
| 205 | DTS:Descri ption="For each Loop Container" | |
| 206 | DTS:DTSID= "{CED8BB06 -6A93-4BC6 -8D15-6265 C1ACC198}" | |
| 207 | DTS:Execut ableType=" STOCK:FORE ACHLOOP" | |
| 208 | DTS:Locale ID="-1" | |
| 209 | DTS:Object Name="Fore ach Loop C ontainer"> | |
| 210 | <DTS:ForEa chEnumerat or | |
| 211 | DTS:Crea tionName=" DTS.ForEac hFileEnume rator.3" | |
| 212 | DTS:DTSI D="{51750C C6-FA21-46 7A-8418-95 0473A1EADA }" | |
| 213 | DTS:Obje ctName="{5 1750CC6-FA 21-467A-84 18-950473A 1EADA}"> | |
| 214 | <DTS:Pro pertyExpre ssion | |
| 215 | DTS:Na me="Direct ory">@[Use r::InputFo lder]</DTS :PropertyE xpression> | |
| 216 | <DTS:Pro pertyExpre ssion | |
| 217 | DTS:Na me="FileSp ec">@[User ::InputFil eExtension ]</DTS:Pro pertyExpre ssion> | |
| 218 | <DTS:Obj ectData> | |
| 219 | <ForEa chFileEnum eratorProp erties> | |
| 220 | <FEF EProperty | |
| 221 | Folder="\\ DNS \nds_etl2$ \Productio n\DoDFragm ent_Import " /> | |
| 222 | <FEF EProperty | |
| 223 | Fi leSpec="*. xls*" /> | |
| 224 | <FEF EProperty | |
| 225 | Fi leNameRetr ievalType= "0" /> | |
| 226 | <FEF EProperty | |
| 227 | Re curse="0" /> | |
| 228 | </ForE achFileEnu meratorPro perties> | |
| 229 | </DTS:Ob jectData> | |
| 230 | </DTS:ForE achEnumera tor> | |
| 231 | <DTS:Varia bles /> | |
| 232 | <DTS:Execu tables> | |
| 233 | <DTS:Exe cutable | |
| 234 | DTS:re fId="Packa ge\Sequenc e Containe r\Foreach Loop Conta iner\Scrip t Task - p rocess rec ords" | |
| 235 | DTS:Cr eationName ="Microsof t.SqlServe r.Dts.Task s.ScriptTa sk.ScriptT ask, Micro soft.SqlSe rver.Scrip tTask, Ver sion=11.0. 0.0, Cultu re=neutral , PublicKe yToken=898 45dcd8080c c91" | |
| 236 | DTS:De scription= "Script Ta sk" | |
| 237 | DTS:DT SID="{FFC9 4649-7913- 44BD-B51F- EACBED7C95 60}" | |
| 238 | DTS:Ex ecutableTy pe="Micros oft.SqlSer ver.Dts.Ta sks.Script Task.Scrip tTask, Mic rosoft.Sql Server.Scr iptTask, V ersion=11. 0.0.0, Cul ture=neutr al, Public KeyToken=8 9845dcd808 0cc91" | |
| 239 | DTS:Lo caleID="-1 " | |
| 240 | DTS:Ob jectName=" Script Tas k - proces s records" | |
| 241 | DTS:Th readHint=" 0"> | |
| 242 | <DTS:V ariables / > | |
| 243 | <DTS:O bjectData> | |
| 244 | <Scr iptProject | |
| 245 | Na me="ST_fce 6863cd8c94 187b7bd252 8130634e1" | |
| 246 | VS TAMajorVer sion="3" | |
| 247 | VS TAMinorVer sion="0" | |
| 248 | La nguage="CS harp" | |
| 249 | Re adOnlyVari ables="Use r::fileNam e2,User::L oggingData base,User: :LoggingSe rver,User: :RegistryD atabase,Us er::Regist ryServer"> | |
| 250 | <P rojectItem | |
| 251 | Name="Prop erties\Set tings.sett ings" | |
| 252 | Encoding=" UTF8"><![C DATA[<?xml version=' 1.0' encod ing='iso-8 859-1'?> | |
| 253 | <SettingsF ile xmlns= "uri:setti ngs" Curre ntProfile= "(Default) "> | |
| 254 | <Profile s> | |
| 255 | <Profi le Name="( Default)" /> | |
| 256 | </Profil es> | |
| 257 | <Setting s /> | |
| 258 | </Settings File>]]></ ProjectIte m> | |
| 259 | <P rojectItem | |
| 260 | Name="Prop erties\Ass emblyInfo. cs" | |
| 261 | Encoding=" UTF8"><![C DATA[using System.Re flection; | |
| 262 | using Syst em.Runtime .CompilerS ervices; | |
| 263 | ||
| 264 | // | |
| 265 | // General Informati on about a n assembly is contro lled throu gh the fol lowing | |
| 266 | // set of attributes . Change t hese attri bute value s to modif y the info rmation | |
| 267 | // associa ted with a n assembly . | |
| 268 | // | |
| 269 | [assembly: AssemblyT itle("ST_f ce6863cd8c 94187b7bd2 528130634e 1.csproj") ] | |
| 270 | [assembly: AssemblyD escription ("")] | |
| 271 | [assembly: AssemblyC onfigurati on("")] | |
| 272 | [assembly: AssemblyC ompany("De partment o f Veterans Affairs") ] | |
| 273 | [assembly: AssemblyP roduct("ST _fce6863cd 8c94187b7b d252813063 4e1.csproj ")] | |
| 274 | [assembly: AssemblyC opyright(" Copyright @ Departme nt of Vete rans Affai rs 2014")] | |
| 275 | [assembly: AssemblyT rademark(" ")] | |
| 276 | [assembly: AssemblyC ulture("") ] | |
| 277 | // | |
| 278 | // Version informati on for an assembly c onsists of the follo wing four values: | |
| 279 | // | |
| 280 | // Ma jor Versio n | |
| 281 | // Mi nor Versio n | |
| 282 | // Bu ild Number | |
| 283 | // Re vision | |
| 284 | // | |
| 285 | // You can specify a ll the val ues or you can defau lt the Rev ision and Build Numb ers | |
| 286 | // by usin g the '*' as shown b elow: | |
| 287 | ||
| 288 | [assembly: AssemblyV ersion("1. 0.*")]]]>< /ProjectIt em> | |
| 289 | <P rojectItem | |
| 290 | Name="Exce lColumn.cs " | |
| 291 | Encoding=" UTF8"><![C DATA[/* | |
| 292 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 293 | * | |
| 294 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 295 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 296 | * | |
| 297 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 298 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 299 | * All rig hts reserv ed. | |
| 300 | * | |
| 301 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 302 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 303 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 304 | * | |
| 305 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 306 | * 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 | |
| 307 | * | |
| 308 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 309 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 310 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 311 | * | |
| 312 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 313 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 314 | */ | |
| 315 | ||
| 316 | /* | |
| 317 | * Code ch ange notes : | |
| 318 | * | |
| 319 | * Author Change Date | |
| 320 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 321 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 322 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 323 | */ | |
| 324 | using Syst em; | |
| 325 | using Syst em.Xml; | |
| 326 | ||
| 327 | namespace OfficeOpen Xml | |
| 328 | { | |
| 329 | /// <s ummary> | |
| 330 | /// Re presents a n individu al column within the worksheet | |
| 331 | /// </ summary> | |
| 332 | public class Exc elColumn | |
| 333 | { | |
| 334 | pr ivate Exce lWorksheet _xlWorksh eet; | |
| 335 | pr ivate XmlE lement _co lElement = null; | |
| 336 | pr ivate XmlN amespaceMa nager _nsM anager; | |
| 337 | ||
| 338 | #r egion Exce lColumn Co nstructor | |
| 339 | // / <summary > | |
| 340 | // / Creates a new inst ance of th e ExcelCol umn class. | |
| 341 | // / For inte rnal use o nly! | |
| 342 | // / </summar y> | |
| 343 | // / <param n ame="Works heet"></pa ram> | |
| 344 | // / <param n ame="col"> </param> | |
| 345 | pr otected in ternal Exc elColumn(E xcelWorksh eet Worksh eet, int c ol) | |
| 346 | { | |
| 347 | NameTabl e nt = new NameTable (); | |
| 348 | _nsManag er = new X mlNamespac eManager(n t); | |
| 349 | _nsManag er.AddName space("d", ExcelPack age.schema Main); | |
| 350 | ||
| 351 | _xlWorks heet = Wor ksheet; | |
| 352 | XmlNode parent = W orksheet.W orksheetXm l.SelectSi ngleNode(" //d:cols", _nsManage r); | |
| 353 | if (pare nt == null ) | |
| 354 | { | |
| 355 | pare nt = (XmlN ode)Worksh eet.Worksh eetXml.Cre ateElement ("cols", E xcelPackag e.schemaMa in); | |
| 356 | XmlN ode refChi ld = Works heet.Works heetXml.Se lectSingle Node("//d: sheetData" , _nsManag er); | |
| 357 | pare nt = Works heet.Works heetXml.Do cumentElem ent.Insert Before(par ent, refCh ild); | |
| 358 | } | |
| 359 | XmlAttri bute minAt tr; | |
| 360 | XmlAttri bute maxAt tr; | |
| 361 | XmlNode insertBefo re = null; | |
| 362 | // the c olumn defi nitions co ver a rang e of colum ns, so fin d the one we want | |
| 363 | bool ins ertBeforeF ound = fal se; | |
| 364 | foreach (XmlNode c olNode in parent.Chi ldNodes) | |
| 365 | { | |
| 366 | int min = 1; | |
| 367 | int max = 1; | |
| 368 | minA ttr = (Xml Attribute) colNode.At tributes.G etNamedIte m("min"); | |
| 369 | if ( minAttr != null) | |
| 370 | min = int. Parse(minA ttr.Value) ; | |
| 371 | maxA ttr = (Xml Attribute) colNode.At tributes.G etNamedIte m("max"); | |
| 372 | if ( maxAttr != null) | |
| 373 | max = int. Parse(maxA ttr.Value) ; | |
| 374 | if ( !insertBef oreFound & & (col <= min || col <= max)) | |
| 375 | { | |
| 376 | insertBefo reFound = true; | |
| 377 | insertBefo re = colNo de; | |
| 378 | } | |
| 379 | if ( col >= min && col <= max) | |
| 380 | { | |
| 381 | _colElemen t = (XmlEl ement)colN ode; | |
| 382 | break; | |
| 383 | } | |
| 384 | } | |
| 385 | if (_col Element == null) | |
| 386 | { | |
| 387 | // c reate the new column definitio n | |
| 388 | _col Element = Worksheet. WorksheetX ml.CreateE lement("co l", ExcelP ackage.sch emaMain); | |
| 389 | _col Element.Se tAttribute ("min", co l.ToString ()); | |
| 390 | _col Element.Se tAttribute ("max", co l.ToString ()); | |
| 391 | ||
| 392 | if ( insertBefo re != null ) | |
| 393 | parent.Ins ertBefore( _colElemen t, insertB efore); | |
| 394 | else | |
| 395 | parent.App endChild(_ colElement ); | |
| 396 | } | |
| 397 | } | |
| 398 | #e ndregion | |
| 399 | ||
| 400 | // / <summary > | |
| 401 | // / Returns a referenc e to the E lement tha t represen ts the col umn. | |
| 402 | // / For inte rnal use o nly! | |
| 403 | // / </summar y> | |
| 404 | pr otected in ternal Xml Element El ement { ge t { return (_colElem ent); } } | |
| 405 | ||
| 406 | // / <summary > | |
| 407 | // / Sets the first col umn the de finition r efers to. | |
| 408 | // / </summar y> | |
| 409 | pu blic int C olumnMin | |
| 410 | { | |
| 411 | get { re turn (int. Parse(_col Element.Ge tAttribute ("min"))); } | |
| 412 | set { _c olElement. SetAttribu te("min", value.ToSt ring()); } | |
| 413 | } | |
| 414 | ||
| 415 | // / <summary > | |
| 416 | // / Sets the last colu mn the def inition re fers to. | |
| 417 | // / </summar y> | |
| 418 | pu blic int C olumnMax | |
| 419 | { | |
| 420 | get { re turn (int. Parse(_col Element.Ge tAttribute ("max"))); } | |
| 421 | set { _c olElement. SetAttribu te("max", value.ToSt ring()); } | |
| 422 | } | |
| 423 | ||
| 424 | #r egion Exce lColumn Hi dden | |
| 425 | // / <summary > | |
| 426 | // / Allows t he column to be hidd en in the worksheet | |
| 427 | // / </summar y> | |
| 428 | pu blic bool Hidden | |
| 429 | { | |
| 430 | get | |
| 431 | { | |
| 432 | bool retValue = false; | |
| 433 | stri ng hidden = _colElem ent.GetAtt ribute("hi dden", "1" ); | |
| 434 | if ( hidden == "1") retVa lue = true ; | |
| 435 | retu rn (retVal ue); | |
| 436 | } | |
| 437 | set | |
| 438 | { | |
| 439 | if ( value) | |
| 440 | _colElemen t.SetAttri bute("hidd en", "1"); | |
| 441 | else | |
| 442 | _colElemen t.SetAttri bute("hidd en", "0"); | |
| 443 | } | |
| 444 | } | |
| 445 | #e ndregion | |
| 446 | ||
| 447 | #r egion Exce lColumn Wi dth | |
| 448 | // / <summary > | |
| 449 | // / Sets the width of the column in the wo rksheet | |
| 450 | // / </summar y> | |
| 451 | pu blic doubl e Width | |
| 452 | { | |
| 453 | get | |
| 454 | { | |
| 455 | doub le retValu e = 10; / / default column siz e | |
| 456 | stri ng width = _colEleme nt.GetAttr ibute("wid th"); | |
| 457 | if ( width != " ") retValu e = int.Pa rse(width) ; | |
| 458 | retu rn retValu e; | |
| 459 | } | |
| 460 | set { _c olElement. SetAttribu te("width" , value.To String()); } | |
| 461 | } | |
| 462 | #e ndregion | |
| 463 | ||
| 464 | #r egion Exce lColumn St yle | |
| 465 | // / <summary > | |
| 466 | // / Sets the style for the entir e column u sing a sty le name. | |
| 467 | // / </summar y> | |
| 468 | pu blic strin g Style | |
| 469 | { | |
| 470 | get { re turn _xlWo rksheet.Ge tStyleName (StyleID); } | |
| 471 | set | |
| 472 | { | |
| 473 | // T ODO: imple ment corre ctly. The current c ode causes Excel to throw a fi t! | |
| 474 | Styl eID = _xlW orksheet.G etStyleID( value); | |
| 475 | } | |
| 476 | } | |
| 477 | // / <summary > | |
| 478 | // / Sets the style for the entir e column u sing the s tyle ID. | |
| 479 | // / </summar y> | |
| 480 | pu blic int S tyleID | |
| 481 | { | |
| 482 | get | |
| 483 | { | |
| 484 | int retValue = 0; | |
| 485 | stri ng sid = _ colElement .GetAttrib ute("s"); | |
| 486 | if ( sid != "") retValue = int.Pars e(sid); | |
| 487 | retu rn retValu e; | |
| 488 | } | |
| 489 | set { _c olElement. SetAttribu te("s", va lue.ToStri ng()); } | |
| 490 | } | |
| 491 | #e ndregion | |
| 492 | ||
| 493 | // / <summary > | |
| 494 | // / Returns the range of columns covered b y the colu mn definit ion. | |
| 495 | // / </summar y> | |
| 496 | // / <returns >A string describing the range of column s covered by the col umn defini tion.</ret urns> | |
| 497 | pu blic overr ide string ToString( ) | |
| 498 | { | |
| 499 | return s tring.Form at("Column Range: {0 } to {1}", _colEleme nt.GetAttr ibute("min "), _colEl ement.GetA ttribute(" min")); | |
| 500 | } | |
| 501 | } | |
| 502 | }]]></Proj ectItem> | |
| 503 | <P rojectItem | |
| 504 | Name="Prop erties\Set tings.Desi gner.cs" | |
| 505 | Encoding=" UTF8"><![C DATA[//--- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 506 | // <auto-g enerated> | |
| 507 | // Thi s code was generated by a tool . | |
| 508 | // | |
| 509 | // Cha nges to th is file ma y cause in correct be havior and will be l ost if | |
| 510 | // the code is r egenerated . | |
| 511 | // </auto- generated> | |
| 512 | //-------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- | |
| 513 | ||
| 514 | [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" + | |
| 515 | "ings" )] | |
| 516 | ||
| 517 | namespace ST_fce6863 cd8c94187b 7bd2528130 634e1.cspr oj.Propert ies | |
| 518 | { | |
| 519 | ||
| 520 | ||
| 521 | intern al sealed partial cl ass Settin gs : globa l::System. Configurat ion.Applic ationSetti ngsBase | |
| 522 | { | |
| 523 | ||
| 524 | [g lobal::Sys tem.Runtim e.Compiler Services.C ompilerGen eratedAttr ibute()] | |
| 525 | pr ivate stat ic Setting s defaultI nstance = new Settin gs(); | |
| 526 | ||
| 527 | pu blic stati c Settings Default | |
| 528 | { | |
| 529 | get | |
| 530 | { | |
| 531 | retu rn default Instance; | |
| 532 | } | |
| 533 | } | |
| 534 | } | |
| 535 | }]]></Proj ectItem> | |
| 536 | <P rojectItem | |
| 537 | Name="Proj ect" | |
| 538 | Encoding=" UTF16LE">< ![CDATA[<? xml versio n="1.0" en coding="UT F-16" stan dalone="ye s"?> | |
| 539 | <c:Project xmlns:c=" http://sch emas.micro soft.com/c odeproject ml/2010/08 /main" xml ns:msb="ht tp://schem as.microso ft.com/dev eloper/msb uild/2003" runtimeVe rsion="4.0 " schemaVe rsion="1.0 "> | |
| 540 | <m sb:Propert yGroup> | |
| 541 | <msb :CodeName> st_fce6863 cd8c94187b 7bd2528130 634e1</msb :CodeName> | |
| 542 | <msb :Language> msBuild</m sb:Languag e> | |
| 543 | <msb :DisplayNa me>st_fce6 863cd8c941 87b7bd2528 130634e1</ msb:Displa yName> | |
| 544 | <msb :ProjectId >{AD0FF316 -51AA-4F21 -A68F-8343 6BF4967C}< /msb:Proje ctId> | |
| 545 | </ msb:Proper tyGroup> | |
| 546 | <m sb:ItemGro up> | |
| 547 | <msb :Project I nclude="st _fce6863cd 8c94187b7b d252813063 4e1.csproj "/> | |
| 548 | <msb :File Incl ude="Excel Worksheet. cs"/> | |
| 549 | <msb :File Incl ude="Excel Column.cs" /> | |
| 550 | <msb :File Incl ude="Excel Cell.cs"/> | |
| 551 | <msb :File Incl ude="Excel Row.cs"/> | |
| 552 | <msb :File Incl ude="Excel Package.cs "/> | |
| 553 | <msb :File Incl ude="Excel HeaderFoot er.cs"/> | |
| 554 | <msb :File Incl ude="Excel Styles.cs" /> | |
| 555 | <msb :File Incl ude="Excel Workbook.c s"/> | |
| 556 | <msb :File Incl ude="Excel Worksheets .cs"/> | |
| 557 | <msb :File Incl ude="Excel WorksheetV iew.cs"/> | |
| 558 | <msb :File Incl ude="Offic ePropertie s.cs"/> | |
| 559 | <msb :File Incl ude="Prope rties\Asse mblyInfo.c s"/> | |
| 560 | <msb :File Incl ude="Prope rties\Reso urces.resx "/> | |
| 561 | <msb :File Incl ude="Prope rties\Reso urces.Desi gner.cs"/> | |
| 562 | <msb :File Incl ude="Prope rties\Sett ings.setti ngs"/> | |
| 563 | <msb :File Incl ude="Prope rties\Sett ings.Desig ner.cs"/> | |
| 564 | <msb :File Incl ude="Scrip tMain.cs"/ > | |
| 565 | </ msb:ItemGr oup> | |
| 566 | </c:Projec t>]]></Pro jectItem> | |
| 567 | <P rojectItem | |
| 568 | Name="Prop erties\Res ources.res x" | |
| 569 | Encoding=" UTF8"><![C DATA[<?xml version=" 1.0" encod ing="utf-8 "?> | |
| 570 | <root> | |
| 571 | <!-- | |
| 572 | Micros oft ResX S chema | |
| 573 | ||
| 574 | Versio n 2.0 | |
| 575 | ||
| 576 | The pr imary goal s of this format is to allow a simple XM L format | |
| 577 | that i s mostly h uman reada ble. The g eneration and parsin g of the | |
| 578 | variou s data typ es are don e through the TypeCo nverter cl asses | |
| 579 | associ ated with the data t ypes. | |
| 580 | ||
| 581 | Exampl e: | |
| 582 | ||
| 583 | ... ad o.net/XML headers & schema ... | |
| 584 | <reshe ader name= "resmimety pe">text/m icrosoft-r esx</reshe ader> | |
| 585 | <reshe ader name= "version"> 2.0</reshe ader> | |
| 586 | <reshe ader name= "reader">S ystem.Reso urces.ResX ResourceRe ader, Syst em.Windows .Forms, .. .</reshead er> | |
| 587 | <reshe ader name= "writer">S ystem.Reso urces.ResX ResourceWr iter, Syst em.Windows .Forms, .. .</reshead er> | |
| 588 | <data name="Name 1"><value> this is my long stri ng</value> <comment>t his is a c omment</co mment></da ta> | |
| 589 | <data name="Colo r1" type=" System.Dra wing.Color , System.D rawing">Bl ue</data> | |
| 590 | <data name="Bitm ap1" mimet ype="appli cation/x-m icrosoft.n et.object. binary.bas e64"> | |
| 591 | <v alue>[base 64 mime en coded seri alized .NE T Framewor k object]< /value> | |
| 592 | </data > | |
| 593 | <data name="Icon 1" type="S ystem.Draw ing.Icon, System.Dra wing" mime type="appl ication/x- microsoft. net.object .bytearray .base64"> | |
| 594 | <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 > | |
| 595 | <c omment>Thi s is a com ment</comm ent> | |
| 596 | </data > | |
| 597 | ||
| 598 | There are any nu mber of "r esheader" rows that contain si mple | |
| 599 | name/v alue pairs . | |
| 600 | ||
| 601 | Each d ata row co ntains a n ame, and v alue. The row also c ontains a | |
| 602 | type o r mimetype . Type cor responds t o a .NET c lass that support | |
| 603 | text/v alue conve rsion thro ugh the Ty peConverte r architec ture. | |
| 604 | Classe s that don 't support this are serialized and store d with the | |
| 605 | mimety pe set. | |
| 606 | ||
| 607 | The mi metype is used for s erialized objects, a nd tells t he | |
| 608 | ResXRe sourceRead er how to depersist the object . This is currently not | |
| 609 | extens ible. For a given mi metype the value mus t be set a ccordingly : | |
| 610 | ||
| 611 | Note - applicati on/x-micro soft.net.o bject.bina ry.base64 is the for mat | |
| 612 | that t he ResXRes ourceWrite r will gen erate, how ever the r eader can | |
| 613 | read a ny of the formats li sted below . | |
| 614 | ||
| 615 | mimety pe: applic ation/x-mi crosoft.ne t.object.b inary.base 64 | |
| 616 | value : The ob ject must be seriali zed with | |
| 617 | : System .Serializa tion.Forma tters.Bina ry.BinaryF ormatter | |
| 618 | : and th en encoded with base 64 encodin g. | |
| 619 | ||
| 620 | mimety pe: applic ation/x-mi crosoft.ne t.object.s oap.base64 | |
| 621 | value : The ob ject must be seriali zed with | |
| 622 | : System .Runtime.S erializati on.Formatt ers.Soap.S oapFormatt er | |
| 623 | : and th en encoded with base 64 encodin g. | |
| 624 | ||
| 625 | mimety pe: applic ation/x-mi crosoft.ne t.object.b ytearray.b ase64 | |
| 626 | value : The ob ject must be seriali zed into a byte arra y | |
| 627 | : using a System.C omponentMo del.TypeCo nverter | |
| 628 | : and th en encoded with base 64 encodin g. | |
| 629 | --> | |
| 630 | <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"> | |
| 631 | <xsd:e lement nam e="root" m sdata:IsDa taSet="tru e"> | |
| 632 | <xsd :complexTy pe> | |
| 633 | <x sd:choice maxOccurs= "unbounded "> | |
| 634 | <xsd:eleme nt name="m etadata"> | |
| 635 | <xsd:com plexType> | |
| 636 | <xsd:s equence> | |
| 637 | <xsd :element n ame="value " type="xs d:string" minOccurs= "0" /> | |
| 638 | </xsd: sequence> | |
| 639 | <xsd:a ttribute n ame="name" type="xsd :string" / > | |
| 640 | <xsd:a ttribute n ame="type" type="xsd :string" / > | |
| 641 | <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" /> | |
| 642 | </xsd:co mplexType> | |
| 643 | </xsd:elem ent> | |
| 644 | <xsd:eleme nt name="a ssembly"> | |
| 645 | <xsd:com plexType> | |
| 646 | <xsd:a ttribute n ame="alias " type="xs d:string" /> | |
| 647 | <xsd:a ttribute n ame="name" type="xsd :string" / > | |
| 648 | </xsd:co mplexType> | |
| 649 | </xsd:elem ent> | |
| 650 | <xsd:eleme nt name="d ata"> | |
| 651 | <xsd:com plexType> | |
| 652 | <xsd:s equence> | |
| 653 | <xsd :element n ame="value " type="xs d:string" minOccurs= "0" msdata :Ordinal=" 1" /> | |
| 654 | <xsd :element n ame="comme nt" type=" xsd:string " minOccur s="0" msda ta:Ordinal ="2" /> | |
| 655 | </xsd: sequence> | |
| 656 | <xsd:a ttribute n ame="name" type="xsd :string" m sdata:Ordi nal="1" /> | |
| 657 | <xsd:a ttribute n ame="type" type="xsd :string" m sdata:Ordi nal="3" /> | |
| 658 | <xsd:a ttribute n ame="mimet ype" type= "xsd:strin g" msdata: Ordinal="4 " /> | |
| 659 | </xsd:co mplexType> | |
| 660 | </xsd:elem ent> | |
| 661 | <xsd:eleme nt name="r esheader"> | |
| 662 | <xsd:com plexType> | |
| 663 | <xsd:s equence> | |
| 664 | <xsd :element n ame="value " type="xs d:string" minOccurs= "0" msdata :Ordinal=" 1" /> | |
| 665 | </xsd: sequence> | |
| 666 | <xsd:a ttribute n ame="name" type="xsd :string" u se="requir ed" /> | |
| 667 | </xsd:co mplexType> | |
| 668 | </xsd:elem ent> | |
| 669 | </ xsd:choice > | |
| 670 | </xs d:complexT ype> | |
| 671 | </xsd: element> | |
| 672 | </xsd:sc hema> | |
| 673 | <reshead er name="r esmimetype "> | |
| 674 | <value >text/micr osoft-resx </value> | |
| 675 | </reshea der> | |
| 676 | <reshead er name="v ersion"> | |
| 677 | <value >2.0</valu e> | |
| 678 | </reshea der> | |
| 679 | <reshead er name="r eader"> | |
| 680 | <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> | |
| 681 | </reshea der> | |
| 682 | <reshead er name="w riter"> | |
| 683 | <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> | |
| 684 | </reshea der> | |
| 685 | </root>]]> </ProjectI tem> | |
| 686 | <P rojectItem | |
| 687 | Name="st_f ce6863cd8c 94187b7bd2 528130634e 1.csproj" | |
| 688 | Encoding=" UTF16LE">< ![CDATA[<? xml versio n="1.0" en coding="ut f-16"?> | |
| 689 | <Project T oolsVersio n="4.0" De faultTarge ts="Build" xmlns="ht tp://schem as.microso ft.com/dev eloper/msb uild/2003" > | |
| 690 | <!-- Thi s section defines pr oject-leve l properti es. | |
| 691 | ||
| 692 | Con figuration - Specifi es whether the defau lt configu ration is Release or Debug. | |
| 693 | Pla tform - Sp ecifies wh at CPU the output of this proj ect can ru n on. | |
| 694 | Out putType - Must be "L ibrary" fo r VSTA. | |
| 695 | NoS tandardLib raries - S et to "fal se" for VS TA. | |
| 696 | Roo tNamespace - In C#, this speci fies the n amespace g iven to ne w files. | |
| 697 | In Visu al Basic, all object s are wrap ped in thi s namespac e at runti me. | |
| 698 | Ass emblyName - Name of the output assembly. | |
| 699 | --> | |
| 700 | <Propert yGroup> | |
| 701 | <Proje ctTypeGuid s>{30D016F 9-3734-4E3 3-A861-5E7 D899E18F3} ;{FAE04EC0 -301F-11D3 -BF4B-00C0 4F79EFBC}< /ProjectTy peGuids> | |
| 702 | <Confi guration C ondition=" '$(Config uration)' == '' ">De bug</Confi guration> | |
| 703 | <Platf orm Condit ion=" '$(P latform)' == '' ">An yCPU</Plat form> | |
| 704 | <Outpu tType>Libr ary</Outpu tType> | |
| 705 | <NoSta ndardLibra ries>false </NoStanda rdLibrarie s> | |
| 706 | <RootN amespace>S T_fce6863c d8c94187b7 bd25281306 34e1.cspro j</RootNam espace> | |
| 707 | <Assem blyName>ST _fce6863cd 8c94187b7b d252813063 4e1.csproj </Assembly Name> | |
| 708 | <Proje ctGuid>{0E 1FF2EE-743 0-43F8-8FB 2-B279B32C 3743}</Pro jectGuid> | |
| 709 | <Targe tFramework Version>v4 .6</Target FrameworkV ersion> | |
| 710 | <Targe tFramework Profile> | |
| 711 | </Targ etFramewor kProfile> | |
| 712 | </Proper tyGroup> | |
| 713 | <!-- Thi s section defines pr operties t hat are se t when the "Debug" c onfigurati on is | |
| 714 | sel ected. | |
| 715 | ||
| 716 | Deb ugSymbols - If true, create sy mbols (.pd b). If fal se, do not create sy mbols. | |
| 717 | Opt imize - If true, opt imize the build outp ut. If fal se, do not optimize. | |
| 718 | Out putPath - Output pat h of the p roject rel ative to t he project file. | |
| 719 | Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will attach bot h managed and unmana ged debugg ers. | |
| 720 | Def ineConstan ts - Const ants defin ed for the preproces sor. | |
| 721 | War ning Level - Warning level for the compi ler. | |
| 722 | --> | |
| 723 | <Propert yGroup Con dition=" ' $(Configur ation)' == 'Debug' " > | |
| 724 | <Debug Symbols>tr ue</DebugS ymbols> | |
| 725 | <Optim ize>false< /Optimize> | |
| 726 | <Outpu tPath>.\bi n\Debug\</ OutputPath > | |
| 727 | <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g> | |
| 728 | <Defin eConstants >DEBUG;TRA CE</Define Constants> | |
| 729 | <Warni ngLevel>4< /WarningLe vel> | |
| 730 | <Prefe r32Bit>fal se</Prefer 32Bit> | |
| 731 | </Proper tyGroup> | |
| 732 | <!-- Thi s section defines pr operties t hat are se t when the "Release" configura tion is | |
| 733 | sel ected. | |
| 734 | ||
| 735 | Deb ugSymbols - If true, create sy mbols (.pd b). If fal se, do not create sy mbols. | |
| 736 | Opt imize - If true, opt imize the build outp ut. If fal se, do not optimize. | |
| 737 | Out putPath - Output pat h of the p roject rel ative to t he project file. | |
| 738 | Ena bleUnmanag edDebuggin g - If tru e, startin g the debu gger will attach bot h managed and unmana ged debugg ers. | |
| 739 | Def ineConstan ts - Const ants defin ed for the preproces sor. | |
| 740 | War ning Level - Warning level for the compi ler. | |
| 741 | --> | |
| 742 | <Propert yGroup Con dition=" ' $(Configur ation)' == 'Release' "> | |
| 743 | <Debug Symbols>fa lse</Debug Symbols> | |
| 744 | <Optim ize>true</ Optimize> | |
| 745 | <Outpu tPath>.\bi n\Release\ </OutputPa th> | |
| 746 | <Enabl eUnmanaged Debugging> false</Ena bleUnmanag edDebuggin g> | |
| 747 | <Defin eConstants >TRACE</De fineConsta nts> | |
| 748 | <Warni ngLevel>4< /WarningLe vel> | |
| 749 | <Prefe r32Bit>fal se</Prefer 32Bit> | |
| 750 | </Proper tyGroup> | |
| 751 | <!-- Thi s section enables pr e- and pos t-build st eps. Howev er, | |
| 752 | it is recomme nded that MSBuild ta sks be use d instead of these p roperties. | |
| 753 | --> | |
| 754 | <Propert yGroup> | |
| 755 | <PreBu ildEvent> | |
| 756 | </PreB uildEvent> | |
| 757 | <PostB uildEvent> | |
| 758 | </Post BuildEvent > | |
| 759 | </Proper tyGroup> | |
| 760 | <!-- Thi s sections specifies reference s for the project. - -> | |
| 761 | <ItemGro up> | |
| 762 | <Refer ence Inclu de="System " /> | |
| 763 | <Refer ence Inclu de="System .Core"> | |
| 764 | <Req uiredTarge tFramework >3.5</Requ iredTarget Framework> | |
| 765 | </Refe rence> | |
| 766 | <Refer ence Inclu de="System .Data" /> | |
| 767 | <Refer ence Inclu de="System .Drawing" /> | |
| 768 | <Refer ence Inclu de="System .Windows.F orms" /> | |
| 769 | <Refer ence Inclu de="System .Xml" /> | |
| 770 | <Refer ence Inclu de="Micros oft.SqlSer ver.Manage dDTS, Vers ion=11.0.0 .0, Cultur e=Neutral, PublicKey Token=8984 5dcd8080cc 91" /> | |
| 771 | <Refer ence Inclu de="Micros oft.SqlSer ver.Script Task, Vers ion=11.0.0 .0, Cultur e=Neutral, PublicKey Token=8984 5dcd8080cc 91" /> | |
| 772 | <Refer ence Inclu de="Window sBase"> | |
| 773 | <Req uiredTarge tFramework >3.0</Requ iredTarget Framework> | |
| 774 | </Refe rence> | |
| 775 | </ItemGr oup> | |
| 776 | <!-- Thi s section defines th e user sou rce files that are p art of the | |
| 777 | pro ject. | |
| 778 | ||
| 779 | Com pile - Spe cifies a s ource file to compil e. | |
| 780 | Emb eddedResou rce - Spec ifies a .r esx file f or embedde d resource s. | |
| 781 | Non e - Specif ies a file that is n ot to be p assed to t he compile r (for ins tance, | |
| 782 | a text file or X ML file). | |
| 783 | App Designer - Specifies the direc tory where the appli cation pro perties fi les can | |
| 784 | be found. | |
| 785 | --> | |
| 786 | <ItemGro up> | |
| 787 | <AppDe signer Inc lude="Prop erties\" / > | |
| 788 | <Compi le Include ="ExcelCel l.cs" /> | |
| 789 | <Compi le Include ="ExcelCol umn.cs" /> | |
| 790 | <Compi le Include ="ExcelHea derFooter. cs" /> | |
| 791 | <Compi le Include ="ExcelPac kage.cs" / > | |
| 792 | <Compi le Include ="ExcelRow .cs" /> | |
| 793 | <Compi le Include ="ExcelSty les.cs" /> | |
| 794 | <Compi le Include ="ExcelWor kbook.cs" /> | |
| 795 | <Compi le Include ="ExcelWor ksheet.cs" /> | |
| 796 | <Compi le Include ="ExcelWor ksheets.cs " /> | |
| 797 | <Compi le Include ="ExcelWor ksheetView .cs" /> | |
| 798 | <Compi le Include ="OfficePr operties.c s" /> | |
| 799 | <Compi le Include ="Properti es\Assembl yInfo.cs"> | |
| 800 | <Sub Type>Code< /SubType> | |
| 801 | </Comp ile> | |
| 802 | <Embed dedResourc e Include= "Propertie s\Resource s.resx"> | |
| 803 | <Gen erator>Res XFileCodeG enerator</ Generator> | |
| 804 | <Las tGenOutput >Resources .Designer. cs</LastGe nOutput> | |
| 805 | </Embe ddedResour ce> | |
| 806 | <Compi le Include ="Properti es\Resourc es.Designe r.cs"> | |
| 807 | <Aut oGen>True< /AutoGen> | |
| 808 | <Dep endentUpon >Resources .resx</Dep endentUpon > | |
| 809 | <Des ignTime>Tr ue</Design Time> | |
| 810 | </Comp ile> | |
| 811 | <None Include="P roperties\ Settings.s ettings"> | |
| 812 | <Gen erator>Set tingsSingl eFileGener ator</Gene rator> | |
| 813 | <Las tGenOutput >Settings. Designer.c s</LastGen Output> | |
| 814 | </None > | |
| 815 | <Compi le Include ="Properti es\Setting s.Designer .cs"> | |
| 816 | <Aut oGen>True< /AutoGen> | |
| 817 | <Dep endentUpon >Settings. settings</ DependentU pon> | |
| 818 | <Des ignTimeSha redInput>T rue</Desig nTimeShare dInput> | |
| 819 | </Comp ile> | |
| 820 | <Compi le Include ="ScriptMa in.cs"> | |
| 821 | <Sub Type>Code< /SubType> | |
| 822 | </Comp ile> | |
| 823 | <!-- I nclude the default c onfigurati on informa tion and m etadata fi les for th e add-in. | |
| 824 | T hese files are copie d to the b uild outpu t director y when the project i s | |
| 825 | b uilt, and the path t o the conf iguration file is pa ssed to ad d-in on th e command | |
| 826 | l ine when d ebugging. | |
| 827 | --> | |
| 828 | </ItemGr oup> | |
| 829 | <!-- Inc lude the b uild rules for a C# project.-- > | |
| 830 | <Import Project="$ (MSBuildBi nPath)\Mic rosoft.CSh arp.target s" /> | |
| 831 | <!-- Thi s section defines VS TA propert ies that d escribe th e host-cha ngable pro ject prope rties. --> | |
| 832 | <Project Extensions > | |
| 833 | <Visua lStudio> | |
| 834 | <Fla vorPropert ies GUID=" {30D016F9- 3734-4E33- A861-5E7D8 99E18F3}"> | |
| 835 | <P rojectProp erties Hos tName="VST AHostName" HostPacka ge="{B3A68 5AA-7EAF-4 BC6-9940-5 7959FA5AC0 7}" 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" /> | |
| 836 | <H ost Name=" SSIS_Scrip tTask" /> | |
| 837 | <P rojectClie nt> | |
| 838 | <HostIdent ifier>SSIS _ST110</Ho stIdentifi er> | |
| 839 | </ ProjectCli ent> | |
| 840 | </Fl avorProper ties> | |
| 841 | </Visu alStudio> | |
| 842 | </Projec tExtension s> | |
| 843 | </Project> ]]></Proje ctItem> | |
| 844 | <P rojectItem | |
| 845 | Name="Exce lWorksheet .cs" | |
| 846 | Encoding=" UTF8"><![C DATA[/* | |
| 847 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 848 | * | |
| 849 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 850 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 851 | * | |
| 852 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 853 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 854 | * All rig hts reserv ed. | |
| 855 | * | |
| 856 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 857 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 858 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 859 | * | |
| 860 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 861 | * 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 | |
| 862 | * | |
| 863 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 864 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 865 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 866 | * | |
| 867 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 868 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 869 | */ | |
| 870 | ||
| 871 | /* | |
| 872 | * Code ch ange notes : | |
| 873 | * | |
| 874 | * Author Change Date | |
| 875 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 876 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 877 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 878 | */ | |
| 879 | using Syst em; | |
| 880 | using Syst em.Xml; | |
| 881 | using Syst em.IO; | |
| 882 | using Syst em.IO.Pack aging; | |
| 883 | using Syst em.Configu ration; | |
| 884 | ||
| 885 | namespace OfficeOpen Xml | |
| 886 | { | |
| 887 | /// <s ummary> | |
| 888 | /// Re presents a n Excel wo rksheet an d provides access to its prope rties and methods | |
| 889 | /// </ summary> | |
| 890 | public class Exc elWorkshee t | |
| 891 | { | |
| 892 | #r egion Work sheet Priv ate Proper ties | |
| 893 | // / <summary > | |
| 894 | // / Temporar y tag for all column numbers i n the work sheet XML | |
| 895 | // / For inte rnal use o nly! | |
| 896 | // / </summar y> | |
| 897 | pr otected in ternal con st string tempColumn NumberTag = "colNumb er"; | |
| 898 | // / <summary > | |
| 899 | // / Referenc e to the p arent pack age | |
| 900 | // / For inte rnal use o nly! | |
| 901 | // / </summar y> | |
| 902 | pr otected in ternal Exc elPackage xlPackage; | |
| 903 | pr ivate Uri _worksheet Uri; | |
| 904 | pr ivate stri ng _name; | |
| 905 | pr ivate int _sheetID; | |
| 906 | pr ivate bool _hidden; | |
| 907 | pr ivate stri ng _relati onshipID; | |
| 908 | pr ivate XmlD ocument _w orksheetXm l; | |
| 909 | pr ivate Exce lWorksheet View _shee tView; | |
| 910 | pr ivate Exce lHeaderFoo ter _heade rFooter; | |
| 911 | pr ivate XmlN amespaceMa nager _nsM anager; | |
| 912 | #e ndregion // END Wor ksheet Pri vate Prope rties | |
| 913 | ||
| 914 | #r egion Exce lWorksheet Construct or | |
| 915 | // / <summary > | |
| 916 | // / Creates a new inst ance of Ex celWorkshe et class. | |
| 917 | // / For inte rnal use o nly! | |
| 918 | // / </summar y> | |
| 919 | // / <param n ame="Paren tXlPackage ">Parent E xcelPackag e object</ param> | |
| 920 | // / <param n ame="Relat ionshipID" >Package r elationshi p ID</para m> | |
| 921 | // / <param n ame="sheet Name">Name of the ne w workshee t</param> | |
| 922 | // / <param n ame="uriWo rksheet">U ri of the worksheet in the pac kage</para m> | |
| 923 | // / <param n ame="Sheet ID">The wo rksheet's ID in the workbook X ML</param> | |
| 924 | // / <param n ame="Hide" >Indicates if the wo rksheet is hidden</p aram> | |
| 925 | pr otected in ternal Exc elWorkshee t( | |
| 926 | ExcelPac kage Paren tXlPackage , | |
| 927 | string R elationshi pID, | |
| 928 | string s heetName, | |
| 929 | Uri uriW orksheet, | |
| 930 | int Shee tID, | |
| 931 | bool Hid e) | |
| 932 | { | |
| 933 | xlPackag e = Parent XlPackage; | |
| 934 | _relatio nshipID = Relationsh ipID; | |
| 935 | _workshe etUri = ur iWorksheet ; | |
| 936 | _name = sheetName; | |
| 937 | //_type = Type; | |
| 938 | _sheetID = SheetID ; | |
| 939 | Hidden = Hide; | |
| 940 | } | |
| 941 | #e ndregion | |
| 942 | ||
| 943 | #r egion Work sheet Publ ic Propert ies | |
| 944 | // / <summary > | |
| 945 | // / Read-onl y: the Uri to the wo rksheet wi thin the p ackage | |
| 946 | // / </summar y> | |
| 947 | pr otected in ternal Uri Worksheet Uri { get { return ( _worksheet Uri); } } | |
| 948 | // / <summary > | |
| 949 | // / Read-onl y: a refer ence to th e PackageP art for th e workshee t within t he package | |
| 950 | // / </summar y> | |
| 951 | pr otected in ternal Pac kagePart P art { get { return ( xlPackage. Package.Ge tPart(Work sheetUri)) ; } } | |
| 952 | // / <summary > | |
| 953 | // / Read-onl y: the ID for the wo rksheet's relationsh ip with th e workbook in the pa ckage | |
| 954 | // / </summar y> | |
| 955 | pr otected in ternal str ing Relati onshipID { get { ret urn (_rela tionshipID ); } } | |
| 956 | // / <summary > | |
| 957 | // / The uniq ue identif ier for th e workshee t. Note t hat these can be ran dom, so no t | |
| 958 | // / too usef ul in code ! | |
| 959 | // / </summar y> | |
| 960 | pr otected in ternal int SheetID { get { ret urn (_shee tID); } } | |
| 961 | // / <summary > | |
| 962 | // / Provides access to a namespa ce manager instance to allow X Path searc hing | |
| 963 | // / </summar y> | |
| 964 | pu blic XmlNa mespaceMan ager NameS paceManage r | |
| 965 | { | |
| 966 | get | |
| 967 | { | |
| 968 | if ( _nsManager == null) | |
| 969 | { | |
| 970 | NameTable nt = new N ameTable() ; | |
| 971 | _nsManager = new Xml NamespaceM anager(nt) ; | |
| 972 | _nsManager .AddNamesp ace("d", E xcelPackag e.schemaMa in); | |
| 973 | } | |
| 974 | retu rn (_nsMan ager); | |
| 975 | } | |
| 976 | } | |
| 977 | // / <summary > | |
| 978 | // / Returns a ExcelWor ksheetView object th at allows you to | |
| 979 | // / set the view state propertie s of the w orksheet | |
| 980 | // / </summar y> | |
| 981 | pu blic Excel WorksheetV iew View | |
| 982 | { | |
| 983 | get | |
| 984 | { | |
| 985 | if ( _sheetView == null) | |
| 986 | { | |
| 987 | _sheetView = new Exc elWorkshee tView(this ); | |
| 988 | } | |
| 989 | retu rn (_sheet View); | |
| 990 | } | |
| 991 | } | |
| 992 | ||
| 993 | #r egion Name // Worksh eet Name | |
| 994 | // / <summary > | |
| 995 | // / The work sheet's na me as it a ppears on the tab | |
| 996 | // / </summar y> | |
| 997 | pu blic strin g Name | |
| 998 | { | |
| 999 | get { re turn (_nam e); } | |
| 1000 | set | |
| 1001 | { | |
| 1002 | XmlN ode sheetN ode = xlPa ckage.Work book.Workb ookXml.Sel ectSingleN ode(string .Format("/ /d:sheet[@ sheetId={0 }]", _shee tID), Name SpaceManag er); | |
| 1003 | if ( sheetNode != null) | |
| 1004 | { | |
| 1005 | XmlAttribu te nameAtt r = (XmlAt tribute)sh eetNode.At tributes.G etNamedIte m("name"); | |
| 1006 | if (nameAt tr != null ) | |
| 1007 | { | |
| 1008 | nameAt tr.Value = value; | |
| 1009 | } | |
| 1010 | } | |
| 1011 | _nam e = value; | |
| 1012 | } | |
| 1013 | } | |
| 1014 | #e ndregion / / END Work sheet Name | |
| 1015 | ||
| 1016 | #r egion Hidd en | |
| 1017 | // / <summary > | |
| 1018 | // / Indicate s if the w orksheet i s hidden i n the work book | |
| 1019 | // / </summar y> | |
| 1020 | pu blic bool Hidden | |
| 1021 | { | |
| 1022 | get { re turn (_hid den); } | |
| 1023 | set | |
| 1024 | { | |
| 1025 | XmlN ode sheetN ode = xlPa ckage.Work book.Workb ookXml.Sel ectSingleN ode(string .Format("/ /d:sheet[@ sheetId={0 }]", _shee tID), Name SpaceManag er); | |
| 1026 | if ( sheetNode != null) | |
| 1027 | { | |
| 1028 | XmlAttribu te nameAtt r = (XmlAt tribute)sh eetNode.At tributes.G etNamedIte m("hidden" ); | |
| 1029 | if (nameAt tr != null ) | |
| 1030 | { | |
| 1031 | nameAt tr.Value = value.ToS tring(); | |
| 1032 | } | |
| 1033 | } | |
| 1034 | _hid den = valu e; | |
| 1035 | } | |
| 1036 | } | |
| 1037 | #e ndregion | |
| 1038 | ||
| 1039 | #r egion defa ultRowHeig ht | |
| 1040 | // / <summary > | |
| 1041 | // / Allows y ou to get/ set the de fault heig ht of all rows in th e workshee t | |
| 1042 | // / </summar y> | |
| 1043 | pu blic int d efaultRowH eight | |
| 1044 | { | |
| 1045 | get | |
| 1046 | { | |
| 1047 | int retValue = 15; // Ex cel's defa ult height | |
| 1048 | XmlE lement she etFormat = (XmlEleme nt)Workshe etXml.Sele ctSingleNo de("//d:sh eetFormatP r", NameSp aceManager ); | |
| 1049 | if ( sheetForma t != null) | |
| 1050 | { | |
| 1051 | string ret = sheetFo rmat.GetAt tribute("d efaultRowH eight"); | |
| 1052 | if (ret != "") | |
| 1053 | retVal ue = int.P arse(ret); | |
| 1054 | } | |
| 1055 | retu rn retValu e; | |
| 1056 | } | |
| 1057 | set | |
| 1058 | { | |
| 1059 | XmlE lement she etFormat = (XmlEleme nt)Workshe etXml.Sele ctSingleNo de("//d:sh eetFormatP r", NameSp aceManager ); | |
| 1060 | if ( sheetForma t == null) | |
| 1061 | { | |
| 1062 | // create the node a s it does not exist | |
| 1063 | sheetForma t = Worksh eetXml.Cre ateElement ("sheetFor matPr", Ex celPackage .schemaMai n); | |
| 1064 | // find lo cation to insert new element | |
| 1065 | XmlNode sh eetViews = Worksheet Xml.Select SingleNode ("//d:shee tViews", N ameSpaceMa nager); | |
| 1066 | // insert the new no de | |
| 1067 | WorksheetX ml.Documen tElement.I nsertAfter (sheetForm at, sheetV iews); | |
| 1068 | } | |
| 1069 | shee tFormat.Se tAttribute ("defaultR owHeight", value.ToS tring()); | |
| 1070 | } | |
| 1071 | } | |
| 1072 | #e ndregion | |
| 1073 | ||
| 1074 | #r egion Work sheetXml | |
| 1075 | // / <summary > | |
| 1076 | // / The XML document h olding all the works heet data. | |
| 1077 | // / </summar y> | |
| 1078 | pu blic XmlDo cument Wor ksheetXml | |
| 1079 | { | |
| 1080 | get | |
| 1081 | { | |
| 1082 | if ( _worksheet Xml == nul l) | |
| 1083 | { | |
| 1084 | _worksheet Xml = new XmlDocumen t(); | |
| 1085 | PackagePar t packPart = xlPacka ge.Package .GetPart(W orksheetUr i); | |
| 1086 | _worksheet Xml.Load(p ackPart.Ge tStream()) ; | |
| 1087 | // convert worksheet into the type of XM L we like dealing wi th | |
| 1088 | AddNumeric CellIDs(); | |
| 1089 | } | |
| 1090 | retu rn (_works heetXml); | |
| 1091 | } | |
| 1092 | } | |
| 1093 | #e ndregion | |
| 1094 | ||
| 1095 | #r egion Head erFooter | |
| 1096 | // / <summary > | |
| 1097 | // / A refere nce to the header an d footer c lass which allows yo u to | |
| 1098 | // / set the header and footer fo r all odd, even and first page s of the w orksheet | |
| 1099 | // / </summar y> | |
| 1100 | pu blic Excel HeaderFoot er HeaderF ooter | |
| 1101 | { | |
| 1102 | get | |
| 1103 | { | |
| 1104 | if ( _headerFoo ter == nul l) | |
| 1105 | { | |
| 1106 | XmlNode he aderFooter Node = Wor ksheetXml. SelectSing leNode("// d:headerFo oter", Nam eSpaceMana ger); | |
| 1107 | if (header FooterNode == null) | |
| 1108 | header FooterNode = Workshe etXml.Docu mentElemen t.AppendCh ild(Worksh eetXml.Cre ateElement ("headerFo oter", Exc elPackage. schemaMain )); | |
| 1109 | _headerFoo ter = new ExcelHeade rFooter((X mlElement) headerFoot erNode); | |
| 1110 | } | |
| 1111 | retu rn (_heade rFooter); | |
| 1112 | } | |
| 1113 | } | |
| 1114 | #e ndregion | |
| 1115 | ||
| 1116 | // TODO: imp lement fre eze pane. | |
| 1117 | // TODO: imp lement pag e margin p roperties | |
| 1118 | ||
| 1119 | #e ndregion / / END Work sheet Publ ic Propert ies | |
| 1120 | ||
| 1121 | #r egion Work sheet Publ ic Methods | |
| 1122 | // / <summary > | |
| 1123 | // / Provides access to an indivi dual cell within the worksheet . | |
| 1124 | // / </summar y> | |
| 1125 | // / <param n ame="row"> The row nu mber in th e workshee t</param> | |
| 1126 | // / <param n ame="col"> The column number in the works heet</para m> | |
| 1127 | // / <returns ></returns > | |
| 1128 | pu blic Excel Cell Cell( int row, i nt col) | |
| 1129 | { | |
| 1130 | return ( new ExcelC ell(this, row, col)) ; | |
| 1131 | } | |
| 1132 | ||
| 1133 | // / <summary > | |
| 1134 | // / Provides access to an indivi dual row w ithin the worksheet so you can set its p roperties. | |
| 1135 | // / </summar y> | |
| 1136 | // / <param n ame="row"> The row nu mber in th e workshee t</param> | |
| 1137 | // / <returns ></returns > | |
| 1138 | pu blic Excel Row Row(in t row) | |
| 1139 | { | |
| 1140 | return ( new ExcelR ow(this, r ow)); | |
| 1141 | } | |
| 1142 | ||
| 1143 | // / <summary > | |
| 1144 | // / Provides access to an indivi dual colum n within t he workshe et so you can set it s properti es. | |
| 1145 | // / </summar y> | |
| 1146 | // / <param n ame="col"> The column number in the works heet</para m> | |
| 1147 | // / <returns ></returns > | |
| 1148 | pu blic Excel Column Col umn(int co l) | |
| 1149 | { | |
| 1150 | return ( new ExcelC olumn(this , col)); | |
| 1151 | } | |
| 1152 | ||
| 1153 | #r egion Crea teSharedFo rmula | |
| 1154 | // / <summary > | |
| 1155 | // / Creates a shared f ormula bas ed on the formula al ready in s tartCell | |
| 1156 | // / Essentia lly this s upports th e formula attributes such as t ="shared" ref="B2:B4 " si="0" | |
| 1157 | // / as per B rian Jones : Open XML Formats b log. See | |
| 1158 | // / http://b logs.msdn. com/brian_ jones/arch ive/2006/1 1/15/simpl e-spreadsh eetml-file -part-2-of -3.aspx | |
| 1159 | // / </summar y> | |
| 1160 | // / <param n ame="start Cell">The cell conta ining the formula</p aram> | |
| 1161 | // / <param n ame="endCe ll">The en d cell (i. e. end of the range) </param> | |
| 1162 | pu blic void CreateShar edFormula( ExcelCell startCell, ExcelCell endCell) | |
| 1163 | { | |
| 1164 | XmlEleme nt formula Element; | |
| 1165 | string f ormula = s tartCell.F ormula; | |
| 1166 | if (form ula == "") throw new Exception ("CreateSh aredFormul a Error: s tartCell d oes not co ntain a fo rmula!"); | |
| 1167 | ||
| 1168 | // find or create a shared f ormula ID | |
| 1169 | int shar edID = -1; | |
| 1170 | foreach (XmlNode n ode in _wo rksheetXml .SelectNod es("//d:sh eetData/d: row/d:c/d: f/@si", Na meSpaceMan ager)) | |
| 1171 | { | |
| 1172 | int curID = in t.Parse(no de.Value); | |
| 1173 | if ( curID > sh aredID) sh aredID = c urID; | |
| 1174 | } | |
| 1175 | sharedID ++; // fi rst value must be ze ro | |
| 1176 | ||
| 1177 | for (int row = sta rtCell.Row ; row <= e ndCell.Row ; row++) | |
| 1178 | { | |
| 1179 | for (int col = startCell .Column; c ol <= endC ell.Column ; col++) | |
| 1180 | { | |
| 1181 | ExcelCell cell = Cel l(row, col ); | |
| 1182 | ||
| 1183 | // to forc e Excel to re-calcul ate the fo rmula, we must remov e the valu e | |
| 1184 | cell.Remov eValue(); | |
| 1185 | ||
| 1186 | formulaEle ment = (Xm lElement)c ell.Elemen t.SelectSi ngleNode(" ./d:f", Na meSpaceMan ager); | |
| 1187 | if (formul aElement = = null) | |
| 1188 | { | |
| 1189 | formul aElement = cell.AddF ormulaElem ent(); | |
| 1190 | } | |
| 1191 | formulaEle ment.SetAt tribute("t ", "shared "); | |
| 1192 | formulaEle ment.SetAt tribute("s i", shared ID.ToStrin g()); | |
| 1193 | } | |
| 1194 | } | |
| 1195 | ||
| 1196 | // final ly add the shared ce ll range t o the star tCell | |
| 1197 | formulaE lement = ( XmlElement )startCell .Element.S electSingl eNode("./d :f", NameS paceManage r); | |
| 1198 | formulaE lement.Set Attribute( "ref", str ing.Format ("{0}:{1}" , startCel l.CellAddr ess, endCe ll.CellAdd ress)); | |
| 1199 | } | |
| 1200 | #e ndregion | |
| 1201 | ||
| 1202 | // / <summary > | |
| 1203 | // / Inserts conditiona l formatti ng for the cell rang e. | |
| 1204 | // / Currentl y only sup ports the dataBar st yle. | |
| 1205 | // / </summar y> | |
| 1206 | // / <param n ame="start Cell"></pa ram> | |
| 1207 | // / <param n ame="endCe ll"></para m> | |
| 1208 | // / <param n ame="color "></param> | |
| 1209 | pu blic void CreateCond itionalFor matting(Ex celCell st artCell, E xcelCell e ndCell, st ring color ) | |
| 1210 | { | |
| 1211 | XmlNode formatNode = Workshe etXml.Sele ctSingleNo de("//d:co nditionalF ormatting" , NameSpac eManager); | |
| 1212 | if (form atNode == null) | |
| 1213 | { | |
| 1214 | form atNode = W orksheetXm l.CreateEl ement("con ditionalFo rmatting", ExcelPack age.schema Main); | |
| 1215 | XmlN ode prevNo de = Works heetXml.Se lectSingle Node("//d: mergeCells ", NameSpa ceManager) ; | |
| 1216 | if ( prevNode = = null) | |
| 1217 | prevNode = Worksheet Xml.Select SingleNode ("//d:shee tData", Na meSpaceMan ager); | |
| 1218 | Work sheetXml.D ocumentEle ment.Inser tAfter(for matNode, p revNode); | |
| 1219 | } | |
| 1220 | XmlAttri bute attr = formatNo de.Attribu tes["sqref "]; | |
| 1221 | if (attr == null) | |
| 1222 | { | |
| 1223 | attr = Workshe etXml.Crea teAttribut e("sqref") ; | |
| 1224 | form atNode.Att ributes.Ap pend(attr) ; | |
| 1225 | } | |
| 1226 | attr.Val ue = strin g.Format(" {0}:{1}", startCell. CellAddres s, endCell .CellAddre ss); | |
| 1227 | ||
| 1228 | XmlNode node = for matNode.Se lectSingle Node("./d: cfRule", N ameSpaceMa nager); | |
| 1229 | if (node == null) | |
| 1230 | { | |
| 1231 | node = Workshe etXml.Crea teElement( "cfRule", ExcelPacka ge.schemaM ain); | |
| 1232 | form atNode.App endChild(n ode); | |
| 1233 | } | |
| 1234 | ||
| 1235 | attr = n ode.Attrib utes["type "]; | |
| 1236 | if (attr == null) | |
| 1237 | { | |
| 1238 | attr = Workshe etXml.Crea teAttribut e("type"); | |
| 1239 | node .Attribute s.Append(a ttr); | |
| 1240 | } | |
| 1241 | attr.Val ue = "data Bar"; | |
| 1242 | ||
| 1243 | attr = n ode.Attrib utes["prio rity"]; | |
| 1244 | if (attr == null) | |
| 1245 | { | |
| 1246 | attr = Workshe etXml.Crea teAttribut e("priorit y"); | |
| 1247 | node .Attribute s.Append(a ttr); | |
| 1248 | } | |
| 1249 | attr.Val ue = "1"; | |
| 1250 | ||
| 1251 | // the f ollowing i s poor cod e, but jus t an examp le!!! | |
| 1252 | XmlNode databar = WorksheetX ml.CreateE lement("da tabar", Ex celPackage .schemaMai n); | |
| 1253 | node.App endChild(d atabar); | |
| 1254 | ||
| 1255 | XmlNode child = Wo rksheetXml .CreateEle ment("cfvo ", ExcelPa ckage.sche maMain); | |
| 1256 | databar. AppendChil d(child); | |
| 1257 | attr = W orksheetXm l.CreateAt tribute("t ype"); | |
| 1258 | child.At tributes.A ppend(attr ); | |
| 1259 | attr.Val ue = "min" ; | |
| 1260 | attr = W orksheetXm l.CreateAt tribute("v al"); | |
| 1261 | child.At tributes.A ppend(attr ); | |
| 1262 | attr.Val ue = "0"; | |
| 1263 | ||
| 1264 | child = WorksheetX ml.CreateE lement("cf vo", Excel Package.sc hemaMain); | |
| 1265 | databar. AppendChil d(child); | |
| 1266 | attr = W orksheetXm l.CreateAt tribute("t ype"); | |
| 1267 | child.At tributes.A ppend(attr ); | |
| 1268 | attr.Val ue = "max" ; | |
| 1269 | attr = W orksheetXm l.CreateAt tribute("v al"); | |
| 1270 | child.At tributes.A ppend(attr ); | |
| 1271 | attr.Val ue = "0"; | |
| 1272 | ||
| 1273 | child = WorksheetX ml.CreateE lement("co lor", Exce lPackage.s chemaMain) ; | |
| 1274 | databar. AppendChil d(child); | |
| 1275 | attr = W orksheetXm l.CreateAt tribute("r gb"); | |
| 1276 | child.At tributes.A ppend(attr ); | |
| 1277 | attr.Val ue = color ; | |
| 1278 | } | |
| 1279 | ||
| 1280 | #r egion Inse rtRow | |
| 1281 | // / <summary > | |
| 1282 | // / Inserts a new row into the s preadsheet . Existin g rows bel ow the ins ersion pos ition are | |
| 1283 | // / shifted down. All formula a re updated to take a ccount of the new ro w. | |
| 1284 | // / </summar y> | |
| 1285 | // / <param n ame="posit ion">The p osition of the new r ow</param> | |
| 1286 | pu blic void InsertRow( int positi on) | |
| 1287 | { | |
| 1288 | XmlNode rowNode = null; | |
| 1289 | // creat e the new row elemen t | |
| 1290 | XmlEleme nt rowElem ent = Work sheetXml.C reateEleme nt("row", ExcelPacka ge.schemaM ain); | |
| 1291 | rowEleme nt.Attribu tes.Append (Worksheet Xml.Create Attribute( "r")); | |
| 1292 | rowEleme nt.Attribu tes["r"].V alue = pos ition.ToSt ring(); | |
| 1293 | ||
| 1294 | XmlNode sheetDataN ode = Work sheetXml.S electSingl eNode("//d :sheetData ", NameSpa ceManager) ; | |
| 1295 | if (shee tDataNode != null) | |
| 1296 | { | |
| 1297 | int renumberFr om = 1; | |
| 1298 | XmlN odeList no des = shee tDataNode. ChildNodes ; | |
| 1299 | int nodeCount = nodes.Co unt; | |
| 1300 | XmlN ode insert AfterRowNo de = null; | |
| 1301 | int insertAfte rRowNodeID = 0; | |
| 1302 | for (int i = 0 ; i < node Count; i++ ) | |
| 1303 | { | |
| 1304 | int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ; | |
| 1305 | if (curren tRowID < p osition) | |
| 1306 | { | |
| 1307 | insert AfterRowNo de = nodes [i]; | |
| 1308 | insert AfterRowNo deID = i; | |
| 1309 | } | |
| 1310 | if (curren tRowID >= position) | |
| 1311 | { | |
| 1312 | renumb erFrom = c urrentRowI D; | |
| 1313 | break; | |
| 1314 | } | |
| 1315 | } | |
| 1316 | ||
| 1317 | // u pdate the existing r ow ids | |
| 1318 | for (int i = i nsertAfter RowNodeID + 1; i < n odeCount; i++) | |
| 1319 | { | |
| 1320 | int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ; | |
| 1321 | if (curren tRowID >= renumberFr om) | |
| 1322 | { | |
| 1323 | nodes[ i].Attribu tes["r"].V alue = Con vert.ToStr ing(curren tRowID + 1 ); | |
| 1324 | ||
| 1325 | // now update an y formula that are i n the row | |
| 1326 | XmlNod eList form ulaNodes = nodes[i]. SelectNode s("./d:c/d :f", NameS paceManage r); | |
| 1327 | foreac h (XmlNode formulaNo de in form ulaNodes) | |
| 1328 | { | |
| 1329 | fo rmulaNode. InnerText = ExcelCel l.UpdateFo rmulaRefer ences(form ulaNode.In nerText, 1 , 0, posit ion, 0); | |
| 1330 | } | |
| 1331 | } | |
| 1332 | } | |
| 1333 | ||
| 1334 | // n ow insert the new ro w | |
| 1335 | if ( insertAfte rRowNode ! = null) | |
| 1336 | rowNode = sheetDataN ode.Insert After(rowE lement, in sertAfterR owNode); | |
| 1337 | ||
| 1338 | } | |
| 1339 | } | |
| 1340 | #e ndregion | |
| 1341 | ||
| 1342 | #r egion Dele teRow | |
| 1343 | // / <summary > | |
| 1344 | // / Deletes the specif ied row fr om the wor ksheet. | |
| 1345 | // / If shift OtherRowsU p=true the n all form ula are up dated to t ake accoun t of the d eleted row . | |
| 1346 | // / </summar y> | |
| 1347 | // / <param n ame="rowTo Delete">Th e number o f the row to be dele ted</param > | |
| 1348 | // / <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> | |
| 1349 | pu blic void DeleteRow( int rowToD elete, boo l shiftOth erRowsUp) | |
| 1350 | { | |
| 1351 | XmlNode sheetDataN ode = Work sheetXml.S electSingl eNode("//d :sheetData ", NameSpa ceManager) ; | |
| 1352 | if (shee tDataNode != null) | |
| 1353 | { | |
| 1354 | XmlN odeList no des = shee tDataNode. ChildNodes ; | |
| 1355 | int nodeCount = nodes.Co unt; | |
| 1356 | int rowNodeID = 0; | |
| 1357 | XmlN ode rowNod e = null; | |
| 1358 | for (int i = 0 ; i < node Count; i++ ) | |
| 1359 | { | |
| 1360 | int curren tRowID = i nt.Parse(n odes[i].At tributes[" r"].Value) ; | |
| 1361 | if (curren tRowID == rowToDelet e) | |
| 1362 | { | |
| 1363 | rowNod eID = i; | |
| 1364 | rowNod e = nodes[ i]; | |
| 1365 | } | |
| 1366 | } | |
| 1367 | ||
| 1368 | if ( shiftOther RowsUp) | |
| 1369 | { | |
| 1370 | // update the existi ng row ids | |
| 1371 | for (int i = rowNode ID + 1; i < nodeCoun t; i++) | |
| 1372 | { | |
| 1373 | int cu rrentRowID = int.Par se(nodes[i ].Attribut es["r"].Va lue); | |
| 1374 | if (cu rrentRowID > rowToDe lete) | |
| 1375 | { | |
| 1376 | no des[i].Att ributes["r "].Value = Convert.T oString(cu rrentRowID - 1); | |
| 1377 | ||
| 1378 | // now updat e any form ula that a re in the row | |
| 1379 | Xm lNodeList formulaNod es = nodes [i].Select Nodes("./d :c/d:f", N ameSpaceMa nager); | |
| 1380 | fo reach (Xml Node formu laNode in formulaNod es) | |
| 1381 | formulaN ode.InnerT ext = Exce lCell.Upda teFormulaR eferences( formulaNod e.InnerTex t, -1, 0, rowToDelet e, 0); | |
| 1382 | } | |
| 1383 | } | |
| 1384 | } | |
| 1385 | // d elete the row | |
| 1386 | if ( rowNode != null) | |
| 1387 | { | |
| 1388 | sheetDataN ode.Remove Child(rowN ode); | |
| 1389 | } | |
| 1390 | } | |
| 1391 | } | |
| 1392 | #e ndregion | |
| 1393 | ||
| 1394 | #e ndregion / / END Work sheet Publ ic Methods | |
| 1395 | ||
| 1396 | #r egion Work sheet Priv ate Method s | |
| 1397 | ||
| 1398 | #r egion Work sheet Save | |
| 1399 | // / <summary > | |
| 1400 | // / Saves th e workshee t to the p ackage. F or interna l use only . | |
| 1401 | // / </summar y> | |
| 1402 | pr otected in ternal voi d Save() // Workshe et Save | |
| 1403 | { | |
| 1404 | #region Delete the printer s ettings co mponent (i f it exist s) | |
| 1405 | // we al so need to delete th e relation ship from the pageSe tup tag | |
| 1406 | XmlNode pageSetup = _workshe etXml.Sele ctSingleNo de("//d:pa geSetup", NameSpaceM anager); | |
| 1407 | if (page Setup != n ull) | |
| 1408 | { | |
| 1409 | XmlA ttribute a ttr = (Xml Attribute) pageSetup. Attributes .GetNamedI tem("id", ExcelPacka ge.schemaR elationshi ps); | |
| 1410 | if ( attr != nu ll) | |
| 1411 | { | |
| 1412 | string rel ID = attr. Value; | |
| 1413 | // first d elete the attribute from the X ML | |
| 1414 | pageSetup. Attributes .Remove(at tr); | |
| 1415 | ||
| 1416 | // get the URI | |
| 1417 | PackageRel ationship relPrinter Settings = Part.GetR elationshi p(relID); | |
| 1418 | Uri printe rSettingsU ri = new U ri("/xl" + relPrinte rSettings. TargetUri. ToString() .Replace(" ..", ""), UriKind.Re lative); | |
| 1419 | ||
| 1420 | // now del ete the re lationship | |
| 1421 | Part.Delet eRelations hip(relPri nterSettin gs.Id); | |
| 1422 | ||
| 1423 | // now del ete the pa rt from th e package | |
| 1424 | xlPackage. Package.De letePart(p rinterSett ingsUri); | |
| 1425 | } | |
| 1426 | } | |
| 1427 | #endregi on | |
| 1428 | ||
| 1429 | if (_wor ksheetXml != null) | |
| 1430 | { | |
| 1431 | // s ave the he ader & foo ter (if de fined) | |
| 1432 | if ( _headerFoo ter != nul l) | |
| 1433 | HeaderFoot er.Save(); | |
| 1434 | // r eplace the numeric C ell IDs we inserted with AddNu mericCellI Ds() | |
| 1435 | Repl aceNumeric CellIDs(); | |
| 1436 | ||
| 1437 | // s ave worksh eet to pac kage | |
| 1438 | Pack agePart pa rtPack = x lPackage.P ackage.Get Part(Works heetUri); | |
| 1439 | Work sheetXml.S ave(partPa ck.GetStre am(FileMod e.Create, FileAccess .Write)); | |
| 1440 | xlPa ckage.Writ eDebugFile (Worksheet Xml, @"xl\ worksheets ", "sheet" + SheetID + ".xml") ; | |
| 1441 | } | |
| 1442 | } | |
| 1443 | #e ndregion | |
| 1444 | ||
| 1445 | #r egion AddN umericCell IDs | |
| 1446 | // / <summary > | |
| 1447 | // / Adds num eric cell identifier s so that it is easi er to work out posit ion of cel ls | |
| 1448 | // / Private method, fo r internal use only! | |
| 1449 | // / </summar y> | |
| 1450 | pr ivate void AddNumeri cCellIDs() | |
| 1451 | { | |
| 1452 | // proce ss each ro w | |
| 1453 | foreach (XmlNode r owNode in WorksheetX ml.SelectN odes("//d: sheetData/ d:row", Na meSpaceMan ager)) | |
| 1454 | { | |
| 1455 | // r emove the spans attr ibute. Ex cel simply recreates it when t he file is opened. | |
| 1456 | XmlA ttribute a ttr = (Xml Attribute) rowNode.At tributes.G etNamedIte m("spans") ; | |
| 1457 | if ( attr != nu ll) | |
| 1458 | rowNode.At tributes.R emove(attr ); | |
| 1459 | ||
| 1460 | int row = Conv ert.ToInt3 2(rowNode. Attributes .GetNamedI tem("r").V alue); | |
| 1461 | // p rocess eac h cell in current ro w | |
| 1462 | fore ach (XmlNo de colNode in rowNod e.SelectNo des("./d:c ", NameSpa ceManager) ) | |
| 1463 | { | |
| 1464 | XmlAttribu te cellAdd ressAttr = (XmlAttri bute)colNo de.Attribu tes.GetNam edItem("r" ); | |
| 1465 | if (cellAd dressAttr != null) | |
| 1466 | { | |
| 1467 | string cellAddre ss = cellA ddressAttr .Value; | |
| 1468 | ||
| 1469 | int co l = ExcelC ell.GetCol umnNumber( cellAddres s); | |
| 1470 | attr = Worksheet Xml.Create Attribute( tempColumn NumberTag) ; | |
| 1471 | if (at tr != null ) | |
| 1472 | { | |
| 1473 | at tr.Value = col.ToStr ing(); | |
| 1474 | co lNode.Attr ibutes.App end(attr); | |
| 1475 | // remove al l cell Add resses lik e A1, A2, A3 etc. | |
| 1476 | co lNode.Attr ibutes.Rem ove(cellAd dressAttr) ; | |
| 1477 | } | |
| 1478 | } | |
| 1479 | } | |
| 1480 | } | |
| 1481 | } | |
| 1482 | #e ndregion | |
| 1483 | ||
| 1484 | #r egion Repl aceNumeric CellIDs | |
| 1485 | // / <summary > | |
| 1486 | // / Replaces the numer ic cell id entifiers we inserte d with Add NumericCel lIDs with the tradit ional | |
| 1487 | // / A1, A2 c ell identi fiers that Excel und erstands. | |
| 1488 | // / Private method, fo r internal use only! | |
| 1489 | // / </summar y> | |
| 1490 | pr ivate void ReplaceNu mericCellI Ds() | |
| 1491 | { | |
| 1492 | int maxC olumn = 0; | |
| 1493 | // proce ss each ro w | |
| 1494 | foreach (XmlNode r owNode in WorksheetX ml.SelectN odes("//d: sheetData/ d:row", Na meSpaceMan ager)) | |
| 1495 | { | |
| 1496 | int row = Conv ert.ToInt3 2(rowNode. Attributes .GetNamedI tem("r").V alue); | |
| 1497 | int count = 0; | |
| 1498 | // p rocess eac h cell in current ro w | |
| 1499 | fore ach (XmlNo de colNode in rowNod e.SelectNo des("./d:c ", NameSpa ceManager) ) | |
| 1500 | { | |
| 1501 | XmlAttribu te colNumb er = (XmlA ttribute)c olNode.Att ributes.Ge tNamedItem (tempColum nNumberTag ); | |
| 1502 | if (colNum ber != nul l) | |
| 1503 | { | |
| 1504 | count+ +; | |
| 1505 | if (co unt > maxC olumn) max Column = c ount; | |
| 1506 | int co l = Conver t.ToInt32( colNumber. Value); | |
| 1507 | string cellAddre ss = Excel Cell.GetCo lumnLetter (col) + ro w.ToString (); | |
| 1508 | XmlAtt ribute att r = Worksh eetXml.Cre ateAttribu te("r"); | |
| 1509 | if (at tr != null ) | |
| 1510 | { | |
| 1511 | at tr.Value = cellAddre ss; | |
| 1512 | // the cellA ddress nee ds to be t he first a ttribute, otherwise Excel comp lains | |
| 1513 | if (colNode. Attributes .Count == 0) | |
| 1514 | colNode. Attributes .Append(at tr); | |
| 1515 | el se | |
| 1516 | { | |
| 1517 | colNode. Attributes .InsertBef ore(attr, (XmlAttrib ute)colNod e.Attribut es.Item(0) ); | |
| 1518 | } | |
| 1519 | } | |
| 1520 | // rem ove all nu meric cell addresses added by AddNumeric CellIDs | |
| 1521 | colNod e.Attribut es.Remove( colNumber) ; | |
| 1522 | } | |
| 1523 | } | |
| 1524 | } | |
| 1525 | ||
| 1526 | // proce ss each ro w and add the spans attribute | |
| 1527 | // TODO: Need to a dd proper spans hand ling. | |
| 1528 | //foreac h (XmlNode rowNode i n XmlDoc.S electNodes ("//d:shee tData/d:ro w", NameSp aceManager )) | |
| 1529 | //{ | |
| 1530 | // // w e must add or update the "span s" attribu te of each row | |
| 1531 | // XmlA ttribute s pans = (Xm lAttribute )rowNode.A ttributes. GetNamedIt em("spans" ); | |
| 1532 | // if ( spans == n ull) | |
| 1533 | // { | |
| 1534 | // sp ans = XmlD oc.CreateA ttribute(" spans"); | |
| 1535 | // ro wNode.Attr ibutes.App end(spans) ; | |
| 1536 | // } | |
| 1537 | // span s.Value = "1:" + max Column.ToS tring(); | |
| 1538 | //} | |
| 1539 | } | |
| 1540 | #e ndregion | |
| 1541 | ||
| 1542 | #r egion Get Style Info rmation | |
| 1543 | // / <summary > | |
| 1544 | // / Returns the name o f the styl e using it s xfId | |
| 1545 | // / </summar y> | |
| 1546 | // / <param n ame="Style ID">The xf Id of the style</par am> | |
| 1547 | // / <returns >The name of the sty le</return s> | |
| 1548 | pr otected in ternal str ing GetSty leName(int StyleID) | |
| 1549 | { | |
| 1550 | string r etValue = null; | |
| 1551 | XmlNode styleNode = null; | |
| 1552 | int coun t = 0; | |
| 1553 | foreach (XmlNode n ode in xlP ackage.Wor kbook.Styl esXml.Sele ctNodes("/ /d:cellXfs /d:xf", Na meSpaceMan ager)) | |
| 1554 | { | |
| 1555 | if ( count == S tyleID) | |
| 1556 | { | |
| 1557 | styleNode = node; | |
| 1558 | break; | |
| 1559 | } | |
| 1560 | coun t++; | |
| 1561 | } | |
| 1562 | ||
| 1563 | if (styl eNode != n ull) | |
| 1564 | { | |
| 1565 | stri ng searchS tring = st ring.Forma t("//d:cel lStyle[@xf Id = '{0}' ]", styleN ode.Attrib utes["xfId "].Value); | |
| 1566 | XmlN ode styleN ameNode = xlPackage. Workbook.S tylesXml.S electSingl eNode(sear chString, NameSpaceM anager); | |
| 1567 | if ( styleNameN ode != nul l) | |
| 1568 | { | |
| 1569 | retValue = styleName Node.Attri butes["nam e"].Value; | |
| 1570 | } | |
| 1571 | } | |
| 1572 | ||
| 1573 | return r etValue; | |
| 1574 | } | |
| 1575 | ||
| 1576 | // / <summary > | |
| 1577 | // / Returns the style ID given a style nam e. | |
| 1578 | // / The styl e ID will be created if not fo und, but o nly if the style nam e exists! | |
| 1579 | // / </summar y> | |
| 1580 | // / <param n ame="Style Name"></pa ram> | |
| 1581 | // / <returns ></returns > | |
| 1582 | pr otected in ternal int GetStyleI D(string S tyleName) | |
| 1583 | { | |
| 1584 | int styl eID = 0; | |
| 1585 | // find the named style in t he style s heet | |
| 1586 | string s earchStrin g = string .Format("/ /d:cellSty le[@name = '{0}']", StyleName) ; | |
| 1587 | XmlNode styleNameN ode = xlPa ckage.Work book.Style sXml.Selec tSingleNod e(searchSt ring, Name SpaceManag er); | |
| 1588 | if (styl eNameNode != null) | |
| 1589 | { | |
| 1590 | stri ng xfId = styleNameN ode.Attrib utes["xfId "].Value; | |
| 1591 | // l ook up pos ition of s tyle in th e cellXfs | |
| 1592 | sear chString = string.Fo rmat("//d: cellXfs/d: xf[@xfId = '{0}']", xfId); | |
| 1593 | XmlN ode styleN ode = xlPa ckage.Work book.Style sXml.Selec tSingleNod e(searchSt ring, Name SpaceManag er); | |
| 1594 | if ( styleNode != null) | |
| 1595 | { | |
| 1596 | XmlNodeLis t nodes = styleNode. SelectNode s("precedi ng-sibling ::d:xf", N ameSpaceMa nager); | |
| 1597 | if (nodes != null) | |
| 1598 | styleI D = nodes. Count; | |
| 1599 | } | |
| 1600 | } | |
| 1601 | return s tyleID; | |
| 1602 | } | |
| 1603 | #e ndregion | |
| 1604 | ||
| 1605 | #e ndregion // END Wor ksheet Pri vate Metho ds | |
| 1606 | } // END class Worksheet | |
| 1607 | }]]></Proj ectItem> | |
| 1608 | <P rojectItem | |
| 1609 | Name="Prop erties\Res ources.Des igner.cs" | |
| 1610 | Encoding=" UTF8"><![C DATA[//--- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----- | |
| 1611 | // <auto-g enerated> | |
| 1612 | // Thi s code was generated by a tool . | |
| 1613 | // | |
| 1614 | // Cha nges to th is file ma y cause in correct be havior and will be l ost if | |
| 1615 | // the code is r egenerated . | |
| 1616 | // </auto- generated> | |
| 1617 | //-------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- | |
| 1618 | ||
| 1619 | [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" + | |
| 1620 | "rceMa nager")] | |
| 1621 | [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" + | |
| 1622 | "fo")] | |
| 1623 | [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" + | |
| 1624 | "):Voi d")] | |
| 1625 | ||
| 1626 | namespace ST_fce6863 cd8c94187b 7bd2528130 634e1.cspr oj.Propert ies | |
| 1627 | { | |
| 1628 | ||
| 1629 | ||
| 1630 | /// <s ummary> | |
| 1631 | /// A strongly -typed res ource clas s, for loo king up lo calized st rings, etc . | |
| 1632 | /// </ summary> | |
| 1633 | // Thi s class wa s auto-gen erated by the Strong lyTypedRes ourceBuild er | |
| 1634 | // cla ss via a t ool like R esGen or V isual Stud io. | |
| 1635 | // To add or rem ove a memb er, edit y our .ResX file then rerun ResG en | |
| 1636 | // wit h the /str option, o r rebuild your VS pr oject. | |
| 1637 | [globa l::System. Diagnostic s.Debugger NonUserCod eAttribute ()] | |
| 1638 | intern al class R esources | |
| 1639 | { | |
| 1640 | ||
| 1641 | pr ivate stat ic global: :System.Re sources.Re sourceMana ger resour ceMan; | |
| 1642 | ||
| 1643 | pr ivate stat ic global: :System.Gl obalizatio n.CultureI nfo resour ceCulture; | |
| 1644 | ||
| 1645 | [g lobal::Sys tem.Diagno stics.Code Analysis.S uppressMes sageAttrib ute("Micro soft.Perfo rmance", " CA1811:Avo idUncalled PrivateCod e")] | |
| 1646 | in ternal Res ources() | |
| 1647 | { | |
| 1648 | } | |
| 1649 | ||
| 1650 | // / <summary > | |
| 1651 | // / Return s the cach ed Resourc eManager i nstance us ed by this class. | |
| 1652 | // / </summar y> | |
| 1653 | [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)] | |
| 1654 | in ternal sta tic global ::System.R esources.R esourceMan ager Resou rceManager | |
| 1655 | { | |
| 1656 | get | |
| 1657 | { | |
| 1658 | if ( (resourceM an == null )) | |
| 1659 | { | |
| 1660 | 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); | |
| 1661 | resourceMa n = temp; | |
| 1662 | } | |
| 1663 | retu rn resourc eMan; | |
| 1664 | } | |
| 1665 | } | |
| 1666 | ||
| 1667 | // / <summary > | |
| 1668 | // / Overri des the cu rrent thre ad's Curre ntUICultur e property for all | |
| 1669 | // / resour ce lookups using thi s strongly typed res ource clas s. | |
| 1670 | // / </summar y> | |
| 1671 | [g lobal::Sys tem.Compon entModel.E ditorBrows ableAttrib ute(System .Component Model.Edit orBrowsabl eState.Adv anced)] | |
| 1672 | in ternal sta tic global ::System.G lobalizati on.Culture Info Cultu re | |
| 1673 | { | |
| 1674 | get | |
| 1675 | { | |
| 1676 | retu rn resourc eCulture; | |
| 1677 | } | |
| 1678 | set | |
| 1679 | { | |
| 1680 | reso urceCultur e = value; | |
| 1681 | } | |
| 1682 | } | |
| 1683 | } | |
| 1684 | }]]></Proj ectItem> | |
| 1685 | <P rojectItem | |
| 1686 | Name="Scri ptMain.cs" | |
| 1687 | Encoding=" UTF8"><![C DATA[/* | |
| 1688 | Microso ft SQL Ser ver Integr ation Serv ices Scrip t Task | |
| 1689 | Write s cripts usi ng Microso ft Visual C# 2008. | |
| 1690 | The Scr iptMain is the entry point cla ss of the script. | |
| 1691 | */ | |
| 1692 | ||
| 1693 | using Syst em; | |
| 1694 | using Syst em.Data; | |
| 1695 | using Syst em.Data.Sq lClient; | |
| 1696 | using Syst em.Data.Sq lTypes; | |
| 1697 | using Micr osoft.SqlS erver.Dts. Runtime; | |
| 1698 | using Syst em.Windows .Forms; | |
| 1699 | using Syst em.Data.Ol eDb; | |
| 1700 | using Syst em.Globali zation; | |
| 1701 | using Syst em.IO; | |
| 1702 | using Syst em.Collect ions.Gener ic; | |
| 1703 | using Offi ceOpenXml; | |
| 1704 | ||
| 1705 | namespace ST_c08b961 ebac34ca79 93811373af cc663.cspr oj | |
| 1706 | { | |
| 1707 | [Micro soft.SqlSe rver.Dts.T asks.Scrip tTask.SSIS ScriptTask EntryPoint Attribute] | |
| 1708 | public partial c lass Scrip tMain : Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.V STARTScrip tObjectMod elBase | |
| 1709 | { | |
| 1710 | pr ivate File Type input FileType; | |
| 1711 | pr ivate stri ng logStri ng = ""; | |
| 1712 | in t _edipiCo lumn = -1; | |
| 1713 | in t _ssnColu mn = -1; | |
| 1714 | in t _labRepo rtDateColu mn = -1; | |
| 1715 | in t _keyFiel dColumn = -1; | |
| 1716 | st ring _keyF ieldColumn Name = ""; | |
| 1717 | pr ivate stri ng inputFi leName = " "; | |
| 1718 | ||
| 1719 | Li st<string> rawEdipis = new Lis t<string>( ); | |
| 1720 | Li st<string> validKeyF ields = ne w List<str ing>(); | |
| 1721 | Di ctionary<s tring, str ing> keyTo Edipi = ne w Dictiona ry<string, string>() ; | |
| 1722 | Di ctionary<s tring,stri ng> validE dipiIcns = new Dicti onary<stri ng, string >(); | |
| 1723 | ||
| 1724 | Fi leInfo _in putExcel; | |
| 1725 | Fi leInfo _ba ckupExcel; | |
| 1726 | in t _inputEx celColumnC ount = 1; | |
| 1727 | in t _inputEx celRowCoun t = 1; | |
| 1728 | Ex celWorkshe et _inputE xcelWorksh eet; | |
| 1729 | pr ivate stri ng _connec tionString StagingDat abase = "" ; | |
| 1730 | pr ivate stri ng _connec tionString RegistryDa tabase = " "; | |
| 1731 | pr ivate Guid _guidId = Guid.NewG uid(); | |
| 1732 | pr ivate int _dod_fragm ent_raw_da ta_id = 1; | |
| 1733 | ||
| 1734 | // Settings | |
| 1735 | // private st ring efrDo DFragTestF ile = ""; | |
| 1736 | pr ivate bool efrDoDFra gLogAllTra nsactions = false; | |
| 1737 | pr ivate stri ng efrDoDF ragCrsMviE tlName = " "; | |
| 1738 | pr ivate stri ng efrDoDF ragEdipiCo lumnName = ""; | |
| 1739 | pr ivate stri ng efrDoDF ragLabRepo rtColumnNa me = ""; | |
| 1740 | pr ivate stri ng efrDoDF ragSsnColu mnName = " "; | |
| 1741 | pr ivate stri ng efrDoDF ragArchive Folder = " "; | |
| 1742 | pr ivate stri ng efrDoDF ragJpcKeyF ield = ""; | |
| 1743 | pr ivate stri ng efrDoDF ragUsafKey Field = "" ; | |
| 1744 | pr ivate stri ng efrDoDF ragEmfKeyF ield = ""; | |
| 1745 | pr ivate stri ng efrDoDF ragJpcLabD ateField = ""; | |
| 1746 | pr ivate stri ng efrDoDF ragUsafLab DateField = ""; | |
| 1747 | pr ivate stri ng efrDoDF ragEmfLabD ateField = ""; | |
| 1748 | pr ivate bool efrDoDFra gTestMode = false; | |
| 1749 | ||
| 1750 | ||
| 1751 | #r egion VSTA generated code | |
| 1752 | en um ScriptR esults | |
| 1753 | { | |
| 1754 | Success = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Su ccess, | |
| 1755 | Failure = Microsof t.SqlServe r.Dts.Runt ime.DTSExe cResult.Fa ilure | |
| 1756 | }; | |
| 1757 | #e ndregion | |
| 1758 | ||
| 1759 | pu blic void Main() | |
| 1760 | { | |
| 1761 | logStrin g = "Begin ning DoDFr agmentScri ptTask. "; | |
| 1762 | Dts.Task Result = ( int)Script Results.Su ccess; | |
| 1763 | ||
| 1764 | // Set u p connecti on string for Regist ryStaging database | |
| 1765 | setupCon nectionStr ings(); | |
| 1766 | ||
| 1767 | //writeL og(); | |
| 1768 | ||
| 1769 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1770 | setC onfigValue s(); | |
| 1771 | ||
| 1772 | //writeL og(); | |
| 1773 | ||
| 1774 | // Load input file data | |
| 1775 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1776 | load InputExcel Data(); | |
| 1777 | ||
| 1778 | //writeL og(); | |
| 1779 | ||
| 1780 | //// fin d columns in input | |
| 1781 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1782 | setC olumns(); | |
| 1783 | ||
| 1784 | // writeL og(); | |
| 1785 | ||
| 1786 | //// Get distinct list of ed ipi's in t he input f ile | |
| 1787 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1788 | setR awEdipisFr omInput(); | |
| 1789 | ||
| 1790 | // writeL og(); | |
| 1791 | ||
| 1792 | // Load the CRS_MV I_Patient table with the EDIPI s | |
| 1793 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1794 | inse rtRawEdipi sIntoDatab ase(); | |
| 1795 | ||
| 1796 | //writeL og(); | |
| 1797 | ||
| 1798 | // Execu te the CRS MVI packag e | |
| 1799 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1800 | exec uteCRSMVIP ackage(); | |
| 1801 | ||
| 1802 | //wr iteLog(); | |
| 1803 | if (efrD oDFragTest Mode) | |
| 1804 | Mess ageBox.Sho w("Update ICN and MV I status") ; | |
| 1805 | ||
| 1806 | // Retri eve the up dated EDIP Is | |
| 1807 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1808 | retr ieveDataba seEdipis() ; | |
| 1809 | ||
| 1810 | //writeL og(); | |
| 1811 | ||
| 1812 | // Gener ate an upd ated outpu t file to continue p rocessing | |
| 1813 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1814 | Gene rateUpdate dExcelFile (); | |
| 1815 | ||
| 1816 | //writeL og(); | |
| 1817 | ||
| 1818 | // Save updated ou tput file to DoD_Fra gment_Raw_ Data | |
| 1819 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1820 | Inse rtUpdatedE xcelFileTo Database() ; | |
| 1821 | ||
| 1822 | //writeL og(); | |
| 1823 | ||
| 1824 | // Save updated ou tput file to DoD_Fra gment_Raw_ Data | |
| 1825 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1826 | Inse rtFragRawD ata(); | |
| 1827 | ||
| 1828 | //writeL og(); | |
| 1829 | ||
| 1830 | // Save updated ou tput file to DoD_Fra gment_Raw_ Data | |
| 1831 | if (Dts. TaskResult == (int)S criptResul ts.Success ) | |
| 1832 | Move FilesToArc hive(); | |
| 1833 | ||
| 1834 | logStrin g += "COMP LETE."; | |
| 1835 | ||
| 1836 | writeLog (); | |
| 1837 | } | |
| 1838 | ||
| 1839 | pr ivate void MoveFiles ToArchive( ) | |
| 1840 | { | |
| 1841 | try | |
| 1842 | { | |
| 1843 | //Me ssageBox.S how("Start ing"); | |
| 1844 | ||
| 1845 | //Me ssageBox.S how("efrDo DFragArchi veFolder: " + efrDoD FragArchiv eFolder); | |
| 1846 | //Me ssageBox.S how("name: " + Path. GetFileNam eWithoutEx tension(_i nputExcel. FullName)) ; | |
| 1847 | ||
| 1848 | stri ng destina tionFileNa me = efrDo DFragArchi veFolder + "\\" + Pa th.GetFile NameWithou tExtension (_inputExc el.FullNam e); | |
| 1849 | dest inationFil eName += " _" + DateT ime.Now.To String("yy yyMMddHHmm ss"); | |
| 1850 | dest inationFil eName += P ath.GetExt ension(_in putExcel.F ullName); | |
| 1851 | ||
| 1852 | ||
| 1853 | //Me ssageBox.S how("destf ilename: " + destina tionFileNa me); | |
| 1854 | ||
| 1855 | logS tring += " Archiving inputExcel to : " + destinatio nFileName + "; "; | |
| 1856 | ||
| 1857 | File .Move(_inp utExcel.Fu llName, de stinationF ileName); | |
| 1858 | ||
| 1859 | dest inationFil eName = ef rDoDFragAr chiveFolde r + "\\" + Path.GetF ileName(_b ackupExcel .FullName) ; | |
| 1860 | ||
| 1861 | //Me ssageBox.S how("destf ilename: " + destina tionFileNa me); | |
| 1862 | logS tring += " Archiving backupExce l to : " + destinati onFileName + "; "; | |
| 1863 | ||
| 1864 | File .Move(_bac kupExcel.F ullName, d estination FileName); | |
| 1865 | ||
| 1866 | ||
| 1867 | //Me ssageBox.S how("done backup"); | |
| 1868 | } | |
| 1869 | catch (E xception e x) | |
| 1870 | { | |
| 1871 | logS tring += " ERROR: Mov eFilesToAr chive thre w exceptio n: " + ex. Message.To String() + "; "; | |
| 1872 | ||
| 1873 | // D on't fail on this st ep, just m ove along ... | |
| 1874 | //Dt s.TaskResu lt = (int) ScriptResu lts.Failur e; | |
| 1875 | } | |
| 1876 | ||
| 1877 | logStrin g += "Comp leted Move FilesToArc hive; "; | |
| 1878 | } | |
| 1879 | ||
| 1880 | pr ivate void InsertFra gRawData() | |
| 1881 | { | |
| 1882 | string s sn = ""; | |
| 1883 | string e dipi = ""; | |
| 1884 | string i cn = ""; | |
| 1885 | List<str ing> inser tedEdipis = new List <string>() ; | |
| 1886 | DataTabl e dodFragD ataTable = GetDoDFra gDataTable (); | |
| 1887 | DateTime labReport Date = new DateTime( ); | |
| 1888 | string s LabReportD ate = ""; | |
| 1889 | ||
| 1890 | try | |
| 1891 | { | |
| 1892 | logS tring += " Processing " + _inpu tExcelRowC ount.ToStr ing() + " rows; "; | |
| 1893 | ||
| 1894 | // I terate thr ough the i nput file. Pull out relevant d ata values and | |
| 1895 | // i nsert reco rds into r aw data | |
| 1896 | ||
| 1897 | usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel)) | |
| 1898 | { | |
| 1899 | ExcelWorks heet input ExcelWorks heet = xlP ackage.Wor kbook.Work sheets[1]; | |
| 1900 | ||
| 1901 | // Skip he ader row | |
| 1902 | for (int r owNum = 2 ; rowNum < = _inputEx celRowCoun t; rowNum+ +) | |
| 1903 | { | |
| 1904 | edipi = inputExc elWorkshee t.Cell(row Num, _edip iColumn).V alue.ToStr ing(); | |
| 1905 | ||
| 1906 | if (!i nsertedEdi pis.Contai ns(edipi)) | |
| 1907 | { | |
| 1908 | if (_ssnColu mn > -1) | |
| 1909 | ssn = in putExcelWo rksheet.Ce ll(rowNum, _ssnColum n).Value.T oString(); | |
| 1910 | el se | |
| 1911 | ssn = "" ; | |
| 1912 | ||
| 1913 | if (validEdi piIcns.Try GetValue(e dipi, out icn)) | |
| 1914 | { | |
| 1915 | sLabRepo rtDate = i nputExcelW orksheet.C ell(rowNum , _labRepo rtDateColu mn).Value. ToString() ; | |
| 1916 | ||
| 1917 | if (inpu tExcelWork sheet.Cell (rowNum, _ labReportD ateColumn) .Value.Len gth > 0) | |
| 1918 | { | |
| 1919 | try | |
| 1920 | { | |
| 1921 | labReportD ate = Date Time.FromO ADate( | |
| 1922 | Conver t.ToDouble ( | |
| 1923 | in putExcelWo rksheet.Ce ll(rowNum, _labRepor tDateColum n).Value, | |
| 1924 | Sy stem.Globa lization.C ultureInfo .Invariant Culture)); | |
| 1925 | ||
| 1926 | //labRepor tDate = Da teTime.Now ; | |
| 1927 | } | |
| 1928 | catc h (Excepti on e) | |
| 1929 | { | |
| 1930 | logString += "ERROR with labRe portDate c onversion on row: " + rowNum.T oString() | |
| 1931 | + " V alue: " + inputExcel Worksheet. Cell(rowNu m, _labRep ortDateCol umn).Value ; | |
| 1932 | logString += " Excep tion: " + e.Message. ToString() + "; "; | |
| 1933 | } | |
| 1934 | } | |
| 1935 | else | |
| 1936 | { | |
| 1937 | // C an't inser t nulls, d irectly, s o use a pl aceholder and change it to nul l afterwar ds | |
| 1938 | ||
| 1939 | labR eportDate = new Date Time(1900, 01, 01); | |
| 1940 | } | |
| 1941 | ||
| 1942 | //logStr ing += "ss n: " + | |
| 1943 | // s sn + " id: " + dod_f ragment_ra w_data_id // D OD_FRAGMEN T_RAW_DATA _ID | |
| 1944 | // + " inputda te: " + Da teTime.Now .ToString( ) | |
| 1945 | // + " labrepo rtdate: " + labRepor tDate.ToSt ring() + | |
| 1946 | // " icn: " + icn + " END"; | |
| 1947 | ||
| 1948 | dodFragD ataTable.R ows.Add( | |
| 1949 | ssn / / PATIENTS SN | |
| 1950 | , _d od_fragmen t_raw_data _id // DOD_FRA GMENT_RAW_ DATA_ID | |
| 1951 | , Da teTime.Now / / ORIGINAL INPUTDATE | |
| 1952 | , Da teTime.Now / / CREATED | |
| 1953 | , "D oD Frag ET L" / / CREATEDB Y | |
| 1954 | , Da teTime.Now / / UPDATED | |
| 1955 | , "D oD Frag ET L" / / UPDATEDB Y | |
| 1956 | , la bReportDat e / / LAB_REPO RT_DATE | |
| 1957 | , ic n / / PATIENT_ ICN | |
| 1958 | ); | |
| 1959 | } | |
| 1960 | el se | |
| 1961 | { | |
| 1962 | logStrin g += "Inva lid EDIPI found: " + edipi + " ICN ret urned: " + icn; | |
| 1963 | }; | |
| 1964 | } | |
| 1965 | else | |
| 1966 | { | |
| 1967 | // logString += "EDIPI already ad ded: " + e dipi + "; "; | |
| 1968 | } | |
| 1969 | } | |
| 1970 | ||
| 1971 | logString += "Added " + dodFra gDataTable .Rows.Coun t.ToString () + " row s to dod f rag datata ble; "; | |
| 1972 | ||
| 1973 | // Insert the data t able into the databa se | |
| 1974 | insertDoD_ Fragment_D ata_Receiv e_Log(dodF ragDataTab le); | |
| 1975 | } | |
| 1976 | } | |
| 1977 | catch (E xception e x) | |
| 1978 | { | |
| 1979 | logS tring += " ERROR: Ins ertFragRaw Data threw exception : " + ex.M essage.ToS tring() + "; "; | |
| 1980 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 1981 | } | |
| 1982 | ||
| 1983 | logStrin g += "Comp leted Inse rtFragRawD ata; "; | |
| 1984 | } | |
| 1985 | ||
| 1986 | st atic DataT able GetDo DFragDataT able() | |
| 1987 | { | |
| 1988 | // Here we create a DataTabl e mimicing our datab ase table | |
| 1989 | DataTabl e table = new DataTa ble(); | |
| 1990 | table.Co lumns.Add( "PATIENTSS N", typeof (string)); | |
| 1991 | table.Co lumns.Add( "DOD_FRAGM ENT_RAW_DA TA_ID", ty peof(int)) ; | |
| 1992 | table.Co lumns.Add( "ORIGINALI NPUTDATE", typeof(Da teTime)); | |
| 1993 | table.Co lumns.Add( "CREATED", typeof(Da teTime)); | |
| 1994 | table.Co lumns.Add( "CREATEDBY ", typeof( string)); | |
| 1995 | table.Co lumns.Add( "UPDATED", typeof(Da teTime)); | |
| 1996 | table.Co lumns.Add( "UPDATEDBY ", typeof( string)); | |
| 1997 | table.Co lumns.Add( "LAB_Repor t_DATE", t ypeof(Date Time)); | |
| 1998 | table.Co lumns.Add( "PATIENT_I CN", typeo f(string)) ; | |
| 1999 | ||
| 2000 | return t able; | |
| 2001 | } | |
| 2002 | ||
| 2003 | pr ivate bool InsertUpd atedExcelF ileToDatab ase() | |
| 2004 | { | |
| 2005 | logStrin g += "Begi n InsertUp datedExcel FileToData base"; | |
| 2006 | ||
| 2007 | bool ret Value = tr ue; | |
| 2008 | string s ourceLab = Path.GetF ileNameWit houtExtens ion(_input Excel.Full Name); //. inputFile Name.Subst ring(0, in putFileNam e.IndexOf( '.')); | |
| 2009 | ||
| 2010 | try | |
| 2011 | { | |
| 2012 | File Stream fSt ream = Fil e.OpenRead (_inputExc el.FullNam e); | |
| 2013 | ||
| 2014 | byte [] content s = new by te[fStream .Length]; | |
| 2015 | fStr eam.Read(c ontents, 0 , (int)fSt ream.Lengt h); | |
| 2016 | fStr eam.Close( ); | |
| 2017 | ||
| 2018 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringRegis tryDatabas e)) | |
| 2019 | { | |
| 2020 | string sql Cmd = ""; | |
| 2021 | sqlCmd += "INSERT IN TO [EFR].[ DOD_FRAGME NT_RAW_DAT A] "; | |
| 2022 | sqlCmd += "([SOURCE_ LAB],[FILE _DATA],[OR IGINAL_NAM E],[CONTEN T_TYPE]"; | |
| 2023 | sqlCmd += ",[CREATED BY],[CREAT ED],[UPDAT EDBY],[UPD ATED]) "; | |
| 2024 | sqlCmd += "VALUES (" ; | |
| 2025 | sqlCmd += "'" + sour ceLab + "' "; | |
| 2026 | sqlCmd += ",@bytes"; | |
| 2027 | sqlCmd += ",'" + inp utFileName + "'"; | |
| 2028 | sqlCmd += ",'EXCEL'" ; | |
| 2029 | sqlCmd += ",'DOD FRA GMENT ETL' "; | |
| 2030 | sqlCmd += ",getdate( )"; | |
| 2031 | sqlCmd += ",'DOD FRA GMENT ETL' "; | |
| 2032 | sqlCmd += ",getdate( ))"; | |
| 2033 | ||
| 2034 | logString += sqlCmd + "; "; | |
| 2035 | ||
| 2036 | SqlCommand cmd = new SqlComman d(sqlCmd); | |
| 2037 | cmd.Parame ters.Add(" @bytes", c ontents); | |
| 2038 | cmd.Comman dType = Co mmandType. Text; | |
| 2039 | cmd.Connec tion = con nection; | |
| 2040 | connection .Open(); | |
| 2041 | ||
| 2042 | int numRow s = cmd.Ex ecuteNonQu ery(); | |
| 2043 | ||
| 2044 | logString += "Insert ed: " + nu mRows.ToSt ring() + " into efr. dod_fragme nt_raw_dat a; "; | |
| 2045 | ||
| 2046 | // Capture the id of the recor d that was inserted | |
| 2047 | ||
| 2048 | if (numRow s == 1) | |
| 2049 | { | |
| 2050 | 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"); | |
| 2051 | comman d.CommandT ype = Comm andType.Te xt; | |
| 2052 | comman d.Connecti on = conne ction; | |
| 2053 | ||
| 2054 | _dod_f ragment_ra w_data_id = Convert. ToInt32(co mmand.Exec uteScalar( )); | |
| 2055 | ||
| 2056 | logStr ing += "do d_fragment _raw_data_ id: " + _d od_fragmen t_raw_data _id.ToStri ng() + "; "; | |
| 2057 | } | |
| 2058 | else | |
| 2059 | { | |
| 2060 | Dts.Ta skResult = (int)Scri ptResults. Failure; | |
| 2061 | retVal ue = false ; | |
| 2062 | } | |
| 2063 | } | |
| 2064 | } | |
| 2065 | catch (E xception e x) | |
| 2066 | { | |
| 2067 | logS tring += " ERROR: Ins ertUpdated ExcelFile threw exce ption: " + ex.Messag e.ToString () + "; "; | |
| 2068 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2069 | retV alue = fal se; | |
| 2070 | } | |
| 2071 | ||
| 2072 | // Pause , prevent file in us e error | |
| 2073 | System.T hreading.T hread.Slee p(10000); | |
| 2074 | ||
| 2075 | return r etValue; | |
| 2076 | } | |
| 2077 | ||
| 2078 | pr ivate void GenerateU pdatedExce lFile() | |
| 2079 | { | |
| 2080 | string e dipi = ""; | |
| 2081 | string k ey = ""; | |
| 2082 | int firs tDataRow = 2; | |
| 2083 | List<str ing> inval idEdipis = new List< string>(); | |
| 2084 | List<str ing> inser tedEdipis = new List <string>() ; | |
| 2085 | ||
| 2086 | try | |
| 2087 | { | |
| 2088 | // S ave off th e input fi le to a ba ckup | |
| 2089 | stri ng backupF ileName = generateBa ckupExcelF ileName(_i nputExcel. FullName); | |
| 2090 | ||
| 2091 | logS tring += " Copying in put file: " + _input Excel.Full Name + " t o backup f ile: " + b ackupFileN ame + "; " ; | |
| 2092 | File .Copy(_inp utExcel.Fu llName, ba ckupFileNa me, true); | |
| 2093 | ||
| 2094 | logS tring += " Get handle on backup file; "; | |
| 2095 | // G et a handl e on the b ackup file for later processin g | |
| 2096 | _bac kupExcel = new FileI nfo(backup FileName); | |
| 2097 | ||
| 2098 | logS tring += " Remove inv alid rows; "; | |
| 2099 | ||
| 2100 | // I terate thr ough the o utput file . Delete r ows withou t a valid EDIPI, | |
| 2101 | // a nd insert records fo r each row with a va lid edipi, but only insert | |
| 2102 | // o ne record per edipi. | |
| 2103 | // W hat makes this more complicate d is the E MF files. They have 12 rows | |
| 2104 | // a ssociated with a sin gle record , but only one row h as the EDI PI. To han dle | |
| 2105 | // t his, we ne ed to chec k the key field for each row, and see if that key | |
| 2106 | // i s associat ed with an EDIPI tha t is in th e ValidEDI PI list. | |
| 2107 | ||
| 2108 | usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel)) | |
| 2109 | { | |
| 2110 | ExcelWorks heet input ExcelWorks heet = xlP ackage.Wor kbook.Work sheets[1]; | |
| 2111 | ||
| 2112 | // Skip he ader row; process ba ckwards so we can de lete | |
| 2113 | // JPC fil es have a two-line h eader row; need to a ccount for this | |
| 2114 | ||
| 2115 | if (inputF ileType == FileType. JPC) | |
| 2116 | firstD ataRow = 3 ; | |
| 2117 | ||
| 2118 | for (int r owNum = _i nputExcelR owCount; r owNum >= f irstDataRo w; rowNum- -) | |
| 2119 | { | |
| 2120 | // Get the keyfi eld value | |
| 2121 | key = inputExcel Worksheet. Cell(rowNu m, _keyFie ldColumn). Value.ToSt ring(); | |
| 2122 | ||
| 2123 | //Mess ageBox.Sho w("Row: " + rowNum.T oString() + " Key: " + key); | |
| 2124 | ||
| 2125 | // Che ck if that key is as sociated w ith a vali d edipi | |
| 2126 | if (ke yToEdipi.T ryGetValue (key, out edipi)) | |
| 2127 | { | |
| 2128 | // edipi = in putExcelWo rksheet.Ce ll(rowNum, _edipiCol umn).Value .ToString( ); | |
| 2129 | ||
| 2130 | // MessageBox .Show("Fou nd EDIPI: " + edipi) ; | |
| 2131 | ||
| 2132 | if (!validEd ipiIcns.Co ntainsKey( edipi)) | |
| 2133 | { | |
| 2134 | //if (ro wNum < 4) | |
| 2135 | // lo gString += "Deleting row: " + inputExcel Worksheet. Cell(rowNu m, 1).Valu e.ToString () + "; "; | |
| 2136 | ||
| 2137 | //Messag eBox.Show( "Not Delet ing row"); | |
| 2138 | ||
| 2139 | inputExc elWorkshee t.DeleteRo w(rowNum, true); | |
| 2140 | _inputEx celRowCoun t--; | |
| 2141 | } | |
| 2142 | el se | |
| 2143 | { | |
| 2144 | //Messag eBox.Show( "Deleting this row") ; | |
| 2145 | } | |
| 2146 | } | |
| 2147 | else | |
| 2148 | { | |
| 2149 | // MessageBox .Show("No EDIPI for this key") ; | |
| 2150 | // Delete th is row | |
| 2151 | ||
| 2152 | in putExcelWo rksheet.De leteRow(ro wNum, true ); | |
| 2153 | _i nputExcelR owCount--; | |
| 2154 | } | |
| 2155 | } | |
| 2156 | ||
| 2157 | inputExcel Worksheet. Save(); | |
| 2158 | ||
| 2159 | //xlPackag e.Save(); | |
| 2160 | //xlPackag e.Dispose( ); | |
| 2161 | ||
| 2162 | //MessageB ox.Show("a fter save: "); | |
| 2163 | } | |
| 2164 | ||
| 2165 | // P ause, I th ink there is a timin g issue | |
| 2166 | ||
| 2167 | //Me ssageBox.S how("befor e"); | |
| 2168 | Syst em.Threadi ng.Thread. Sleep(1000 0); | |
| 2169 | //Me ssageBox.S how("after "); | |
| 2170 | } | |
| 2171 | catch (E xception e x) | |
| 2172 | { | |
| 2173 | logS tring += " ERROR: Gen erateUpdat edExcelFil e threw ex ception: " + ex.Mess age.ToStri ng() + "; "; | |
| 2174 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2175 | } | |
| 2176 | ||
| 2177 | logStrin g += "Comp leted Gene rateUpdate dExcelFile ; "; | |
| 2178 | } | |
| 2179 | ||
| 2180 | pr ivate void insertDoD _Fragment_ Data_Recei ve_Log(Dat aTable dt) | |
| 2181 | { | |
| 2182 | logStrin g += "Star ting inser tDoD_Fragm ent_Data_R eceive_Log ; "; | |
| 2183 | ||
| 2184 | try | |
| 2185 | { | |
| 2186 | usin g (SqlBulk Copy sqlBu lkCopy = n ew SqlBulk Copy(_conn ectionStri ngRegistry Database)) | |
| 2187 | { | |
| 2188 | sqlBulkCop y.Destinat ionTableNa me = "EFR. DoD_FRAGME NT_DATA_RE CEIVELOG"; | |
| 2189 | ||
| 2190 | foreach (v ar column in dt.Colu mns) | |
| 2191 | { | |
| 2192 | logStr ing += col umn.ToStri ng() + " "; | |
| 2193 | ||
| 2194 | sqlBul kCopy.Colu mnMappings .Add(colum n.ToString (), column .ToString( )); | |
| 2195 | } | |
| 2196 | ||
| 2197 | sqlBulkCop y.WriteToS erver(dt); | |
| 2198 | } | |
| 2199 | ||
| 2200 | logS tring += " Inserted r ecords int o DoD_FRAG MENT_DATA_ RECEIVELOG ; "; | |
| 2201 | ||
| 2202 | // N ow update EFR.DoD_FR AGMENT_DAT A_RECEIVEL OG to make the missi ng lab_rep ort_date's null | |
| 2203 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringRegis tryDatabas e)) | |
| 2204 | { | |
| 2205 | string sql Cmd = ""; | |
| 2206 | sqlCmd += "UPDATE [E FR].[DoD_F RAGMENT_DA TA_RECEIVE LOG] "; | |
| 2207 | sqlCmd += "SET [LAB_ Report_DAT E] = null "; | |
| 2208 | sqlCmd += "WHERE [LA B_Report_D ATE] = '19 00-01-01 0 0:00:00.00 0' "; | |
| 2209 | ||
| 2210 | logString += sqlCmd + "; "; | |
| 2211 | ||
| 2212 | SqlCommand cmd = new SqlComman d(sqlCmd); | |
| 2213 | cmd.Comman dType = Co mmandType. Text; | |
| 2214 | cmd.Connec tion = con nection; | |
| 2215 | connection .Open(); | |
| 2216 | ||
| 2217 | int numRow s = cmd.Ex ecuteNonQu ery(); | |
| 2218 | ||
| 2219 | logString += "Update d: " + num Rows.ToStr ing() + " in efr.DoD _FRAGMENT_ DATA_RECEI VELOG; "; | |
| 2220 | } | |
| 2221 | } | |
| 2222 | catch (E xception e x) | |
| 2223 | { | |
| 2224 | logS tring += " ERROR: ins ertDoD_Fra gment_Data _Receive_L og_Entry t hrew excep tion: " + ex.Message .ToString( ) + "; "; | |
| 2225 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2226 | } | |
| 2227 | ||
| 2228 | logStrin g += "Endi ng insertD oD_Fragmen t_Data_Rec eive_Log; "; | |
| 2229 | } | |
| 2230 | ||
| 2231 | pr ivate void setupConn ectionStri ngs() | |
| 2232 | { | |
| 2233 | logStrin g += "Star ting setup Connection Strings(); "; | |
| 2234 | ||
| 2235 | _connect ionStringS tagingData base = "Da ta Source= "; | |
| 2236 | _connect ionStringS tagingData base += (s tring)Dts. Variables[ "User::Log gingServer "].Value; | |
| 2237 | _connect ionStringS tagingData base += "; Initial Ca talog="; | |
| 2238 | _connect ionStringS tagingData base += (s tring)Dts. Variables[ "User::Log gingDataba se"].Value ; | |
| 2239 | _connect ionStringS tagingData base += "; Integrated Security= True"; | |
| 2240 | ||
| 2241 | logStrin g += "conn ectionStri ngStagingD atabase: " + _connec tionString StagingDat abase + "; "; | |
| 2242 | ||
| 2243 | ||
| 2244 | _connect ionStringR egistryDat abase = "D ata Source ="; | |
| 2245 | _connect ionStringR egistryDat abase += ( string)Dts .Variables ["User::Re gistryServ er"].Value ; | |
| 2246 | _connect ionStringR egistryDat abase += " ;Initial C atalog="; | |
| 2247 | _connect ionStringR egistryDat abase += ( string)Dts .Variables ["User::Re gistryData base"].Val ue; | |
| 2248 | _connect ionStringR egistryDat abase += " ;Integrate d Security =True"; | |
| 2249 | ||
| 2250 | logStrin g += "conn ectionStri ngRegistry Database: " + _conne ctionStrin gRegistryD atabase + "; "; | |
| 2251 | } | |
| 2252 | ||
| 2253 | pr ivate void loadInput ExcelData( ) | |
| 2254 | { | |
| 2255 | logStrin g += "Star ting loadI nputExcelD ata(); "; | |
| 2256 | ||
| 2257 | try | |
| 2258 | { | |
| 2259 | _inp utExcel = new FileIn fo(Dts.Var iables["fi leName2"]. Value.ToSt ring()); | |
| 2260 | ||
| 2261 | logS tring += " Using pack age file: " + Dts.Va riables["f ileName2"] .Value.ToS tring() + "; "; | |
| 2262 | ||
| 2263 | //} | |
| 2264 | ||
| 2265 | inpu tFileName = _inputEx cel.Name; | |
| 2266 | ||
| 2267 | usin g (ExcelPa ckage xlPa ckage = ne w ExcelPac kage(_inpu tExcel)) | |
| 2268 | { | |
| 2269 | _inputExce lWorksheet = xlPacka ge.Workboo k.Workshee ts[1]; | |
| 2270 | ||
| 2271 | // Find th e number o f columns in the wor ksheet. Co mpensate f or possibl e blank va lues in th e header | |
| 2272 | ||
| 2273 | int blankC ols = 0; | |
| 2274 | ||
| 2275 | while (_in putExcelWo rksheet.Ce ll(1, _inp utExcelCol umnCount). Value.ToSt ring().Tri m() != "" || blankCo ls < 5) | |
| 2276 | { | |
| 2277 | _input ExcelColum nCount++; | |
| 2278 | ||
| 2279 | if (_i nputExcelW orksheet.C ell(1, _in putExcelCo lumnCount) .Value.ToS tring().Tr im() == "" ) | |
| 2280 | { | |
| 2281 | bl ankCols++; | |
| 2282 | } | |
| 2283 | else i f (blankCo ls > 0) | |
| 2284 | { | |
| 2285 | bl ankCols = 0; | |
| 2286 | } | |
| 2287 | } | |
| 2288 | _inputExce lColumnCou nt = _inpu tExcelColu mnCount - 5; | |
| 2289 | logString += "Column s in input ExcelData file: " + _inputExce lColumnCou nt.ToStrin g() + "; " ; | |
| 2290 | ||
| 2291 | if (_input ExcelColum nCount == 0) | |
| 2292 | { | |
| 2293 | logStr ing += "ER ROR: No Co lumns in i nputExcelD ata file; "; | |
| 2294 | Dts.Ta skResult = (int)Scri ptResults. Failure; | |
| 2295 | } | |
| 2296 | } | |
| 2297 | } | |
| 2298 | catch (E xception e x) | |
| 2299 | { | |
| 2300 | logS tring += " ERROR: loa dInputExce lData thre w exceptio n: " + ex. Message.To String() + "; "; | |
| 2301 | ||
| 2302 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2303 | } | |
| 2304 | } | |
| 2305 | ||
| 2306 | pr ivate void setRawEdi pisFromInp ut() | |
| 2307 | { | |
| 2308 | logStrin g += "Star ting setRa wEdipisFro mInput(); "; | |
| 2309 | ||
| 2310 | try | |
| 2311 | { | |
| 2312 | stri ng edipi = ""; | |
| 2313 | stri ng key = " "; | |
| 2314 | int notFoundCo unt = 0; | |
| 2315 | int rowNum = 1 ; | |
| 2316 | bool blankRow = true; | |
| 2317 | ||
| 2318 | // D on't proce ss header row, compe nsate for possible b lank rows | |
| 2319 | whil e (notFoun dCount < 1 0) | |
| 2320 | { | |
| 2321 | // See if this row i s blank | |
| 2322 | blankRow = true; | |
| 2323 | for (int c = 1; c <= _inputExc elColumnCo unt; c++) | |
| 2324 | { | |
| 2325 | if (_i nputExcelW orksheet.C ell(rowNum ,c).ToStri ng().Trim( ) != "") | |
| 2326 | { | |
| 2327 | bl ankRow = f alse; | |
| 2328 | br eak; | |
| 2329 | } | |
| 2330 | } | |
| 2331 | ||
| 2332 | if (blankR ow) | |
| 2333 | { | |
| 2334 | notFou ndCount++; | |
| 2335 | rowNum ++; | |
| 2336 | contin ue; | |
| 2337 | } | |
| 2338 | else if (n otFoundCou nt != 0) | |
| 2339 | { | |
| 2340 | notFou ndCount = 0; | |
| 2341 | } | |
| 2342 | ||
| 2343 | // Not a b lank row, so process | |
| 2344 | edipi = _i nputExcelW orksheet.C ell(rowNum ,_edipiCol umn).ToStr ing().Trim (); | |
| 2345 | key = _inp utExcelWor ksheet.Cel l(rowNum,_ keyFieldCo lumn).ToSt ring().Tri m(); | |
| 2346 | ||
| 2347 | // If we'v e already checked th e edipi, n o need to revalidate . | |
| 2348 | if (!rawEd ipis.Conta ins(edipi) && edipi. Trim().Len gth > 0 && edipi.ToL ower() != efrDoDFrag EdipiColum nName.ToLo wer()) | |
| 2349 | { | |
| 2350 | rawEdi pis.Add(ed ipi); | |
| 2351 | keyToE dipi.Add(k ey, edipi) ; | |
| 2352 | //rawK eyFields.A dd(_inputE xcelWorksh eet.Cell(r owNum,_key FieldColum n).ToStrin g().Trim() ); | |
| 2353 | } | |
| 2354 | ||
| 2355 | rowNum++; | |
| 2356 | } | |
| 2357 | ||
| 2358 | _inp utExcelRow Count = ro wNum - 11; | |
| 2359 | ||
| 2360 | if ( rawEdipis. Count > 0) | |
| 2361 | { | |
| 2362 | logString += "rawEdi pis: " + r awEdipis.C ount.ToStr ing() + "; "; | |
| 2363 | logString += "RowCou nt: " + _i nputExcelR owCount.To String() + "; "; | |
| 2364 | } | |
| 2365 | else | |
| 2366 | { | |
| 2367 | logString += "ERROR: No rawEdi pis found. "; | |
| 2368 | Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure; | |
| 2369 | } | |
| 2370 | } | |
| 2371 | catch (E xception e x) | |
| 2372 | { | |
| 2373 | logS tring += " ERROR: set RawEdipisF romInput t hrew excep tion: " + ex.Message .ToString( ) + "; "; | |
| 2374 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2375 | } | |
| 2376 | } | |
| 2377 | ||
| 2378 | pr ivate void setColumn s() | |
| 2379 | { | |
| 2380 | logStrin g += "Star ting setCo lumns(); " ; | |
| 2381 | ||
| 2382 | string c olumnName = ""; | |
| 2383 | ||
| 2384 | try | |
| 2385 | { | |
| 2386 | // E ach lab us es a diffe rent strin g for the filename. | |
| 2387 | if ( _inputExce l.Name.ToU pper().Con tains("JPC ")) | |
| 2388 | { | |
| 2389 | inputFileT ype = File Type.JPC; | |
| 2390 | efrDoDFrag LabReportC olumnName = efrDoDFr agJpcLabDa teField; | |
| 2391 | _keyFieldC olumnName = efrDoDFr agJpcKeyFi eld; | |
| 2392 | } | |
| 2393 | else if (_inpu tExcel.Nam e.ToUpper( ).Contains ("EMF")) | |
| 2394 | { | |
| 2395 | inputFileT ype = File Type.EMF; | |
| 2396 | efrDoDFrag LabReportC olumnName = efrDoDFr agEmfLabDa teField; / / "Lab Rep ort Date"; | |
| 2397 | _keyFieldC olumnName = efrDoDFr agEmfKeyFi eld; | |
| 2398 | } | |
| 2399 | else if (_inpu tExcel.Nam e.ToUpper( ).Contains ("USAF")) | |
| 2400 | { | |
| 2401 | inputFileT ype = File Type.USAF; | |
| 2402 | efrDoDFrag LabReportC olumnName = efrDoDFr agUsafLabD ateField; | |
| 2403 | _keyFieldC olumnName = efrDoDFr agUsafKeyF ield; | |
| 2404 | } | |
| 2405 | else | |
| 2406 | { | |
| 2407 | logString += "ERROR: Could not determine input fil e type due to filena me issue; "; | |
| 2408 | Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure; | |
| 2409 | } | |
| 2410 | ||
| 2411 | //Me ssageBox.S how("EfrDo dFraglabRe portcolumn name: " + efrDoDFrag LabReportC olumnName) ; | |
| 2412 | ||
| 2413 | for (int c = 1 ; c <= _in putExcelCo lumnCount; c++) | |
| 2414 | { | |
| 2415 | columnName = _inputE xcelWorksh eet.Cell(1 , c).Value .ToString( ).ToLower( ); | |
| 2416 | ||
| 2417 | //MessageB ox.Show("C olumn: " + columnNam e); | |
| 2418 | ||
| 2419 | if (column Name == ef rDoDFragEd ipiColumnN ame.ToLowe r()) | |
| 2420 | { | |
| 2421 | _edipi Column = c ; | |
| 2422 | } | |
| 2423 | else if (c olumnName == efrDoDF ragLabRepo rtColumnNa me.ToLower ()) | |
| 2424 | { | |
| 2425 | _labRe portDateCo lumn = c; | |
| 2426 | } | |
| 2427 | else if (c olumnName == efrDoDF ragSsnColu mnName.ToL ower()) | |
| 2428 | { | |
| 2429 | _ssnCo lumn = c; | |
| 2430 | } | |
| 2431 | else if (c olumnName == _keyFie ldColumnNa me.ToLower ()) | |
| 2432 | { | |
| 2433 | _keyFi eldColumn = c; | |
| 2434 | } | |
| 2435 | } | |
| 2436 | ||
| 2437 | if ( _edipiColu mn > -1) | |
| 2438 | { | |
| 2439 | logString += "EDIPI column: " + _edipiCo lumn.ToStr ing() + "; "; | |
| 2440 | } | |
| 2441 | else | |
| 2442 | { | |
| 2443 | logString += "ERROR: EDIPI col umn not fo und;"; | |
| 2444 | Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure; | |
| 2445 | } | |
| 2446 | ||
| 2447 | if ( _labReport DateColumn > -1) | |
| 2448 | { | |
| 2449 | logString += "LabRep ortDate co lumn: " + _labReport DateColumn .ToString( ) + "; "; | |
| 2450 | } | |
| 2451 | else | |
| 2452 | { | |
| 2453 | logString += "ERROR: LabReport Date colum n not foun d;"; | |
| 2454 | Dts.TaskRe sult = (in t)ScriptRe sults.Fail ure; | |
| 2455 | } | |
| 2456 | ||
| 2457 | if ( _ssnColumn > -1) | |
| 2458 | { | |
| 2459 | logString += "ssn co lumn: " + _ssnColumn .ToString( ) + "; "; | |
| 2460 | } | |
| 2461 | else | |
| 2462 | { | |
| 2463 | logString += "WARNIN G: ssn col umn not fo und;"; // this is no t an error | |
| 2464 | } | |
| 2465 | } | |
| 2466 | catch (E xception e x) | |
| 2467 | { | |
| 2468 | logS tring += " ERROR: set EdipiColum n threw ex ception: " + ex.Mess age.ToStri ng() + "; "; | |
| 2469 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2470 | } | |
| 2471 | } | |
| 2472 | ||
| 2473 | pr ivate void executeCR SMVIPackag e() | |
| 2474 | { | |
| 2475 | // Run s cripttask | |
| 2476 | // http: //benefic. net/run-ss is-child-p ackages-wi th-script- task/ | |
| 2477 | logStrin g += "Star t running CRS_MVI sc ript task; "; | |
| 2478 | ||
| 2479 | try | |
| 2480 | { | |
| 2481 | //St ring packa geLocation = Dts.Con nections[e frDoDFragC rsMviEtlNa me].Connec tionString ; | |
| 2482 | Stri ng package Location = efrDoDFra gCrsMviEtl Name; | |
| 2483 | Pack age oPkg; | |
| 2484 | Micr osoft.SqlS erver.Dts. Runtime.Ap plication oApp = new Microsoft .SqlServer .Dts.Runti me.Applica tion(); | |
| 2485 | Chil dEventList ener event Listener = new Child EventListe ner(Dts); | |
| 2486 | ||
| 2487 | // L oad child package. | |
| 2488 | // L oadPackage = file, L oadFromDts Server = p ackage sto re, or Loa dFromSqlSe rver = SQL package s ources. | |
| 2489 | //oP kg = oApp. LoadPackag e(packageL ocation, e ventListen er); | |
| 2490 | oPkg = oApp.Lo adFromSqlS erver(pack ageLocatio n, (string )Dts.Varia bles["User ::Registry Server"].V alue, null , null, nu ll); | |
| 2491 | ||
| 2492 | // S et child p ackage var iables. | |
| 2493 | // N OTE: Packa ge configu ration var iables are set at pa ckage exec ution time , so make sure the v ariables | |
| 2494 | // you'r e setting here aren' t going to be overwr itten by a package c onfigurati on. | |
| 2495 | ||
| 2496 | //Wr iteVariabl e("User::R unMode", " Main", oPk g); | |
| 2497 | //Pk gVarsSet(o Pkg, "User ::loadYear ,User::loa dMonth"); | |
| 2498 | ||
| 2499 | // E xecute chi ld package . | |
| 2500 | Dts. TaskResult = (int)oP kg.Execute (null, nul l, eventLi stener, nu ll, null); | |
| 2501 | ||
| 2502 | if ( Dts.TaskRe sult == (i nt)DTSExec Result.Fai lure) | |
| 2503 | { | |
| 2504 | logString += "ERROR: Failure r unning chi ld package . "; | |
| 2505 | } | |
| 2506 | } | |
| 2507 | catch (E xception e x) | |
| 2508 | { | |
| 2509 | logS tring += " ERROR: Exc eption in executeCRS MVIPackage (): " + ex .Message.T oString() + "; "; | |
| 2510 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2511 | } | |
| 2512 | ||
| 2513 | logStrin g += "Comp leted runn ing CRS_MV I script t ask; "; | |
| 2514 | } | |
| 2515 | ||
| 2516 | pr ivate stri ng generat eBackupExc elFileName (string in putExcelFi le) | |
| 2517 | { | |
| 2518 | string n ewExcelFil eName = "" ; | |
| 2519 | ||
| 2520 | try | |
| 2521 | { | |
| 2522 | stri ng filePat hName = in putExcelFi le; | |
| 2523 | newE xcelFileNa me = Path. GetDirecto ryName(fil ePathName) + | |
| 2524 | "\\" + | |
| 2525 | Path.GetFi leNameWith outExtensi on(filePat hName) + " _original_ " + | |
| 2526 | DateTime.N ow.ToStrin g("yyyyMMd dHHmmss") + // "_Bac kup" + | |
| 2527 | P ath.GetExt ension(fil ePathName) ; | |
| 2528 | ||
| 2529 | int fileIncrem ent = 1; | |
| 2530 | whil e (File.Ex ists(newEx celFileNam e)) | |
| 2531 | { | |
| 2532 | newExcelFi leName = P ath.GetDir ectoryName (filePathN ame) + | |
| 2533 | "\\" + | |
| 2534 | Path.GetFi leNameWith outExtensi on(filePat hName) + " _original_ " + | |
| 2535 | DateTime.N ow.ToStrin g("yyyyMMd dHHmmss") + "_" + | |
| 2536 | fileIncrem ent.ToStri ng() + | |
| 2537 | P ath.GetExt ension(fil ePathName) ; | |
| 2538 | ||
| 2539 | fileIncrem ent++; | |
| 2540 | } | |
| 2541 | ||
| 2542 | logS tring += " Source Fil e: " + inp utExcelFil e + "; " + "Backup F ile: " + n ewExcelFil eName + "; "; | |
| 2543 | } | |
| 2544 | catch (E xception e x) | |
| 2545 | { | |
| 2546 | logS tring += " ERROR: gen erateOutpu tExcelFile Name threw exception : " + ex.M essage.ToS tring() + "; "; | |
| 2547 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2548 | } | |
| 2549 | ||
| 2550 | return n ewExcelFil eName; | |
| 2551 | } | |
| 2552 | ||
| 2553 | pr ivate bool retrieveD atabaseEdi pis() | |
| 2554 | { | |
| 2555 | bool ret Value = tr ue; | |
| 2556 | ||
| 2557 | try | |
| 2558 | { | |
| 2559 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringStagi ngDatabase )) | |
| 2560 | { | |
| 2561 | string sql Cmd = ""; | |
| 2562 | sqlCmd += "select Pa tient_Edip i, MVI_PAT IENT_ICN_N I_DOD from etl_crs_m vi_patient "; | |
| 2563 | sqlCmd += "where MVI _Response = 'OK' "; | |
| 2564 | sqlCmd += "and creat edby = 'Do DFragETL' "; | |
| 2565 | sqlCmd += "and RUN_I DENTIFIER = '" + _gu idId.ToStr ing() + "' "; | |
| 2566 | sqlCmd += "and MVI_P ATIENT_ICN _NI_DOD is not null" ; | |
| 2567 | logString += sqlCmd + "; "; | |
| 2568 | ||
| 2569 | SqlCommand cmd = new SqlComman d(sqlCmd); | |
| 2570 | cmd.Comman dType = Co mmandType. Text; | |
| 2571 | cmd.Connec tion = con nection; | |
| 2572 | connection .Open(); | |
| 2573 | ||
| 2574 | SqlDataRea der reader = cmd.Exe cuteReader (); | |
| 2575 | ||
| 2576 | while (rea der.Read() ) | |
| 2577 | { | |
| 2578 | 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"))); | |
| 2579 | } | |
| 2580 | ||
| 2581 | logString += "# vali d edipis: " + validE dipiIcns.C ount.ToStr ing() + "; "; | |
| 2582 | } | |
| 2583 | ||
| 2584 | if ( validEdipi Icns.Count == 0) | |
| 2585 | { | |
| 2586 | logString += "WARNIN G: NO VALI D EDIPIS; "; | |
| 2587 | //Dts.Task Result = ( int)Script Results.Fa ilure; | |
| 2588 | retValue = false; | |
| 2589 | } | |
| 2590 | } | |
| 2591 | catch (E xception e x) | |
| 2592 | { | |
| 2593 | logS tring += " ERROR: ret rieveDatab aseEdipis threw exce ption: " + ex.Messag e.ToString () + "; "; | |
| 2594 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2595 | retV alue = fal se; | |
| 2596 | } | |
| 2597 | ||
| 2598 | return r etValue; | |
| 2599 | } | |
| 2600 | ||
| 2601 | pr ivate void insertRaw EdipisInto Database() | |
| 2602 | { | |
| 2603 | logStrin g += "Star ting inser tRawEdipis IntoDataba se(); "; | |
| 2604 | ||
| 2605 | string s ql = ""; | |
| 2606 | sql += " INSERT INT O ETL_CRS_ MVI_Patien t "; | |
| 2607 | sql += " ([PATIENT_ EDIPI],[RU N_IDENTIFI ER],"; | |
| 2608 | sql += " [CREATED], [CREATEDBY ],[UPDATED ],[UPDATED BY]"; | |
| 2609 | sql += " ) "; | |
| 2610 | sql += " VALUES (@e dipi, "; | |
| 2611 | sql += " '" + _guid Id.ToStrin g() + "', getdate(), 'DoDFragE TL', getda te(), 'DoD FragETL')" ; | |
| 2612 | ||
| 2613 | logStrin g += "Inse rt edipis sql: " + s ql + "; "; | |
| 2614 | int coun ter = 0; | |
| 2615 | ||
| 2616 | try | |
| 2617 | { | |
| 2618 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringStagi ngDatabase )) | |
| 2619 | { | |
| 2620 | ||
| 2621 | SqlCommand cmd = new SqlComman d(sql); | |
| 2622 | cmd.Comman dType = Co mmandType. Text; | |
| 2623 | cmd.Connec tion = con nection; | |
| 2624 | ||
| 2625 | foreach (s tring edip i in rawEd ipis) | |
| 2626 | { | |
| 2627 | cmd.Pa rameters.C lear(); | |
| 2628 | ||
| 2629 | cmd.Pa rameters.A ddWithValu e("@edipi" , edipi); | |
| 2630 | ||
| 2631 | connec tion.Open( ); | |
| 2632 | cmd.Ex ecuteNonQu ery(); | |
| 2633 | connec tion.Close (); | |
| 2634 | ||
| 2635 | counte r++; | |
| 2636 | } | |
| 2637 | } | |
| 2638 | ||
| 2639 | logS tring += " Finished i nserting e dipis: " + counter.T oString() + "; "; | |
| 2640 | } | |
| 2641 | catch (E xception e ) | |
| 2642 | { | |
| 2643 | logS tring += " ERROR: Exc eption wri ting edipi s to the d atabase: " + e.Inner Exception. ToString() ; | |
| 2644 | Dts. TaskResult = (int)Sc riptResult s.Failure; | |
| 2645 | } | |
| 2646 | } | |
| 2647 | ||
| 2648 | pr ivate void setConfig Values() | |
| 2649 | { | |
| 2650 | logStrin g += "Star ting setCo nfigValues (); "; | |
| 2651 | ||
| 2652 | try | |
| 2653 | { | |
| 2654 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringRegis tryDatabas e)) | |
| 2655 | { | |
| 2656 | string que ryString = "select [ NAME], [va lue] from CRS_SETTIN GS where [ NAME] like ('EfrDoDF rag%')"; | |
| 2657 | DataTable results = new DataTa ble(); | |
| 2658 | ||
| 2659 | using (Sql Command co mmand = ne w SqlComma nd(querySt ring, conn ection)) | |
| 2660 | { | |
| 2661 | using (SqlDataAd apter data Adapter = new SqlDat aAdapter(c ommand)) | |
| 2662 | { | |
| 2663 | da taAdapter. Fill(resul ts); | |
| 2664 | ||
| 2665 | fo reach (Dat aRow dr in results.R ows) | |
| 2666 | { | |
| 2667 | if (dr[0 ] != null) | |
| 2668 | { | |
| 2669 | if ( dr[0].ToSt ring() == "EfrDoDFra gTestMode" && dr[1] != null) | |
| 2670 | { | |
| 2671 | if (dr[1]. ToString() .Trim().To Lower() == "true") | |
| 2672 | efrDoD FragTestMo de = true; | |
| 2673 | } | |
| 2674 | //el se if (dr[ 0].ToStrin g() == "Ef rDoDFragTe stFile" && dr[1] != null) | |
| 2675 | //{ | |
| 2676 | // efrDoDFr agTestFile = dr[1].T oString(); | |
| 2677 | //} | |
| 2678 | if ( dr[0].ToSt ring() == "EfrDoDFra gLogAllTra nsactions" && dr[1] != null) | |
| 2679 | { | |
| 2680 | if (dr[1]. ToString() .Trim().To Lower() == "true") | |
| 2681 | efrDoD FragLogAll Transactio ns = true; | |
| 2682 | } | |
| 2683 | else if (dr[0] .ToString( ) == "EfrD oDFragCrsM viEtlName" && dr[1] != null) | |
| 2684 | { | |
| 2685 | efrDoDFrag CrsMviEtlN ame = dr[1 ].ToString (); | |
| 2686 | } | |
| 2687 | else if (dr[0] .ToString( ) == "EfrD oDFragEdip iColumnNam e" && dr[1 ] != null) | |
| 2688 | { | |
| 2689 | efrDoDFrag EdipiColum nName = dr [1].ToStri ng(); | |
| 2690 | } | |
| 2691 | else if (dr[0] .ToString( ) == "EfrD oDFragLabR eportColum nName" && dr[1] != n ull) | |
| 2692 | { | |
| 2693 | efrDoDFrag LabReportC olumnName = dr[1].To String(); | |
| 2694 | } | |
| 2695 | else if (dr[0] .ToString( ) == "EfrD oDFragSsnC olumnName" && dr[1] != null) | |
| 2696 | { | |
| 2697 | efrDoDFrag SsnColumnN ame = dr[1 ].ToString (); | |
| 2698 | } | |
| 2699 | else if (dr[0] .ToString( ) == "EfrD oDFragArch iveFolder" && dr[1] != null) | |
| 2700 | { | |
| 2701 | efrDoDFrag ArchiveFol der = dr[1 ].ToString (); | |
| 2702 | } | |
| 2703 | else if (dr[0] .ToString( ) == "EfrD oDFragJpcK eyField" & & dr[1] != null) | |
| 2704 | { | |
| 2705 | efrDoDFrag JpcKeyFiel d = dr[1]. ToString() ; | |
| 2706 | } | |
| 2707 | else if (dr[0] .ToString( ) == "EfrD oDFragUsaf KeyField" && dr[1] ! = null) | |
| 2708 | { | |
| 2709 | efrDoDFrag UsafKeyFie ld = dr[1] .ToString( ); | |
| 2710 | } | |
| 2711 | else if (dr[0] .ToString( ) == "EfrD oDFragEmfK eyField" & & dr[1] != null) | |
| 2712 | { | |
| 2713 | efrDoDFrag EmfKeyFiel d = dr[1]. ToString() ; | |
| 2714 | } | |
| 2715 | else if (dr[0] .ToString( ) == "EfrD oDFragJpcL abDateFiel d" && dr[1 ] != null) | |
| 2716 | { | |
| 2717 | efrDoDFrag JpcLabDate Field = dr [1].ToStri ng(); | |
| 2718 | } | |
| 2719 | else if (dr[0] .ToString( ) == "EfrD oDFragUsaf LabDateFie ld" && dr[ 1] != null ) | |
| 2720 | { | |
| 2721 | efrDoDFrag UsafLabDat eField = d r[1].ToStr ing(); | |
| 2722 | } | |
| 2723 | else if (dr[0] .ToString( ) == "EfrD oDFragEmfL abDateFiel d" && dr[1 ] != null) | |
| 2724 | { | |
| 2725 | efrDoDFrag EmfLabDate Field = dr [1].ToStri ng(); | |
| 2726 | } | |
| 2727 | } | |
| 2728 | } | |
| 2729 | } | |
| 2730 | } | |
| 2731 | } | |
| 2732 | ||
| 2733 | //lo gString += "EfrDoDFr agTestMode : " + efrD oDFragTest Mode + "; "; | |
| 2734 | //lo gString += "EfrDoDFr agTestFold er: " + ef rDoDFragTe stFile + " ; "; | |
| 2735 | logS tring += " Dts.Variab les[User:: fileName2] .Value: " + Dts.Vari ables["Use r::fileNam e2"].Value .ToString( ) + "; "; | |
| 2736 | logS tring += " EfrDoDFrag LogAllTran sactions: " + efrDoD FragLogAll Transactio ns + "; "; | |
| 2737 | logS tring += " EfrDoDFrag CrsMviEtlN ame: " + e frDoDFragC rsMviEtlNa me + "; "; | |
| 2738 | logS tring += " EfrDoDFrag EdipiColum nName: " + efrDoDFra gEdipiColu mnName + " ; "; | |
| 2739 | logS tring += " efrDoDFrag LabReportC olumnName: " + efrDo DFragLabRe portColumn Name + "; "; | |
| 2740 | logS tring += " efrDoDFrag SsnColumnN ame: " + e frDoDFragS snColumnNa me + "; "; | |
| 2741 | logS tring += " efrDoDFrag ArchiveFol der: " + e frDoDFragA rchiveFold er + "; "; | |
| 2742 | logS tring += " EfrDoDFrag JpcKeyFiel d: " + efr DoDFragJpc KeyField + "; "; | |
| 2743 | logS tring += " EfrDoDFrag UsafKeyFie ld: " + ef rDoDFragUs afKeyField + "; "; | |
| 2744 | logS tring += " EfrDoDFrag EmfKeyFiel d: " + efr DoDFragEmf KeyField + "; "; | |
| 2745 | logS tring += " EfrDoDFrag JpcLabDate Field: " + efrDoDFra gJpcLabDat eField + " ; "; | |
| 2746 | logS tring += " EfrDoDFrag UsafLabDat eField: " + efrDoDFr agUsafLabD ateField + "; "; | |
| 2747 | logS tring += " EfrDoDFrag EmfLabDate Field: " + efrDoDFra gEmfLabDat eField + " ; "; | |
| 2748 | ||
| 2749 | //Dt s.Variable s["RunIden tifier"].V alue = gui dId.ToStri ng(); | |
| 2750 | ||
| 2751 | logS tring += " guidId: " + _guidId. ToString() + "; "; | |
| 2752 | } | |
| 2753 | catch (E xception e ) | |
| 2754 | { | |
| 2755 | logS tring += " Error gett ing config values: " + e.Messa ge; | |
| 2756 | } | |
| 2757 | } | |
| 2758 | ||
| 2759 | pr ivate void writeLog( ) | |
| 2760 | { | |
| 2761 | try | |
| 2762 | { | |
| 2763 | usin g (SqlConn ection con nection = new SqlCon nection(_c onnectionS tringStagi ngDatabase )) | |
| 2764 | { | |
| 2765 | 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())" ); | |
| 2766 | cmd.Comman dType = Co mmandType. Text; | |
| 2767 | cmd.Connec tion = con nection; | |
| 2768 | cmd.Parame ters.AddWi thValue("@ PackageID" , 0); | |
| 2769 | cmd.Parame ters.AddWi thValue("@ ProcessID" , 0); | |
| 2770 | cmd.Parame ters.AddWi thValue("@ ErrorNumbe r", 0); | |
| 2771 | cmd.Parame ters.AddWi thValue("@ ErrorDescr iption", " DoD Fragme nt ETL: " + logStrin g); | |
| 2772 | connection .Open(); | |
| 2773 | cmd.Execut eNonQuery( ); | |
| 2774 | } | |
| 2775 | ||
| 2776 | logS tring = "" ; | |
| 2777 | } | |
| 2778 | catch (E xception e ) | |
| 2779 | { | |
| 2780 | // n ot much to do if we can't writ e to the d atabase .. . | |
| 2781 | } | |
| 2782 | } | |
| 2783 | } | |
| 2784 | ||
| 2785 | enum F ileType | |
| 2786 | { | |
| 2787 | JP C, | |
| 2788 | US AF, | |
| 2789 | EM F, | |
| 2790 | UN K | |
| 2791 | } | |
| 2792 | ||
| 2793 | ||
| 2794 | #regio n ChildEve ntListener - A custo m event li stener to re-throw c hild packa ge events in the mas ter. | |
| 2795 | ////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// ///// | |
| 2796 | // Chi ldEventLis tener | |
| 2797 | // A custom Ev entListene r that re- throws chi ld package events in the maste r package. | |
| 2798 | // U seful when running a master pa ckage for identifyin g why a ch ild packag e failed i n the erro r | |
| 2799 | // m essages vi ewable in visual stu dio, SQL a gent job h istory log file view er, etc. | |
| 2800 | // | |
| 2801 | class ChildEvent Listener : DefaultEv ents | |
| 2802 | { | |
| 2803 | // The const ructor | |
| 2804 | // Takes a d ts as an a rgument so errors ca n be re-th rown again st the cur rently run ning dts. | |
| 2805 | Mi crosoft.Sq lServer.Dt s.Tasks.Sc riptTask.S criptObjec tModel dts ; | |
| 2806 | pu blic Child EventListe ner(Micros oft.SqlSer ver.Dts.Ta sks.Script Task.Scrip tObjectMod el dts) | |
| 2807 | { | |
| 2808 | this.dts = dts; | |
| 2809 | } | |
| 2810 | ||
| 2811 | pu blic overr ide bool O nError(Dts Object sou rce, int e rrorCode, string sub Component, string de scription | |
| 2812 | , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error) | |
| 2813 | { | |
| 2814 | dts.Even ts.FireErr or(errorCo de, subCom ponent, de scription, helpFile, helpConte xt); | |
| 2815 | // Conti nue execut ing the ta sk even th ough an er ror was tr iggered. | |
| 2816 | return f alse; | |
| 2817 | } | |
| 2818 | ||
| 2819 | pu blic overr ide void O nInformati on(DtsObje ct source, int infor mationCode , string s ubComponen t | |
| 2820 | , stri ng descrip tion, stri ng helpFil e, int hel pContext | |
| 2821 | , stri ng idofInt erfaceWith Error, ref bool fire Again) | |
| 2822 | { | |
| 2823 | dts.Even ts.FireInf ormation(i nformation Code, subC omponent, descriptio n, helpFil e, helpCon text, ref fireAgain) ; | |
| 2824 | } | |
| 2825 | ||
| 2826 | pu blic overr ide void O nWarning(D tsObject s ource, int warningCo de, string subCompon ent, strin g descript ion | |
| 2827 | , string h elpFile, i nt helpCon text, stri ng idofInt erfaceWith Error) | |
| 2828 | { | |
| 2829 | dts.Even ts.FireWar ning(warni ngCode, su bComponent , descript ion, helpF ile, helpC ontext); | |
| 2830 | } | |
| 2831 | } | |
| 2832 | #endre gion //Chi ldEventLis tener - A custom eve nt listene r to re-th row child package ev ents in th e master. | |
| 2833 | }]]></Proj ectItem> | |
| 2834 | <P rojectItem | |
| 2835 | Name="Exce lWorkbook. cs" | |
| 2836 | Encoding=" UTF8"><![C DATA[/* | |
| 2837 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 2838 | * | |
| 2839 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 2840 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 2841 | * | |
| 2842 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 2843 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 2844 | * All rig hts reserv ed. | |
| 2845 | * | |
| 2846 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 2847 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 2848 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 2849 | * | |
| 2850 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 2851 | * 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 | |
| 2852 | * | |
| 2853 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 2854 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 2855 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 2856 | * | |
| 2857 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 2858 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 2859 | */ | |
| 2860 | ||
| 2861 | /* | |
| 2862 | * Code ch ange notes : | |
| 2863 | * | |
| 2864 | * Author Change Date | |
| 2865 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 2866 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 2867 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 2868 | */ | |
| 2869 | using Syst em; | |
| 2870 | using Syst em.Xml; | |
| 2871 | using Syst em.IO; | |
| 2872 | using Syst em.IO.Pack aging; | |
| 2873 | ||
| 2874 | namespace OfficeOpen Xml | |
| 2875 | { | |
| 2876 | #regio n Public E num ExcelC alcMode | |
| 2877 | /// <s ummary> | |
| 2878 | /// Re presents t he possibl e workbook calculati on modes | |
| 2879 | /// </ summary> | |
| 2880 | public enum Exce lCalcMode | |
| 2881 | { | |
| 2882 | // / <summary > | |
| 2883 | // / Set the calculatio n mode to Automatic | |
| 2884 | // / </summar y> | |
| 2885 | Au tomatic, | |
| 2886 | // / <summary > | |
| 2887 | // / Set the calculatio n mode to AutomaticN oTable | |
| 2888 | // / </summar y> | |
| 2889 | Au tomaticNoT able, | |
| 2890 | // / <summary > | |
| 2891 | // / Set the calculatio n mode to Manual | |
| 2892 | // / </summar y> | |
| 2893 | Ma nual | |
| 2894 | } | |
| 2895 | #endre gion | |
| 2896 | ||
| 2897 | /// <s ummary> | |
| 2898 | /// Re presents t he Excel w orkbook an d provides access to all the | |
| 2899 | /// do cument pro perties an d workshee ts within the workbo ok. | |
| 2900 | /// </ summary> | |
| 2901 | public class Exc elWorkbook | |
| 2902 | { | |
| 2903 | #r egion Priv ate Proper ties | |
| 2904 | pr ivate Exce lPackage _ xlPackage; | |
| 2905 | // we have t o hard cod e these ur is as we n eed them t o create a workbook from scrat ch | |
| 2906 | pr ivate Uri _uriWorkbo ok = new U ri("/xl/wo rkbook.xml ", UriKind .Relative) ; | |
| 2907 | pr ivate Uri _uriShared Strings = new Uri("/ xl/sharedS trings.xml ", UriKind .Relative) ; | |
| 2908 | pr ivate Uri _uriStyles = new Uri ("/xl/styl es.xml", U riKind.Rel ative); | |
| 2909 | pr ivate Uri _uriCalcCh ain = new Uri("/xl/c alcChain.x ml", UriKi nd.Relativ e); | |
| 2910 | ||
| 2911 | pr ivate XmlD ocument _x mlWorkbook ; | |
| 2912 | pr ivate XmlD ocument _x mlSharedSt rings; | |
| 2913 | pr ivate XmlD ocument _x mlStyles; | |
| 2914 | ||
| 2915 | pr ivate Exce lWorksheet s _workshe ets; | |
| 2916 | pr ivate XmlN amespaceMa nager _nsM anager; | |
| 2917 | pr ivate Offi ceProperti es _proper ties; | |
| 2918 | #e ndregion | |
| 2919 | ||
| 2920 | #r egion Exce lWorkbook Constructo r | |
| 2921 | // / <summary > | |
| 2922 | // / Creates a new inst ance of th e ExcelWor kbook clas s. For in ternal use only! | |
| 2923 | // / </summar y> | |
| 2924 | // / <param n ame="xlPac kage">The parent pac kage</para m> | |
| 2925 | pr otected in ternal Exc elWorkbook (ExcelPack age xlPack age) | |
| 2926 | { | |
| 2927 | _xlPacka ge = xlPac kage; | |
| 2928 | // Crea te a Names paceManage r to handl e the defa ult namesp ace, | |
| 2929 | // and create a p refix for the defaul t namespac e: | |
| 2930 | NameTabl e nt = new NameTable (); | |
| 2931 | _nsManag er = new X mlNamespac eManager(n t); | |
| 2932 | _nsManag er.AddName space("d", ExcelPack age.schema Main); | |
| 2933 | } | |
| 2934 | #e ndregion | |
| 2935 | ||
| 2936 | #r egion Work sheets | |
| 2937 | // / <summary > | |
| 2938 | // / Provides access to all the w orksheets in the wor kbook. | |
| 2939 | // / </summar y> | |
| 2940 | pu blic Excel Worksheets Worksheet s | |
| 2941 | { | |
| 2942 | get | |
| 2943 | { | |
| 2944 | if ( _worksheet s == null) | |
| 2945 | { | |
| 2946 | _worksheet s = new Ex celWorkshe ets(_xlPac kage); | |
| 2947 | } | |
| 2948 | retu rn (_works heets); | |
| 2949 | } | |
| 2950 | } | |
| 2951 | #e ndregion | |
| 2952 | ||
| 2953 | #r egion Work book Prope rties | |
| 2954 | // / <summary > | |
| 2955 | // / The Uri to the wor kbook in t he package | |
| 2956 | // / </summar y> | |
| 2957 | pr otected in ternal Uri WorkbookU ri { get { return (_ uriWorkboo k); } } | |
| 2958 | // / <summary > | |
| 2959 | // / The Uri to the sty les.xml in the packa ge | |
| 2960 | // / </summar y> | |
| 2961 | pr otected in ternal Uri StylesUri { get { r eturn (_ur iStyles); } } | |
| 2962 | // / <summary > | |
| 2963 | // / The Uri to the sha red string s file | |
| 2964 | // / </summar y> | |
| 2965 | pr otected in ternal Uri SharedStr ingsUri { get { retu rn (_uriSh aredString s); } } | |
| 2966 | // / <summary > | |
| 2967 | // / Returns a referenc e to the w orkbook's part withi n the pack age | |
| 2968 | // / </summar y> | |
| 2969 | pr otected in ternal Pac kagePart P art { get { return ( _xlPackage .Package.G etPart(Wor kbookUri)) ; } } | |
| 2970 | ||
| 2971 | #r egion Work bookXml | |
| 2972 | // / <summary > | |
| 2973 | // / Provides access to the XML d ata repres enting the workbook in the pac kage. | |
| 2974 | // / </summar y> | |
| 2975 | pu blic XmlDo cument Wor kbookXml | |
| 2976 | { | |
| 2977 | get | |
| 2978 | { | |
| 2979 | if ( _xmlWorkbo ok == null ) | |
| 2980 | { | |
| 2981 | if (_xlPac kage.Packa ge.PartExi sts(Workbo okUri)) | |
| 2982 | _xmlWo rkbook = _ xlPackage. GetXmlFrom Uri(Workbo okUri); | |
| 2983 | else | |
| 2984 | { | |
| 2985 | // cre ate a new workbook p art and ad d to the p ackage | |
| 2986 | 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 "); | |
| 2987 | ||
| 2988 | // cre ate the wo rkbook | |
| 2989 | _xmlWo rkbook = n ew XmlDocu ment(); | |
| 2990 | // cre ate the wo rkbook tag | |
| 2991 | XmlEle ment tagWo rkbook = _ xmlWorkboo k.CreateEl ement("wor kbook", Ex celPackage .schemaMai n); | |
| 2992 | // Add the relat ionships n amespace | |
| 2993 | ExcelP ackage.Add SchemaAttr ibute(tagW orkbook, E xcelPackag e.schemaRe lationship s, "r"); | |
| 2994 | _xmlWo rkbook.App endChild(t agWorkbook ); | |
| 2995 | ||
| 2996 | //// c reate the bookViews tag | |
| 2997 | XmlEle ment bookV iews = _xm lWorkbook. CreateElem ent("bookV iews", Exc elPackage. schemaMain ); | |
| 2998 | tagWor kbook.Appe ndChild(bo okViews); | |
| 2999 | XmlEle ment workb ookView = _xmlWorkbo ok.CreateE lement("wo rkbookView ", ExcelPa ckage.sche maMain); | |
| 3000 | bookVi ews.Append Child(work bookView); | |
| 3001 | ||
| 3002 | // cre ate the sh eets tag | |
| 3003 | XmlEle ment tagSh eets = _xm lWorkbook. CreateElem ent("sheet s", ExcelP ackage.sch emaMain); | |
| 3004 | tagWor kbook.Appe ndChild(ta gSheets); | |
| 3005 | ||
| 3006 | // sav e it to th e package | |
| 3007 | Stream Writer str eamWorkboo k = new St reamWriter (partWorkb ook.GetStr eam(FileMo de.Create, FileAcces s.Write)); | |
| 3008 | _xmlWo rkbook.Sav e(streamWo rkbook); | |
| 3009 | stream Workbook.C lose(); | |
| 3010 | _xlPac kage.Packa ge.Flush() ; | |
| 3011 | } | |
| 3012 | } | |
| 3013 | retu rn (_xmlWo rkbook); | |
| 3014 | } | |
| 3015 | } | |
| 3016 | #e ndregion | |
| 3017 | ||
| 3018 | #r egion Shar edStrings | |
| 3019 | // / <summary > | |
| 3020 | // / Provides access to the XML d ata repres enting the shared st rings in t he package . | |
| 3021 | // / For inte rnal use o nly! | |
| 3022 | // / </summar y> | |
| 3023 | pr otected in ternal Xml Document S haredStrin gsXml | |
| 3024 | { | |
| 3025 | get | |
| 3026 | { | |
| 3027 | if ( _xmlShared Strings == null) | |
| 3028 | { | |
| 3029 | if (_xlPac kage.Packa ge.PartExi sts(Shared StringsUri )) | |
| 3030 | _xmlSh aredString s = _xlPac kage.GetXm lFromUri(S haredStrin gsUri); | |
| 3031 | else | |
| 3032 | { | |
| 3033 | // cre ate a new sharedStri ngs part a nd add to the packag e | |
| 3034 | Packag ePart part Strings = _xlPackage .Package.C reatePart( SharedStri ngsUri, @" applicatio n/vnd.open xmlformats -officedoc ument.spre adsheetml. sharedStri ngs+xml"); | |
| 3035 | ||
| 3036 | // cre ate the sh ared strin gs xml doc (with no entries in it) | |
| 3037 | _xmlSh aredString s = new Xm lDocument( ); | |
| 3038 | XmlEle ment tagSs t = _xmlSh aredString s.CreateEl ement("sst ", ExcelPa ckage.sche maMain); | |
| 3039 | tagSst .SetAttrib ute("count ", "0"); | |
| 3040 | tagSst .SetAttrib ute("uniqu eCount", " 0"); | |
| 3041 | _xmlSh aredString s.AppendCh ild(tagSst ); | |
| 3042 | ||
| 3043 | // sav e it to th e package | |
| 3044 | Stream Writer str eamStrings = new Str eamWriter( partString s.GetStrea m(FileMode .Create, F ileAccess. Write)); | |
| 3045 | _xmlSh aredString s.Save(str eamStrings ); | |
| 3046 | stream Strings.Cl ose(); | |
| 3047 | _xlPac kage.Packa ge.Flush() ; | |
| 3048 | ||
| 3049 | // cre ate the re lationship between t he workboo k and the new shared strings p art | |
| 3050 | _xlPac kage.Workb ook.Part.C reateRelat ionship(Sh aredString sUri, Targ etMode.Int ernal, Exc elPackage. schemaRela tionships + "/shared Strings"); | |
| 3051 | _xlPac kage.Packa ge.Flush() ; | |
| 3052 | } | |
| 3053 | } | |
| 3054 | retu rn (_xmlSh aredString s); | |
| 3055 | } | |
| 3056 | } | |
| 3057 | #e ndregion | |
| 3058 | ||
| 3059 | #r egion Styl esXml | |
| 3060 | // / <summary > | |
| 3061 | // / Provides access to the XML d ata repres enting the styles in the packa ge. | |
| 3062 | // / </summar y> | |
| 3063 | pu blic XmlDo cument Sty lesXml | |
| 3064 | { | |
| 3065 | get | |
| 3066 | { | |
| 3067 | if ( _xmlStyles == null) | |
| 3068 | { | |
| 3069 | if (_xlPac kage.Packa ge.PartExi sts(Styles Uri)) | |
| 3070 | _xmlSt yles = _xl Package.Ge tXmlFromUr i(StylesUr i); | |
| 3071 | else | |
| 3072 | { | |
| 3073 | // cre ate a new styles par t and add to the pac kage | |
| 3074 | 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"); | |
| 3075 | ||
| 3076 | // cre ate the st yle sheet | |
| 3077 | _xmlSt yles = new XmlDocume nt(); | |
| 3078 | XmlEle ment tagSt ylesheet = _xmlStyle s.CreateEl ement("sty leSheet", ExcelPacka ge.schemaM ain); | |
| 3079 | _xmlSt yles.Appen dChild(tag Stylesheet ); | |
| 3080 | // cre ate the fo nts tag | |
| 3081 | XmlEle ment tagFo nts = _xml Styles.Cre ateElement ("fonts", ExcelPacka ge.schemaM ain); | |
| 3082 | tagFon ts.SetAttr ibute("cou nt", "1"); | |
| 3083 | tagSty lesheet.Ap pendChild( tagFonts); | |
| 3084 | // cre ate the fo nt tag | |
| 3085 | XmlEle ment tagFo nt = _xmlS tyles.Crea teElement( "font", Ex celPackage .schemaMai n); | |
| 3086 | tagFon ts.AppendC hild(tagFo nt); | |
| 3087 | // cre ate the sz tag | |
| 3088 | XmlEle ment tagSz = _xmlSty les.Create Element("s z", ExcelP ackage.sch emaMain); | |
| 3089 | tagSz. SetAttribu te("val", "11"); | |
| 3090 | tagFon t.AppendCh ild(tagSz) ; | |
| 3091 | // cre ate the na me tag | |
| 3092 | XmlEle ment tagNa me = _xmlS tyles.Crea teElement( "name", Ex celPackage .schemaMai n); | |
| 3093 | tagNam e.SetAttri bute("val" , "Calibri "); | |
| 3094 | tagFon t.AppendCh ild(tagNam e); | |
| 3095 | // cre ate the ce llStyleXfs tag | |
| 3096 | XmlEle ment tagCe llStyleXfs = _xmlSty les.Create Element("c ellStyleXf s", ExcelP ackage.sch emaMain); | |
| 3097 | tagCel lStyleXfs. SetAttribu te("count" , "1"); | |
| 3098 | tagSty lesheet.Ap pendChild( tagCellSty leXfs); | |
| 3099 | // cre ate the xf tag | |
| 3100 | XmlEle ment tagXf = _xmlSty les.Create Element("x f", ExcelP ackage.sch emaMain); | |
| 3101 | tagXf. SetAttribu te("numFmt Id", "0"); | |
| 3102 | tagXf. SetAttribu te("fontId ", "0"); | |
| 3103 | tagCel lStyleXfs. AppendChil d(tagXf); | |
| 3104 | // cre ate the ce llXfs tag | |
| 3105 | XmlEle ment tagCe llXfs = _x mlStyles.C reateEleme nt("cellXf s", ExcelP ackage.sch emaMain); | |
| 3106 | tagCel lXfs.SetAt tribute("c ount", "1" ); | |
| 3107 | tagSty lesheet.Ap pendChild( tagCellXfs ); | |
| 3108 | // cre ate the xf tag | |
| 3109 | XmlEle ment tagXf 2 = _xmlSt yles.Creat eElement(" xf", Excel Package.sc hemaMain); | |
| 3110 | tagXf2 .SetAttrib ute("numFm tId", "0") ; | |
| 3111 | tagXf2 .SetAttrib ute("fontI d", "0"); | |
| 3112 | tagXf2 .SetAttrib ute("xfId" , "0"); | |
| 3113 | tagCel lXfs.Appen dChild(tag Xf2); | |
| 3114 | ||
| 3115 | // sav e it to th e package | |
| 3116 | Stream Writer str eamStyles = new Stre amWriter(p artSyles.G etStream(F ileMode.Cr eate, File Access.Wri te)); | |
| 3117 | _xmlSt yles.Save( streamStyl es); | |
| 3118 | stream Styles.Clo se(); | |
| 3119 | _xlPac kage.Packa ge.Flush() ; | |
| 3120 | ||
| 3121 | // cre ate the re lationship between t he workboo k and the new shared strings p art | |
| 3122 | _xlPac kage.Workb ook.Part.C reateRelat ionship(St ylesUri, T argetMode. Internal, ExcelPacka ge.schemaR elationshi ps + "/sty les"); | |
| 3123 | _xlPac kage.Packa ge.Flush() ; | |
| 3124 | } | |
| 3125 | } | |
| 3126 | retu rn (_xmlSt yles); | |
| 3127 | } | |
| 3128 | set | |
| 3129 | { | |
| 3130 | _xml Styles = v alue; | |
| 3131 | } | |
| 3132 | } | |
| 3133 | #e ndregion | |
| 3134 | ||
| 3135 | #r egion Offi ce Documen t Properti es | |
| 3136 | // / <summary > | |
| 3137 | // / Provides access to the offic e document propertie s | |
| 3138 | // / </summar y> | |
| 3139 | pu blic Offic ePropertie s Properti es | |
| 3140 | { | |
| 3141 | get | |
| 3142 | { | |
| 3143 | if ( _propertie s == null) | |
| 3144 | _propertie s = new Of ficeProper ties(_xlPa ckage); | |
| 3145 | retu rn _proper ties; | |
| 3146 | } | |
| 3147 | } | |
| 3148 | #e ndregion | |
| 3149 | ||
| 3150 | #r egion Calc Mode | |
| 3151 | // / <summary > | |
| 3152 | // / Allows y ou to set the calcul ation mode for the w orkbook. | |
| 3153 | // / </summar y> | |
| 3154 | pu blic Excel CalcMode C alcMode | |
| 3155 | { | |
| 3156 | get | |
| 3157 | { | |
| 3158 | Exce lCalcMode retValue = ExcelCalc Mode.Autom atic; | |
| 3159 | // Retrieve t he calcMod e attribut e in the c alcPr elem ent. | |
| 3160 | XmlN ode node = WorkbookX ml.SelectS ingleNode( "//d:calcP r", _nsMan ager); | |
| 3161 | if ( node != nu ll) | |
| 3162 | { | |
| 3163 | XmlAttribu te attr = node.Attri butes["cal cMode"]; | |
| 3164 | if (attr ! = null) | |
| 3165 | { | |
| 3166 | switch (attr.Val ue) | |
| 3167 | { | |
| 3168 | ca se "auto": | |
| 3169 | retValue = ExcelCa lcMode.Aut omatic; | |
| 3170 | break; | |
| 3171 | ca se "autoNo Table": | |
| 3172 | retValue = ExcelCa lcMode.Aut omaticNoTa ble; | |
| 3173 | break; | |
| 3174 | ca se "manual ": | |
| 3175 | retValue = ExcelCa lcMode.Man ual; | |
| 3176 | break; | |
| 3177 | } | |
| 3178 | } | |
| 3179 | } | |
| 3180 | retu rn (retVal ue); | |
| 3181 | } | |
| 3182 | set | |
| 3183 | { | |
| 3184 | XmlE lement ele ment = (Xm lElement)W orkbookXml .SelectSin gleNode("/ /d:calcPr" , _nsManag er); | |
| 3185 | //if (element == null) | |
| 3186 | //{ | |
| 3187 | // // create the elemen t | |
| 3188 | // element = WorkbookXm l.CreateEl ement( | |
| 3189 | //} | |
| 3190 | stri ng actualV alue = "au to"; // d efault | |
| 3191 | // Set the va lue of the attribute : | |
| 3192 | swit ch (value) | |
| 3193 | { | |
| 3194 | case Excel CalcMode.A utomatic: | |
| 3195 | actual Value = "a uto"; | |
| 3196 | break; | |
| 3197 | case Excel CalcMode.A utomaticNo Table: | |
| 3198 | actual Value = "a utoNoTable "; | |
| 3199 | break; | |
| 3200 | case Excel CalcMode.M anual: | |
| 3201 | actual Value = "m anual"; | |
| 3202 | break; | |
| 3203 | } | |
| 3204 | elem ent.SetAtt ribute("ca lcMode", a ctualValue ); | |
| 3205 | } | |
| 3206 | #e ndregion | |
| 3207 | ||
| 3208 | } | |
| 3209 | #e ndregion | |
| 3210 | ||
| 3211 | #r egion Work book Priva te Methods | |
| 3212 | ||
| 3213 | #r egion Save // Workbo ok Save | |
| 3214 | // / <summary > | |
| 3215 | // / Saves th e workbook and all i ts compone nts to the package. | |
| 3216 | // / For inte rnal use o nly! | |
| 3217 | // / </summar y> | |
| 3218 | pr otected in ternal voi d Save() // Workboo k Save | |
| 3219 | { | |
| 3220 | // ensur e we have at least o ne workshe et | |
| 3221 | if (Work sheets.Cou nt == 0) | |
| 3222 | thro w new Exce ption("Wor kbook Save Error: th e workbook must cont ain at lea st one wor ksheet!"); | |
| 3223 | ||
| 3224 | #region Delete cal cChain com ponent | |
| 3225 | // if th e calcChai n componen t exists, we should delete it to force E xcel to re create it | |
| 3226 | // when the spread sheet is n ext opened | |
| 3227 | if (_xlP ackage.Pac kage.PartE xists(_uri CalcChain) ) | |
| 3228 | { | |
| 3229 | // there will be a rela tionship w ith the wo rkbook, so first del ete the re lationship | |
| 3230 | Uri calcChain = new Uri( "calcChain .xml", Uri Kind.Relat ive); | |
| 3231 | fore ach (Packa geRelation ship relat ionship in _xlPackag e.Workbook .Part.GetR elationshi ps()) | |
| 3232 | { | |
| 3233 | if (relati onship.Tar getUri == calcChain) | |
| 3234 | { | |
| 3235 | _xlPac kage.Workb ook.Part.D eleteRelat ionship(re lationship .Id); | |
| 3236 | break; | |
| 3237 | } | |
| 3238 | } | |
| 3239 | // d elete the calcChain component | |
| 3240 | _xlP ackage.Pac kage.Delet ePart(_uri CalcChain) ; | |
| 3241 | } | |
| 3242 | #endregi on | |
| 3243 | ||
| 3244 | // save the workbo ok | |
| 3245 | if (_xml Workbook ! = null) | |
| 3246 | { | |
| 3247 | _xlP ackage.Sav ePart(Work bookUri, _ xmlWorkboo k); | |
| 3248 | _xlP ackage.Wri teDebugFil e(_xmlWork book, "xl" , "workboo k.xml"); | |
| 3249 | } | |
| 3250 | ||
| 3251 | // save the proper ties of th e workbook | |
| 3252 | if (_pro perties != null) | |
| 3253 | { | |
| 3254 | _pro perties.Sa ve(); | |
| 3255 | } | |
| 3256 | ||
| 3257 | // save the style sheet | |
| 3258 | if (_xml Styles != null) | |
| 3259 | { | |
| 3260 | _xlP ackage.Sav ePart(Styl esUri, _xm lStyles); | |
| 3261 | _xlP ackage.Wri teDebugFil e(_xmlStyl es, "xl", "styles.xm l"); | |
| 3262 | } | |
| 3263 | ||
| 3264 | // save the shared strings | |
| 3265 | if (_xml SharedStri ngs != nul l) | |
| 3266 | { | |
| 3267 | _xlP ackage.Sav ePart(Shar edStringsU ri, _xmlSh aredString s); | |
| 3268 | _xlP ackage.Wri teDebugFil e(_xmlShar edStrings, "xl", "sh aredstring s.xml"); | |
| 3269 | } | |
| 3270 | ||
| 3271 | // save all the op en workshe ets | |
| 3272 | foreach (ExcelWork sheet work sheet in W orksheets) | |
| 3273 | { | |
| 3274 | work sheet.Save (); | |
| 3275 | } | |
| 3276 | System.W indows.For ms.Message Box.Show(" done"); | |
| 3277 | } | |
| 3278 | #e ndregion | |
| 3279 | ||
| 3280 | #e ndregion | |
| 3281 | } // e nd Workboo k | |
| 3282 | }]]></Proj ectItem> | |
| 3283 | <P rojectItem | |
| 3284 | Name="Offi ceProperti es.cs" | |
| 3285 | Encoding=" UTF8"><![C DATA[/* | |
| 3286 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 3287 | * | |
| 3288 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 3289 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 3290 | * | |
| 3291 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 3292 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 3293 | * All rig hts reserv ed. | |
| 3294 | * | |
| 3295 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 3296 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 3297 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 3298 | * | |
| 3299 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 3300 | * 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 | |
| 3301 | * | |
| 3302 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 3303 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 3304 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 3305 | * | |
| 3306 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 3307 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 3308 | */ | |
| 3309 | ||
| 3310 | /* | |
| 3311 | * Code ch ange notes : | |
| 3312 | * | |
| 3313 | * Author Change Date | |
| 3314 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 3315 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 3316 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 3317 | */ | |
| 3318 | using Syst em; | |
| 3319 | using Syst em.Xml; | |
| 3320 | using Syst em.IO; | |
| 3321 | using Syst em.IO.Pack aging; | |
| 3322 | ||
| 3323 | namespace OfficeOpen Xml | |
| 3324 | { | |
| 3325 | /// <s ummary> | |
| 3326 | /// Pr ovides acc ess to the propertie s bag of a ny office document ( i.e. Word, Excel etc .) | |
| 3327 | /// </ summary> | |
| 3328 | public class Off icePropert ies | |
| 3329 | { | |
| 3330 | #r egion Priv ate Proper ties | |
| 3331 | ||
| 3332 | pr ivate cons t string s chemaCore = @"http:/ /schemas.o penxmlform ats.org/pa ckage/2006 /metadata/ core-prope rties"; | |
| 3333 | pr ivate cons t string s chemeExten ded = @"ht tp://schem as.openxml formats.or g/officeDo cument/200 6/extended -propertie s"; | |
| 3334 | pr ivate cons t string s chemaCusto m = @"http ://schemas .openxmlfo rmats.org/ officeDocu ment/2006/ custom-pro perties"; | |
| 3335 | pr ivate cons t string s chemaDc = @"http://p url.org/dc /elements/ 1.1/"; | |
| 3336 | pr ivate cons t string s chemaDcTer ms = @"htt p://purl.o rg/dc/term s/"; | |
| 3337 | pr ivate cons t string s chemaDcmiT ype = @"ht tp://purl. org/dc/dcm itype/"; | |
| 3338 | pr ivate cons t string s chemaXsi = @"http:// www.w3.org /2001/XMLS chema-inst ance"; | |
| 3339 | pr ivate cons t string s chemaVt = @"http://s chemas.ope nxmlformat s.org/offi ceDocument /2006/docP ropsVTypes "; | |
| 3340 | ||
| 3341 | pr ivate Uri _uriProper tiesCore = new Uri(" /docProps/ core.xml", UriKind.R elative); | |
| 3342 | pr ivate Uri _uriProper tiesExtend ed = new U ri("/docPr ops/app.xm l", UriKin d.Relative ); | |
| 3343 | pr ivate Uri _uriProper tiesCustom = new Uri ("/docProp s/custom.x ml", UriKi nd.Relativ e); | |
| 3344 | ||
| 3345 | pr ivate XmlD ocument _x mlProperti esCore; | |
| 3346 | pr ivate XmlD ocument _x mlProperti esExtended ; | |
| 3347 | pr ivate XmlD ocument _x mlProperti esCustom; | |
| 3348 | pr ivate Exce lPackage _ xlPackage; | |
| 3349 | pr ivate XmlN amespaceMa nager _nsM anager; | |
| 3350 | #e ndregion | |
| 3351 | ||
| 3352 | #r egion Exce lPropertie s Construc tor | |
| 3353 | // / <summary > | |
| 3354 | // / Provides access to all the o ffice docu ment prope rties. | |
| 3355 | // / </summar y> | |
| 3356 | // / <param n ame="xlPac kage"></pa ram> | |
| 3357 | pu blic Offic ePropertie s(ExcelPac kage xlPac kage) | |
| 3358 | { | |
| 3359 | _xlPacka ge = xlPac kage; | |
| 3360 | // Crea te a Names paceManage r to handl e the defa ult namesp ace, | |
| 3361 | // and create a p refix for the defaul t namespac e: | |
| 3362 | NameTabl e nt = new NameTable (); | |
| 3363 | _nsManag er = new X mlNamespac eManager(n t); | |
| 3364 | // defau lt namespa ce | |
| 3365 | _nsManag er.AddName space("d", ExcelPack age.schema Main); | |
| 3366 | _nsManag er.AddName space("vt" , schemaVt ); | |
| 3367 | // exten ded proper ties (app. xml) | |
| 3368 | _nsManag er.AddName space("xp" , schemeEx tended); | |
| 3369 | // custo m properti es | |
| 3370 | _nsManag er.AddName space("ctp ", schemaC ustom); | |
| 3371 | // core properties | |
| 3372 | _nsManag er.AddName space("cp" , schemaCo re); | |
| 3373 | // core property n amespaces | |
| 3374 | _nsManag er.AddName space("dc" , schemaDc ); | |
| 3375 | _nsManag er.AddName space("dct erms", sch emaDcTerms ); | |
| 3376 | _nsManag er.AddName space("dcm itype", sc hemaDcmiTy pe); | |
| 3377 | _nsManag er.AddName space("xsi ", schemaX si); | |
| 3378 | } | |
| 3379 | #e ndregion | |
| 3380 | ||
| 3381 | #r egion Prot ected Inte rnal Prope rties | |
| 3382 | // / <summary > | |
| 3383 | // / The URI to the cor e properti es compone nt (core.x ml) | |
| 3384 | // / </summar y> | |
| 3385 | pr otected in ternal Uri CorePrope rtiesUri { get { ret urn (_uriP ropertiesC ore); } } | |
| 3386 | // / <summary > | |
| 3387 | // / The URI to the ext ended prop erties com ponent (ap p.xml) | |
| 3388 | // / </summar y> | |
| 3389 | pr otected in ternal Uri ExtendedP ropertiesU ri { get { return (_ uriPropert iesExtende d); } } | |
| 3390 | // / <summary > | |
| 3391 | // / The URI to the cus tom proper ties compo nent (cust om.xml) | |
| 3392 | // / </summar y> | |
| 3393 | pr otected in ternal Uri CustomPro pertiesUri { get { r eturn (_ur iPropertie sCustom); } } | |
| 3394 | #e ndregion | |
| 3395 | ||
| 3396 | #r egion Core Propertie s | |
| 3397 | ||
| 3398 | #r egion Core Properties Xml | |
| 3399 | // / <summary > | |
| 3400 | // / Provides access to the XML d ocument th at holds a ll the cod e | |
| 3401 | // / document propertie s. | |
| 3402 | // / </summar y> | |
| 3403 | pu blic XmlDo cument Cor ePropertie sXml | |
| 3404 | { | |
| 3405 | get | |
| 3406 | { | |
| 3407 | if ( _xmlProper tiesCore = = null) | |
| 3408 | { | |
| 3409 | if (_xlPac kage.Packa ge.PartExi sts(CorePr opertiesUr i)) | |
| 3410 | _xmlPr opertiesCo re = _xlPa ckage.GetX mlFromUri( CoreProper tiesUri); | |
| 3411 | else | |
| 3412 | { | |
| 3413 | // cre ate a new document p roperties part and a dd to the package | |
| 3414 | 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"); | |
| 3415 | ||
| 3416 | // cre ate the do cument pro perties XM L (with no entries i n it) | |
| 3417 | _xmlPr opertiesCo re = new X mlDocument (); | |
| 3418 | XmlEle ment root = _xmlProp ertiesCore .CreateEle ment("cp:c orePropert ies", sche maCore); | |
| 3419 | ExcelP ackage.Add SchemaAttr ibute(root , schemaCo re, "cp"); | |
| 3420 | ExcelP ackage.Add SchemaAttr ibute(root , schemaDc , "dc"); | |
| 3421 | ExcelP ackage.Add SchemaAttr ibute(root , schemaDc Terms, "dc terms"); | |
| 3422 | ExcelP ackage.Add SchemaAttr ibute(root , schemaDc miType, "d cmitype"); | |
| 3423 | ExcelP ackage.Add SchemaAttr ibute(root , schemaXs i, "xsi"); | |
| 3424 | _xmlPr opertiesCo re.AppendC hild(root) ; | |
| 3425 | ||
| 3426 | // sav e it to th e package | |
| 3427 | Stream Writer str eamCore = new Stream Writer(par tCore.GetS tream(File Mode.Creat e, FileAcc ess.Write) ); | |
| 3428 | _xmlPr opertiesCo re.Save(st reamCore); | |
| 3429 | stream Core.Close (); | |
| 3430 | _xlPac kage.Packa ge.Flush() ; | |
| 3431 | ||
| 3432 | // cre ate the re lationship between t he workboo k and the new shared strings p art | |
| 3433 | _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" ); | |
| 3434 | _xlPac kage.Packa ge.Flush() ; | |
| 3435 | } | |
| 3436 | } | |
| 3437 | retu rn (_xmlPr opertiesCo re); | |
| 3438 | } | |
| 3439 | } | |
| 3440 | #e ndregion | |
| 3441 | ||
| 3442 | // / <summary > | |
| 3443 | // / Gets/set s the titl e property of the do cument (co re propert y) | |
| 3444 | // / </summar y> | |
| 3445 | pu blic strin g Title | |
| 3446 | { | |
| 3447 | get { re turn GetCo reProperty Value("dc" , "title") ; } | |
| 3448 | set { Se tCorePrope rtyValue(" dc", "titl e", value) ; } | |
| 3449 | } | |
| 3450 | ||
| 3451 | // / <summary > | |
| 3452 | // / Gets/set s the subj ect proper ty of the document ( core prope rty) | |
| 3453 | // / </summar y> | |
| 3454 | pu blic strin g Subject | |
| 3455 | { | |
| 3456 | get { re turn GetCo reProperty Value("dc" , "subject "); } | |
| 3457 | set { Se tCorePrope rtyValue(" dc", "subj ect", valu e); } | |
| 3458 | } | |
| 3459 | ||
| 3460 | // / <summary > | |
| 3461 | // / Gets/set s the auth or propert y of the d ocument (c ore proper ty) | |
| 3462 | // / </summar y> | |
| 3463 | pu blic strin g Author | |
| 3464 | { | |
| 3465 | get { re turn GetCo reProperty Value("dc" , "creator "); } | |
| 3466 | set { Se tCorePrope rtyValue(" dc", "crea tor", valu e); } | |
| 3467 | } | |
| 3468 | ||
| 3469 | // / <summary > | |
| 3470 | // / Gets/set s the comm ents prope rty of the document (core prop erty) | |
| 3471 | // / </summar y> | |
| 3472 | pu blic strin g Comments | |
| 3473 | { | |
| 3474 | get { re turn GetCo reProperty Value("dc" , "descrip tion"); } | |
| 3475 | set { Se tCorePrope rtyValue(" dc", "desc ription", value); } | |
| 3476 | } | |
| 3477 | ||
| 3478 | // / <summary > | |
| 3479 | // / Gets/set s the keyw ords prope rty of the document (core prop erty) | |
| 3480 | // / </summar y> | |
| 3481 | pu blic strin g Keywords | |
| 3482 | { | |
| 3483 | get { re turn GetCo reProperty Value("cp" , "keyword s"); } | |
| 3484 | set { Se tCorePrope rtyValue(" cp", "keyw ords", val ue); } | |
| 3485 | } | |
| 3486 | ||
| 3487 | // / <summary > | |
| 3488 | // / Gets/set s the last ModifiedBy property of the doc ument (cor e property ) | |
| 3489 | // / </summar y> | |
| 3490 | pu blic strin g LastModi fiedBy | |
| 3491 | { | |
| 3492 | get { re turn GetCo reProperty Value("cp" , "lastMod ifiedBy"); } | |
| 3493 | set { Se tCorePrope rtyValue(" cp", "last ModifiedBy ", value); } | |
| 3494 | } | |
| 3495 | ||
| 3496 | // / <summary > | |
| 3497 | // / Gets/set s the last Printed pr operty of the docume nt (core p roperty) | |
| 3498 | // / </summar y> | |
| 3499 | pu blic strin g LastPrin ted | |
| 3500 | { | |
| 3501 | get { re turn GetCo reProperty Value("cp" , "lastPri nted"); } | |
| 3502 | set { Se tCorePrope rtyValue(" cp", "last Printed", value); } | |
| 3503 | } | |
| 3504 | ||
| 3505 | // / <summary > | |
| 3506 | // / Gets/set s the cate gory prope rty of the document (core prop erty) | |
| 3507 | // / </summar y> | |
| 3508 | pu blic strin g Category | |
| 3509 | { | |
| 3510 | get { re turn GetCo reProperty Value("cp" , "categor y"); } | |
| 3511 | set { Se tCorePrope rtyValue(" cp", "cate gory", val ue); } | |
| 3512 | } | |
| 3513 | ||
| 3514 | // / <summary > | |
| 3515 | // / Gets/set s the stat us propert y of the d ocument (c ore proper ty) | |
| 3516 | // / </summar y> | |
| 3517 | pu blic strin g Status | |
| 3518 | { | |
| 3519 | get { re turn GetCo reProperty Value("cp" , "content Status"); } | |
| 3520 | set { Se tCorePrope rtyValue(" cp", "cont entStatus" , value); } | |
| 3521 | } | |
| 3522 | ||
| 3523 | #r egion Get and Set Co re Propert ies | |
| 3524 | // / <summary > | |
| 3525 | // / Gets the value of a core pro perty | |
| 3526 | // / Private method, fo r internal use only! | |
| 3527 | // / </summar y> | |
| 3528 | // / <param n ame="nameS pace">The namespace of the pro perty</par am> | |
| 3529 | // / <param n ame="prope rtyName">T he propert y name</pa ram> | |
| 3530 | // / <returns >The curre nt value o f the prop erty</retu rns> | |
| 3531 | pr ivate stri ng GetCore PropertyVa lue(string nameSpace , string p ropertyNam e) | |
| 3532 | { | |
| 3533 | string r etValue = null; | |
| 3534 | string s earchStrin g = string .Format("/ /cp:corePr operties/{ 0}:{1}", n ameSpace, propertyNa me); | |
| 3535 | XmlNode node = Cor ePropertie sXml.Selec tSingleNod e(searchSt ring, _nsM anager); | |
| 3536 | if (node != null) | |
| 3537 | { | |
| 3538 | retV alue = nod e.InnerTex t; | |
| 3539 | } | |
| 3540 | return r etValue; | |
| 3541 | } | |
| 3542 | ||
| 3543 | // / <summary > | |
| 3544 | // / Sets a c ore proper ty value. | |
| 3545 | // / Private method, fo r internal use only! | |
| 3546 | // / </summar y> | |
| 3547 | // / <param n ame="nameS pace">The property's namespace </param> | |
| 3548 | // / <param n ame="prope rtyName">T he name of the prope rty</param > | |
| 3549 | // / <param n ame="propV alue">The value of t he propert y</param> | |
| 3550 | pr ivate void SetCorePr opertyValu e(string n ameSpace, string pro pertyName, string pr opValue) | |
| 3551 | { | |
| 3552 | string s earchStrin g = string .Format("/ /cp:corePr operties/{ 0}:{1}", n ameSpace, propertyNa me); | |
| 3553 | XmlNode node = Cor ePropertie sXml.Selec tSingleNod e(searchSt ring, _nsM anager); | |
| 3554 | if (node == null) | |
| 3555 | { | |
| 3556 | // t he propert y does not exist, so create th e XML node | |
| 3557 | stri ng schema = schemaCo re; | |
| 3558 | swit ch (nameSp ace) | |
| 3559 | { | |
| 3560 | case "cp": schema = schemaCore ; break; | |
| 3561 | case "dc": schema = schemaDc; break; | |
| 3562 | case "dcte rms": sche ma = schem aDcTerms; break; | |
| 3563 | case "dcmi type": sch ema = sche maDcmiType ; break; | |
| 3564 | case "xsi" : schema = schemaXsi ; break; | |
| 3565 | } | |
| 3566 | node = (XmlNod e)CoreProp ertiesXml. CreateElem ent(nameSp ace, prope rtyName, s chema); | |
| 3567 | Core Properties Xml.Docume ntElement. AppendChil d(node); | |
| 3568 | ||
| 3569 | } | |
| 3570 | node.Inn erText = p ropValue; | |
| 3571 | } | |
| 3572 | #e ndregion | |
| 3573 | ||
| 3574 | #e ndregion | |
| 3575 | ||
| 3576 | #r egion Exte nded Prope rties | |
| 3577 | #r egion Exte ndedProper tiesXml | |
| 3578 | // / <summary > | |
| 3579 | // / Provides access to the XML d ocument th at holds t he extende d properti es of the document ( app.xml) | |
| 3580 | // / </summar y> | |
| 3581 | pu blic XmlDo cument Ext endedPrope rtiesXml | |
| 3582 | { | |
| 3583 | get | |
| 3584 | { | |
| 3585 | if ( _xmlProper tiesExtend ed == null ) | |
| 3586 | { | |
| 3587 | if (_xlPac kage.Packa ge.PartExi sts(Extend edProperti esUri)) | |
| 3588 | _xmlPr opertiesEx tended = _ xlPackage. GetXmlFrom Uri(Extend edProperti esUri); | |
| 3589 | else | |
| 3590 | { | |
| 3591 | // cre ate a new extended p roperties part and a dd to the package | |
| 3592 | Packag ePart part Extended = _xlPackag e.Package. CreatePart (ExtendedP ropertiesU ri, @"appl ication/vn d.openxmlf ormats-off icedocumen t.extended -propertie s+xml"); | |
| 3593 | ||
| 3594 | // cre ate the ex tended pro perties XM L (with no entries i n it) | |
| 3595 | _xmlPr opertiesEx tended = n ew XmlDocu ment(); | |
| 3596 | XmlEle ment root = _xmlProp ertiesExte nded.Creat eElement(" Properties ", schemeE xtended); | |
| 3597 | ExcelP ackage.Add SchemaAttr ibute(root , schemaVt , "vt"); | |
| 3598 | _xmlPr opertiesEx tended.App endChild(r oot); | |
| 3599 | ||
| 3600 | // sav e it to th e package | |
| 3601 | Stream Writer str eamExtende d = new St reamWriter (partExten ded.GetStr eam(FileMo de.Create, FileAcces s.Write)); | |
| 3602 | _xmlPr opertiesEx tended.Sav e(streamEx tended); | |
| 3603 | stream Extended.C lose(); | |
| 3604 | _xlPac kage.Packa ge.Flush() ; | |
| 3605 | ||
| 3606 | // cre ate the re lationship between t he workboo k and the new shared strings p art | |
| 3607 | _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"); | |
| 3608 | _xlPac kage.Packa ge.Flush() ; | |
| 3609 | } | |
| 3610 | } | |
| 3611 | retu rn (_xmlPr opertiesEx tended); | |
| 3612 | } | |
| 3613 | } | |
| 3614 | #e ndregion | |
| 3615 | ||
| 3616 | // / <summary > | |
| 3617 | // / Gets the Applicati on propert y of the d ocument (e xtended pr operty) | |
| 3618 | // / </summar y> | |
| 3619 | pu blic strin g Applicat ion | |
| 3620 | { | |
| 3621 | get { re turn GetEx tendedProp ertyValue( "Applicati on"); } | |
| 3622 | } | |
| 3623 | ||
| 3624 | // / <summary > | |
| 3625 | // / Gets/set s the Hype rlinkBase property o f the docu ment (exte nded prope rty) | |
| 3626 | // / </summar y> | |
| 3627 | pu blic Uri H yperlinkBa se | |
| 3628 | { | |
| 3629 | get { re turn new U ri(GetExte ndedProper tyValue("H yperlinkBa se")); } | |
| 3630 | set { Se tExtendedP ropertyVal ue("Hyperl inkBase", value.ToSt ring()); } | |
| 3631 | } | |
| 3632 | ||
| 3633 | // / <summary > | |
| 3634 | // / Gets the AppVersio n property of the do cument (ex tended pro perty) | |
| 3635 | // / </summar y> | |
| 3636 | pu blic strin g AppVersi on | |
| 3637 | { | |
| 3638 | get { re turn GetEx tendedProp ertyValue( "AppVersio n"); } | |
| 3639 | } | |
| 3640 | ||
| 3641 | // / <summary > | |
| 3642 | // / Gets/set s the Comp any proper ty of the document ( extended p roperty) | |
| 3643 | // / </summar y> | |
| 3644 | pu blic strin g Company | |
| 3645 | { | |
| 3646 | get { re turn GetEx tendedProp ertyValue( "Company") ; } | |
| 3647 | set { Se tExtendedP ropertyVal ue("Compan y", value) ; } | |
| 3648 | } | |
| 3649 | ||
| 3650 | // / <summary > | |
| 3651 | // / Gets/set s the Mana ger proper ty of the document ( extended p roperty) | |
| 3652 | // / </summar y> | |
| 3653 | pu blic strin g Manager | |
| 3654 | { | |
| 3655 | get { re turn GetEx tendedProp ertyValue( "Manager") ; } | |
| 3656 | set { Se tExtendedP ropertyVal ue("Manage r", value) ; } | |
| 3657 | } | |
| 3658 | ||
| 3659 | #r egion Get and Set Ex tended Pro perties | |
| 3660 | pr ivate stri ng GetExte ndedProper tyValue(st ring prope rtyName) | |
| 3661 | { | |
| 3662 | string r etValue = null; | |
| 3663 | string s earchStrin g = string .Format("/ /xp:Proper ties/xp:{0 }", proper tyName); | |
| 3664 | XmlNode node = Ext endedPrope rtiesXml.S electSingl eNode(sear chString, _nsManager ); | |
| 3665 | if (node != null) | |
| 3666 | { | |
| 3667 | retV alue = nod e.InnerTex t; | |
| 3668 | } | |
| 3669 | return r etValue; | |
| 3670 | } | |
| 3671 | ||
| 3672 | pr ivate void SetExtend edProperty Value(stri ng propert yName, str ing propVa lue) | |
| 3673 | { | |
| 3674 | string s earchStrin g = string .Format("/ /xp:Proper ties/xp:{0 }", proper tyName); | |
| 3675 | XmlNode node = Ext endedPrope rtiesXml.S electSingl eNode(sear chString, _nsManager ); | |
| 3676 | if (node == null) | |
| 3677 | { | |
| 3678 | // t he propert y does not exist, so create th e XML node | |
| 3679 | node = (XmlNod e)Extended Properties Xml.Create Element(pr opertyName , schemeEx tended); | |
| 3680 | Exte ndedProper tiesXml.Do cumentElem ent.Append Child(node ); | |
| 3681 | } | |
| 3682 | node.Inn erText = p ropValue; | |
| 3683 | } | |
| 3684 | #e ndregion | |
| 3685 | #e ndregion | |
| 3686 | ||
| 3687 | #r egion Cust om Propert ies | |
| 3688 | ||
| 3689 | #r egion Cust omProperti esXml | |
| 3690 | // / <summary > | |
| 3691 | // / Provides access to the XML d ocument wh ich holds the docume nt's custo m properti es | |
| 3692 | // / </summar y> | |
| 3693 | pu blic XmlDo cument Cus tomPropert iesXml | |
| 3694 | { | |
| 3695 | get | |
| 3696 | { | |
| 3697 | if ( _xmlProper tiesCustom == null) | |
| 3698 | { | |
| 3699 | if (_xlPac kage.Packa ge.PartExi sts(Custom Properties Uri)) | |
| 3700 | _xmlPr opertiesCu stom = _xl Package.Ge tXmlFromUr i(CustomPr opertiesUr i); | |
| 3701 | else | |
| 3702 | { | |
| 3703 | // cre ate a new extended p roperties part and a dd to the package | |
| 3704 | Packag ePart part Custom = _ xlPackage. Package.Cr eatePart(C ustomPrope rtiesUri, @"applicat ion/vnd.op enxmlforma ts-officed ocument.cu stom-prope rties+xml" ); | |
| 3705 | ||
| 3706 | // cre ate the ex tended pro perties XM L (with no entries i n it) | |
| 3707 | _xmlPr opertiesCu stom = new XmlDocume nt(); | |
| 3708 | XmlEle ment root = _xmlProp ertiesCust om.CreateE lement("Pr operties", schemaCus tom); | |
| 3709 | ExcelP ackage.Add SchemaAttr ibute(root , schemaVt , "vt"); | |
| 3710 | _xmlPr opertiesCu stom.Appen dChild(roo t); | |
| 3711 | ||
| 3712 | // sav e it to th e package | |
| 3713 | Stream Writer str eamCustom = new Stre amWriter(p artCustom. GetStream( FileMode.C reate, Fil eAccess.Wr ite)); | |
| 3714 | _xmlPr opertiesCu stom.Save( streamCust om); | |
| 3715 | stream Custom.Clo se(); | |
| 3716 | _xlPac kage.Packa ge.Flush() ; | |
| 3717 | ||
| 3718 | // cre ate the re lationship between t he workboo k and the new shared strings p art | |
| 3719 | _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"); | |
| 3720 | _xlPac kage.Packa ge.Flush() ; | |
| 3721 | } | |
| 3722 | } | |
| 3723 | retu rn (_xmlPr opertiesCu stom); | |
| 3724 | } | |
| 3725 | } | |
| 3726 | #e ndregion | |
| 3727 | ||
| 3728 | #r egion Get and Set Cu stom Prope rties | |
| 3729 | // / <summary > | |
| 3730 | // / Gets the value of a custom p roperty | |
| 3731 | // / </summar y> | |
| 3732 | // / <param n ame="prope rtyName">T he name of the prope rty</param > | |
| 3733 | // / <returns >The curre nt value o f the prop erty</retu rns> | |
| 3734 | pu blic strin g GetCusto mPropertyV alue(strin g property Name) | |
| 3735 | { | |
| 3736 | string r etValue = null; | |
| 3737 | string s earchStrin g = string .Format("/ /ctp:Prope rties/ctp: property/@ name[.='{0 }']", prop ertyName); | |
| 3738 | XmlNode node = Cus tomPropert iesXml.Sel ectSingleN ode(search String, _n sManager); | |
| 3739 | if (node != null) | |
| 3740 | { | |
| 3741 | retV alue = nod e.LastChil d.InnerTex t; | |
| 3742 | } | |
| 3743 | return r etValue; | |
| 3744 | } | |
| 3745 | ||
| 3746 | // / <summary > | |
| 3747 | // / Allows y ou to set the value of a curre nt custom property o r create | |
| 3748 | // / your own custom pr operty. | |
| 3749 | // / Currentl y only sup ports stri ng values. | |
| 3750 | // / </summar y> | |
| 3751 | // / <param n ame="prope rtyName">T he name of the prope rty</param > | |
| 3752 | // / <param n ame="propV alue">The value of t he propert y</param> | |
| 3753 | pu blic void SetCustomP ropertyVal ue(string propertyNa me, string propValue ) | |
| 3754 | { | |
| 3755 | // TODO: provide support fo r other cu stom prope rty data t ypes | |
| 3756 | string s earchStrin g = @"//ct p:Properti es"; | |
| 3757 | XmlNode allProps = CustomPro pertiesXml .SelectSin gleNode(se archString , _nsManag er); | |
| 3758 | ||
| 3759 | searchSt ring = str ing.Format ("//ctp:Pr operties/c tp:propert y/@ctp:nam e[.='{0}'] ", propert yName); | |
| 3760 | XmlNode node = Cus tomPropert iesXml.Sel ectSingleN ode(search String, _n sManager); | |
| 3761 | if (node == null) | |
| 3762 | { | |
| 3763 | // t he propert y does not exist, so first fin d the max PID | |
| 3764 | int pid = 4; | |
| 3765 | fore ach (XmlNo de prop in allProps. ChildNodes ) | |
| 3766 | { | |
| 3767 | XmlAttribu te attr = (XmlAttrib ute)prop.A ttributes. GetNamedIt em("pid"); | |
| 3768 | if (attr ! = null) | |
| 3769 | { | |
| 3770 | int at trValue = int.Parse( attr.Value ); | |
| 3771 | if (at trValue > pid) | |
| 3772 | pi d = attrVa lue; | |
| 3773 | } | |
| 3774 | } | |
| 3775 | pid+ +; | |
| 3776 | // t he propert y does not exist, so create th e XML node | |
| 3777 | XmlE lement ele ment = Cus tomPropert iesXml.Cre ateElement ("property ", schemaC ustom); | |
| 3778 | elem ent.SetAtt ribute("fm tid", "{D5 CDD505-2E9 C-101B-939 7-08002B2C F9AE}"); | |
| 3779 | elem ent.SetAtt ribute("pi d", pid.To String()); // custo m property pid | |
| 3780 | elem ent.SetAtt ribute("na me", prope rtyName); | |
| 3781 | ||
| 3782 | XmlE lement val ueElement = CustomPr opertiesXm l.CreateEl ement("vt" , "lpwstr" , schemaVt ); | |
| 3783 | valu eElement.I nnerText = propValue ; | |
| 3784 | elem ent.Append Child(valu eElement); | |
| 3785 | ||
| 3786 | Cust omProperti esXml.Docu mentElemen t.AppendCh ild(elemen t); | |
| 3787 | } | |
| 3788 | else | |
| 3789 | { | |
| 3790 | node .LastChild .InnerText = propVal ue; | |
| 3791 | } | |
| 3792 | ||
| 3793 | } | |
| 3794 | #e ndregion | |
| 3795 | #e ndregion | |
| 3796 | ||
| 3797 | #r egion Save // Offic ePropertie s save | |
| 3798 | // / <summary > | |
| 3799 | // / Saves th e office d ocument pr operties b ack to the package ( if they ex ist!). | |
| 3800 | // / </summar y> | |
| 3801 | pr otected in ternal voi d Save() | |
| 3802 | { | |
| 3803 | if (_xml Properties Core != nu ll) | |
| 3804 | { | |
| 3805 | _xlP ackage.Wri teDebugFil e(_xmlProp ertiesCore , "docProp s", "core. xml"); | |
| 3806 | _xlP ackage.Sav ePart(Core Properties Uri, _xmlP ropertiesC ore); | |
| 3807 | } | |
| 3808 | if (_xml Properties Extended ! = null) | |
| 3809 | { | |
| 3810 | _xlP ackage.Wri teDebugFil e(_xmlProp ertiesExte nded, "doc Props", "a pp.xml"); | |
| 3811 | _xlP ackage.Sav ePart(Exte ndedProper tiesUri, _ xmlPropert iesExtende d); | |
| 3812 | } | |
| 3813 | if (_xml Properties Custom != null) | |
| 3814 | { | |
| 3815 | _xlP ackage.Wri teDebugFil e(_xmlProp ertiesCust om, "docPr ops", "cus tom.xml"); | |
| 3816 | _xlP ackage.Sav ePart(Cust omProperti esUri, _xm lPropertie sCustom); | |
| 3817 | } | |
| 3818 | ||
| 3819 | } | |
| 3820 | #e ndregion | |
| 3821 | ||
| 3822 | } | |
| 3823 | }]]></Proj ectItem> | |
| 3824 | <P rojectItem | |
| 3825 | Name="Exce lRow.cs" | |
| 3826 | Encoding=" UTF8"><![C DATA[/* | |
| 3827 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 3828 | * | |
| 3829 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 3830 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 3831 | * | |
| 3832 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 3833 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 3834 | * All rig hts reserv ed. | |
| 3835 | * | |
| 3836 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 3837 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 3838 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 3839 | * | |
| 3840 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 3841 | * 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 | |
| 3842 | * | |
| 3843 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 3844 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 3845 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 3846 | * | |
| 3847 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 3848 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 3849 | */ | |
| 3850 | ||
| 3851 | /* | |
| 3852 | * Code ch ange notes : | |
| 3853 | * | |
| 3854 | * Author Change Date | |
| 3855 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 3856 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 3857 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 3858 | */ | |
| 3859 | using Syst em; | |
| 3860 | using Syst em.Xml; | |
| 3861 | ||
| 3862 | namespace OfficeOpen Xml | |
| 3863 | { | |
| 3864 | /// <s ummary> | |
| 3865 | /// Re presents a n individu al row in the spread sheet. | |
| 3866 | /// </ summary> | |
| 3867 | public class Exc elRow | |
| 3868 | { | |
| 3869 | pr ivate Exce lWorksheet _xlWorksh eet; | |
| 3870 | pr ivate XmlE lement _ro wElement = null; | |
| 3871 | ||
| 3872 | #r egion Exce lRow Const ructor | |
| 3873 | // / <summary > | |
| 3874 | // / Creates a new inst ance of th e ExcelRow class. | |
| 3875 | // / For inte rnal use o nly! | |
| 3876 | // / </summar y> | |
| 3877 | // / <param n ame="Works heet">The parent wor ksheet</pa ram> | |
| 3878 | // / <param n ame="row"> The row nu mber</para m> | |
| 3879 | pr otected in ternal Exc elRow(Exce lWorksheet Worksheet , int row) | |
| 3880 | { | |
| 3881 | _xlWorks heet = Wor ksheet; | |
| 3882 | ||
| 3883 | // Sear ch for the existing row | |
| 3884 | _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 ); | |
| 3885 | if (_row Element == null) | |
| 3886 | { | |
| 3887 | // W e didn't f ind the ro w, so add a new row element. | |
| 3888 | // H OWEVER we MUST inser t new row in the cor rect posit ion - othe rwise Exce l 2007 wil l complain !!! | |
| 3889 | _row Element = Worksheet. WorksheetX ml.CreateE lement("ro w", ExcelP ackage.sch emaMain); | |
| 3890 | _row Element.Se tAttribute ("r", row. ToString() ); | |
| 3891 | ||
| 3892 | // n ow work ou t where to insert th e new row | |
| 3893 | XmlN ode sheetD ataNode = Worksheet. WorksheetX ml.SelectS ingleNode( "//d:sheet Data", _xl Worksheet. NameSpaceM anager); | |
| 3894 | if ( sheetDataN ode != nul l) | |
| 3895 | { | |
| 3896 | XmlNode fo llowingRow = null; | |
| 3897 | foreach (X mlNode cur rentRow in Worksheet .Worksheet Xml.Select Nodes("//d :sheetData /d:row", _ xlWorkshee t.NameSpac eManager)) | |
| 3898 | { | |
| 3899 | int ro wFound = C onvert.ToI nt32(curre ntRow.Attr ibutes.Get NamedItem( "r").Value ); | |
| 3900 | if (ro wFound > r ow) | |
| 3901 | { | |
| 3902 | fo llowingRow = current Row; | |
| 3903 | br eak; | |
| 3904 | } | |
| 3905 | } | |
| 3906 | if (follow ingRow == null) | |
| 3907 | // no data rows exist, so just add r ow | |
| 3908 | sheetD ataNode.Ap pendChild( _rowElemen t); | |
| 3909 | else | |
| 3910 | sheetD ataNode.In sertBefore (_rowEleme nt, follow ingRow); | |
| 3911 | } | |
| 3912 | } | |
| 3913 | } | |
| 3914 | #e ndregion | |
| 3915 | ||
| 3916 | // / <summary > | |
| 3917 | // / Provides access to the node representi ng the row . | |
| 3918 | // / For inte rnal use o nly! | |
| 3919 | // / </summar y> | |
| 3920 | pr otected in ternal Xml Node Node { get { re turn (_row Element); } } | |
| 3921 | ||
| 3922 | #r egion Exce lRow Hidde n | |
| 3923 | // / <summary > | |
| 3924 | // / Allows t he row to be hidden in the wor ksheet | |
| 3925 | // / </summar y> | |
| 3926 | pu blic bool Hidden | |
| 3927 | { | |
| 3928 | get | |
| 3929 | { | |
| 3930 | bool retValue = false; | |
| 3931 | stri ng hidden = _rowElem ent.GetAtt ribute("hi dden", "1" ); | |
| 3932 | if ( hidden == "1") retVa lue = true ; | |
| 3933 | retu rn (retVal ue); | |
| 3934 | } | |
| 3935 | set | |
| 3936 | { | |
| 3937 | if ( value) | |
| 3938 | _rowElemen t.SetAttri bute("hidd en", "1"); | |
| 3939 | else | |
| 3940 | _rowElemen t.SetAttri bute("hidd en", "0"); | |
| 3941 | } | |
| 3942 | } | |
| 3943 | #e ndregion | |
| 3944 | ||
| 3945 | #r egion Exce lRow Heigh t | |
| 3946 | // / <summary > | |
| 3947 | // / Sets the height of the row | |
| 3948 | // / </summar y> | |
| 3949 | pu blic doubl e Height | |
| 3950 | { | |
| 3951 | get | |
| 3952 | { | |
| 3953 | doub le retValu e = 10; / / default row height | |
| 3954 | stri ng ht = _r owElement. GetAttribu te("ht"); | |
| 3955 | if ( ht != "") | |
| 3956 | { | |
| 3957 | retValue = double.Pa rse(ht); | |
| 3958 | } | |
| 3959 | retu rn (retVal ue); | |
| 3960 | } | |
| 3961 | set | |
| 3962 | { | |
| 3963 | _row Element.Se tAttribute ("ht", val ue.ToStrin g()); | |
| 3964 | // w e must set customHei ght="1" fo r the heig ht setting to take e ffect | |
| 3965 | _row Element.Se tAttribute ("customHe ight", "1" ); | |
| 3966 | } | |
| 3967 | } | |
| 3968 | #e ndregion | |
| 3969 | ||
| 3970 | #r egion Exce lRow Style | |
| 3971 | // / <summary > | |
| 3972 | // / Gets/set s the styl e name bas ed on the StyleID | |
| 3973 | // / </summar y> | |
| 3974 | pu blic strin g Style | |
| 3975 | { | |
| 3976 | get { re turn _xlWo rksheet.Ge tStyleName (StyleID); } | |
| 3977 | set { St yleID = _x lWorksheet .GetStyleI D(value); } | |
| 3978 | } | |
| 3979 | ||
| 3980 | // / <summary > | |
| 3981 | // / Sets the style for the entir e row usin g the styl e ID. | |
| 3982 | // / </summar y> | |
| 3983 | pu blic int S tyleID | |
| 3984 | { | |
| 3985 | get | |
| 3986 | { | |
| 3987 | int retValue = 0; | |
| 3988 | stri ng sid = _ rowElement .GetAttrib ute("s"); | |
| 3989 | if ( sid != "") retValue = int.Pars e(sid); | |
| 3990 | retu rn retValu e; | |
| 3991 | } | |
| 3992 | set | |
| 3993 | { | |
| 3994 | _row Element.Se tAttribute ("s", valu e.ToString ()); | |
| 3995 | // t o get Exce l to apply this styl e we need to set cus tomFormat= "1" | |
| 3996 | _row Element.Se tAttribute ("customFo rmat", "1" ); | |
| 3997 | } | |
| 3998 | } | |
| 3999 | #e ndregion | |
| 4000 | ||
| 4001 | } | |
| 4002 | }]]></Proj ectItem> | |
| 4003 | <P rojectItem | |
| 4004 | Name="Exce lWorksheet View.cs" | |
| 4005 | Encoding=" UTF8"><![C DATA[/* | |
| 4006 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 4007 | * | |
| 4008 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 4009 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 4010 | * | |
| 4011 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 4012 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 4013 | * All rig hts reserv ed. | |
| 4014 | * | |
| 4015 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 4016 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 4017 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 4018 | * | |
| 4019 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 4020 | * 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 | |
| 4021 | * | |
| 4022 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 4023 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 4024 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 4025 | * | |
| 4026 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 4027 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 4028 | */ | |
| 4029 | ||
| 4030 | /* | |
| 4031 | * Code ch ange notes : | |
| 4032 | * | |
| 4033 | * Author Change Date | |
| 4034 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4035 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 4036 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4037 | */ | |
| 4038 | using Syst em; | |
| 4039 | using Syst em.Xml; | |
| 4040 | ||
| 4041 | namespace OfficeOpen Xml | |
| 4042 | { | |
| 4043 | /// <s ummary> | |
| 4044 | /// Re presents t he differe nt view st ates of th e workshee t | |
| 4045 | /// </ summary> | |
| 4046 | public class Exc elWorkshee tView | |
| 4047 | { | |
| 4048 | // TODO: imp lement the different view stat es of the worksheet | |
| 4049 | pr ivate Exce lWorksheet _xlWorksh eet; | |
| 4050 | pr ivate XmlE lement _sh eetView; | |
| 4051 | ||
| 4052 | #r egion Exce lWorksheet View Const ructor | |
| 4053 | // / <summary > | |
| 4054 | // / Creates a new Exce lWorksheet View which provides access to all the | |
| 4055 | // / view sta tes of the worksheet . | |
| 4056 | // / </summar y> | |
| 4057 | // / <param n ame="xlWor ksheet"></ param> | |
| 4058 | pr otected in ternal Exc elWorkshee tView(Exce lWorksheet xlWorkshe et) | |
| 4059 | { | |
| 4060 | _xlWorks heet = xlW orksheet; | |
| 4061 | } | |
| 4062 | #e ndregion | |
| 4063 | ||
| 4064 | #r egion Shee tViewEleme nt | |
| 4065 | // / <summary > | |
| 4066 | // / Returns a referenc e to the s heetView e lement | |
| 4067 | // / </summar y> | |
| 4068 | pr otected in ternal Xml Element Sh eetViewEle ment | |
| 4069 | { | |
| 4070 | get | |
| 4071 | { | |
| 4072 | if ( _sheetView == null) | |
| 4073 | { | |
| 4074 | _sheetView = (XmlEle ment)_xlWo rksheet.Wo rksheetXml .SelectSin gleNode("/ /d:sheetVi ew", _xlWo rksheet.Na meSpaceMan ager); | |
| 4075 | } | |
| 4076 | retu rn _sheetV iew; | |
| 4077 | } | |
| 4078 | } | |
| 4079 | #e ndregion | |
| 4080 | ||
| 4081 | #r egion TabS elected | |
| 4082 | // / <summary > | |
| 4083 | // / Indicate s if the w orksheet i s selected within th e workbook | |
| 4084 | // / </summar y> | |
| 4085 | pu blic bool TabSelecte d | |
| 4086 | { | |
| 4087 | get | |
| 4088 | { | |
| 4089 | bool retValue = false; | |
| 4090 | stri ng ret = S heetViewEl ement.GetA ttribute(" tabSelecte d"); | |
| 4091 | if ( ret == "1" ) retValue = true; | |
| 4092 | retu rn retValu e; | |
| 4093 | } | |
| 4094 | set | |
| 4095 | { | |
| 4096 | // t he sheetVi ew node sh ould alway s exist, s o no need to create | |
| 4097 | if ( value) | |
| 4098 | { | |
| 4099 | // ensure no other w orksheet h as its tab Selected a ttribute s et to 1 | |
| 4100 | foreach (E xcelWorksh eet sheet in _xlWork sheet.xlPa ckage.Work book.Works heets) | |
| 4101 | sheet. View.TabSe lected = f alse; | |
| 4102 | ||
| 4103 | SheetViewE lement.Set Attribute( "tabSelect ed", "1"); | |
| 4104 | } | |
| 4105 | else | |
| 4106 | SheetViewE lement.Set Attribute( "tabSelect ed", "0"); | |
| 4107 | } | |
| 4108 | } | |
| 4109 | #e ndregion | |
| 4110 | ||
| 4111 | #r egion Page LayoutView | |
| 4112 | // / <summary > | |
| 4113 | // / Sets the view mode of the wo rksheet to pageLayou t | |
| 4114 | // / </summar y> | |
| 4115 | pu blic bool PageLayout View | |
| 4116 | { | |
| 4117 | get | |
| 4118 | { | |
| 4119 | bool retValue = false; | |
| 4120 | stri ng ret = S heetViewEl ement.GetA ttribute(" view"); | |
| 4121 | if ( ret == "pa geLayout") retValue = true; | |
| 4122 | retu rn retValu e; | |
| 4123 | } | |
| 4124 | set | |
| 4125 | { | |
| 4126 | if ( value) | |
| 4127 | SheetViewE lement.Set Attribute( "view", "p ageLayout" ); | |
| 4128 | else | |
| 4129 | SheetViewE lement.Rem oveAttribu te("view") ; | |
| 4130 | } | |
| 4131 | } | |
| 4132 | #e ndregion | |
| 4133 | } | |
| 4134 | }]]></Proj ectItem> | |
| 4135 | <P rojectItem | |
| 4136 | Name="Exce lWorksheet s.cs" | |
| 4137 | Encoding=" UTF8"><![C DATA[/* | |
| 4138 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 4139 | * | |
| 4140 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 4141 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 4142 | * | |
| 4143 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 4144 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 4145 | * All rig hts reserv ed. | |
| 4146 | * | |
| 4147 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 4148 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 4149 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 4150 | * | |
| 4151 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 4152 | * 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 | |
| 4153 | * | |
| 4154 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 4155 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 4156 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 4157 | * | |
| 4158 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 4159 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 4160 | */ | |
| 4161 | ||
| 4162 | /* | |
| 4163 | * Code ch ange notes : | |
| 4164 | * | |
| 4165 | * Author Change Date | |
| 4166 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4167 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 4168 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4169 | */ | |
| 4170 | using Syst em; | |
| 4171 | using Syst em.Collect ions; | |
| 4172 | using Syst em.Collect ions.Gener ic; | |
| 4173 | using Syst em.Text; | |
| 4174 | using Syst em.Xml; | |
| 4175 | using Syst em.IO; | |
| 4176 | using Syst em.IO.Pack aging; | |
| 4177 | ||
| 4178 | namespace OfficeOpen Xml | |
| 4179 | { | |
| 4180 | /// <s ummary> | |
| 4181 | /// Pr ovides enu meration t hrough all the works heets in t he workboo k | |
| 4182 | /// </ summary> | |
| 4183 | public class Exc elWorkshee ts : IEnum erable | |
| 4184 | { | |
| 4185 | #r egion Exce lWorksheet s Private Properties | |
| 4186 | pr ivate Dict ionary<int , ExcelWor ksheet> _w orksheets; | |
| 4187 | pr ivate Exce lPackage _ xlPackage; | |
| 4188 | pr ivate XmlN amespaceMa nager _nsM anager; | |
| 4189 | pr ivate XmlN ode _works heetsNode; | |
| 4190 | #e ndregion | |
| 4191 | ||
| 4192 | #r egion Exce lWorksheet s Construc tor | |
| 4193 | // / <summary > | |
| 4194 | // / Creates a new inst ance of th e ExcelWor ksheets cl ass. | |
| 4195 | // / For inte rnal use o nly! | |
| 4196 | // / </summar y> | |
| 4197 | // / <param n ame="xlPac kage"></pa ram> | |
| 4198 | pr otected in ternal Exc elWorkshee ts(ExcelPa ckage xlPa ckage) | |
| 4199 | { | |
| 4200 | _xlPacka ge = xlPac kage; | |
| 4201 | // Crea te a Names paceManage r to handl e the defa ult namesp ace, | |
| 4202 | // and create a p refix for the defaul t namespac e: | |
| 4203 | NameTabl e nt = new NameTable (); | |
| 4204 | _nsManag er = new X mlNamespac eManager(n t); | |
| 4205 | _nsManag er.AddName space("d", ExcelPack age.schema Main); | |
| 4206 | _nsManag er.AddName space("r", ExcelPack age.schema Relationsh ips); | |
| 4207 | ||
| 4208 | // obtai n containe r node for all works heets | |
| 4209 | _workshe etsNode = _xlPackage .Workbook. WorkbookXm l.SelectSi ngleNode(" //d:sheets ", _nsMana ger); | |
| 4210 | if (_wor ksheetsNod e == null) | |
| 4211 | { | |
| 4212 | // c reate new node as it did not e xist | |
| 4213 | _wor ksheetsNod e = _xlPac kage.Workb ook.Workbo okXml.Crea teElement( "sheets", ExcelPacka ge.schemaM ain); | |
| 4214 | _xlP ackage.Wor kbook.Work bookXml.Do cumentElem ent.Append Child(_wor ksheetsNod e); | |
| 4215 | } | |
| 4216 | ||
| 4217 | _workshe ets = new Dictionary <int, Exce lWorksheet >(); | |
| 4218 | int posi tionID = 1 ; | |
| 4219 | foreach (XmlNode s heetNode i n _workshe etsNode.Ch ildNodes) | |
| 4220 | { | |
| 4221 | stri ng name = sheetNode. Attributes ["name"].V alue; | |
| 4222 | // Get the re lationship id attrib ute: | |
| 4223 | stri ng relId = sheetNode .Attribute s["r:id"]. Value; | |
| 4224 | int sheetID = Convert.To Int32(shee tNode.Attr ibutes["sh eetId"].Va lue); | |
| 4225 | //if (sheetID != count) | |
| 4226 | //{ | |
| 4227 | // // renumbe r the shee ts as they are in an odd order | |
| 4228 | // sheetID = count; | |
| 4229 | // sheetNode. Attributes ["sheetId" ].Value = sheetID.To String(); | |
| 4230 | //} | |
| 4231 | // g et hidden attribute (if presen t) | |
| 4232 | bool hidden = false; | |
| 4233 | XmlN ode attr = sheetNode .Attribute s["hidden" ]; | |
| 4234 | if ( attr != nu ll) | |
| 4235 | hidden = C onvert.ToB oolean(att r.Value); | |
| 4236 | ||
| 4237 | //st ring type = ""; | |
| 4238 | //at tr = sheet Node.Attri butes["typ e"]; | |
| 4239 | //if (attr != null) | |
| 4240 | // type = att r.Value; | |
| 4241 | ||
| 4242 | Pack ageRelatio nship shee tRelation = _xlPacka ge.Workboo k.Part.Get Relationsh ip(relId); | |
| 4243 | Uri uriWorkshe et = PackU riHelper.R esolvePart Uri(_xlPac kage.Workb ook.Workbo okUri, she etRelation .TargetUri ); | |
| 4244 | ||
| 4245 | // a dd workshe et to our collection | |
| 4246 | _wor ksheets.Ad d(position ID, new Ex celWorkshe et(_xlPack age, relId , name, ur iWorksheet , sheetID, hidden)); | |
| 4247 | posi tionID++; | |
| 4248 | } | |
| 4249 | } | |
| 4250 | #e ndregion | |
| 4251 | ||
| 4252 | #r egion Exce lWorksheet s Public P roperties | |
| 4253 | // / <summary > | |
| 4254 | // / Returns the number of worksh eets in th e workbook | |
| 4255 | // / </summar y> | |
| 4256 | pu blic int C ount | |
| 4257 | { | |
| 4258 | get { re turn (_wor ksheets.Co unt); } | |
| 4259 | } | |
| 4260 | #e ndregion | |
| 4261 | ||
| 4262 | #r egion Exce lWorksheet s Public M ethods | |
| 4263 | // / <summary > | |
| 4264 | // / Returns an enumera tor that a llows the foreach sy ntax to be used to | |
| 4265 | // / itterate through a ll the wor ksheets | |
| 4266 | // / </summar y> | |
| 4267 | // / <returns >An enumer ator</retu rns> | |
| 4268 | pu blic IEnum erator Get Enumerator () | |
| 4269 | { | |
| 4270 | return ( _worksheet s.Values.G etEnumerat or()); | |
| 4271 | } | |
| 4272 | ||
| 4273 | #r egion Add Worksheet | |
| 4274 | // / <summary > | |
| 4275 | // / Adds a b lank works heet with the desire d name | |
| 4276 | // / </summar y> | |
| 4277 | // / <param n ame="Name" ></param> | |
| 4278 | pu blic Excel Worksheet Add(string Name) | |
| 4279 | { | |
| 4280 | // first find maxi mum existi ng sheetID | |
| 4281 | // also check the name is un ique - if not throw an error | |
| 4282 | int shee tID = 0; | |
| 4283 | foreach (XmlNode s heet in _w orksheetsN ode.ChildN odes) | |
| 4284 | { | |
| 4285 | XmlA ttribute a ttr = (Xml Attribute) sheet.Attr ibutes.Get NamedItem( "sheetId") ; | |
| 4286 | if ( attr != nu ll) | |
| 4287 | { | |
| 4288 | int curID = int.Pars e(attr.Val ue); | |
| 4289 | if (curID > sheetID) | |
| 4290 | sheetI D = curID; | |
| 4291 | } | |
| 4292 | attr = (XmlAtt ribute)she et.Attribu tes.GetNam edItem("na me"); | |
| 4293 | if ( attr != nu ll) | |
| 4294 | { | |
| 4295 | if (attr.V alue == Na me) | |
| 4296 | throw new Except ion("Add w orksheet E rror: atte mpting to create wor ksheet wit h duplicat e name"); | |
| 4297 | } | |
| 4298 | } | |
| 4299 | // we no w have the max exist ing values , so add o ne | |
| 4300 | sheetID+ +; | |
| 4301 | ||
| 4302 | // add t he new wor ksheet to the packag e | |
| 4303 | Uri uriW orksheet = new Uri(" /xl/worksh eets/sheet " + sheetI D.ToString () + ".xml ", UriKind .Relative) ; | |
| 4304 | PackageP art worksh eetPart = _xlPackage .Package.C reatePart( uriWorkshe et, @"appl ication/vn d.openxmlf ormats-off icedocumen t.spreadsh eetml.work sheet+xml" ); | |
| 4305 | ||
| 4306 | // creat e the new, empty wor ksheet and save it t o the pack age | |
| 4307 | StreamWr iter strea mWorksheet = new Str eamWriter( worksheetP art.GetStr eam(FileMo de.Create, FileAcces s.Write)); | |
| 4308 | XmlDocum ent worksh eetXml = C reateNewWo rksheet(); | |
| 4309 | workshee tXml.Save( streamWork sheet); | |
| 4310 | streamWo rksheet.Cl ose(); | |
| 4311 | _xlPacka ge.Package .Flush(); | |
| 4312 | ||
| 4313 | // creat e the rela tionship b etween the workbook and the ne w workshee t | |
| 4314 | 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"); | |
| 4315 | _xlPacka ge.Package .Flush(); | |
| 4316 | ||
| 4317 | // now c reate the new worksh eet tag an d set name /SheetId a ttributes in the wor kbook.xml | |
| 4318 | XmlEleme nt workshe etNode = _ xlPackage. Workbook.W orkbookXml .CreateEle ment("shee t", ExcelP ackage.sch emaMain); | |
| 4319 | // creat e the new sheet node | |
| 4320 | workshee tNode.SetA ttribute(" name", Nam e); | |
| 4321 | workshee tNode.SetA ttribute(" sheetId", sheetID.To String()); | |
| 4322 | // set t he r:id at tribute | |
| 4323 | workshee tNode.SetA ttribute(" id", Excel Package.sc hemaRelati onships, r el.Id); | |
| 4324 | // inser t the shee t tag with all attri butes set as above | |
| 4325 | _workshe etsNode.Ap pendChild( worksheetN ode); | |
| 4326 | ||
| 4327 | // creat e a refere nce to the new works heet in ou r collecti on | |
| 4328 | ExcelWor ksheet wor ksheet = n ew ExcelWo rksheet(_x lPackage, rel.Id, Na me, uriWor ksheet, sh eetID, fal se); | |
| 4329 | int posi tionID = _ worksheets .Count + 1 ; | |
| 4330 | _workshe ets.Add(po sitionID, worksheet) ; | |
| 4331 | return w orksheet; | |
| 4332 | } | |
| 4333 | ||
| 4334 | // / <summary > | |
| 4335 | // / Creates the XML do cument rep resenting a new empt y workshee t | |
| 4336 | // / </summar y> | |
| 4337 | // / <returns ></returns > | |
| 4338 | pr otected in ternal Xml Document C reateNewWo rksheet() | |
| 4339 | { | |
| 4340 | // creat e the new worksheet | |
| 4341 | XmlDocum ent worksh eetXml = n ew XmlDocu ment(); | |
| 4342 | // XML d ocument do es not exi st so crea te the new worksheet XML doc | |
| 4343 | XmlEleme nt workshe etNode = w orksheetXm l.CreateEl ement("wor ksheet", E xcelPackag e.schemaMa in); | |
| 4344 | workshee tNode.SetA ttribute(" xmlns:r", ExcelPacka ge.schemaR elationshi ps); | |
| 4345 | workshee tXml.Appen dChild(wor ksheetNode ); | |
| 4346 | // creat e the shee tViews tag | |
| 4347 | XmlEleme nt tagShee tViews = w orksheetXm l.CreateEl ement("she etViews", ExcelPacka ge.schemaM ain); | |
| 4348 | workshee tNode.Appe ndChild(ta gSheetView s); | |
| 4349 | // creat e the shee t View tag | |
| 4350 | XmlEleme nt tagShee tView = wo rksheetXml .CreateEle ment("shee tView", Ex celPackage .schemaMai n); | |
| 4351 | tagSheet View.SetAt tribute("w orkbookVie wId", "0") ; | |
| 4352 | tagSheet Views.Appe ndChild(ta gSheetView ); | |
| 4353 | // creat e the empt y sheetDat a tag (mus t be prese nt, but ca n be empty ) | |
| 4354 | XmlEleme nt tagShee tData = wo rksheetXml .CreateEle ment("shee tData", Ex celPackage .schemaMai n); | |
| 4355 | workshee tNode.Appe ndChild(ta gSheetData ); | |
| 4356 | return w orksheetXm l; | |
| 4357 | } | |
| 4358 | #e ndregion | |
| 4359 | ||
| 4360 | #r egion Dele te Workshe et | |
| 4361 | // / <summary > | |
| 4362 | // / Delete a worksheet from the workbook p ackage | |
| 4363 | // / </summar y> | |
| 4364 | // / <param n ame="posit ionID">The position of the wor ksheet in the workbo ok</param> | |
| 4365 | pu blic void Delete(int positionI D) | |
| 4366 | { | |
| 4367 | if (_wor ksheets.Co unt == 1) | |
| 4368 | 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!"); | |
| 4369 | ExcelWor ksheet wor ksheet = _ worksheets [positionI D]; | |
| 4370 | ||
| 4371 | // delet e the work sheet from the packa ge | |
| 4372 | _xlPacka ge.Package .DeletePar t(workshee t.Workshee tUri); | |
| 4373 | ||
| 4374 | // delet e the rela tionship f rom the pa ckage | |
| 4375 | _xlPacka ge.Workboo k.Part.Del eteRelatio nship(work sheet.Rela tionshipID ); | |
| 4376 | ||
| 4377 | // delet e workshee t from the workbook XML | |
| 4378 | XmlNode sheetsNode = _xlPack age.Workbo ok.Workboo kXml.Selec tSingleNod e("//d:wor kbook/d:sh eets", _ns Manager); | |
| 4379 | if (shee tsNode != null) | |
| 4380 | { | |
| 4381 | XmlN ode sheetN ode = shee tsNode.Sel ectSingleN ode(string .Format(". /d:sheet[@ sheetId={0 }]", works heet.Sheet ID), _nsMa nager); | |
| 4382 | if ( sheetNode != null) | |
| 4383 | { | |
| 4384 | sheetsNode .RemoveChi ld(sheetNo de); | |
| 4385 | } | |
| 4386 | } | |
| 4387 | // delet e workshee t from the Dictionar y object | |
| 4388 | _workshe ets.Remove (positionI D); | |
| 4389 | } | |
| 4390 | #e ndregion | |
| 4391 | ||
| 4392 | // / <summary > | |
| 4393 | // / Returns the worksh eet at the specified position. | |
| 4394 | // / </summar y> | |
| 4395 | // / <param n ame="Posit ionID">The position of the wor ksheet. 1- base</para m> | |
| 4396 | // / <returns ></returns > | |
| 4397 | pu blic Excel Worksheet this[int P ositionID] | |
| 4398 | { | |
| 4399 | get | |
| 4400 | { | |
| 4401 | retu rn (_works heets[Posi tionID]); | |
| 4402 | } | |
| 4403 | } | |
| 4404 | ||
| 4405 | // / <summary > | |
| 4406 | // / Returns the worksh eet matchi ng the spe cified nam e | |
| 4407 | // / </summar y> | |
| 4408 | // / <param n ame="Name" >The name of the wor ksheet</pa ram> | |
| 4409 | // / <returns ></returns > | |
| 4410 | pu blic Excel Worksheet this[strin g Name] | |
| 4411 | { | |
| 4412 | get | |
| 4413 | { | |
| 4414 | Exce lWorksheet xlWorkshe et = null; | |
| 4415 | fore ach (Excel Worksheet worksheet in _worksh eets.Value s) | |
| 4416 | { | |
| 4417 | if (worksh eet.Name = = Name) | |
| 4418 | xlWork sheet = wo rksheet; | |
| 4419 | } | |
| 4420 | retu rn (xlWork sheet); | |
| 4421 | //th row new Ex ception(st ring.Forma t("ExcelWo rksheets E rror: Work sheet '{0} ' not foun d!",Name)) ; | |
| 4422 | } | |
| 4423 | } | |
| 4424 | ||
| 4425 | // / <summary > | |
| 4426 | // / Copies t he named w orksheet a nd creates a new wor ksheet in the same w orkbook | |
| 4427 | // / </summar y> | |
| 4428 | // / <param n ame="Name" >The name of the exi sting work sheet</par am> | |
| 4429 | // / <param n ame="NewNa me">The na me of the new worksh eet to cre ate</param > | |
| 4430 | // / <returns ></returns > | |
| 4431 | pu blic Excel Worksheet Copy(strin g Name, st ring NewNa me) | |
| 4432 | { | |
| 4433 | // TODO: implement copy work sheet | |
| 4434 | throw ne w Exceptio n("The met hod or ope ration is not implem ented."); | |
| 4435 | } | |
| 4436 | #e ndregion | |
| 4437 | } // e nd class W orksheets | |
| 4438 | }]]></Proj ectItem> | |
| 4439 | <P rojectItem | |
| 4440 | Name="Exce lCell.cs" | |
| 4441 | Encoding=" UTF8"><![C DATA[/* | |
| 4442 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 4443 | * | |
| 4444 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 4445 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 4446 | * | |
| 4447 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 4448 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 4449 | * All rig hts reserv ed. | |
| 4450 | * | |
| 4451 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 4452 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 4453 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 4454 | * | |
| 4455 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 4456 | * 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 | |
| 4457 | * | |
| 4458 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 4459 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 4460 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 4461 | * | |
| 4462 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 4463 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 4464 | */ | |
| 4465 | ||
| 4466 | /* | |
| 4467 | * Code ch ange notes : | |
| 4468 | * | |
| 4469 | * Author Change Date | |
| 4470 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4471 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 4472 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 4473 | */ | |
| 4474 | using Syst em; | |
| 4475 | using Syst em.Xml; | |
| 4476 | using Syst em.Text.Re gularExpre ssions; | |
| 4477 | using Syst em.IO.Pack aging; | |
| 4478 | ||
| 4479 | namespace OfficeOpen Xml | |
| 4480 | { | |
| 4481 | /// <s ummary> | |
| 4482 | /// Ex celCell re presents a n individu al workshe et cell. | |
| 4483 | /// </ summary> | |
| 4484 | public class Exc elCell | |
| 4485 | { | |
| 4486 | #r egion Cell Private P roperties | |
| 4487 | pr ivate Exce lWorksheet _xlWorksh eet; | |
| 4488 | pr ivate XmlE lement _ce llElement; | |
| 4489 | pr ivate int _row; | |
| 4490 | pr ivate int _col; | |
| 4491 | pr ivate stri ng _value; | |
| 4492 | pr ivate stri ng _valueR ef; | |
| 4493 | pr ivate stri ng _formul a; | |
| 4494 | pr ivate stri ng _dataTy pe; | |
| 4495 | pr ivate Uri _hyperlink ; | |
| 4496 | #e ndregion | |
| 4497 | ||
| 4498 | #r egion Exce lCell Cons tructor | |
| 4499 | // / <summary > | |
| 4500 | // / Creates a new inst ance of Ex celCell cl ass. For i nternal us e only! | |
| 4501 | // / </summar y> | |
| 4502 | // / <param n ame="xlWor ksheet">A reference to the par ent worksh eet</param > | |
| 4503 | // / <param n ame="row"> The row nu mber in th e parent w orksheet</ param> | |
| 4504 | // / <param n ame="col"> The column number in the paren t workshee t</param> | |
| 4505 | pr otected in ternal Exc elCell(Exc elWorkshee t xlWorksh eet, int r ow, int co l) | |
| 4506 | { | |
| 4507 | if (row < 1 || col < 1) | |
| 4508 | thro w new Exce ption("Exc elCell Con structor: Negative r ow and col umn number s are not allowed"); | |
| 4509 | if (xlWo rksheet == null) | |
| 4510 | thro w new Exce ption("Exc elCell Con structor: xlWorkshee t must be set to a v alid refer ence"); | |
| 4511 | ||
| 4512 | _xlWorks heet = xlW orksheet; | |
| 4513 | _row = r ow; | |
| 4514 | _col = c ol; | |
| 4515 | ||
| 4516 | _cellEle ment = Get OrCreateCe llElement( xlWorkshee t, row, co l); | |
| 4517 | } | |
| 4518 | #e ndregion // END Cel l Construc tors | |
| 4519 | ||
| 4520 | #r egion Exce lCell Publ ic Propert ies | |
| 4521 | ||
| 4522 | // / <summary > | |
| 4523 | // / Read-onl y referenc e to the c ell's XmlN ode (for i nternal us e only) | |
| 4524 | // / </summar y> | |
| 4525 | pr otected in ternal Xml Element El ement { ge t { return _cellElem ent; } } | |
| 4526 | // / <summary > | |
| 4527 | // / Read-onl y referenc e to the c ell's row number | |
| 4528 | // / </summar y> | |
| 4529 | pu blic int R ow { get { return _r ow; } } | |
| 4530 | // / <summary > | |
| 4531 | // / Read-onl y referenc e to the c ell's colu mn number | |
| 4532 | // / </summar y> | |
| 4533 | pu blic int C olumn { ge t { return _col; } } | |
| 4534 | // / <summary > | |
| 4535 | // / Returns the curren t cell add ress in th e standard Excel for mat (e.g. 'E5') | |
| 4536 | // / </summar y> | |
| 4537 | pu blic strin g CellAddr ess { get { return G etCellAddr ess(_row, _col); } } | |
| 4538 | // / <summary > | |
| 4539 | // / Returns true if th e cell's c ontents ar e numeric. | |
| 4540 | // / </summar y> | |
| 4541 | pu blic bool IsNumeric { get { re turn (IsNu mericValue (Value)); } } | |
| 4542 | ||
| 4543 | #r egion Exce lCell Valu e | |
| 4544 | // / <summary > | |
| 4545 | // / Gets/set s the valu e of the c ell. | |
| 4546 | // / </summar y> | |
| 4547 | pu blic strin g Value | |
| 4548 | { | |
| 4549 | get | |
| 4550 | { | |
| 4551 | if ( _value == null) | |
| 4552 | { | |
| 4553 | bool IsNum eric = tru e; // def ault | |
| 4554 | XmlNode va lueNode = _cellEleme nt.SelectS ingleNode( "./d:v", _ xlWorkshee t.NameSpac eManager); | |
| 4555 | if (valueN ode == nul l) | |
| 4556 | { | |
| 4557 | _value Ref = ""; | |
| 4558 | _value = ""; | |
| 4559 | } | |
| 4560 | else | |
| 4561 | { | |
| 4562 | _value Ref = valu eNode.Inne rText; | |
| 4563 | // che ck to see if we have a string value | |
| 4564 | XmlAtt ribute att r = _cellE lement.Att ributes["t "]; | |
| 4565 | if (at tr != null ) | |
| 4566 | Is Numeric = !(attr.Val ue == "s") ; | |
| 4567 | ||
| 4568 | if (Is Numeric) | |
| 4569 | _v alue = _va lueRef; | |
| 4570 | else | |
| 4571 | _v alue = Get SharedStri ng(Convert .ToInt32(_ valueRef)) ; | |
| 4572 | } | |
| 4573 | } | |
| 4574 | retu rn (_value ); | |
| 4575 | } | |
| 4576 | set | |
| 4577 | { | |
| 4578 | _val ue = value ; | |
| 4579 | // s et the val ue of the cell | |
| 4580 | XmlN ode valueN ode = _cel lElement.S electSingl eNode("./d :v", _xlWo rksheet.Na meSpaceMan ager); | |
| 4581 | if ( valueNode == null) | |
| 4582 | { | |
| 4583 | // Cell w ith delete d value. A dd a value element n ow. | |
| 4584 | valueNode = _cellEle ment.Owner Document.C reateEleme nt("v", Ex celPackage .schemaMai n); | |
| 4585 | _cellEleme nt.AppendC hild(value Node); | |
| 4586 | } | |
| 4587 | if ( IsNumericV alue(value )) | |
| 4588 | { | |
| 4589 | _valueRef = value; | |
| 4590 | // ensure we remove any existi ng string data type flag | |
| 4591 | XmlAttribu te attr = _cellEleme nt.Attribu tes["t"]; | |
| 4592 | if (attr ! = null) | |
| 4593 | _cellE lement.Att ributes.Re moveNamedI tem("t"); | |
| 4594 | } | |
| 4595 | else | |
| 4596 | { | |
| 4597 | _valueRef = SetShare dString(_v alue).ToSt ring(); | |
| 4598 | XmlAttribu te attr = _cellEleme nt.Attribu tes["t"]; | |
| 4599 | if (attr = = null) | |
| 4600 | { | |
| 4601 | attr = _cellElem ent.OwnerD ocument.Cr eateAttrib ute("t"); | |
| 4602 | _cellE lement.Att ributes.Ap pend(attr) ; | |
| 4603 | } | |
| 4604 | attr.Value = "s"; | |
| 4605 | } | |
| 4606 | valu eNode.Inne rText = _v alueRef; | |
| 4607 | } | |
| 4608 | } | |
| 4609 | #e ndregion | |
| 4610 | ||
| 4611 | #r egion Exce lCell Data Type | |
| 4612 | // / <summary > | |
| 4613 | // / Gets/set s the cell 's data ty pe. | |
| 4614 | // / Not curr ently impl emented co rrectly! | |
| 4615 | // / </summar y> | |
| 4616 | pu blic strin g DataType | |
| 4617 | { | |
| 4618 | // TODO: complete DataType | |
| 4619 | get | |
| 4620 | { | |
| 4621 | stri ng retValu e = null; | |
| 4622 | XmlA ttribute a ttr = _cel lElement.A ttributes[ "t"]; | |
| 4623 | if ( attr != nu ll) | |
| 4624 | { | |
| 4625 | _dataType = ""; // default | |
| 4626 | } | |
| 4627 | retu rn (retVal ue); | |
| 4628 | } | |
| 4629 | set | |
| 4630 | { | |
| 4631 | _dat aType = va lue; | |
| 4632 | XmlA ttribute a ttr = _cel lElement.A ttributes[ "t"]; | |
| 4633 | if ( attr == nu ll) | |
| 4634 | { | |
| 4635 | attr = _ce llElement. OwnerDocum ent.Create Attribute( "t"); | |
| 4636 | _cellEleme nt.Attribu tes.Append (attr); | |
| 4637 | } | |
| 4638 | attr .Value = v alue; | |
| 4639 | } | |
| 4640 | } | |
| 4641 | #e ndregion | |
| 4642 | ||
| 4643 | #r egion Exce lCell Styl e | |
| 4644 | // / <summary > | |
| 4645 | // / Allows y ou to set the cell's style usi ng a named style | |
| 4646 | // / </summar y> | |
| 4647 | pu blic strin g Style | |
| 4648 | { | |
| 4649 | get { re turn (_xlW orksheet.G etStyleNam e(StyleID) ); } | |
| 4650 | set { St yleID = _x lWorksheet .GetStyleI D(value); } | |
| 4651 | } | |
| 4652 | ||
| 4653 | // / <summary > | |
| 4654 | // / Allows y ou to set the cell's style usi ng the num ber of the style. | |
| 4655 | // / Useful w hen coping styles fr om one cel l to anoth er. | |
| 4656 | // / </summar y> | |
| 4657 | pu blic int S tyleID | |
| 4658 | { | |
| 4659 | get | |
| 4660 | { | |
| 4661 | int retValue = 0; | |
| 4662 | stri ng sid = _ cellElemen t.GetAttri bute("s"); | |
| 4663 | if ( sid != "") retValue = int.Pars e(sid); | |
| 4664 | retu rn retValu e; | |
| 4665 | } | |
| 4666 | set { _c ellElement .SetAttrib ute("s", v alue.ToStr ing()); } | |
| 4667 | } | |
| 4668 | #e ndregion | |
| 4669 | ||
| 4670 | #r egion Exce lCell Hype rlink | |
| 4671 | // / <summary > | |
| 4672 | // / Allows y ou to set/ get the ce ll's Hyper link | |
| 4673 | // / </summar y> | |
| 4674 | pu blic Uri H yperlink | |
| 4675 | { | |
| 4676 | get | |
| 4677 | { | |
| 4678 | if ( _hyperlink == null) | |
| 4679 | { | |
| 4680 | string sea rchString = string.F ormat("//d :hyperlink s/d:hyperl ink[@ref = '{0}']", CellAddres s); | |
| 4681 | XmlNode li nkNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de(searchS tring, _xl Worksheet. NameSpaceM anager); | |
| 4682 | if (linkNo de != null ) | |
| 4683 | { | |
| 4684 | XmlAtt ribute att r = (XmlAt tribute)li nkNode.Att ributes.Ge tNamedItem ("id", Exc elPackage. schemaRela tionships) ; | |
| 4685 | if (at tr != null ) | |
| 4686 | { | |
| 4687 | st ring relID = attr.Va lue; | |
| 4688 | // now use t he relID t o lookup t he hyperli nk in the relationsh ip table | |
| 4689 | Pa ckageRelat ionship re lationship = _xlWork sheet.Part .GetRelati onship(rel ID); | |
| 4690 | _h yperlink = relations hip.Target Uri; | |
| 4691 | } | |
| 4692 | } | |
| 4693 | } | |
| 4694 | retu rn (_hyper link); | |
| 4695 | } | |
| 4696 | set | |
| 4697 | { | |
| 4698 | _hyp erlink = v alue; | |
| 4699 | XmlN ode linkPa rent = _ce llElement. OwnerDocum ent.Select SingleNode ("//d:hype rlinks", _ xlWorkshee t.NameSpac eManager); | |
| 4700 | if ( linkParent == null) | |
| 4701 | { | |
| 4702 | // create the hyperl inks node | |
| 4703 | linkParent = _cellEl ement.Owne rDocument. CreateElem ent("hyper links", Ex celPackage .schemaMai n); | |
| 4704 | XmlNode pr evNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de("//d:co nditionalF ormatting" , _xlWorks heet.NameS paceManage r); | |
| 4705 | if (prevNo de == null ) | |
| 4706 | { | |
| 4707 | prevNo de = _cell Element.Ow nerDocumen t.SelectSi ngleNode(" //d:mergeC ells", _xl Worksheet. NameSpaceM anager); | |
| 4708 | if (pr evNode == null) | |
| 4709 | { | |
| 4710 | pr evNode = _ cellElemen t.OwnerDoc ument.Sele ctSingleNo de("//d:sh eetData", _xlWorkshe et.NameSpa ceManager) ; | |
| 4711 | } | |
| 4712 | } | |
| 4713 | _cellEleme nt.OwnerDo cument.Doc umentEleme nt.InsertA fter(linkP arent, pre vNode); | |
| 4714 | } | |
| 4715 | ||
| 4716 | stri ng searchS tring = st ring.Forma t("./d:hyp erlink[@re f = '{0}'] ", CellAdd ress); | |
| 4717 | XmlE lement lin kNode = (X mlElement) linkParent .SelectSin gleNode(se archString , _xlWorks heet.NameS paceManage r); | |
| 4718 | XmlA ttribute a ttr; | |
| 4719 | if ( linkNode = = null) | |
| 4720 | { | |
| 4721 | linkNode = _cellElem ent.OwnerD ocument.Cr eateElemen t("hyperli nk", Excel Package.sc hemaMain); | |
| 4722 | // now add cell addr ess attrib ute | |
| 4723 | linkNode.S etAttribut e("ref", C ellAddress ); | |
| 4724 | linkParent .AppendChi ld(linkNod e); | |
| 4725 | } | |
| 4726 | ||
| 4727 | attr = (XmlAtt ribute)lin kNode.Attr ibutes.Get NamedItem( "id", Exce lPackage.s chemaRelat ionships); | |
| 4728 | if ( attr == nu ll) | |
| 4729 | { | |
| 4730 | attr = _ce llElement. OwnerDocum ent.Create Attribute( "r", "id", ExcelPack age.schema Relationsh ips); | |
| 4731 | linkNode.A ttributes. Append(att r); | |
| 4732 | } | |
| 4733 | Pack ageRelatio nship rela tionship = null; | |
| 4734 | stri ng relID = attr.Valu e; | |
| 4735 | if ( relID == " ") | |
| 4736 | 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"); | |
| 4737 | else | |
| 4738 | { | |
| 4739 | relationsh ip = _xlWo rksheet.Pa rt.GetRela tionship(r elID); | |
| 4740 | if (relati onship.Tar getUri != _hyperlink ) | |
| 4741 | 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") ; | |
| 4742 | } | |
| 4743 | attr .Value = r elationshi p.Id; | |
| 4744 | ||
| 4745 | //at tr = (XmlA ttribute)l inkNode.At tributes.G etNamedIte m("display ", ExcelPa ckage.sche maMain); | |
| 4746 | //if (attr == null) | |
| 4747 | //{ | |
| 4748 | // attr = _ce llNode.Own erDocument .CreateAtt ribute("di splay"); | |
| 4749 | // linkNode.A ttributes. Append(att r); | |
| 4750 | //} | |
| 4751 | //at tr.Value = Display; | |
| 4752 | } | |
| 4753 | } | |
| 4754 | #e ndregion | |
| 4755 | ||
| 4756 | #r egion Exce lCell Form ula | |
| 4757 | // / <summary > | |
| 4758 | // / Provides read/writ e access t o the cell 's formula . | |
| 4759 | // / </summar y> | |
| 4760 | pu blic strin g Formula | |
| 4761 | { | |
| 4762 | get | |
| 4763 | { | |
| 4764 | if ( _formula = = null) | |
| 4765 | { | |
| 4766 | XmlNode fo rmulaNode = _cellEle ment.Selec tSingleNod e("./d:f", _xlWorksh eet.NameSp aceManager ); | |
| 4767 | if (formul aNode != n ull) | |
| 4768 | { | |
| 4769 | // fir st check i f we have a shared f ormula | |
| 4770 | XmlAtt ribute att r = (XmlAt tribute)fo rmulaNode. Attributes .GetNamedI tem("t"); | |
| 4771 | if (at tr == null ) | |
| 4772 | { | |
| 4773 | // we have a standard formula | |
| 4774 | _f ormula = f ormulaNode .InnerText ; | |
| 4775 | } | |
| 4776 | else | |
| 4777 | { | |
| 4778 | if (attr.Val ue == "sha red") | |
| 4779 | { | |
| 4780 | // we mu st obtain the formul a from the shared ce ll referen ce | |
| 4781 | XmlAttri bute refAt tr = (XmlA ttribute)f ormulaNode .Attribute s.GetNamed Item("si") ; | |
| 4782 | if (refA ttr == nul l) | |
| 4783 | 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)"); | |
| 4784 | else | |
| 4785 | { | |
| 4786 | stri ng searchS tring = st ring.Forma t("//d:she etData/d:r ow/d:c/d:f [@si='{0}' ]", refAtt r.Value); | |
| 4787 | XmlN ode refNod e = _cellE lement.Own erDocument .SelectSin gleNode(se archString , _xlWorks heet.NameS paceManage r); | |
| 4788 | if ( refNode == null) | |
| 4789 | throw new Exception( "ExcelCell formula m arked as s hared but no referen ce node fo und"); | |
| 4790 | else | |
| 4791 | _formula = refNode.I nnerText; | |
| 4792 | } | |
| 4793 | } | |
| 4794 | el se | |
| 4795 | _formula = formula Node.Inner Text; | |
| 4796 | } | |
| 4797 | } | |
| 4798 | } | |
| 4799 | retu rn (_formu la); | |
| 4800 | } | |
| 4801 | set | |
| 4802 | { | |
| 4803 | // E xample cel l content for formul as | |
| 4804 | // < f>D7</f> | |
| 4805 | // < f>SUM(D6:D 8)</f> | |
| 4806 | // < f>F6+F7+F8 </f> | |
| 4807 | _for mula = val ue; | |
| 4808 | // i nsert the formula in to the cel l | |
| 4809 | XmlE lement for mulaElemen t = (XmlEl ement)_cel lElement.S electSingl eNode("./d :f", _xlWo rksheet.Na meSpaceMan ager); | |
| 4810 | if ( formulaEle ment == nu ll) | |
| 4811 | { | |
| 4812 | formulaEle ment = Add FormulaEle ment(); | |
| 4813 | } | |
| 4814 | // w e are sett ing the fo rmula dire ctly, so r emove the shared att ributes (i f present) | |
| 4815 | form ulaElement .Attribute s.RemoveNa medItem("t ", ExcelPa ckage.sche maMain); | |
| 4816 | form ulaElement .Attribute s.RemoveNa medItem("s i", ExcelP ackage.sch emaMain); | |
| 4817 | ||
| 4818 | // s et the for mula | |
| 4819 | form ulaElement .InnerText = value; | |
| 4820 | ||
| 4821 | // f orce Excel to re-cal culate the cell by r emoving th e value | |
| 4822 | Remo veValue(); | |
| 4823 | } | |
| 4824 | } | |
| 4825 | #e ndregion | |
| 4826 | ||
| 4827 | #r egion Exce lCell Comm ent | |
| 4828 | // / <summary > | |
| 4829 | // / Returns the commen t as a str ing | |
| 4830 | // / </summar y> | |
| 4831 | pu blic strin g Comment | |
| 4832 | { | |
| 4833 | // TODO: implement get which will obta in the tex t of the c omment fro m the comm ent1.xml f ile | |
| 4834 | get | |
| 4835 | { | |
| 4836 | thro w new Exce ption("Fun ction not yet implem ented!"); | |
| 4837 | } | |
| 4838 | // TODO: implement set which will add comments t o the work sheet | |
| 4839 | // this will requi re you to add entrie s to the D rawing.vml file to g et this to work! | |
| 4840 | } | |
| 4841 | #e ndregion | |
| 4842 | ||
| 4843 | // TODO: con ditional f ormatting | |
| 4844 | ||
| 4845 | #e ndregion // END Cel l Public P roperties | |
| 4846 | ||
| 4847 | #r egion Exce lCell Publ ic Methods | |
| 4848 | // / <summary > | |
| 4849 | // / Removes the XmlNod e that hol ds the cel l's value. | |
| 4850 | // / 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. | |
| 4851 | // / </summar y> | |
| 4852 | pu blic void RemoveValu e() | |
| 4853 | { | |
| 4854 | XmlNode valueNode = _cellEle ment.Selec tSingleNod e("./d:v", _xlWorksh eet.NameSp aceManager ); | |
| 4855 | if (valu eNode != n ull) | |
| 4856 | { | |
| 4857 | _cel lElement.R emoveChild (valueNode ); | |
| 4858 | } | |
| 4859 | } | |
| 4860 | ||
| 4861 | // / <summary > | |
| 4862 | // / Returns the cell's value as a string. | |
| 4863 | // / </summar y> | |
| 4864 | // / <returns >The cell' s value</r eturns> | |
| 4865 | pu blic overr ide string ToString( ) { return Value; } | |
| 4866 | ||
| 4867 | #e ndregion // END Cel l Public M ethods | |
| 4868 | ||
| 4869 | #r egion Exce lCell Priv ate Method s | |
| 4870 | ||
| 4871 | #r egion IsNu mericValue | |
| 4872 | // / <summary > | |
| 4873 | // / Returns true if th e string c ontains a numeric va lue | |
| 4874 | // / </summar y> | |
| 4875 | // / <param n ame="Value "></param> | |
| 4876 | // / <returns ></returns > | |
| 4877 | pu blic stati c bool IsN umericValu e(string V alue) | |
| 4878 | { | |
| 4879 | Regex ob jNotIntPat tern = new Regex("[^ 0-9,.-]"); | |
| 4880 | Regex ob jIntPatter n = new Re gex("^-[0- 9,.]+$|^[0 -9,.]+$"); | |
| 4881 | ||
| 4882 | return ! objNotIntP attern.IsM atch(Value ) && | |
| 4883 | ob jIntPatter n.IsMatch( Value); | |
| 4884 | } | |
| 4885 | #e ndregion | |
| 4886 | ||
| 4887 | #r egion Shar edString m ethods | |
| 4888 | pr ivate int SetSharedS tring(stri ng Value) | |
| 4889 | { | |
| 4890 | // Assu me the str ing won't be found ( assign it an impossi ble index) : | |
| 4891 | int inde x = -1; | |
| 4892 | ||
| 4893 | // Chec k to see i f the stri ng already exists. I f so, retr ieve its i ndex. | |
| 4894 | // This search is case-sens itive, but Excel sto res differ ently case d | |
| 4895 | // stri ngs separa tely withi n the stri ng file. | |
| 4896 | 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); | |
| 4897 | if (stri ngNode == null) | |
| 4898 | { | |
| 4899 | // You didn't find the string in the table, so add it now. | |
| 4900 | stri ngNode = _ xlWorkshee t.xlPackag e.Workbook .SharedStr ingsXml.Cr eateElemen t("si", Ex celPackage .schemaMai n); | |
| 4901 | XmlE lement tex tNode = _x lWorksheet .xlPackage .Workbook. SharedStri ngsXml.Cre ateElement ("t", Exce lPackage.s chemaMain) ; | |
| 4902 | text Node.Inner Text = Val ue; | |
| 4903 | stri ngNode.App endChild(t extNode); | |
| 4904 | _xlW orksheet.x lPackage.W orkbook.Sh aredString sXml.Docum entElement .AppendChi ld(stringN ode); | |
| 4905 | } | |
| 4906 | ||
| 4907 | if (stri ngNode != null) | |
| 4908 | { | |
| 4909 | // Retrieve t he index o f the sele cted node. | |
| 4910 | // To do that , count th e number o f precedin g | |
| 4911 | // nodes by r etrieving a referenc e to those nodes. | |
| 4912 | XmlN odeList no des = stri ngNode.Sel ectNodes(" preceding- sibling::d :si", _xlW orksheet.N ameSpaceMa nager); | |
| 4913 | inde x = nodes. Count; | |
| 4914 | } | |
| 4915 | return ( index); | |
| 4916 | } | |
| 4917 | ||
| 4918 | pr ivate stri ng GetShar edString(i nt stringI D) | |
| 4919 | { | |
| 4920 | string r etValue = null; | |
| 4921 | 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); | |
| 4922 | XmlNode stringNode = stringN odes[strin gID]; | |
| 4923 | if (stri ngNode != null) | |
| 4924 | retV alue = str ingNode.In nerText; | |
| 4925 | return ( retValue); | |
| 4926 | } | |
| 4927 | #e ndregion | |
| 4928 | ||
| 4929 | #r egion AddF ormulaNode | |
| 4930 | // / <summary > | |
| 4931 | // / Adds a n ew formula node to t he cell in the corre ct locatio n | |
| 4932 | // / </summar y> | |
| 4933 | // / <returns ></returns > | |
| 4934 | pr otected in ternal Xml Element Ad dFormulaEl ement() | |
| 4935 | { | |
| 4936 | XmlEleme nt formula Element = _cellEleme nt.OwnerDo cument.Cre ateElement ("f", Exce lPackage.s chemaMain) ; | |
| 4937 | // find the right location f or insersi on | |
| 4938 | XmlNode valueNode = _cellEle ment.Selec tSingleNod e("./d:v", _xlWorksh eet.NameSp aceManager ); | |
| 4939 | if (valu eNode == n ull) | |
| 4940 | _cel lElement.A ppendChild (formulaEl ement); | |
| 4941 | else | |
| 4942 | _cel lElement.I nsertBefor e(formulaE lement, va lueNode); | |
| 4943 | return f ormulaElem ent; | |
| 4944 | } | |
| 4945 | #e ndregion | |
| 4946 | ||
| 4947 | #r egion GetO rCreateCel lElement | |
| 4948 | pr ivate XmlE lement Get OrCreateCe llElement( ExcelWorks heet xlWor ksheet, in t row, int col) | |
| 4949 | { | |
| 4950 | XmlEleme nt cellNod e = null; | |
| 4951 | // this will creat e the row if it does not alrea dy exist | |
| 4952 | XmlNode rowNode = xlWorkshee t.Row(row) .Node; | |
| 4953 | if (rowN ode != nul l) | |
| 4954 | { | |
| 4955 | 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); | |
| 4956 | if ( cellNode = = null) | |
| 4957 | { | |
| 4958 | // Didn't find the cell so cr eate the c ell elemen t | |
| 4959 | cellNode = xlWorkshe et.Workshe etXml.Crea teElement( "c", Excel Package.sc hemaMain); | |
| 4960 | cellNode.S etAttribut e(ExcelWor ksheet.tem pColumnNum berTag, co l.ToString ()); | |
| 4961 | ||
| 4962 | // You mus t insert t he new cel l at the c orrect loc ation. | |
| 4963 | // Loop th rough the children, looking fo r the firs t cell tha t is | |
| 4964 | // beyond the cell y ou're tryi ng to inse rt. Insert before th at cell. | |
| 4965 | XmlNode bi ggerNode = null; | |
| 4966 | XmlNodeLis t cellNode s = rowNod e.SelectNo des("./d:c ", _xlWork sheet.Name SpaceManag er); | |
| 4967 | if (cellNo des != nul l) | |
| 4968 | { | |
| 4969 | foreac h (XmlNode node in c ellNodes) | |
| 4970 | { | |
| 4971 | Xm lNode colN ode = node .Attribute s[ExcelWor ksheet.tem pColumnNum berTag]; | |
| 4972 | if (colNode != null) | |
| 4973 | { | |
| 4974 | int colF ound = Con vert.ToInt 32(colNode .Value); | |
| 4975 | if (colF ound > col ) | |
| 4976 | { | |
| 4977 | bigg erNode = n ode; | |
| 4978 | brea k; | |
| 4979 | } | |
| 4980 | } | |
| 4981 | } | |
| 4982 | } | |
| 4983 | if (bigger Node == nu ll) | |
| 4984 | { | |
| 4985 | rowNod e.AppendCh ild(cellNo de); | |
| 4986 | } | |
| 4987 | else | |
| 4988 | { | |
| 4989 | rowNod e.InsertBe fore(cellN ode, bigge rNode); | |
| 4990 | } | |
| 4991 | } | |
| 4992 | } | |
| 4993 | return ( cellNode); | |
| 4994 | } | |
| 4995 | #e ndregion | |
| 4996 | ||
| 4997 | #e ndregion / / END Cell Private M ethods | |
| 4998 | ||
| 4999 | #r egion Exce lCell Stat ic Cell Ad dress Mani pulation R outines | |
| 5000 | ||
| 5001 | #r egion GetC olumnLette r | |
| 5002 | // / <summary > | |
| 5003 | // / Returns the charac ter repres entation o f the numb ered colum n | |
| 5004 | // / </summar y> | |
| 5005 | // / <param n ame="iColu mnNumber"> The number of the co lumn</para m> | |
| 5006 | // / <returns >The lette r represen ting the c olumn</ret urns> | |
| 5007 | pr otected in ternal sta tic string GetColumn Letter(int iColumnNu mber) | |
| 5008 | { | |
| 5009 | int iMai nLetterUni code; | |
| 5010 | char iMa inLetterCh ar; | |
| 5011 | ||
| 5012 | // TODO: we need t o cater fo r columns larger tha n ZZ | |
| 5013 | if (iCol umnNumber > 26) | |
| 5014 | { | |
| 5015 | int iFirstLett erUnicode = 0; // d efault | |
| 5016 | int iFirstLett er = Conve rt.ToInt32 (iColumnNu mber / 26) ; | |
| 5017 | char iFirstLet terChar; | |
| 5018 | if ( Convert.To Double(iFi rstLetter) == (Conve rt.ToDoubl e(iColumnN umber) / 2 6)) | |
| 5019 | { | |
| 5020 | iFirstLett erUnicode = iFirstLe tter - 1 + 64; | |
| 5021 | iMainLette rChar = 'Z '; | |
| 5022 | } | |
| 5023 | else | |
| 5024 | { | |
| 5025 | iFirstLett erUnicode = iFirstLe tter + 64; | |
| 5026 | iMainLette rUnicode = (iColumnN umber - (i FirstLette r * 26)) + 64; | |
| 5027 | iMainLette rChar = (c har)iMainL etterUnico de; | |
| 5028 | } | |
| 5029 | iFir stLetterCh ar = (char )iFirstLet terUnicode ; | |
| 5030 | ||
| 5031 | retu rn (iFirst LetterChar .ToString( ) + iMainL etterChar. ToString() ); | |
| 5032 | } | |
| 5033 | // if we get here we only ha ve a singl e letter t o return | |
| 5034 | iMainLet terUnicode = 64 + iC olumnNumbe r; | |
| 5035 | iMainLet terChar = (char)iMai nLetterUni code; | |
| 5036 | return ( iMainLette rChar.ToSt ring()); | |
| 5037 | } | |
| 5038 | #e ndregion | |
| 5039 | ||
| 5040 | #r egion GetC olumnNumbe r | |
| 5041 | // / <summary > | |
| 5042 | // / Returns the column number fr om the cel lAddress | |
| 5043 | // / e.g. D5 would retu rn 5 | |
| 5044 | // / </summar y> | |
| 5045 | // / <param n ame="cellA ddress">An Excel for mat cell a ddresss (e .g. D5)</p aram> | |
| 5046 | // / <returns >The colum n number</ returns> | |
| 5047 | pu blic stati c int GetC olumnNumbe r(string c ellAddress ) | |
| 5048 | { | |
| 5049 | // find out positi on where c haracters stop and n umbers beg in | |
| 5050 | int iCol umnNumber = 0; | |
| 5051 | int iPos = 0; | |
| 5052 | bool fou nd = false ; | |
| 5053 | foreach (char chr in cellAdd ress.ToCha rArray()) | |
| 5054 | { | |
| 5055 | iPos ++; | |
| 5056 | if ( char.IsNum ber(chr)) | |
| 5057 | { | |
| 5058 | found = tr ue; | |
| 5059 | break; | |
| 5060 | } | |
| 5061 | } | |
| 5062 | ||
| 5063 | if (foun d) | |
| 5064 | { | |
| 5065 | stri ng AlphaPa rt = cellA ddress.Sub string(0, cellAddres s.Length - (cellAddr ess.Length + 1 - iPo s)); | |
| 5066 | ||
| 5067 | int length = A lphaPart.L ength; | |
| 5068 | int count = 0; | |
| 5069 | fore ach (char chr in Alp haPart.ToC harArray() ) | |
| 5070 | { | |
| 5071 | count++; | |
| 5072 | int chrVal ue = ((int )chr - 64) ; | |
| 5073 | switch (le ngth) | |
| 5074 | { | |
| 5075 | case 1 : | |
| 5076 | iC olumnNumbe r = chrVal ue; | |
| 5077 | br eak; | |
| 5078 | case 2 : | |
| 5079 | if (count == 1) | |
| 5080 | iColumnN umber += ( chrValue * 26); | |
| 5081 | el se | |
| 5082 | iColumnN umber += c hrValue; | |
| 5083 | br eak; | |
| 5084 | case 3 : | |
| 5085 | if (count == 1) | |
| 5086 | iColumnN umber += ( chrValue * 26 * 26); | |
| 5087 | if (count == 2) | |
| 5088 | iColumnN umber += ( chrValue * 26); | |
| 5089 | el se | |
| 5090 | iColumnN umber += c hrValue; | |
| 5091 | br eak; | |
| 5092 | case 4 : | |
| 5093 | if (count == 1) | |
| 5094 | iColumnN umber += ( chrValue * 26 * 26 * 26); | |
| 5095 | if (count == 2) | |
| 5096 | iColumnN umber += ( chrValue * 26 * 26); | |
| 5097 | if (count == 3) | |
| 5098 | iColumnN umber += ( chrValue * 26); | |
| 5099 | el se | |
| 5100 | iColumnN umber += c hrValue; | |
| 5101 | br eak; | |
| 5102 | } | |
| 5103 | } | |
| 5104 | } | |
| 5105 | return ( iColumnNum ber); | |
| 5106 | } | |
| 5107 | #e ndregion | |
| 5108 | ||
| 5109 | #r egion GetR owNumber | |
| 5110 | // / <summary > | |
| 5111 | // / Returns the row nu mber from the cellAd dress | |
| 5112 | // / e.g. D5 would retu rn 5 | |
| 5113 | // / </summar y> | |
| 5114 | // / <param n ame="cellA ddress">An Excel for mat cell a ddresss (e .g. D5)</p aram> | |
| 5115 | // / <returns >The row n umber</ret urns> | |
| 5116 | pu blic stati c int GetR owNumber(s tring cell Address) | |
| 5117 | { | |
| 5118 | // find out positi on where c haracters stop and n umbers beg in | |
| 5119 | int iPos = 0; | |
| 5120 | bool fou nd = false ; | |
| 5121 | foreach (char chr in cellAdd ress.ToCha rArray()) | |
| 5122 | { | |
| 5123 | iPos ++; | |
| 5124 | if ( char.IsNum ber(chr)) | |
| 5125 | { | |
| 5126 | found = tr ue; | |
| 5127 | break; | |
| 5128 | } | |
| 5129 | } | |
| 5130 | if (foun d) | |
| 5131 | { | |
| 5132 | stri ng NumberP art = cell Address.Su bstring(iP os - 1, ce llAddress. Length - ( iPos - 1)) ; | |
| 5133 | if ( ExcelCell. IsNumericV alue(Numbe rPart)) | |
| 5134 | return (in t.Parse(Nu mberPart)) ; | |
| 5135 | } | |
| 5136 | return ( 0); | |
| 5137 | } | |
| 5138 | #e ndregion | |
| 5139 | ||
| 5140 | #r egion GetC ellAddress | |
| 5141 | // / <summary > | |
| 5142 | // / Returns the AlphaN umeric rep resentatio n that Exc el expects for a Cel l Address | |
| 5143 | // / </summar y> | |
| 5144 | // / <param n ame="iRow" >The numbe r of the r ow</param> | |
| 5145 | // / <param n ame="iColu mn">The nu mber of th e column i n the work sheet</par am> | |
| 5146 | // / <returns >The cell address in the forma t A1</retu rns> | |
| 5147 | pu blic stati c string G etCellAddr ess(int iR ow, int iC olumn) | |
| 5148 | { | |
| 5149 | return ( GetColumnL etter(iCol umn) + iRo w.ToString ()); | |
| 5150 | } | |
| 5151 | #e ndregion | |
| 5152 | ||
| 5153 | #r egion IsVa lidCellAdd ress | |
| 5154 | // / <summary > | |
| 5155 | // / Checks t hat a cell address ( e.g. A5) i s valid. | |
| 5156 | // / </summar y> | |
| 5157 | // / <param n ame="cellA ddress">Th e alphanum eric cell address</p aram> | |
| 5158 | // / <returns >True if t he cell ad dress is v alid</retu rns> | |
| 5159 | pu blic stati c bool IsV alidCellAd dress(stri ng cellAdd ress) | |
| 5160 | { | |
| 5161 | int row = GetRowNu mber(cellA ddress); | |
| 5162 | int col = GetColum nNumber(ce llAddress) ; | |
| 5163 | ||
| 5164 | if (GetC ellAddress (row, col) == cellAd dress) | |
| 5165 | retu rn (true); | |
| 5166 | else | |
| 5167 | retu rn (false) ; | |
| 5168 | } | |
| 5169 | #e ndregion | |
| 5170 | ||
| 5171 | #r egion Upda teFormulaR eferences | |
| 5172 | // / <summary > | |
| 5173 | // / Updates the Excel formula so that all the cellAd dresses ar e incremen ted by the row and c olumn incr ements | |
| 5174 | // / if they fall after the after Row and af terColumn. | |
| 5175 | // / Supports inserting rows and columns in to existin g template s. | |
| 5176 | // / </summar y> | |
| 5177 | // / <param n ame="Formu la">The Ex cel formul a</param> | |
| 5178 | // / <param n ame="rowIn crement">T he amount to increme nt the cel l referenc e by</para m> | |
| 5179 | // / <param n ame="colIn crement">T he amount to increme nt the cel l referenc e by</para m> | |
| 5180 | // / <param n ame="after Row">Only change row s after th is row</pa ram> | |
| 5181 | // / <param n ame="after Column">On ly change columns af ter this c olumn</par am> | |
| 5182 | // / <returns ></returns > | |
| 5183 | 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) | |
| 5184 | { | |
| 5185 | string n ewFormula = ""; | |
| 5186 | ||
| 5187 | Regex ge tAlphaNume ric = new Regex(@"[^ a-zA-Z0-9] ", RegexOp tions.Igno reCase); | |
| 5188 | Regex ge tSigns = n ew Regex(@ "[a-zA-Z0- 9]", Regex Options.Ig noreCase); | |
| 5189 | ||
| 5190 | string a lphaNumeri c = getAlp haNumeric. Replace(Fo rmula, " " ).Replace( " ", " ") ; | |
| 5191 | string s igns = get Signs.Repl ace(Formul a, " "); | |
| 5192 | char[] c hrSigns = signs.ToCh arArray(); | |
| 5193 | int coun t = 0; | |
| 5194 | int leng th = 0; | |
| 5195 | foreach (string ce llAddress in alphaNu meric.Spli t(' ')) | |
| 5196 | { | |
| 5197 | coun t++; | |
| 5198 | leng th += cell Address.Le ngth; | |
| 5199 | ||
| 5200 | // i f the cell Address co ntains an alpha part followed by a numbe r part, th en it is a valid cel lAddress | |
| 5201 | int row = GetR owNumber(c ellAddress ); | |
| 5202 | int col = GetC olumnNumbe r(cellAddr ess); | |
| 5203 | stri ng newCell Address = ""; | |
| 5204 | if ( ExcelCell. GetCellAdd ress(row, col) == ce llAddress) // this checks if the cellA ddress is valid | |
| 5205 | { | |
| 5206 | // we have a valid c ell addres s so chang e its valu e (if nece ssary) | |
| 5207 | if (row >= afterRow) | |
| 5208 | row += rowIncrem ent; | |
| 5209 | if (col >= afterColu mn) | |
| 5210 | col += colIncrem ent; | |
| 5211 | newCellAdd ress = Get CellAddres s(row, col ); | |
| 5212 | } | |
| 5213 | if ( newCellAdd ress == "" ) | |
| 5214 | { | |
| 5215 | newFormula += cellAd dress; | |
| 5216 | } | |
| 5217 | else | |
| 5218 | { | |
| 5219 | newFormula += newCel lAddress; | |
| 5220 | } | |
| 5221 | ||
| 5222 | for (int i = l ength; i < signs.Len gth; i++) | |
| 5223 | { | |
| 5224 | if (chrSig ns[i] == ' ') | |
| 5225 | break; | |
| 5226 | if (chrSig ns[i] != ' ') | |
| 5227 | { | |
| 5228 | length ++; | |
| 5229 | newFor mula += ch rSigns[i]. ToString() ; | |
| 5230 | } | |
| 5231 | } | |
| 5232 | } | |
| 5233 | return ( newFormula ); | |
| 5234 | } | |
| 5235 | #e ndregion | |
| 5236 | ||
| 5237 | #e ndregion / / END Cell Address Ma nipulation Routines | |
| 5238 | } | |
| 5239 | }]]></Proj ectItem> | |
| 5240 | <P rojectItem | |
| 5241 | Name="Exce lStyles.cs " | |
| 5242 | Encoding=" UTF8"><![C DATA[/* | |
| 5243 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 5244 | * | |
| 5245 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 5246 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 5247 | * | |
| 5248 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 5249 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 5250 | * All rig hts reserv ed. | |
| 5251 | * | |
| 5252 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 5253 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 5254 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 5255 | * | |
| 5256 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 5257 | * 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 | |
| 5258 | * | |
| 5259 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 5260 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 5261 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 5262 | * | |
| 5263 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 5264 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 5265 | */ | |
| 5266 | ||
| 5267 | /* | |
| 5268 | * Code ch ange notes : | |
| 5269 | * | |
| 5270 | * Author Change Date | |
| 5271 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5272 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 5273 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5274 | */ | |
| 5275 | using Syst em; | |
| 5276 | using Syst em.Xml; | |
| 5277 | ||
| 5278 | namespace OfficeOpen Xml | |
| 5279 | { | |
| 5280 | class ExcelStyle s | |
| 5281 | { | |
| 5282 | // TODO: wri te a wrapp er around the styles .xml | |
| 5283 | } | |
| 5284 | }]]></Proj ectItem> | |
| 5285 | <P rojectItem | |
| 5286 | Name="Exce lHeaderFoo ter.cs" | |
| 5287 | Encoding=" UTF8"><![C DATA[/* | |
| 5288 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 5289 | * | |
| 5290 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 5291 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 5292 | * | |
| 5293 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 5294 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 5295 | * All rig hts reserv ed. | |
| 5296 | * | |
| 5297 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 5298 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 5299 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 5300 | * | |
| 5301 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 5302 | * 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 | |
| 5303 | * | |
| 5304 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 5305 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 5306 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 5307 | * | |
| 5308 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 5309 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 5310 | */ | |
| 5311 | ||
| 5312 | /* | |
| 5313 | * Code ch ange notes : | |
| 5314 | * | |
| 5315 | * Author Change Date | |
| 5316 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5317 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 5318 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5319 | */ | |
| 5320 | using Syst em; | |
| 5321 | using Syst em.Xml; | |
| 5322 | ||
| 5323 | namespace OfficeOpen Xml | |
| 5324 | { | |
| 5325 | #regio n class Ex celHeaderF ooterText | |
| 5326 | /// <s ummary> | |
| 5327 | /// He lper class for Excel HeaderFoot er - simpl y stores t he three h eader or f ooter | |
| 5328 | /// te xt strings . | |
| 5329 | /// </ summary> | |
| 5330 | public class Exc elHeaderFo oterText | |
| 5331 | { | |
| 5332 | // / <summary > | |
| 5333 | // / Sets the text to a ppear on t he left ha nd side of the heade r (or foot er) on the worksheet . | |
| 5334 | // / </summar y> | |
| 5335 | pu blic strin g LeftAlig nedText = null; | |
| 5336 | // / <summary > | |
| 5337 | // / Sets the text to a ppear in t he center of the hea der (or fo oter) on t he workshe et. | |
| 5338 | // / </summar y> | |
| 5339 | pu blic strin g Centered Text = nul l; | |
| 5340 | // / <summary > | |
| 5341 | // / 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. | |
| 5342 | // / </summar y> | |
| 5343 | pu blic strin g RightAli gnedText = null; | |
| 5344 | } | |
| 5345 | #endre gion | |
| 5346 | ||
| 5347 | #regio n ExcelHea derFooter | |
| 5348 | /// <s ummary> | |
| 5349 | /// Re presents t he Header and Footer on an Exc el Workshe et | |
| 5350 | /// </ summary> | |
| 5351 | public class Exc elHeaderFo oter | |
| 5352 | { | |
| 5353 | #r egion Stat ic Propert ies | |
| 5354 | // / <summary > | |
| 5355 | // / Use this to insert the page number int o the head er or foot er of the worksheet | |
| 5356 | // / </summar y> | |
| 5357 | pu blic const string Pa geNumber = @"&P"; | |
| 5358 | // / <summary > | |
| 5359 | // / Use this to insert the numbe r of pages into the header or footer of the worksh eet | |
| 5360 | // / </summar y> | |
| 5361 | pu blic const string Nu mberOfPage s = @"&N"; | |
| 5362 | // / <summary > | |
| 5363 | // / Use this to insert the name of the wor ksheet int o the head er or foot er of the worksheet | |
| 5364 | // / </summar y> | |
| 5365 | pu blic const string Sh eetName = @"&A"; | |
| 5366 | // / <summary > | |
| 5367 | // / 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 | |
| 5368 | // / </summar y> | |
| 5369 | pu blic const string Fi lePath = @ "&Z"; | |
| 5370 | // / <summary > | |
| 5371 | // / Use this to insert the name of the wor kbook file into the header or footer of the worksh eet | |
| 5372 | // / </summar y> | |
| 5373 | pu blic const string Fi leName = @ "&F"; | |
| 5374 | // / <summary > | |
| 5375 | // / Use this to insert the curre nt date in to the hea der or foo ter of the worksheet | |
| 5376 | // / </summar y> | |
| 5377 | pu blic const string Cu rrentDate = @"&D"; | |
| 5378 | // / <summary > | |
| 5379 | // / Use this to insert the curre nt time in to the hea der or foo ter of the worksheet | |
| 5380 | // / </summar y> | |
| 5381 | pu blic const string Cu rrentTime = @"&T"; | |
| 5382 | #e ndregion | |
| 5383 | ||
| 5384 | #r egion Exce lHeaderFoo ter Privat e Properti es | |
| 5385 | pr ivate XmlE lement _he aderFooter Node; | |
| 5386 | pr ivate Exce lHeaderFoo terText _o ddHeader; | |
| 5387 | pr ivate Exce lHeaderFoo terText _o ddFooter; | |
| 5388 | pr ivate Exce lHeaderFoo terText _e venHeader; | |
| 5389 | pr ivate Exce lHeaderFoo terText _e venFooter; | |
| 5390 | pr ivate Exce lHeaderFoo terText _f irstHeader ; | |
| 5391 | pr ivate Exce lHeaderFoo terText _f irstFooter ; | |
| 5392 | pr ivate Syst em.Nullabl e<bool> _a lignWithMa rgins = nu ll; | |
| 5393 | pr ivate Syst em.Nullabl e<bool> _d ifferentOd dEven = nu ll; | |
| 5394 | pr ivate Syst em.Nullabl e<bool> _d ifferentFi rst = null ; | |
| 5395 | #e ndregion | |
| 5396 | ||
| 5397 | #r egion Exce lHeaderFoo ter Constr uctor | |
| 5398 | // / <summary > | |
| 5399 | // / ExcelHea derFooter Constructo r | |
| 5400 | // / For inte rnal use o nly! | |
| 5401 | // / </summar y> | |
| 5402 | // / <param n ame="Heade rFooterNod e"></param > | |
| 5403 | pr otected in ternal Exc elHeaderFo oter(XmlEl ement Head erFooterNo de) | |
| 5404 | { | |
| 5405 | if (Head erFooterNo de.Name != "headerFo oter") | |
| 5406 | thro w new Exce ption("Exc elHeaderFo oter Error : Passed i nvalid hea derFooter node"); | |
| 5407 | else | |
| 5408 | { | |
| 5409 | _hea derFooterN ode = Head erFooterNo de; | |
| 5410 | // T ODO: popul ate struct ure based on XML con tent | |
| 5411 | } | |
| 5412 | } | |
| 5413 | #e ndregion | |
| 5414 | ||
| 5415 | #r egion alig nWithMargi ns | |
| 5416 | // / <summary > | |
| 5417 | // / Gets/set s the alig nWithMargi ns attribu te | |
| 5418 | // / </summar y> | |
| 5419 | pu blic bool AlignWithM argins | |
| 5420 | { | |
| 5421 | get | |
| 5422 | { | |
| 5423 | if ( _alignWith Margins == null) | |
| 5424 | { | |
| 5425 | _alignWith Margins = false; | |
| 5426 | XmlAttribu te attr = (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("ali gnWithMarg ins"); | |
| 5427 | if (attr ! = null) | |
| 5428 | { | |
| 5429 | if (at tr.Value = = "1") | |
| 5430 | _a lignWithMa rgins = tr ue; | |
| 5431 | } | |
| 5432 | } | |
| 5433 | retu rn _alignW ithMargins .Value; | |
| 5434 | } | |
| 5435 | set | |
| 5436 | { | |
| 5437 | _ali gnWithMarg ins = valu e; | |
| 5438 | XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("alignWi thMargins" ); | |
| 5439 | if ( attr == nu ll) | |
| 5440 | { | |
| 5441 | attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("alignWit hMargins") ); | |
| 5442 | } | |
| 5443 | if ( value) | |
| 5444 | attr.Value = "1"; | |
| 5445 | else | |
| 5446 | attr.Value = "0"; | |
| 5447 | } | |
| 5448 | } | |
| 5449 | #e ndregion | |
| 5450 | ||
| 5451 | #r egion diff erentOddEv en | |
| 5452 | // / <summary > | |
| 5453 | // / Gets/set s the flag that tell s Excel to display d ifferent h eaders and footers o n odd and even pages . | |
| 5454 | // / </summar y> | |
| 5455 | pu blic bool differentO ddEven | |
| 5456 | { | |
| 5457 | get | |
| 5458 | { | |
| 5459 | if ( _different OddEven == null) | |
| 5460 | { | |
| 5461 | _different OddEven = false; | |
| 5462 | XmlAttribu te attr = (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("dif ferentOddE ven"); | |
| 5463 | if (attr ! = null) | |
| 5464 | { | |
| 5465 | if (at tr.Value = = "1") | |
| 5466 | _d ifferentOd dEven = tr ue; | |
| 5467 | } | |
| 5468 | } | |
| 5469 | retu rn _differ entOddEven .Value; | |
| 5470 | } | |
| 5471 | set | |
| 5472 | { | |
| 5473 | _dif ferentOddE ven = valu e; | |
| 5474 | XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("differe ntOddEven" ); | |
| 5475 | if ( attr == nu ll) | |
| 5476 | { | |
| 5477 | attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("differen tOddEven") ); | |
| 5478 | } | |
| 5479 | if ( value) | |
| 5480 | attr.Value = "1"; | |
| 5481 | else | |
| 5482 | attr.Value = "0"; | |
| 5483 | } | |
| 5484 | } | |
| 5485 | #e ndregion | |
| 5486 | ||
| 5487 | #r egion diff erentFirst | |
| 5488 | // / <summary > | |
| 5489 | // / 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. | |
| 5490 | // / </summar y> | |
| 5491 | pu blic bool differentF irst | |
| 5492 | { | |
| 5493 | get | |
| 5494 | { | |
| 5495 | if ( _different First == n ull) | |
| 5496 | { | |
| 5497 | _different First = fa lse; | |
| 5498 | XmlAttribu te attr = (XmlAttrib ute)_heade rFooterNod e.Attribut es.GetName dItem("dif ferentFirs t"); | |
| 5499 | if (attr ! = null) | |
| 5500 | { | |
| 5501 | if (at tr.Value = = "1") | |
| 5502 | _d ifferentFi rst = true ; | |
| 5503 | } | |
| 5504 | } | |
| 5505 | retu rn _differ entFirst.V alue; | |
| 5506 | } | |
| 5507 | set | |
| 5508 | { | |
| 5509 | _dif ferentFirs t = value; | |
| 5510 | XmlA ttribute a ttr = (Xml Attribute) _headerFoo terNode.At tributes.G etNamedIte m("differe ntFirst"); | |
| 5511 | if ( attr == nu ll) | |
| 5512 | { | |
| 5513 | attr = _he aderFooter Node.Attri butes.Appe nd(_header FooterNode .OwnerDocu ment.Creat eAttribute ("differen tFirst")); | |
| 5514 | } | |
| 5515 | if ( value) | |
| 5516 | attr.Value = "1"; | |
| 5517 | else | |
| 5518 | attr.Value = "0"; | |
| 5519 | } | |
| 5520 | } | |
| 5521 | #e ndregion | |
| 5522 | ||
| 5523 | #r egion Exce lHeaderFoo ter Public Propertie s | |
| 5524 | // / <summary > | |
| 5525 | // / 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. | |
| 5526 | // / 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. | |
| 5527 | // / </summar y> | |
| 5528 | pu blic Excel HeaderFoot erText odd Header { g et { if (_ oddHeader == null) _ oddHeader = new Exce lHeaderFoo terText(); return _o ddHeader; } } | |
| 5529 | // / <summary > | |
| 5530 | // / 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. | |
| 5531 | // / 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. | |
| 5532 | // / </summar y> | |
| 5533 | pu blic Excel HeaderFoot erText odd Footer { g et { if (_ oddFooter == null) _ oddFooter = new Exce lHeaderFoo terText(); return _o ddFooter; } } | |
| 5534 | // evenHeade r and even Footer set different OddEven = true | |
| 5535 | // / <summary > | |
| 5536 | // / 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. | |
| 5537 | // / </summar y> | |
| 5538 | 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; } } | |
| 5539 | // / <summary > | |
| 5540 | // / 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. | |
| 5541 | // / </summar y> | |
| 5542 | 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; } } | |
| 5543 | // firstHead er and fir stFooter s et differe ntFirst = true | |
| 5544 | // / <summary > | |
| 5545 | // / 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. | |
| 5546 | // / </summar y> | |
| 5547 | 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; } } | |
| 5548 | // / <summary > | |
| 5549 | // / 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. | |
| 5550 | // / </summar y> | |
| 5551 | 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; } } | |
| 5552 | #e ndregion | |
| 5553 | ||
| 5554 | #r egion Save // Exce lHeaderFoo ter | |
| 5555 | // / <summary > | |
| 5556 | // / Saves th e header a nd footer informatio n to the w orksheet X ML | |
| 5557 | // / </summar y> | |
| 5558 | pr otected in ternal voi d Save() | |
| 5559 | { | |
| 5560 | // The header/foo ter elemen ts must ap pear in th is order, if they ap pear: | |
| 5561 | // <odd Header /> | |
| 5562 | // <odd Footer /> | |
| 5563 | // <eve nHeader /> | |
| 5564 | // <eve nFooter /> | |
| 5565 | // <fir stHeader / > | |
| 5566 | // <fir stFooter / > | |
| 5567 | ||
| 5568 | XmlNode node; | |
| 5569 | if (_odd Header != null) | |
| 5570 | { | |
| 5571 | node = _header FooterNode .AppendChi ld(_header FooterNode .OwnerDocu ment.Creat eElement(" oddHeader" , ExcelPac kage.schem aMain)); | |
| 5572 | node .InnerText = GetHead erFooterTe xt(oddHead er); | |
| 5573 | } | |
| 5574 | if (_odd Footer != null) | |
| 5575 | { | |
| 5576 | node = _header FooterNode .AppendChi ld(_header FooterNode .OwnerDocu ment.Creat eElement(" oddFooter" , ExcelPac kage.schem aMain)); | |
| 5577 | node .InnerText = GetHead erFooterTe xt(oddFoot er); | |
| 5578 | } | |
| 5579 | ||
| 5580 | // only set evenHe ader and e venFooter | |
| 5581 | if (diff erentOddEv en) | |
| 5582 | { | |
| 5583 | if ( _evenHeade r != null) | |
| 5584 | { | |
| 5585 | node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("evenHe ader", Exc elPackage. schemaMain )); | |
| 5586 | node.Inner Text = Get HeaderFoot erText(eve nHeader); | |
| 5587 | } | |
| 5588 | if ( _evenFoote r != null) | |
| 5589 | { | |
| 5590 | node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("evenFo oter", Exc elPackage. schemaMain )); | |
| 5591 | node.Inner Text = Get HeaderFoot erText(eve nFooter); | |
| 5592 | } | |
| 5593 | } | |
| 5594 | ||
| 5595 | // only set firstH eader and firstFoote r | |
| 5596 | if (diff erentFirst ) | |
| 5597 | { | |
| 5598 | if ( _firstHead er != null ) | |
| 5599 | { | |
| 5600 | node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("firstH eader", Ex celPackage .schemaMai n)); | |
| 5601 | node.Inner Text = Get HeaderFoot erText(fir stHeader); | |
| 5602 | } | |
| 5603 | if ( _firstFoot er != null ) | |
| 5604 | { | |
| 5605 | node = _he aderFooter Node.Appen dChild(_he aderFooter Node.Owner Document.C reateEleme nt("firstF ooter", Ex celPackage .schemaMai n)); | |
| 5606 | node.Inner Text = Get HeaderFoot erText(fir stFooter); | |
| 5607 | } | |
| 5608 | } | |
| 5609 | } | |
| 5610 | ||
| 5611 | // / <summary > | |
| 5612 | // / Helper f unction fo r Save | |
| 5613 | // / </summar y> | |
| 5614 | // / <param n ame="inStr uct"></par am> | |
| 5615 | // / <returns ></returns > | |
| 5616 | pr otected in ternal str ing GetHea derFooterT ext(ExcelH eaderFoote rText inSt ruct) | |
| 5617 | { | |
| 5618 | string r etValue = ""; | |
| 5619 | if (inSt ruct.LeftA lignedText != null) | |
| 5620 | retV alue += "& L" + inStr uct.LeftAl ignedText; | |
| 5621 | if (inSt ruct.Cente redText != null) | |
| 5622 | retV alue += "& C" + inStr uct.Center edText; | |
| 5623 | if (inSt ruct.Right AlignedTex t != null) | |
| 5624 | retV alue += "& R" + inStr uct.RightA lignedText ; | |
| 5625 | return r etValue; | |
| 5626 | } | |
| 5627 | #e ndregion | |
| 5628 | } | |
| 5629 | #endre gion | |
| 5630 | ||
| 5631 | }]]></Proj ectItem> | |
| 5632 | <P rojectItem | |
| 5633 | Name="Exce lPackage.c s" | |
| 5634 | Encoding=" UTF8"><![C DATA[/* | |
| 5635 | * You may amend and distribut e as you l ike, but d on't remov e this hea der! | |
| 5636 | * | |
| 5637 | * ExcelPa ckage prov ides serve r-side gen eration of Excel 200 7 spreadsh eets. | |
| 5638 | * See htt p://www.co deplex.com /ExcelPack age for de tails. | |
| 5639 | * | |
| 5640 | * Copyrig ht 2007 © Dr John Tu nnicliffe | |
| 5641 | * mailto: dr.john.tu nnicliffe@ btinternet .com | |
| 5642 | * All rig hts reserv ed. | |
| 5643 | * | |
| 5644 | * ExcelPa ckage is a n Open Sou rce projec t provided under the | |
| 5645 | * GNU Gen eral Publi c License (GPL) as p ublished b y the | |
| 5646 | * Free So ftware Fou ndation, I nc., 59 Te mple Place , Suite 33 0, Boston, MA 02111- 1307 USA | |
| 5647 | * | |
| 5648 | * The GNU General P ublic Lice nse can be viewed at http://ww w.opensour ce.org/lic enses/gpl- license.ph p | |
| 5649 | * 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 | |
| 5650 | * | |
| 5651 | * The cod e for this project m ay be used and redis tributed b y any mean s PROVIDIN G it is | |
| 5652 | * not sol d for prof it without the autho r's writte n consent, and provi ding that this notic e | |
| 5653 | * and the author's name and a ll copyrig ht notices remain in tact. | |
| 5654 | * | |
| 5655 | * All cod e and exec utables ar e provided "as is" w ith no war ranty eith er express or implie d. | |
| 5656 | * The aut hor accept s no liabi lity for a ny damage or loss of business that this product ma y cause. | |
| 5657 | */ | |
| 5658 | ||
| 5659 | /* | |
| 5660 | * Code ch ange notes : | |
| 5661 | * | |
| 5662 | * Author Change Date | |
| 5663 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5664 | * John Tu nnicliffe Initial Release 01-J an-2007 | |
| 5665 | * ******* ********** ********** ********** ********** ********** ********** ********** * | |
| 5666 | */ | |
| 5667 | using Syst em; | |
| 5668 | using Syst em.Xml; | |
| 5669 | using Syst em.IO; | |
| 5670 | using Syst em.IO.Pack aging; | |
| 5671 | ||
| 5672 | namespace OfficeOpen Xml | |
| 5673 | { | |
| 5674 | /// <s ummary> | |
| 5675 | /// Re presents a n Excel 20 07 XLSX fi le package . Opens t he file an d provides access | |
| 5676 | /// to all the c omponents (workbook, worksheet s, propert ies etc.). | |
| 5677 | /// </ summary> | |
| 5678 | public class Exc elPackage : IDisposa ble | |
| 5679 | { | |
| 5680 | #r egion Prop erties | |
| 5681 | // / <summary > | |
| 5682 | // / Provides access to the main schema use d by all E xcel compo nents | |
| 5683 | // / </summar y> | |
| 5684 | pr otected in ternal con st string schemaMain = @"http: //schemas. openxmlfor mats.org/s preadsheet ml/2006/ma in"; | |
| 5685 | // / <summary > | |
| 5686 | // / Provides access to the relat ionship sc hema | |
| 5687 | // / </summar y> | |
| 5688 | pr otected in ternal con st string schemaRela tionships = @"http:/ /schemas.o penxmlform ats.org/of ficeDocume nt/2006/re lationship s"; | |
| 5689 | ||
| 5690 | pr ivate Pack age _packa ge; | |
| 5691 | pr ivate stri ng _output FolderPath ; | |
| 5692 | ||
| 5693 | pr ivate Exce lWorkbook _workbook; | |
| 5694 | ||
| 5695 | #e ndregion | |
| 5696 | ||
| 5697 | #r egion Exce lPackage C onstructor s | |
| 5698 | // / <summary > | |
| 5699 | // / Creates a new inst ance of th e ExcelPac kage class based on a existing file or c reates a n ew file. | |
| 5700 | // / </summar y> | |
| 5701 | // / <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> | |
| 5702 | pu blic Excel Package(Fi leInfo new File) | |
| 5703 | { | |
| 5704 | _outputF olderPath = newFile. DirectoryN ame; | |
| 5705 | if (newF ile.Exists ) | |
| 5706 | // o pen the ex isting pac kage | |
| 5707 | _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Ope n, FileAcc ess.ReadWr ite); | |
| 5708 | else | |
| 5709 | { | |
| 5710 | // c reate a ne w package and add th e main wor kbook.xml part | |
| 5711 | _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Cre ate, FileA ccess.Read Write); | |
| 5712 | ||
| 5713 | // s ave a temp orary part to create the defau lt applica tion/xml c ontent typ e | |
| 5714 | Uri uriDefault ContentTyp e = new Ur i("/defaul t.xml", Ur iKind.Rela tive); | |
| 5715 | Pack agePart pa rtTemp = _ package.Cr eatePart(u riDefaultC ontentType , "applica tion/xml") ; | |
| 5716 | ||
| 5717 | XmlD ocument wo rkbook = W orkbook.Wo rkbookXml; // this w ill create the workb ook xml in the packa ge | |
| 5718 | ||
| 5719 | // c reate the relationsh ip to the main part | |
| 5720 | _pac kage.Creat eRelations hip(Workbo ok.Workboo kUri, Targ etMode.Int ernal, sch emaRelatio nships + " /officeDoc ument"); | |
| 5721 | ||
| 5722 | // r emove the temporary part that created th e default xml conten t type | |
| 5723 | _pac kage.Delet ePart(uriD efaultCont entType); | |
| 5724 | } | |
| 5725 | } | |
| 5726 | ||
| 5727 | // / <summary > | |
| 5728 | // / Creates a new inst ance of th e ExcelPac kage class based on a existing template. | |
| 5729 | // / WARNING: If newFil e exists, it is dele ted! | |
| 5730 | // / </summar y> | |
| 5731 | // / <param n ame="newFi le">The na me of the Excel file to be cre ated</para m> | |
| 5732 | // / <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> | |
| 5733 | pu blic Excel Package(Fi leInfo new File, File Info templ ate) | |
| 5734 | { | |
| 5735 | _outputF olderPath = newFile. DirectoryN ame; | |
| 5736 | if (temp late.Exist s) | |
| 5737 | { | |
| 5738 | if ( newFile.Ex ists) | |
| 5739 | { | |
| 5740 | try | |
| 5741 | { | |
| 5742 | newFil e.Delete() ; | |
| 5743 | } | |
| 5744 | catch (Exc eption ex) | |
| 5745 | { | |
| 5746 | throw new Except ion("Excel Package Er ror: Targe t file alr eady exist s and is l ocked.", e x); | |
| 5747 | } | |
| 5748 | } | |
| 5749 | newF ile = temp late.CopyT o(newFile. FullName); | |
| 5750 | newF ile.IsRead Only = fal se; | |
| 5751 | ||
| 5752 | _pac kage = Pac kage.Open( newFile.Fu llName, Fi leMode.Ope n, FileAcc ess.ReadWr ite); | |
| 5753 | } | |
| 5754 | else | |
| 5755 | thro w new Exce ption("Exc elPackage Error: Pas sed invali d Template Path to Ex cel Templa te"); | |
| 5756 | } | |
| 5757 | #e ndregion | |
| 5758 | ||
| 5759 | #r egion Publ ic Propert ies | |
| 5760 | // / <summary > | |
| 5761 | // / Setting DebugMode to true wi ll cause t he Save me thod to wr ite the | |
| 5762 | // / raw XML components to the sa me folder as the out put Excel file | |
| 5763 | // / </summar y> | |
| 5764 | pu blic bool DebugMode = false; | |
| 5765 | ||
| 5766 | // / <summary > | |
| 5767 | // / Returns a referenc e to the f ile packag e | |
| 5768 | // / </summar y> | |
| 5769 | pu blic Packa ge Package { get { r eturn (_pa ckage); } } | |
| 5770 | ||
| 5771 | // / <summary > | |
| 5772 | // / Returns a referenc e to the w orkbook co mponent wi thin the p ackage. | |
| 5773 | // / All work sheets and cells can be access ed through the workb ook. | |
| 5774 | // / </summar y> | |
| 5775 | pu blic Excel Workbook W orkbook | |
| 5776 | { | |
| 5777 | get | |
| 5778 | { | |
| 5779 | if ( _workbook == null) | |
| 5780 | _workbook = new Exce lWorkbook( this); | |
| 5781 | retu rn (_workb ook); | |
| 5782 | } | |
| 5783 | } | |
| 5784 | #e ndregion | |
| 5785 | ||
| 5786 | #r egion Writ eDebugFile | |
| 5787 | // / <summary > | |
| 5788 | // / Writes a debug fil e to the o utput fold er, but on ly if Debu gMode = tr ue | |
| 5789 | // / </summar y> | |
| 5790 | // / <param n ame="XmlDo c">The Xml Document t o save to the file s ystem</par am> | |
| 5791 | // / <param n ame="subFo lder">The subfolder in which t he file is to be sav ed</param> | |
| 5792 | // / <param n ame="FileN ame">The n ame of the file to s ave.</para m> | |
| 5793 | pr otected in ternal voi d WriteDeb ugFile(Xml Document X mlDoc, str ing subFol der, strin g FileName ) | |
| 5794 | { | |
| 5795 | if (Debu gMode) | |
| 5796 | { | |
| 5797 | Dire ctoryInfo dir = new DirectoryI nfo(_outpu tFolderPat h + "/" + subFolder) ; | |
| 5798 | if ( !dir.Exist s) | |
| 5799 | dir.Create (); | |
| 5800 | ||
| 5801 | File Info file = new File Info(_outp utFolderPa th + "/" + subFolder + "/" + F ileName); | |
| 5802 | if ( file.Exist s) | |
| 5803 | { | |
| 5804 | file.IsRea dOnly = fa lse; | |
| 5805 | file.Delet e(); | |
| 5806 | } | |
| 5807 | XmlD oc.Save(fi le.FullNam e); | |
| 5808 | } | |
| 5809 | } | |
| 5810 | #e ndregion | |
| 5811 | ||
| 5812 | ||
| 5813 | // /// <summa ry> | |
| 5814 | // /// Return s the Uri to a paren t part (e. g. workboo k.xml) | |
| 5815 | // /// </summ ary> | |
| 5816 | // /// <param name="Rel ationship" >The relat ionship th e </param> | |
| 5817 | // /// <retur ns></retur ns> | |
| 5818 | // protected internal U ri GetMain Uri(string Relations hip) | |
| 5819 | // { | |
| 5820 | // Uri uriM ain = null ; | |
| 5821 | // // Get the Uri to the main part | |
| 5822 | // Uri uriP arent = ne w Uri("/", UriKind.R elative); | |
| 5823 | // PackageR elationshi p relation ship = Get MainRelati onship(Rel ationship) ; | |
| 5824 | // if (rela tionship ! = null) | |
| 5825 | // uriMai n = PackUr iHelper.Re solvePartU ri(uriPare nt, relati onship.Tar getUri); | |
| 5826 | // return ( uriMain); | |
| 5827 | // } | |
| 5828 | ||
| 5829 | // /// <summa ry> | |
| 5830 | // /// | |
| 5831 | // /// </summ ary> | |
| 5832 | // /// <param name="Rel ationship" ></param> | |
| 5833 | // /// <retur ns></retur ns> | |
| 5834 | // protected internal P ackageRela tionship G etMainRela tionship(s tring Rela tionship) | |
| 5835 | // { | |
| 5836 | // PackageR elationshi p relMain = null; | |
| 5837 | // foreach (PackageRe lationship relations hip in _pa ckage.GetR elationshi psByType(s chemaRelat ionships + "/" + Rel ationship) ) | |
| 5838 | // { | |
| 5839 | // relMai n = relati onship; | |
| 5840 | // break; // Ther e should o nly be one main part | |
| 5841 | // } | |
| 5842 | // return ( relMain); | |
| 5843 | // } | |
| 5844 | ||
| 5845 | #r egion GetS haredUri | |
| 5846 | // / <summary > | |
| 5847 | // / Obtains the Uri to a shared part (e.g. sharedstr ings.xml) | |
| 5848 | // / </summar y> | |
| 5849 | // / <param n ame="uriPa rent">Uri to the par ent compon ent</param > | |
| 5850 | // / <param n ame="Relat ionship">T he relatio nship to t he parent component< /param> | |
| 5851 | // / <returns >The Uri t o a shared part</ret urns> | |
| 5852 | pr otected in ternal Uri GetShared Uri(Uri ur iParent, s tring Rela tionship) | |
| 5853 | { | |
| 5854 | Uri uriS hared = nu ll; | |
| 5855 | PackageP art partPa rent = _pa ckage.GetP art(uriPar ent); | |
| 5856 | // Get the Uri to the share d part | |
| 5857 | foreach (System.IO .Packaging .PackageRe lationship relations hip in par tParent.Ge tRelations hipsByType (schemaRel ationships + "/" + R elationshi p)) | |
| 5858 | { | |
| 5859 | uriS hared = Pa ckUriHelpe r.ResolveP artUri(uri Parent, re lationship .TargetUri ); | |
| 5860 | brea k; // Th ere should only be o ne shared resource | |
| 5861 | } | |
| 5862 | return ( uriShared) ; | |
| 5863 | } | |
| 5864 | #e ndregion | |
| 5865 | ||
| 5866 | #r egion AddS chemaAttri bute | |
| 5867 | // / <summary > | |
| 5868 | // / Adds add itional sc hema attri butes to t he root el ement | |
| 5869 | // / </summar y> | |
| 5870 | // / <param n ame="root" >The root element</p aram> | |
| 5871 | // / <param n ame="nameS pace">The namespace of the sch ema</param > | |
| 5872 | // / <param n ame="schem a">The sch ema to app ly</param> | |
| 5873 | pr otected in ternal sta tic void A ddSchemaAt tribute(Xm lElement r oot, strin g schema, string nam eSpace) | |
| 5874 | { | |
| 5875 | XmlAttri bute nsAtt ribute = r oot.OwnerD ocument.Cr eateAttrib ute("xmlns ", nameSpa ce, @"http ://www.w3. org/2000/x mlns/"); | |
| 5876 | nsAttrib ute.Value = schema; | |
| 5877 | root.Att ributes.Ap pend(nsAtt ribute); | |
| 5878 | } | |
| 5879 | ||
| 5880 | // / <summary > | |
| 5881 | // / Adds add itional sc hema attri butes to t he root el ement | |
| 5882 | // / </summar y> | |
| 5883 | // / <param n ame="root" >The root element</p aram> | |
| 5884 | // / <param n ame="schem a">The sch ema to app ly</param> | |
| 5885 | pr otected in ternal sta tic void A ddSchemaAt tribute(Xm lElement r oot, strin g schema) | |
| 5886 | { | |
| 5887 | XmlAttri bute nsAtt ribute = r oot.OwnerD ocument.Cr eateAttrib ute("xmlns "); | |
| 5888 | nsAttrib ute.Value = schema; | |
| 5889 | root.Att ributes.Ap pend(nsAtt ribute); | |
| 5890 | } | |
| 5891 | #e ndregion | |
| 5892 | ||
| 5893 | #r egion Save Part | |
| 5894 | // / <summary > | |
| 5895 | // / Saves th e XmlDocum ent into t he package at the sp ecified Ur i. | |
| 5896 | // / </summar y> | |
| 5897 | // / <param n ame="uriPa rt">The Ur i of the c omponent</ param> | |
| 5898 | // / <param n ame="xmlPa rt">The Xm lDocument to save</p aram> | |
| 5899 | pr otected in ternal voi d SavePart (Uri uriPa rt, XmlDoc ument xmlP art) | |
| 5900 | { | |
| 5901 | PackageP art partPa ck = _pack age.GetPar t(uriPart) ; | |
| 5902 | xmlPart. Save(partP ack.GetStr eam(FileMo de.Create, FileAcces s.Write)); | |
| 5903 | } | |
| 5904 | #e ndregion | |
| 5905 | ||
| 5906 | #r egion Disp ose | |
| 5907 | // / <summary > | |
| 5908 | // / Closes t he package . | |
| 5909 | // / </summar y> | |
| 5910 | pu blic void Dispose() | |
| 5911 | { | |
| 5912 | _package .Close(); | |
| 5913 | } | |
| 5914 | #e ndregion | |
| 5915 | ||
| 5916 | #r egion Save // Excel Package sa ve | |
| 5917 | // / <summary > | |
| 5918 | // / Saves al l the comp onents bac k into the package. | |
| 5919 | // / This met hod recurs ively call s the Save method on all sub-c omponents. | |
| 5920 | // / </summar y> | |
| 5921 | pu blic void Save() | |
| 5922 | { | |
| 5923 | Workbook .Save(); | |
| 5924 | } | |
| 5925 | #e ndregion | |
| 5926 | ||
| 5927 | #r egion GetX mlFromUri | |
| 5928 | // / <summary > | |
| 5929 | // / Obtains the XmlDoc ument from the packa ge referen ced by the Uri | |
| 5930 | // / </summar y> | |
| 5931 | // / <param n ame="uriPa rt">The Ur i to the c omponent</ param> | |
| 5932 | // / <returns >The XmlDo cument of the compon ent</retur ns> | |
| 5933 | pr otected in ternal Xml Document G etXmlFromU ri(Uri uri Part) | |
| 5934 | { | |
| 5935 | XmlDocum ent xlPart = new Xml Document() ; | |
| 5936 | PackageP art packPa rt = _pack age.GetPar t(uriPart) ; | |
| 5937 | xlPart.L oad(packPa rt.GetStre am()); | |
| 5938 | return ( xlPart); | |
| 5939 | } | |
| 5940 | #e ndregion | |
| 5941 | } | |
| 5942 | }]]></Proj ectItem> | |
| 5943 | <B inaryItem | |
| 5944 | Name="ST_f ce6863cd8c 94187b7bd2 528130634e 1.csproj.d ll">TVqQAA MAAAAEAAAA //8AALgAAA AAAAAAQAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA | |
| 5945 | AAAAgAAAAA 4fug4AtAnN IbgBTM0hVG hpcyBwcm9n cmFtIGNhbm 5vdCBiZSBy dW4gaW4gRE 9TIG1v | |
| 5946 | ZGUuDQ0KJA AAAAAAAABQ RQAATAEDAC 1PklcAAAAA AAAAAOAAAi ELAQsAABYB AAAIAAAAAA AA3jUB | |
| 5947 | AAAgAAAAQA EAAAAAEAAg AAAAAgAABA AAAAAAAAAG AAAAAAAAAA CAAQAAAgAA AAAAAAMAYI UAABAA | |
| 5948 | ABAAAAAAEA AAEAAAAAAA ABAAAAAAAA AAAAAAAIg1 AQBTAAAAAE ABAOgEAAAA AAAAAAAAAA AAAAAA | |
| 5949 | AAAAAGABAA wAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 5950 | AAAAIAAACA AAAAAAAAAA AAAACCAAAE gAAAAAAAAA AAAAAC50ZX h0AAAA5BUB AAAgAAAAFg EAAAIA | |
| 5951 | AAAAAAAAAA AAAAAAACAA AGAucnNyYw AAAOgEAAAA QAEAAAYAAA AYAQAAAAAA AAAAAAAAAA BAAABA | |
| 5952 | LnJlbG9jAA AMAAAAAGAB AAACAAAAHg EAAAAAAAAA AAAAAAAAQA AAQgAAAAAA AAAAAAAAAA AAAADA | |
| 5953 | NQEAAAAAAE gAAAACAAUA mJAAAPCkAA ABAAAAAAAA AOCPAAC4AA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 5954 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA MwBQBMAAAA AAAAAAIoDQ AACgQXMgQF Fy8LcgEAAH BzDgAA | |
| 5955 | CnoDLQtykA AAcHMOAAAK egIDfQEAAA QCBH0DAAAE AgV9BAAABA ICAwQFKBoA AAZ9AgAABC oeAnsC | |
| 5956 | AAAEKh4Cew MAAAQqHgJ7 BAAABCpKAn sDAAAEAnsE AAAEKB4AAA YqMgIoBwAA BigWAAAGKh MwAwCs | |
| 5957 | AAAAAQAAEQ J7BQAABDqa AAAAFwoCew IAAARyGQEA cAJ7AQAABG 9qAAAGbw8A AAoLBy0YAn IlAQBw | |
| 5958 | fQYAAAQCci UBAHB9BQAA BCthAgdvEA AACn0GAAAE AnsCAAAEbx EAAApyJwEA cG8SAAAKDA gsFAhv | |
| 5959 | EwAACnIrAQ BwKBQAAAoW /gEKBiwOAg J7BgAABH0F AAAEKxcCAg J7BgAABCgV AAAKKBgAAA Z9BQAA | |
| 5960 | BAJ7BQAABC oTMAMAAQEA AAIAABECA3 0FAAAEAnsC AAAEchkBAH ACewEAAARv agAABm8PAA AKCgYt | |
| 5961 | KAJ7AgAABG 8WAAAKci8B AHByMwEAcG 8XAAAKCgJ7 AgAABAZvGA AACiYDKBYA AAYsOAIDfQ YAAAQC | |
| 5962 | ewIAAARvEQ AACnInAQBw bxIAAAoLBy x+AnsCAAAE bxEAAApyJw EAcG8ZAAAK JitmAgICew UAAAQo | |
| 5963 | FwAABg0SAy gaAAAKfQYA AAQCewIAAA RvEQAACnIn AQBwbxIAAA oMCC0oAnsC AAAEbxYAAA pyJwEA | |
| 5964 | cG8bAAAKDA J7AgAABG8R AAAKCG8cAA AKJghyKwEA cG8dAAAKBg J7BgAABG8e AAAKKgAAAB MwAgAo | |
| 5965 | AAAAAwAAER QKAnsCAAAE bxEAAApyJw EAcG8SAAAK CwcsCwJyJQ EAcH0IAAAE BioTMAIAUA AAAAQA | |
| 5966 | ABECA30IAA AEAnsCAAAE bxEAAApyJw EAcG8SAAAK CgYtKAJ7Ag AABG8WAAAK cicBAHBvGw AACgoC | |
| 5967 | ewIAAARvEQ AACgZvHAAA CiYGA28dAA AKKkoCewEA AAQCKA0AAA ZvfgAABipO AgJ7AQAABA NvfwAA | |
| 5968 | BigOAAAGKg ATMAIAKQAA AAUAABEWCg J7AgAABHIr AQBwbx8AAA oLB3IlAQBw KCAAAAosBw coIQAA | |
| 5969 | CgoGKmICew IAAARyKwEA cA8BKBoAAA pvIgAACioA ABMwAwCLAA AABgAAEQJ7 CQAABBQoIw AACix2 | |
| 5970 | cqcBAHACKA UAAAYoJAAA CgoCewIAAA RvFgAACgYC ewEAAARvag AABm8PAAAK CwcsRQdvEQ AACnL5 | |
| 5971 | AQBwcv8BAH BvJQAACnQo AAABDAgsJw hvEwAACg0C ewEAAARvZw AABglvJgAA ChMEAhEEby cAAAp9 | |
| 5972 | CQAABAJ7CQ AABCoAEzAE AAgCAAAHAA ARAgN9CQAA BAJ7AgAABG 8WAAAKcogC AHACewEAAA RvagAA | |
| 5973 | Bm8PAAAKCg Y6nAAAAAJ7 AgAABG8WAA AKcqYCAHBy MwEAcG8XAA AKCgJ7AgAA BG8WAAAKcr wCAHAC | |
| 5974 | ewEAAARvag AABm8PAAAK CwctRQJ7Ag AABG8WAAAK cvACAHACew EAAARvagAA Bm8PAAAKCw ctIQJ7 | |
| 5975 | AgAABG8WAA AKcg4DAHAC ewEAAARvag AABm8PAAAK CwJ7AgAABG 8WAAAKbygA AAoGB28pAA AKJnIq | |
| 5976 | AwBwAigFAA AGKCQAAAoM BggCewEAAA RvagAABm8P AAAKdAgAAA ENCS00AnsC AAAEbxYAAA pyYgMA | |
| 5977 | cHIzAQBwbx cAAAoNCXJ2 AwBwAigFAA AGbyIAAAoG CW8YAAAKJg lvEQAACnL5 AQBwcv8BAH BvJQAA | |
| 5978 | CnQoAAABEw QRBC0vAnsC AAAEbxYAAA pyfgMAcHL5 AQBwcv8BAH BvKgAAChME CW8RAAAKEQ RvHAAA | |
| 5979 | CiYUEwURBG 8TAAAKEwYR BnIlAQBwKB QAAAosIAJ7 AQAABG9nAA AGAnsJAAAE F3KCAwBwby sAAAoT | |
| 5980 | BStGAnsBAA AEb2cAAAYR Bm8mAAAKEw URBW8nAAAK AnsJAAAEKC wAAAosHgJ7 AQAABG9nAA AGAnsJ | |
| 5981 | AAAEF3KCAw BwbysAAAoT BREEEQVvLQ AACm8dAAAK KhMwAwDtAA AACAAAEQJ7 BwAABDrbAA AAAnsC | |
| 5982 | AAAEch8EAH ACewEAAARv agAABm8PAA AKCgY5uQAA AAZvEQAACn InAQBwby4A AAp0KAAAAQ sHLREC | |
| 5983 | Bm8QAAAKfQ cAAAQ4jwAA AAdvEwAACn IrBABwKBQA AAoscQZvEQ AACnI5BABw by4AAAp0KA AAAQwI | |
| 5984 | LQtyPwQAcH MOAAAKenLi BABwCG8TAA AKKCQAAAoN AnsCAAAEbx YAAAoJAnsB AAAEb2oAAA ZvDwAA | |
| 5985 | ChMEEQQtC3 IwBQBwcw4A AAp6AhEEbx AAAAp9BwAA BCsMAgZvEA AACn0HAAAE AnsHAAAEKg AAABMw | |
| 5986 | AwBsAAAACQ AAEQIDfQcA AAQCewIAAA RyHwQAcAJ7 AQAABG9qAA AGbw8AAAp0 CAAAAQoGLQ cCKBkA | |
| 5987 | AAYKBm8RAA AKcicBAHBy MwEAcG8vAA AKJgZvEQAA CnI5BABwcj MBAHBvLwAA CiYGA28eAA AKAigU | |
| 5988 | AAAGKi5yrg UAcHMOAAAK ehMwAwAtAA AACgAAEQJ7 AgAABHIZAQ BwAnsBAAAE b2oAAAZvDw AACgoG | |
| 5989 | LA0CewIAAA QGbzAAAAom Kh4CKAcAAA YqAAAAEzAC ACkAAAALAA ARcuoFAHBz MQAACgpy/g UAcHMx | |
| 5990 | AAAKCwYCbz IAAAotCAcC bzIAAAoqFi oAAAATMAMA 0wAAAAwAAB EVCgJ7AQAA BHs5AAAEb0 MAAAZv | |
| 5991 | XgAABnIsBg BwAygkAAAK AnsBAAAEb2 oAAAZvDwAA CgsHLXoCew EAAAR7OQAA BG9DAAAGb1 4AAAZy | |
| 5992 | OQQAcHIzAQ BwbxcAAAoL AnsBAAAEez kAAARvQwAA Bm9eAAAGci cBAHByMwEA cG8XAAAKDA gDbx4A | |
| 5993 | AAoHCG8YAA AKJgJ7AQAA BHs5AAAEb0 MAAAZvXgAA Bm8oAAAKB2 8YAAAKJgcs HgdyUAYAcA J7AQAA | |
| 5994 | BG9qAAAGbz MAAAoNCW80 AAAKCgYqAB MwAwBMAAAA DQAAERQKAn sBAAAEezkA AARvQwAABm 9eAAAG | |
| 5995 | coAGAHADjC wAAAEoJAAA CgJ7AQAABG 9qAAAGbzMA AAoLBwNvNQ AACgwILAcI bxAAAAoKBi oTMAMA | |
| 5996 | WQAAAA4AAB ECewIAAARv FgAACnKOBg BwcjMBAHBv FwAACgoCew IAAARyGQEA cAJ7AQAABG 9qAAAG | |
| 5997 | bw8AAAoLBy 0PAnsCAAAE Bm8YAAAKJi sOAnsCAAAE BgdvNgAACi YGKgAAABsw AwAFAQAADw AAERQK | |
| 5998 | AwRvdQAABm 9NAAAGCwc5 7gAAAAdykg YAcAWMLAAA ASgkAAAKAn sBAAAEb2oA AAZvDwAACn QIAAAB | |
| 5999 | CgY6wQAAAA NvcgAABnLC BgBwcjMBAH BvFwAACgoG csYGAHAPAy gaAAAKbyIA AAoUDAdy2g YAcAJ7 | |
| 6000 | AQAABG9qAA AGbzMAAAoN CSxnCW83AA AKEwcrPREH bzgAAAp0Dw AAARMEEQRv EQAACnLGBg BwbxIA | |
| 6001 | AAoTBREFLB gRBW8TAAAK KBUAAAoTBh EGBTEFEQQM KwkRB285AA AKLbreFREH dQIAAAETCB EILAcR | |
| 6002 | CG86AAAK3A gtCgcGbxgA AAomKwkHBg hvNgAACiYG KgAAAAEQAA ACAI4AStgA FQAAAAATMA MAbwAA | |
| 6003 | ABAAABECHx oxWhYMAh8a Wyg7AAAKDQ koPAAACgIo PAAACiMAAA AAAAA6QFsz DAkXWR9AWA wfWgsr | |
| 6004 | EgkfQFgMAg kfGlpZH0BY CgbRCwjREw QSBCg9AAAK EgEoPQAACi g+AAAKKh9A AlgKBtELEg EoPQAA | |
| 6005 | CioAEzAFAD IBAAARAAAR FgoWCxYMAm 8/AAAKEwkW EworHBEJEQ qTDQcXWAsJ KEAAAAosBB cMKw4R | |
| 6006 | ChdYEwoRCh EJjmky3Ag5 8wAAAAIWAm 9BAAAKAm9B AAAKF1gHWV lvQgAAChME EQRvQQAACh MFFhMG | |
| 6007 | EQRvPwAACh MLFhMMOLEA AAARCxEMkx MHEQYXWBMG EQcfQFkTCB EFEw0RDRdZ RQQAAAACAA AABwAA | |
| 6008 | AB0AAABDAA AAK3gRCAor cxEGFzMKBh EIHxpaWAor ZAYRCFgKK1 0RBhczCwYR CB8aWh8aWl gKEQYY | |
| 6009 | MwoGEQgfGl pYCis+BhEI WAorNxEGFz MOBhEIHxpa HxpaHxpaWA oRBhgzCwYR CB8aWh8aWl gKEQYZ | |
| 6010 | MwoGEQgfGl pYCisFBhEI WAoRDBdYEw wRDBELjmk/ RP///wYqAA ATMAUAXQAA ABIAABEWCh YLAm8/ | |
| 6011 | AAAKEwQWEw UrHBEEEQWT DAYXWAoIKE AAAAosBBcL Kw4RBRdYEw URBREEjmky 3AcsIwIGF1 kCb0EA | |
| 6012 | AAoGF1lZb0 IAAAoNCSgW AAAGLAcJKC EAAAoqFipO AygbAAAGDw AoGgAACig+ AAAKKgAAAB MwAgAh | |
| 6013 | AAAAEwAAEQ IoHQAABgoC KBwAAAYLBg coHgAABgIo FAAACiwCFy oWKgAAABMw BABWAQAAFA AAEXIl | |
| 6014 | AQBwCnLmBg BwF3NDAAAK C3IABwBwF3 NDAAAKDAcC chgHAHBvRA AACnIcBwBw chgHAHBvRQ AACg0I | |
| 6015 | AnIYBwBwb0 QAAAoTBBEE bz8AAAoTBR YTBhYTBwkX jTEAAAETDR ENFh8gnREN b0YAAAoTDh YTDzjS | |
| 6016 | AAAAEQ4RD5 oTCBEGF1gT BhEHEQhvQQ AAClgTBxEI KB0AAAYTCR EIKBwAAAYT CnIlAQBwEw sRCREK | |
| 6017 | KB4AAAYRCC gUAAAKLCIR CQUyBhEJA1 gTCREKDgQy BhEKBFgTCh EJEQooHgAA BhMLEQtyJQ EAcCgU | |
| 6018 | AAAKLAsGEQ goPgAACgor CQYRCyg+AA AKChEHEwwr MxEFEQyTHy AuNREFEQyT HyAuGxEHF1 gTBwYR | |
| 6019 | BREMjzEAAA EoPQAACig+ AAAKChEMF1 gTDBEMEQRv QQAACjLCEQ 8XWBMPEQ8R Do5pPyP/// 8GKgAA | |
| 6020 | GzAEAM8BAA AVAAARAigN AAAKc0cAAA oKAgZzSAAA Cn0MAAAEAn sMAAAEciIH AHByMwEAcG 9JAAAK | |
| 6021 | AgN9CgAABA NvcgAABnIm BwBwAnsMAA AEbw8AAAoL By1AA29yAA AGcjgHAHBy MwEAcG8XAA AKCwNv | |
| 6022 | cgAABnIOAw BwAnsMAAAE bw8AAAoMA2 9yAAAGbygA AAoHCG82AA AKCxQTBRYT BgdvSgAACm 83AAAK | |
| 6023 | Ewo4kwAAAB EKbzgAAAp0 DwAAARMHFx MIFxMJEQdv EQAACnJCBw Bwby4AAAp0 KAAAAQ0JLA 0JbxMA | |
| 6024 | AAooIQAACh MIEQdvEQAA CnJKBwBwby 4AAAp0KAAA ARMEEQQsDh EEbxMAAAoo IQAAChMJEQ YtEQQR | |
| 6025 | CDEFBBEJMA cXEwYRBxMF BBEIMhQEEQ kwDwIRB3QI AAABfQsAAA QrDBEKbzkA AAo6Yf///9 4VEQp1 | |
| 6026 | AgAAARMLEQ ssBxELbzoA AArcAnsLAA AELWoCA29y AAAGclIHAH ByMwEAcG8X AAAKfQsAAA QCewsA | |
| 6027 | AARyQgcAcA 8CKBoAAApv IgAACgJ7Cw AABHJKBwBw DwIoGgAACm 8iAAAKEQUs EAcCewsAAA QRBW82 | |
| 6028 | AAAKJioHAn sLAAAEbxgA AAomKgABEA AAAgChAKZH ARUAAAAAHg J7CwAABCpa AnsLAAAEck IHAHBv | |
| 6029 | HwAACighAA AKKmICewsA AARyQgcAcA 8BKBoAAApv IgAACipaAn sLAAAEckoH AHBvHwAACi ghAAAK | |
| 6030 | KmICewsAAA RySgcAcA8B KBoAAApvIg AACioTMAMA KQAAABYAAB EWCgJ7CwAA BHJaBwBwcm gHAHBv | |
| 6031 | SwAACgsHcm gHAHAoFAAA CiwCFwoGKr 4DLBYCewsA AARyWgcAcH JoBwBwbyIA AAoqAnsLAA AEcloH | |
| 6032 | AHBybAcAcG 8iAAAKKgAA ABMwAgAyAA AAFwAAESMA AAAAAAAkQA oCewsAAARy cAcAcG8fAA AKCwdy | |
| 6033 | JQEAcCggAA AKLAgHKCEA AApsCgYqYg J7CwAABHJw BwBwDwEoTA AACm8iAAAK KkoCewoAAA QCKC0A | |
| 6034 | AAZvfgAABi pOAgJ7CgAA BANvfwAABi guAAAGKgAA EzACACkAAA AFAAARFgoC ewsAAARyKw EAcG8f | |
| 6035 | AAAKCwdyJQ EAcCggAAAK LAcHKCEAAA oKBipiAnsL AAAEcisBAH APASgaAAAK byIAAAoqrn J8BwBw | |
| 6036 | AnsLAAAEck IHAHBvHwAA CgJ7CwAABH JCBwBwbx8A AAooTQAACi oeAigNAAAK KgAAAzACAE 8AAAAA | |
| 6037 | AAAAAnweAA AE/hUBAAAb AnwfAAAE/h UBAAAbAnwg AAAE/hUBAA AbAigNAAAK A29OAAAKcq 4HAHAo | |
| 6038 | IAAACiwLcs gHAHBzDgAA CnoCA30XAA AEKgATMAIA YQAAAAQAAB ECfB4AAAQo TwAACi1IAh ZzUAAA | |
| 6039 | Cn0eAAAEAn sXAAAEbxEA AApyPAgAcG 8uAAAKdCgA AAEKBiweBm 8TAAAKcmgH AHAoFAAACi wMAhdz | |
| 6040 | UAAACn0eAA AEAnweAAAE KFEAAAoqAA AAEzADAGsA AAAEAAARAg NzUAAACn0e AAAEAnsXAA AEbxEA | |
| 6041 | AApyPAgAcG 8uAAAKdCgA AAEKBi0mAn sXAAAEbxEA AAoCexcAAA RvFgAACnI8 CABwbxsAAA pvHAAA | |
| 6042 | CgoDLAwGcm gHAHBvHQAA CioGcmwHAH BvHQAACioA EzACAGEAAA AEAAARAnwf AAAEKE8AAA otSAIW | |
| 6043 | c1AAAAp9Hw AABAJ7FwAA BG8RAAAKcl 4IAHBvLgAA CnQoAAABCg YsHgZvEwAA CnJoBwBwKB QAAAos | |
| 6044 | DAIXc1AAAA p9HwAABAJ8 HwAABChRAA AKKgAAABMw AwBrAAAABA AAEQIDc1AA AAp9HwAABA J7FwAA | |
| 6045 | BG8RAAAKcl 4IAHBvLgAA CnQoAAABCg YtJgJ7FwAA BG8RAAAKAn sXAAAEbxYA AApyXggAcG 8bAAAK | |
| 6046 | bxwAAAoKAy wMBnJoBwBw bx0AAAoqBn JsBwBwbx0A AAoqABMwAg BhAAAABAAA EQJ8IAAABC hPAAAK | |
| 6047 | LUgCFnNQAA AKfSAAAAQC excAAARvEQ AACnKACABw by4AAAp0KA AAAQoGLB4G bxMAAApyaA cAcCgU | |
| 6048 | AAAKLAwCF3 NQAAAKfSAA AAQCfCAAAA QoUQAACioA AAATMAMAaw AAAAQAABEC A3NQAAAKfS AAAAQC | |
| 6049 | excAAARvEQ AACnKACABw by4AAAp0KA AAAQoGLSYC excAAARvEQ AACgJ7FwAA BG8WAAAKco AIAHBv | |
| 6050 | GwAACm8cAA AKCgMsDAZy aAcAcG8dAA AKKgZybAcA cG8dAAAKKm oCexgAAAQt CwJzMAAABn 0YAAAE | |
| 6051 | AnsYAAAEKm oCexkAAAQt CwJzMAAABn 0ZAAAEAnsZ AAAEKoYCex oAAAQtCwJz MAAABn0aAA AEAhco | |
| 6052 | NQAABgJ7Gg AABCqGAnsb AAAELQsCcz AAAAZ9GwAA BAIXKDUAAA YCexsAAAQq hgJ7HAAABC 0LAnMw | |
| 6053 | AAAGfRwAAA QCFyg3AAAG AnscAAAEKo YCex0AAAQt CwJzMAAABn 0dAAAEAhco NwAABgJ7HQ AABCoA | |
| 6054 | AAATMAQAlw EAAAoAABEC exgAAAQsOA J7FwAABAJ7 FwAABG8WAA AKcp4IAHBy MwEAcG8XAA AKbxgA | |
| 6055 | AAoKBgICKD gAAAYoPwAA Bm8eAAAKAn sZAAAELDgC excAAAQCex cAAARvFgAA CnKyCABwcj MBAHBv | |
| 6056 | FwAACm8YAA AKCgYCAig5 AAAGKD8AAA ZvHgAACgIo NAAABjmAAA AAAnsaAAAE LDgCexcAAA QCexcA | |
| 6057 | AARvFgAACn LGCABwcjMB AHBvFwAACm 8YAAAKCgYC Aig6AAAGKD 8AAAZvHgAA CgJ7GwAABC w4AnsX | |
| 6058 | AAAEAnsXAA AEbxYAAApy 3AgAcHIzAQ BwbxcAAApv GAAACgoGAg IoOwAABig/ AAAGbx4AAA oCKDYA | |
| 6059 | AAY5gAAAAA J7HAAABCw4 AnsXAAAEAn sXAAAEbxYA AApy8ggAcH IzAQBwbxcA AApvGAAACg oGAgIo | |
| 6060 | PAAABig/AA AGbx4AAAoC ex0AAAQsOA J7FwAABAJ7 FwAABG8WAA AKcgoJAHBy MwEAcG8XAA AKbxgA | |
| 6061 | AAoKBgICKD 0AAAYoPwAA Bm8eAAAKKg ATMAMAVgAA ABgAABFyJQ EAcAoDew0A AAQsEgZyIg kAcAN7 | |
| 6062 | DQAABChSAA AKCgN7DgAA BCwSBnIoCQ BwA3sOAAAE KFIAAAoKA3 sPAAAELBIG ci4JAHADew 8AAAQo | |
| 6063 | UgAACgoGKg AAEzAEAJUA AAAZAAARAi gNAAAKAgNv UwAACn0kAA AEA29UAAAK LBQCA29VAA AKGRko | |
| 6064 | VgAACn0jAA AEKgIDb1UA AAoYGShWAA AKfSMAAARy NAkAcBhzVw AACgoCeyMA AAQGck4JAH BvWAAA | |
| 6065 | CiYCKEMAAA ZvXQAABiYC eyMAAAQCKE MAAAZvWQAA BhZybgkAcG 9ZAAAKJgJ7 IwAABAZvWg AACioA | |
| 6066 | AAAbMAQAaw AAABoAABEC KA0AAAoCA2 9TAAAKfSQA AAQEb1QAAA osRgNvVAAA CiwVA29bAA AK3g0K | |
| 6067 | chUKAHAGc1 wAAAp6BANv VQAACm9dAA AKEAEDFm9e AAAKAgNvVQ AAChkZKFYA AAp9IwAABC pykQoA | |
| 6068 | cHMOAAAKeg ABEAAAAAAi AAgqAA0mAA ABHgJ7IwAA BCpuAnslAA AELQwCAnNX AAAGfSUAAA QCeyUA | |
| 6069 | AAQqEzADAI MAAAAbAAAR AnsmAAAELH oCeyQAAARy FgsAcAQoUg AACnNfAAAK CgZvVAAACi 0GBm9g | |
| 6070 | AAAKG40pAA ABDAgWAnsk AAAEoggXch YLAHCiCBgE oggZchYLAH CiCBoFoggo YQAACnNiAA AKCwdv | |
| 6071 | VAAACiwNBx ZvXgAACgdv WwAACgMHb1 UAAApvYwAA CioAGzADAF QAAAAcAAAR FAoCeyMAAA QDb2QA | |
| 6072 | AAoLB3IaCw BwBCg+AAAK b2UAAApvZg AACg0rFglv ZwAACgwDCG 8nAAAKKGgA AAoKKwgJbz kAAAot | |
| 6073 | 4t4KCSwGCW 86AAAK3AYq ARAAAAIAJg AiSAAKAAAA ABMwBAAsAA AABAAAEQJv FgAACnKlCw BwBHKx | |
| 6074 | CwBwbyoAAA oKBgNvHQAA CgJvEQAACg ZvHAAACiYq EzACACYAAA AEAAARAm8W AAAKcqULAH BvGwAA | |
| 6075 | CgoGA28dAA AKAm8RAAAK Bm8cAAAKJi oAABMwBAAc AAAAHQAAEQ J7IwAABANv ZAAACgoEBh gYb2kA | |
| 6076 | AApvagAACi oyAnsjAAAE b2sAAAoqMg IoQwAABm9k AAAGKgAAEz ACACEAAAAe AAARc2wAAA oKAnsj | |
| 6077 | AAAEA29kAA AKCwYHb20A AApvbgAACg YqAAAAGzAE ADMBAAAfAA ARAigNAAAK AgN9JwAABA IDb3IA | |
| 6078 | AAZy7QsAcA SMLAAAASgk AAAKAnsnAA AEb2oAAAZv DwAACnQIAA ABfSgAAAQC eygAAAQ66Q AAAAID | |
| 6079 | b3IAAAZyKQ wAcHIzAQBw bxcAAAp9KA AABAJ7KAAA BHJ+AwBwDw IoGgAACm8i AAAKA29yAA AGcg4D | |
| 6080 | AHACeycAAA RvagAABm8P AAAKCgY5lQ AAABQLA29y AAAGcjEMAH ACeycAAARv agAABm8zAA AKbzcA | |
| 6081 | AAoTBCswEQ RvOAAACnQP AAABDAhvEQ AACnJ+AwBw by4AAApvEw AACigVAAAK DQkEMQQICy sJEQRv | |
| 6082 | OQAACi3H3h URBHUCAAAB EwURBSwHEQ VvOgAACtwH LQ4GAnsoAA AEbxgAAAom KgYCeygAAA QHbzYA | |
| 6083 | AAomKgABEA AAAgDBAD3+ ABUAAAAAHg J7KAAABCoT MAMAKQAAAB YAABEWCgJ7 KAAABHJaBw BwcmgH | |
| 6084 | AHBvSwAACg sHcmgHAHAo FAAACiwCFw oGKr4DLBYC eygAAARyWg cAcHJoBwBw byIAAAoqAn soAAAE | |
| 6085 | cloHAHBybA cAcG8iAAAK KgAAABMwAg AxAAAAFwAA ESMAAAAAAA AkQAoCeygA AARyWQwAcG 8fAAAK | |
| 6086 | CwdyJQEAcC ggAAAKLAcH KG8AAAoKBi q2AnsoAAAE clkMAHAPAS hMAAAKbyIA AAoCeygAAA RyXwwA | |
| 6087 | cHJoBwBwby IAAAoqSgJ7 JwAABAIoVA AABm9+AAAG Kk4CAnsnAA AEA29/AAAG KFUAAAYqAA ATMAIA | |
| 6088 | KQAAAAUAAB EWCgJ7KAAA BHIrAQBwbx 8AAAoLB3Il AQBwKCAAAA osBwcoIQAA CgoGKrYCey gAAARy | |
| 6089 | KwEAcA8BKB oAAApvIgAA CgJ7KAAABH J5DABwcmgH AHBvIgAACi oeAigNAAAK KgATMAMAeQ AAACAA | |
| 6090 | ABECcpMMAH AYc1cAAAp9 LgAABAJytQ wAcBhzVwAA Cn0vAAAEAn LhDABwGHNX AAAKfTAAAA QCcv8M | |
| 6091 | AHAYc1cAAA p9MQAABAIo DQAACgIDfS 0AAARzRwAA CgoCBnNIAA AKfTYAAAQC ezYAAARyIg cAcHIz | |
| 6092 | AQBwb0kAAA oqggJ7NQAA BC0RAgJ7LQ AABHOAAAAG fTUAAAQCez UAAAQqHgJ7 LgAABCoeAn swAAAE | |
| 6093 | Kh4Cey8AAA QqXgJ7LQAA BG9CAAAGAi hZAAAGb2QA AAoqAAATMA MALwEAACEA ABECezIAAA Q6HQEA | |
| 6094 | AAJ7LQAABG 9CAAAGAihZ AAAGb3AAAA osHAICey0A AAQCKFkAAA ZvSwAABn0y AAAEOOkAAA ACey0A | |
| 6095 | AARvQgAABg IoWQAABnIj DQBwb1gAAA oKAnNsAAAK fTIAAAQCez IAAARyug0A cHIzAQBwbx cAAAoL | |
| 6096 | B3L/AQBwcn 4DAHAoRgAA BgJ7MgAABA dvGAAACiYC ezIAAARyzA 0AcHIzAQBw bxcAAAoMBw hvGAAA | |
| 6097 | CiYCezIAAA Ry4A0AcHIz AQBwbxcAAA oNCAlvGAAA CiYCezIAAA Ry+g0AcHIz AQBwbxcAAA oTBAcR | |
| 6098 | BG8YAAAKJg YYGG9pAAAK c3EAAAoTBQ J7MgAABBEF b3IAAAoRBW 9zAAAKAnst AAAEb0IAAA ZvdAAA | |
| 6099 | CgJ7MgAABC oAEzAEABIB AAAiAAARAn szAAAEOgAB AAACey0AAA RvQgAABgIo WwAABm9wAA AKLBwC | |
| 6100 | AnstAAAEAi hbAAAGb0sA AAZ9MwAABD jMAAAAAnst AAAEb0IAAA YCKFsAAAZy CA4AcG9YAA AKCgJz | |
| 6101 | bAAACn0zAA AEAnszAAAE cqUOAHByMw EAcG8XAAAK CwdyrQ4AcH JsBwBwbyIA AAoHcrkOAH BybAcA | |
| 6102 | cG8iAAAKAn szAAAEB28Y AAAKJgYYGG 9pAAAKc3EA AAoMAnszAA AECG9yAAAK CG9zAAAKAn stAAAE | |
| 6103 | b0IAAAZvdA AACgJ7LQAA BG9DAAAGb1 wAAAYCKFsA AAYWctEOAH BvKwAACiYC ey0AAARvQg AABm90 | |
| 6104 | AAAKAnszAA AEKgAAEzAE AJwCAAAjAA ARAns0AAAE OooCAAACey 0AAARvQgAA BgIoWgAABm 9wAAAK | |
| 6105 | LBwCAnstAA AEAihaAAAG b0sAAAZ9NA AABDhWAgAA AnstAAAEb0 IAAAYCKFoA AAZydg8AcG 9YAAAK | |
| 6106 | CgJzbAAACn 00AAAEAns0 AAAEcgUQAH ByMwEAcG8X AAAKCwJ7NA AABAdvGAAA CiYCezQAAA RyGxAA | |
| 6107 | cHIzAQBwbx cAAAoMCHKt DgBwcmgHAH BvIgAACgcI bxgAAAomAn s0AAAEcicQ AHByMwEAcG 8XAAAK | |
| 6108 | DQgJbxgAAA omAns0AAAE cjEQAHByMw EAcG8XAAAK EwQRBHI3EA Bwcj8QAHBv IgAACgkRBG 8YAAAK | |
| 6109 | JgJ7NAAABH JFEABwcjMB AHBvFwAACh MFEQVyNxAA cHJPEABwby IAAAoJEQVv GAAACiYCez QAAARy | |
| 6110 | XxAAcHIzAQ BwbxcAAAoT BhEGcq0OAH ByaAcAcG8i AAAKBxEGbx gAAAomAns0 AAAEcnkQAH ByMwEA | |
| 6111 | cG8XAAAKEw cRB3J/EABw cmwHAHBvIg AAChEHcpEQ AHBybAcAcG 8iAAAKEQYR B28YAAAKJg J7NAAA | |
| 6112 | BHKfEABwcj MBAHBvFwAA ChMIEQhyrQ 4AcHJoBwBw byIAAAoHEQ hvGAAACiYC ezQAAARyeR AAcHIz | |
| 6113 | AQBwbxcAAA oTCREJcn8Q AHBybAcAcG 8iAAAKEQly kRAAcHJsBw BwbyIAAAoR CXKvEABwcm wHAHBv | |
| 6114 | IgAAChEIEQ lvGAAACiYG GBhvaQAACn NxAAAKEwoC ezQAAAQRCm 9yAAAKEQpv cwAACgJ7LQ AABG9C | |
| 6115 | AAAGb3QAAA oCey0AAARv QwAABm9cAA AGAihaAAAG FnK5EABwby sAAAomAnst AAAEb0IAAA ZvdAAA | |
| 6116 | CgJ7NAAABC oiAgN9NAAA BCqCAns3AA AELRECAnst AAAEc48AAA Z9NwAABAJ7 NwAABCoAAB MwAwBv | |
| 6117 | AAAAJAAAER YKAihdAAAG clARAHACez YAAARvDwAA CgsHLFEHbx EAAApyZhEA cG8SAAAKDA gsPQhv | |
| 6118 | EwAACiUNLD MJcngRAHAo FAAACi0cCX KCEQBwKBQA AAotEwlymh EAcCgUAAAK LQorChYKKw YXCisC | |
| 6119 | GAoGKgATMA MAWwAAACUA ABECKF0AAA ZyUBEAcAJ7 NgAABG8PAA AKdAgAAAEK cngRAHALAw wIRQMA | |
| 6120 | AAACAAAACg AAABIAAAAr FnJ4EQBwCy sOcoIRAHAL KwZymhEAcA sGcmYRAHAH byIAAAoqAB swBADH | |
| 6121 | AQAAJgAAEQ IoWAAABm+B AAAGLQtyqB EAcHMOAAAK egJ7LQAABG 9CAAAGAnsx AAAEb3AAAA o5hQAA | |
| 6122 | AHI3EgBwGH NXAAAKCgJ7 LQAABG9DAA AGb1wAAAZv dQAACm9mAA AKDSsyCW9n AAAKCwdvJw AACgYo | |
| 6123 | IwAACiwdAn stAAAEb0MA AAZvXAAABg dvLQAACm92 AAAKKwgJbz kAAAotxt4K CSwGCW86AA AK3AJ7 | |
| 6124 | LQAABG9CAA AGAnsxAAAE b1oAAAoCez IAAAQsMgJ7 LQAABAIoWQ AABgJ7MgAA BG9IAAAGAn stAAAE | |
| 6125 | AnsyAAAEcl MSAHByWRIA cG9EAAAGAn s3AAAELAsC ezcAAARvtg AABgJ7NAAA BCwyAnstAA AEAiha | |
| 6126 | AAAGAns0AA AEb0gAAAYC ey0AAAQCez QAAARyUxIA cHJzEgBwb0 QAAAYCezMA AAQsMgJ7LQ AABAIo | |
| 6127 | WwAABgJ7Mw AABG9IAAAG AnstAAAEAn szAAAEclMS AHByiRIAcG 9EAAAGAihY AAAGb4IAAA YTBCsT | |
| 6128 | EQRvOAAACn QLAAACDAhv ewAABhEEbz kAAAot5N4V EQR1AgAAAR MFEQUsBxEF bzoAAArccq 0SAHAo | |
| 6129 | dwAACiYqAA EcAAACAFoA PpgACgAAAA ACAIYBIKYB FQAAAADSAi gNAAAKAgN9 OQAABAIEfT 4AAAQC | |
| 6130 | DgR9OgAABA IFfTsAAAQC DgV9PAAABA IOBihvAAAG Kh4CezoAAA QqXgJ7OQAA BG9CAAAGAi hmAAAG | |
| 6131 | b2QAAAoqHg J7PgAABCoe Ans8AAAEKg AAABMwAwA2 AAAAIAAAEQ J7QgAABC0n c0cAAAoKAg ZzSAAA | |
| 6132 | Cn1CAAAEAn tCAAAEciIH AHByMwEAcG 9JAAAKAntC AAAEKm4Ce0 AAAAQtDAIC c4kAAAZ9QA AABAJ7 | |
| 6133 | QAAABCoeAn s7AAAEKgAA EzADAFwAAA AnAAARAns5 AAAEb0MAAA ZvXQAABnK3 EgBwAns8AA AEjCwA | |
| 6134 | AAEoJAAACg IoagAABm8P AAAKCgYsIA ZvEQAACnJF EABwby4AAA p0KAAAAQsH LAcHA28dAA AKAgN9 | |
| 6135 | OwAABCoeAn s9AAAEKhMw AwBiAAAAJw AAEQJ7OQAA BG9DAAAGb1 0AAAZytxIA cAJ7PAAABI wsAAAB | |
| 6136 | KCQAAAoCKG oAAAZvDwAA CgoGLCYGbx EAAApyWgcA cG8uAAAKdC gAAAELBywN Bw8BKHgAAA pvHQAA | |
| 6137 | CgIDfT0AAA QqAAATMAMA RAAAACgAAB EfDwoCKHIA AAZy5xIAcA IoagAABm8P AAAKdAgAAA ELBywg | |
| 6138 | B3ILEwBwbx 8AAAoMCHIl AQBwKCAAAA osBwgoIQAA CgoGKhMwAw ByAAAADgAA EQIocgAABn LnEgBw | |
| 6139 | AihqAAAGbw 8AAAp0CAAA AQoGLUACKH IAAAZyLRMA cHIzAQBwbx cAAAoKAihy AAAGckkTAH ACKGoA | |
| 6140 | AAZvDwAACg sCKHIAAAZv KAAACgYHby kAAAomBnIL EwBwDwEoGg AACm8iAAAK KgAAEzACAE gAAAAd | |
| 6141 | AAARAns/AA AELTkCc2wA AAp9PwAABA J7OQAABG9C AAAGAihmAA AGb2QAAAoK Ans/AAAEBm 9tAAAK | |
| 6142 | b24AAAoCKH wAAAYCez8A AAQqEzAEAG AAAAAKAAAR AntBAAAELV ECKHIAAAZy ZxMAcAIoag AABm8P | |
| 6143 | AAAKCgYtJg IocgAABm8o AAAKAihyAA AGcq4HAHBy MwEAcG8XAA AKbxgAAAoK AgZ0CAAAAX MxAAAG | |
| 6144 | fUEAAAQCe0 EAAAQqJgID BHMBAAAGKi ICA3NMAAAG KiICA3MhAA AGKhswBQBY AQAAKQAAEQ NvEQAA | |
| 6145 | BgsHciUBAH AoFAAACiwL cokTAHBzDg AACnoVDAJ7 PwAABHIMFA BwAihqAAAG bzMAAApvNw AAChMI | |
| 6146 | KyIRCG84AA AKdA8AAAEN CW8TAAAKKC EAAAoTBBEE CDEDEQQMEQ hvOQAACi3V 3hURCHUCAA ABEwkR | |
| 6147 | CSwHEQlvOg AACtwIF1gM A28DAAAGEw UrfQNvBAAA BhMGK2MCEQ URBih0AAAG EwcRB28UAA AGEQdv | |
| 6148 | AgAABnIfBA BwAihqAAAG bw8AAAp0CA AAAQoGLQgR B28ZAAAGCg ZyJwEAcHIr BABwbyIAAA oGcjkE | |
| 6149 | AHASAigaAA AKbyIAAAoR BhdYEwYRBg RvBAAABjGT EQUXWBMFEQ UEbwMAAAY+ dv///wNvAg AABnIf | |
| 6150 | BABwAihqAA AGbw8AAAp0 CAAAAQoGcn YDAHByTBQA cANvBQAABg RvBQAABihN AAAKbyIAAA oqARAA | |
| 6151 | AAIAPgAvbQ AVAAAAABMw BADBAgAAKg AAEQIocgAA BnK8AgBwAi hqAAAGbw8A AAoKBi1aAi hyAAAG | |
| 6152 | clwUAHByMw EAcG8XAAAK CgIocgAABn LwAgBwAihq AAAGbw8AAA oLBy0XAihy AAAGcg4DAH ACKGoA | |
| 6153 | AAZvDwAACg sCKHIAAAZv KAAACgYHby kAAAomBm8R AAAKcogUAH BvEgAACgwI LR4CKHIAAA ZyiBQA | |
| 6154 | cG8bAAAKDA ZvEQAACghv HAAACiYIck wUAHADbwUA AAYEbwUAAA YoTQAACm8d AAAKBnKUFA BwAihq | |
| 6155 | AAAGbw8AAA oNCS0eAihy AAAGcqoUAH ByMwEAcG8X AAAKDQYJbx gAAAomCW8R AAAKcrgUAH BvEgAA | |
| 6156 | CgwILR4CKH IAAAZyuBQA cG8bAAAKDA lvEQAACghv HAAACiYIcs IUAHBvHQAA CglvEQAACn LSFABw | |
| 6157 | bxIAAAoMCC 0eAihyAAAG ctIUAHBvGw AACgwJbxEA AAoIbxwAAA omCHJoBwBw bx0AAAoCKH IAAAZy | |
| 6158 | 5BQAcHIzAQ BwbxcAAAoT BAkRBG8YAA AKJgIocgAA BnL0FABwcj MBAHBvFwAA ChMFEQQRBW 8YAAAK | |
| 6159 | JgIocgAABn K4FABwbxsA AAoMEQVvEQ AACghvHAAA CiYIckIHAH BvHQAACgIo cgAABnI3EA BwbxsA | |
| 6160 | AAoMEQVvEQ AACghvHAAA CiYIcmwHAH BvHQAACgIo cgAABnL0FA BwcjMBAHBv FwAAChMFEQ QRBW8Y | |
| 6161 | AAAKJgIocg AABnK4FABw bxsAAAoMEQ VvEQAACghv HAAACiYIck oHAHBvHQAA CgIocgAABn I3EABw | |
| 6162 | bxsAAAoMEQ VvEQAACghv HAAACiYIcm wHAHBvHQAA CgIocgAABn L+FABwcjMB AHBvFwAACh MFEQQR | |
| 6163 | BW8YAAAKJg IocgAABnIK FQBwbxsAAA oMEQVvEQAA CghvHAAACi YIBW8dAAAK KgAAABswBg C2AQAA | |
| 6164 | KwAAEQIocg AABnIpDABw cjMBAHBvFw AACgoGbxEA AAoCKHIAAA ZyfgMAcG8b AAAKbxwAAA omBm8R | |
| 6165 | AAAKcn4DAH BvEgAACg8B KBoAAApvHQ AACgIocgAA BnIOAwBwAi hqAAAGbw8A AAoLBzlKAQ AAFwwH | |
| 6166 | b0oAAAoNCW 80AAAKEwQU EwUWEwYWEw crRgkRB281 AAAKbxEAAA pyfgMAcG8S AAAKbxMAAA ooIQAA | |
| 6167 | ChMIEQgDLw 4JEQdvNQAA ChMFEQcTBh EIAzIFEQgM KwwRBxdYEw cRBxEEMrQR BhdYEwk4wA AAAAkR | |
| 6168 | CW81AAAKbx EAAApyfgMA cG8SAAAKbx MAAAooIQAA ChMKEQoIP4 8AAAAJEQlv NQAACm8RAA AKcn4D | |
| 6169 | AHBvEgAACh EKF1goeQAA Cm8dAAAKCR EJbzUAAApy EhUAcAIoag AABm8zAAAK EwsRC283AA AKEw0r | |
| 6170 | JRENbzgAAA p0DwAAARMM EQwRDG8QAA AKFxYDFigg AAAGbx4AAA oRDW85AAAK LdLeFRENdQ IAAAET | |
| 6171 | DhEOLAcRDm 86AAAK3BEJ F1gTCREJEQ Q/N////xEF LAoHBhEFby kAAAomKgAA ARAAAAIAUQ EygwEV | |
| 6172 | AAAAABswBg BbAQAALAAA EQIocgAABn IOAwBwAihq AAAGbw8AAA oKBjk9AQAA Bm9KAAAKCw dvNAAA | |
| 6173 | CgwWDRQTBB YTBSs7BxEF bzUAAApvEQ AACnJ+AwBw bxIAAApvEw AACighAAAK EwYRBgMzDR EFDQcR | |
| 6174 | BW81AAAKEw QRBRdYEwUR BQgywAQ50g AAAAkXWBMH OMAAAAAHEQ dvNQAACm8R AAAKcn4DAH BvEgAA | |
| 6175 | Cm8TAAAKKC EAAAoTCBEI Az6PAAAABx EHbzUAAApv EQAACnJ+Aw BwbxIAAAoR CBdZKHkAAA pvHQAA | |
| 6176 | CgcRB281AA AKchIVAHAC KGoAAAZvMw AAChMJEQlv NwAAChMLKy URC284AAAK dA8AAAETCh EKEQpv | |
| 6177 | EAAAChUWAx YoIAAABm8e AAAKEQtvOQ AACi3S3hUR C3UCAAABEw wRDCwHEQxv OgAACtwRBx dYEwcR | |
| 6178 | Bwg/OP///x EELAkGEQRv MAAACiYqAA EQAAACAPgA MioBFQAAAA ATMAYAKQEA AC0AABECez 8AAARy | |
| 6179 | JhUAcAIoag AABm8PAAAK CgY5jgAAAA ZvEQAACnL5 AQBwcv8BAH BvJQAACnQo AAABCwcscA dvEwAA | |
| 6180 | CgwGbxEAAA oHb3oAAAom AihnAAAGCG 8mAAAKDXJC FQBwCW8nAA AKb3sAAApy ShUAcHIlAQ Bwb0UA | |
| 6181 | AAooPgAACh hzVwAAChME AihnAAAGCW 8tAAAKb3YA AAoCezkAAA RvQgAABhEE b1oAAAoCez 8AAAQs | |
| 6182 | dQJ7QQAABC wLAihzAAAG bz4AAAYCKH 0AAAYCezkA AARvQgAABg IoZgAABm9k AAAKEwUCKH IAAAYR | |
| 6183 | BRgYb2kAAA pvagAACgJ7 OQAABAIocg AABnJQFQBw cmwVAHACKG kAAAaMLAAA AXJ4FQBwKH wAAApv | |
| 6184 | RAAABioAAA AbMAMAQAEA AC4AABECKH IAAAZyMQwA cAIoagAABm 8zAAAKbzcA AAoTBjj6AA AAEQZv | |
| 6185 | OAAACnQPAA ABCgZvEQAA CnKCFQBwby 4AAAp0KAAA AQsHLA0Gbx EAAAoHb3oA AAomBm8RAA AKcn4D | |
| 6186 | AHBvLgAACm 8TAAAKKBUA AAomBnLaBg BwAihqAAAG bzMAAApvNw AAChMHK3IR B284AAAKdA 8AAAEM | |
| 6187 | CG8RAAAKcn 4DAHBvLgAA CnQoAAABDQ ksTAlvEwAA ChMEEQQoHA AABhMFAihy AAAGcsYGAH BvGwAA | |
| 6188 | CgsHLCcHEg UoGgAACm8d AAAKCG8RAA AKB28cAAAK JghvEQAACg lvegAACiYR B285AAAKLY XeFREH | |
| 6189 | dQIAAAETCB EILAcRCG86 AAAK3BEGbz kAAAo6+v7/ /94VEQZ1Ag AAARMJEQks BxEJbzoAAA rcKkE0 | |
| 6190 | AAACAAAAiA AAAH8AAAAH AQAAFQAAAA AAAAACAAAA HQAAAA0BAA AqAQAAFQAA AAAAAAAbMA QAegEA | |
| 6191 | AC8AABEWCg IocgAABnIx DABwAihqAA AGbzMAAApv NwAAChMJOD IBAAARCW84 AAAKdA8AAA ELB28R | |
| 6192 | AAAKcn4DAH BvLgAACm8T AAAKKBUAAA oMFg0HctoG AHACKGoAAA ZvMwAACm83 AAAKEwo4yA AAABEK | |
| 6193 | bzgAAAp0Dw AAARMEEQRv EQAACnLGBg Bwby4AAAp0 KAAAARMFEQ U5mwAAAAkX WA0JBjECCQ oRBW8T | |
| 6194 | AAAKKBUAAA oTBhEGKBsA AAYSAigaAA AKKD4AAAoT BwIocgAABn J+AwBwbxsA AAoTCBEILE kRCBEH | |
| 6195 | bx0AAAoRBG 8RAAAKb30A AAotEREEbx EAAAoRCG8c AAAKJishEQ RvEQAAChEI EQRvEQAACh ZvfgAA | |
| 6196 | CnQoAAABb3 8AAAomEQRv EQAAChEFb3 oAAAomEQpv OQAACjos// //3hURCnUC AAABEwsRCy wHEQtv | |
| 6197 | OgAACtwRCW 85AAAKOsL+ ///eFREJdQ IAAAETDBEM LAcRDG86AA AK3CoAAEE0 AAACAAAAZg AAANsA | |
| 6198 | AABBAQAAFQ AAAAAAAAAC AAAAHwAAAE UBAABkAQAA FQAAAAAAAA AbMAMAyAAA ADAAABEUCh QLFgwC | |
| 6199 | ezkAAARvQw AABm9fAAAG co4VAHACKG oAAAZvMwAA Cm83AAAKEw YrGREGbzgA AAp0DwAAAQ 0IAzME | |
| 6200 | CQsrDQgXWA wRBm85AAAK Ld7eFREGdQ IAAAETBxEH LAcRB286AA AK3AcsW3Kw FQBwB28RAA AKcq8Q | |
| 6201 | AHBvEgAACm 8TAAAKKCQA AAoTBAJ7OQ AABG9DAAAG b18AAAYRBA IoagAABm8P AAAKEwURBS wXEQVv | |
| 6202 | EQAACnJFEA BwbxIAAApv EwAACgoGKg EQAAACAC0A JlMAFQAAAA ATMAMAlAAA ADEAABEWCn LqFQBw | |
| 6203 | AygkAAAKCw J7OQAABG9D AAAGb18AAA YHAihqAAAG bw8AAAoMCC xkCG8RAAAK cq8QAHBvEg AACm8T | |
| 6204 | AAAKDXIkFg BwCSgkAAAK CwJ7OQAABG 9DAAAGb18A AAYHAihqAA AGbw8AAAoT BBEELCARBH JkFgBw | |
| 6205 | AihqAAAGbz MAAAoTBREF LAgRBW80AA AKCgYqGzAI AN0BAAAyAA ARAigNAAAK AgN9RAAABH NHAAAK | |
| 6206 | CgIGc0gAAA p9RQAABAJ7 RQAABHIiBw BwcjMBAHBv SQAACgJ7RQ AABHJ+AwBw cv8BAHBvSQ AACgIC | |
| 6207 | e0QAAARvQw AABm9dAAAG cpQWAHACe0 UAAARvDwAA Cn1GAAAEAn tGAAAELUYC AntEAAAEb0 MAAAZv | |
| 6208 | XQAABnL6DQ BwcjMBAHBv FwAACn1GAA AEAntEAAAE b0MAAAZvXQ AABm8oAAAK AntGAAAEbx gAAAom | |
| 6209 | AnOBAAAKfU MAAAQXCwJ7 RgAABG9KAA AKbzcAAAoT CjjYAAAAEQ pvOAAACnQP AAABDAhvEQ AACnJF | |
| 6210 | EABwbxIAAA pvEwAACg0I bxEAAApyqh YAcG8SAAAK bxMAAAoTBA hvEQAACnK0 FgBwbxIAAA pvEwAA | |
| 6211 | CigVAAAKEw UWEwYIbxEA AApyWgcAcG 8SAAAKEwcR BywOEQdvEw AACiiCAAAK EwYCe0QAAA RvQwAA | |
| 6212 | Bm9cAAAGEQ RvJgAAChMI AntEAAAEb0 MAAAZvWQAA BhEIbycAAA ooaAAAChMJ AntDAAAEBw J7RAAA | |
| 6213 | BBEECREJEQ URBnNlAAAG b4MAAAoHF1 gLEQpvOQAA Cjoc////3h URCnUCAAAB EwsRCywHEQ tvOgAA | |
| 6214 | CtwqAAAAAR AAAAIA3ADr xwEVAAAAAD ICe0MAAARv hAAACipaAn tDAAAEb4UA AApvhgAACo wFAAAb | |
| 6215 | KhswBgDkAQ AAMwAAERYK AntGAAAEb0 oAAApvNwAA ChMMK2oRDG 84AAAKdA8A AAELB28RAA AKcrQW | |
| 6216 | AHBvLgAACn QoAAABDAgs EghvEwAACi ghAAAKDQkG MQIJCgdvEQ AACnJFEABw by4AAAp0KA AAAQwI | |
| 6217 | LBkIbxMAAA oDKBQAAAos C3LEFgBwcw 4AAAp6EQxv OQAACi2N3h URDHUCAAAB Ew0RDSwHEQ 1vOgAA | |
| 6218 | CtwGF1gKcl UXAHASACga AAAKcngVAH AoUgAAChhz VwAAChMEAn tEAAAEb0IA AAYRBHJ/Fw Bwb1gA | |
| 6219 | AAoTBREFGB hvaQAACnNx AAAKEwYCKI QAAAYTBxEH EQZvcgAACh EGb3MAAAoC e0QAAARvQg AABm90 | |
| 6220 | AAAKAntEAA AEb0MAAAZv XAAABhEEFn IUGABwbysA AAoTCAJ7RA AABG9CAAAG b3QAAAoCe0 QAAARv | |
| 6221 | QwAABm9dAA AGcmwVAHBy MwEAcG8XAA AKEwkRCXJF EABwA28iAA AKEQlytBYA cBIAKBoAAA pvIgAA | |
| 6222 | ChEJcvkBAH By/wEAcBEI by0AAApvhw AACiYCe0YA AAQRCW8YAA AKJgJ7RAAA BBEIby0AAA oDEQQG | |
| 6223 | FnNlAAAGEw oCe0MAAARv hAAAChdYEw sCe0MAAAQR CxEKb4MAAA oRCioBEAAA AgAUAHeLAB UAAAAA | |
| 6224 | EzADAI4AAA A0AAARc2wA AAoKBnKxGA BwcjMBAHBv FwAACgsHcs UYAHBy/wEA cG8iAAAKBg dvGAAA | |
| 6225 | CiYGctUYAH ByMwEAcG8X AAAKDAcIbx gAAAomBnLr GABwcjMBAH BvFwAACg0J cv8YAHBybA cAcG8i | |
| 6226 | AAAKCAlvGA AACiYGch0Z AHByMwEAcG 8XAAAKEwQH EQRvGAAACi YGKgAAEzAD ALYAAAA1AA ARAntD | |
| 6227 | AAAEb4QAAA oXMwtyMRkA cHMOAAAKeg J7QwAABANv iAAACgoCe0 QAAARvQgAA BgZvZgAABm 9aAAAK | |
| 6228 | AntEAAAEb0 MAAAZvXAAA BgZvaAAABm 92AAAKAntE AAAEb0MAAA ZvXQAABnIi GgBwAntFAA AEbw8A | |
| 6229 | AAoLBywtB3 JOGgBwBm9p AAAGjCwAAA EoJAAACgJ7 RQAABG8PAA AKDAgsCAcI bzAAAAomAn tDAAAE | |
| 6230 | A2+JAAAKJi o2AntDAAAE A2+IAAAKKh swAgBIAAAA NgAAERQKAn tDAAAEb4UA AApvhgAACg wrGBIC | |
| 6231 | KIoAAAoLB2 9sAAAGAygU AAAKLAIHCh ICKIsAAAot 394OEgL+Fg UAABtvOgAA CtwGKgEQAA ACABMA | |
| 6232 | JTgADgAAAA Aucn4aAHBz DgAACno6Ai gNAAAKAgN9 RwAABCrqAn tIAAAELSsC AntHAAAEb3 IAAAZy | |
| 6233 | 1hoAcAJ7Rw AABG9qAAAG bw8AAAp0CA AAAX1IAAAE AntIAAAEKg AAEzACACQA AAAWAAARFg oCKIoA | |
| 6234 | AAZy8hoAcG 8fAAAKCwdy aAcAcCgUAA AKLAIXCgYq GzADAH8AAA A3AAARAyxm AntHAAAEez kAAARv | |
| 6235 | QwAABm9YAA AGb4IAAAYL KxgHbzgAAA p0CwAAAgoG b2sAAAYWb4 wAAAYHbzkA AAot4N4RB3 UCAAAB | |
| 6236 | DAgsBghvOg AACtwCKIoA AAZy8hoAcH JoBwBwbyIA AAoqAiiKAA AGcvIaAHBy bAcAcG8iAA AKKgAB | |
| 6237 | EAAAAgAeAC RCABEAAAAA EzACACQAAA AWAAARFgoC KIoAAAZyCh sAcG8fAAAK CwdyFBsAcC gUAAAK | |
| 6238 | LAIXCgYqqg MsFgIoigAA BnIKGwBwch QbAHBvIgAA CioCKIoAAA ZyChsAcG+M AAAKKgATMA MAEAEA | |
| 6239 | ACAAABECci obAHAYc1cA AAp9UQAABA JyUBsAcBhz VwAACn1SAA AEAnJ0GwBw GHNXAAAKfV MAAAQC | |
| 6240 | KA0AAAoCA3 1XAAAEc0cA AAoKAgZzSA AACn1YAAAE AntYAAAEci IHAHByMwEA cG9JAAAKAn tYAAAE | |
| 6241 | cp4bAHBypB sAcG9JAAAK AntYAAAEci 8cAHByNRwA cG9JAAAKAn tYAAAEcsoc AHBy0hwAcG 9JAAAK | |
| 6242 | AntYAAAEcm MdAHByaR0A cG9JAAAKAn tYAAAEcvod AHByAB4AcG 9JAAAKAntY AAAEckIeAH ByUh4A | |
| 6243 | cG9JAAAKAn tYAAAEcoYe AHBymB4AcG 9JAAAKAntY AAAEctIeAH By2h4AcG9J AAAKKh4Ce1 EAAAQq | |
| 6244 | HgJ7UgAABC oeAntTAAAE KhMwBAA9AQ AAIgAAEQJ7 VAAABDorAQ AAAntXAAAE b0IAAAYCKJ AAAAZv | |
| 6245 | cAAACiwcAg J7VwAABAIo kAAABm9LAA AGfVQAAAQ4 9wAAAAJ7Vw AABG9CAAAG AiiQAAAGci 4fAHBv | |
| 6246 | WAAACgoCc2 wAAAp9VAAA BAJ7VAAABH KkHwBwcmkd AHBvFwAACg sHcmkdAHBy Yx0AcChGAA AGB3IA | |
| 6247 | HgBwcvodAH AoRgAABgdy Uh4AcHJCHg BwKEYAAAYH cpgeAHByhh 4AcChGAAAG B3LaHgBwct IeAHAo | |
| 6248 | RgAABgJ7VA AABAdvGAAA CiYGGBhvaQ AACnNxAAAK DAJ7VAAABA hvcgAACghv cwAACgJ7Vw AABG9C | |
| 6249 | AAAGb3QAAA oCe1cAAARv QgAABgIokA AABhZyyB8A cG9ZAAAKJg J7VwAABG9C AAAGb3QAAA oCe1QA | |
| 6250 | AAQqRgJy+h 0AcHJ1IABw KKYAAAYqSg Jy+h0AcHJ1 IABwAyinAA AGKkYCcvod AHBygSAAcC imAAAG | |
| 6251 | KkoCcvodAH BygSAAcAMo pwAABipGAn L6HQBwcpEg AHAopgAABi pKAnL6HQBw cpEgAHADKK cAAAYq | |
| 6252 | RgJy+h0AcH KhIABwKKYA AAYqSgJy+h 0AcHKhIABw AyinAAAGKk YCcmMdAHBy uSAAcCimAA AGKkoC | |
| 6253 | cmMdAHByuS AAcAMopwAA BipGAnJjHQ BwcssgAHAo pgAABipKAn JjHQBwcssg AHADKKcAAA YqRgJy | |
| 6254 | Yx0AcHLpIA BwKKYAAAYq SgJyYx0AcH LpIABwAyin AAAGKkYCcm MdAHByASEA cCimAAAGKk oCcmMd | |
| 6255 | AHByASEAcA MopwAABipG AnJjHQBwch MhAHAopgAA BipKAnJjHQ BwchMhAHAD KKcAAAYqAA ATMAMA | |
| 6256 | LgAAADgAAB EUCnIvIQBw AwQoTQAACg sCKJMAAAYH AntYAAAEbw 8AAAoMCCwH CG8QAAAKCg YqAAAT | |
| 6257 | MAQAwwAAAD kAABFyLyEA cAMEKE0AAA oKAiiTAAAG BgJ7WAAABG 8PAAAKCwc6 lQAAAHJpHQ BwDAMl | |
| 6258 | DSxpCXJjHQ BwKBQAAAot Ngly+h0AcC gUAAAKLTEJ ckIeAHAoFA AACi0sCXKG HgBwKBQAAA otJwly | |
| 6259 | 0h4AcCgUAA AKLSIrJnJp HQBwDCsecg AeAHAMKxZy Uh4AcAwrDn KYHgBwDCsG ctoeAHAMAi iTAAAG | |
| 6260 | AwQIb40AAA oLAiiTAAAG bygAAAoHbx gAAAomBwVv HgAACioAEz AEAP0AAAAi AAARAntVAA AEOusA | |
| 6261 | AAACe1cAAA RvQgAABgIo kQAABm9wAA AKLBwCAntX AAAEAiiRAA AGb0sAAAZ9 VQAABDi3AA AAAntX | |
| 6262 | AAAEb0IAAA YCKJEAAAZy ZyEAcG9YAA AKCgJzbAAA Cn1VAAAEAn tVAAAEcvQh AHByNRwAcG 8XAAAK | |
| 6263 | CwdypBsAcH KeGwBwKEYA AAYCe1UAAA QHbxgAAAom BhgYb2kAAA pzcQAACgwC e1UAAAQIb3 IAAAoI | |
| 6264 | b3MAAAoCe1 cAAARvQgAA Bm90AAAKAn tXAAAEb0IA AAYCKJEAAA YWcgoiAHBv WQAACiYCe1 cAAARv | |
| 6265 | QgAABm90AA AKAntVAAAE KjICcrsiAH AosQAABipG AnLTIgBwKL EAAAZzjgAA CipKAnLTIg BwA297 | |
| 6266 | AAAKKLIAAA YqMgJy7yIA cCixAAAGKj ICcgUjAHAo sQAABio2An IFIwBwAyiy AAAGKjICch UjAHAo | |
| 6267 | sQAABio2An IVIwBwAyiy AAAGKgAAEz ADAC0AAAA4 AAARFApyJS MAcAMoJAAA CgsCKKgAAA YHAntY | |
| 6268 | AAAEbw8AAA oMCCwHCG8Q AAAKCgYqAA AAEzADAE4A AAA6AAARci UjAHADKCQA AAoKAiioAA AGBgJ7 | |
| 6269 | WAAABG8PAA AKCwctJAIo qAAABgNyNR wAcG8XAAAK CwIoqAAABm 8oAAAKB28Y AAAKJgcEbx 4AAAoq | |
| 6270 | AAATMAQA/Q AAACIAABEC e1YAAAQ66w AAAAJ7VwAA BG9CAAAGAi iSAAAGb3AA AAosHAICe1 cAAAQC | |
| 6271 | KJIAAAZvSw AABn1WAAAE OLcAAAACe1 cAAARvQgAA BgIokgAABn JTIwBwb1gA AAoKAnNsAA AKfVYA | |
| 6272 | AAQCe1YAAA Ry9CEAcHLS HABwbxcAAA oLB3KkGwBw cp4bAHAoRg AABgJ7VgAA BAdvGAAACi YGGBhv | |
| 6273 | aQAACnNxAA AKDAJ7VgAA BAhvcgAACg hvcwAACgJ7 VwAABG9CAA AGb3QAAAoC e1cAAARvQg AABgIo | |
| 6274 | kgAABhZy3C MAcG9ZAAAK JgJ7VwAABG 9CAAAGb3QA AAoCe1YAAA QqAAAAEzAD ADIAAAA4AA ARFApy | |
| 6275 | iSQAcAMoJA AACgsCKLMA AAYHAntYAA AEbw8AAAoM CCwMCG+PAA AKbxAAAAoK BioAABswBA BKAQAA | |
| 6276 | OwAAEXLjJA BwCgIoswAA BgYCe1gAAA RvDwAACgty BSUAcAMoJA AACgoCKLMA AAYGAntYAA AEbw8A | |
| 6277 | AAoMCDr/AA AAGg0Hb0oA AApvNwAACh MJK0ARCW84 AAAKdA8AAA ETBBEEbxEA AApyZyUAcG 8uAAAK | |
| 6278 | dCgAAAETBR EFLBYRBW8T AAAKKCEAAA oTBhEGCTED EQYNEQlvOQ AACi233hUR CXUCAAABEw oRCiwH | |
| 6279 | EQpvOgAACt wJF1gNAiiz AAAGcm8lAH By0hwAcG8X AAAKEwcRB3 KBJQBwco0l AHBvIgAACh EHcmcl | |
| 6280 | AHASAygaAA AKbyIAAAoR B3JFEABwA2 8iAAAKAiiz AAAGcp4bAH By2yUAcHKk GwBwb40AAA oTCBEI | |
| 6281 | BG8eAAAKEQ cRCG8YAAAK JgIoswAABm 8oAAAKEQdv GAAACiYqCG +PAAAKBG8e AAAKKgAAAR AAAAIA | |
| 6282 | TQBNmgAVAA AAAAMwBACv AAAAAAAAAA J7VAAABCwy AntXAAAEAn tUAAAEcukl AHBy+yUAcG 9EAAAG | |
| 6283 | AntXAAAEAi iQAAAGAntU AAAEb0gAAA YCe1UAAAQs MgJ7VwAABA J7VQAABHLp JQBwcg0mAH BvRAAA | |
| 6284 | BgJ7VwAABA IokQAABgJ7 VQAABG9IAA AGAntWAAAE LDICe1cAAA QCe1YAAARy 6SUAcHIdJg Bwb0QA | |
| 6285 | AAYCe1cAAA QCKJIAAAYC e1YAAARvSA AABioeAigN AAAKKgATMA IALQAAADwA ABF+WQAABC 0gcjMm | |
| 6286 | AHDQDwAAAi iRAAAKb5IA AApzkwAACg oGgFkAAAR+ WQAABCoafl oAAAQqHgKA WgAABCoafl sAAAQq | |
| 6287 | LnO8AAAGgF sAAAQqHgIo lgAACioAAz ADACABAAAA AAAAAnKzJg BwfV0AAAQC KJgAAAoWb5 kAAAoC | |
| 6288 | KMUAAAYCKJ gAAApvmgAA Ci0GAijNAA AGAiiYAAAK b5oAAAotBg IoxgAABgIo mAAACm+aAA AKLQYC | |
| 6289 | KMgAAAYCKJ gAAApvmgAA Ci0GAijHAA AGAiiYAAAK b5oAAAotBg IozAAABgIo mAAACm+aAA AKLQYC | |
| 6290 | KMkAAAYCe3 0AAAQsC3L3 JgBwKHcAAA omAiiYAAAK b5oAAAotBw IoywAABiYC KJgAAApvmg AACi0G | |
| 6291 | AijDAAAGAi iYAAAKb5oA AAotBwIowg AABiYCKJgA AApvmgAACi 0GAijAAAAG AiiYAAAKb5 oAAAot | |
| 6292 | BgIovwAABg Ile10AAARy KycAcCg+AA AKfV0AAAQC KM4AAAYqGz AFABMBAAA9 AAARAnt2AA AEcj8n | |
| 6293 | AHACe2gAAA RvVQAACiib AAAKKFIAAA oKBnJDJwBw KJwAAAoMEg JyRycAcCid AAAKKFIAAA oKBgJ7 | |
| 6294 | aAAABG9VAA AKKJ4AAAoo PgAACgoCJX tdAAAEcmUn AHAGcpsnAH AonwAACn1d AAAEAntoAA AEb1UA | |
| 6295 | AAoGKKAAAA oCe3YAAARy PycAcAJ7aQ AABG9VAAAK KKEAAAooUg AACgoCJXtd AAAEcqEnAH AGcpsn | |
| 6296 | AHAonwAACn 1dAAAEAntp AAAEb1UAAA oGKKAAAAre KQsCJXtdAA AEctknAHAH b6IAAApvew AACnKb | |
| 6297 | JwBwKJ8AAA p9XQAABN4A AiV7XQAABH IxKABwKD4A AAp9XQAABC oAARAAAAAA AADT0wApJg AAARsw | |
| 6298 | BgAwAwAAPg AAEXIlAQBw CnIlAQBwC3 IlAQBwDHOj AAAKDSjBAA AGEwQSBf4V UAAAAQIle1 0AAARy | |
| 6299 | bygAcAJ8aw AABCgaAAAK cocoAHAonw AACn1dAAAE AntoAAAEc0 AAAAYTBhEG b0MAAAZvWA AABhdv | |
| 6300 | hgAABhMHGB MIOBcCAAAR BxEIAnteAA AEb3QAAAZv BwAABm97AA AKCwkHb6QA AAo66wEAAA J7XwAA | |
| 6301 | BBUxHBEHEQ gCe18AAARv dAAABm8HAA AGb3sAAAoK KwZyJQEAcA oCe2cAAAQH EgJvpQAACj luAQAA | |
| 6302 | EQcRCAJ7YA AABG90AAAG bwcAAAZvew AACiYRBxEI AntgAAAEb3 QAAAZvBwAA Bm9BAAAKFj 6tAAAA | |
| 6303 | EQcRCAJ7YA AABG90AAAG bwcAAAYopg AACiinAAAK KKgAAAoTBd 2RAAAAEwkC JXtdAAAEEw sbjSkA | |
| 6304 | AAETDBEMFh ELohEMF3KZ KABwohEMGB IIKBoAAAqi EQwZcvMoAH CiEQwaEQcR CAJ7YAAABG 90AAAG | |
| 6305 | bwcAAAaiEQ woYQAACn1d AAAEAiV7XQ AABHIHKQBw EQlvogAACm 97AAAKcpsn AHAonwAACn 1dAAAE | |
| 6306 | 3g4gbAcAAB cXc6kAAAoT BREEb6oAAA ofCY0BAAAB Ew0RDRYGoh ENFwJ7cAAA BIwsAAABoh ENGCic | |
| 6307 | AAAKjFAAAA GiEQ0ZKJwA AAqMUAAAAa IRDRpyISkA cKIRDRsonA AACoxQAAAB ohENHHIhKQ BwohEN | |
| 6308 | HREFjFAAAA GiEQ0eCKIR DW+rAAAKJi s/AiV7XQAA BBMOG40pAA ABEw8RDxYR DqIRDxdyOy kAcKIR | |
| 6309 | DxgHohEPGX JnKQBwohEP GgiiEQ8oYQ AACn1dAAAE EQgXWBMIEQ gCe2sAAAQ+ 3P3//wIle1 0AAARy | |
| 6310 | iykAcBEEb6 oAAApvrAAA ChMQEhAoGg AACnKZKQBw KJ8AAAp9XQ AABAIRBCjE AAAG3gwRBi wHEQZv | |
| 6311 | OgAACtzeNx MKAiV7XQAA BHLVKQBwEQ pvogAACm97 AAAKcpsnAH AonwAACn1d AAAEAiiYAA AKF2+Z | |
| 6312 | AAAK3gACJX tdAAAEcisq AHAoPgAACn 1dAAAEKkFM AAAAAAAAEw EAACoAAAA9 AQAAgwAAAC YAAAEC | |
| 6313 | AAAAWgAAAH oCAADUAgAA DAAAAAAAAA AAAAAAJwAA ALsCAADiAg AANwAAACYA AAETMAMA+w AAAD8A | |
| 6314 | ABFzrQAACg oGb64AAApy ZyoAcNApAA ABKJEAAApv rwAACiYGb6 4AAApyfSoA cNAsAAABKJ EAAApv | |
| 6315 | rwAACiYGb6 4AAApyryoA cNBQAAABKJ EAAApvrwAA CiYGb64AAA py0yoAcNBQ AAABKJEAAA pvrwAA | |
| 6316 | CiYGb64AAA py4yoAcNAp AAABKJEAAA pvrwAACiYG b64AAApy9y oAcNBQAAAB KJEAAApvrw AACiYG | |
| 6317 | b64AAApyBy sAcNApAAAB KJEAAApvrw AACiYGb64A AApyGysAcN BQAAABKJEA AApvrwAACi YGb64A | |
| 6318 | AApyOysAcN ApAAABKJEA AApvrwAACi YGKgAbMAUA YAIAAEAAAB ECJXtdAAAE clMrAHAoPg AACn1d | |
| 6319 | AAAEFwoCe2 gAAARvVQAA CiibAAAKCw J7aAAABG9V AAAKKLAAAA oMCG+xAAAK 1I1ZAAABDQ gJFghv | |
| 6320 | sQAACmlvsg AACiYIb7MA AAoCe24AAA RztAAAChME ciUBAHATBR EFcqErAHAo PgAAChMFEQ Vy9ysA | |
| 6321 | cCg+AAAKEw URBXJpLABw KD4AAAoTBR EFcscsAHAo PgAAChMFEQ Vy2SwAcAdy 2SwAcCifAA AKEwUR | |
| 6322 | BXLdLABwKD 4AAAoTBREF cu0sAHACe2 MAAARy2SwA cCifAAAKEw URBXLzLABw KD4AAAoTBR EFcgUt | |
| 6323 | AHAoPgAACh MFEQVyLS0A cCg+AAAKEw URBXIFLQBw KD4AAAoTBR EFckMtAHAo PgAAChMFAi V7XQAA | |
| 6324 | BBEFcpsnAH AoUgAACn1d AAAEEQVztQ AAChMGEQZv tgAACnJbLQ BwCW+3AAAK JhEGF2+4AA AKEQYR | |
| 6325 | BG+5AAAKEQ RvugAAChEG b7sAAAoTBw Ile10AAARy aS0AcBIHKB oAAApyfy0A cCifAAAKfV 0AAAQR | |
| 6326 | BxczV3LDLQ Bwc7UAAAoT CBEIF2+4AA AKEQgRBG+5 AAAKAhEIb7 wAAAoovQAA Cn1wAAAEAi V7XQAA | |
| 6327 | BHKmLgBwAn xwAAAEKBoA AApymycAcC ifAAAKfV0A AAQrDgIomA AAChdvmQAA ChYK3gwRBC wHEQRv | |
| 6328 | OgAACtzeOR MJAiV7XQAA BHLcLgBwEQ lvogAACm97 AAAKcpsnAH AonwAACn1d AAAEAiiYAA AKF2+Z | |
| 6329 | AAAKFgreAC AQJwAAKL4A AAoGKkE0AA ACAAAAagAA AKMBAAANAg AADAAAAAAA AAAAAAAAKQ AAAPIB | |
| 6330 | AAAbAgAAOQ AAACYAAAEb MAUA4QEAAE EAABFyJQEA cApyJQEAcA sYDHOjAAAK JnOjAAAKJg ICe2gA | |
| 6331 | AARvVQAACi jKAAAGDQIl e10AAAQTCB yNKQAAARMJ EQkWEQiiEQ kXcjwvAHCi EQkYAntoAA AEb1UA | |
| 6332 | AAqiEQkZcm YvAHCiEQka CaIRCRtymy cAcKIRCShh AAAKfV0AAA QCe2gAAARv VQAACgkXKL 8AAAoC | |
| 6333 | JXtdAAAEco ovAHAoPgAA Cn1dAAAEAg lzYgAACn1p AAAEAiV7XQ AABHLCLwBw KD4AAAp9XQ AABAJ7 | |
| 6334 | aAAABHNAAA AGEwQRBG9D AAAGb1gAAA YXb4YAAAYT BQJ7XAAABC 0CGQwCe2sA AAQTBitwEQ URBgJ7 | |
| 6335 | YQAABG90AA AGbwcAAAZv ewAACgsCe2 YAAAQHEgBv pQAACiwoAn tnAAAEBm/A AAAKLTIRBR EGF296 | |
| 6336 | AAAGAiV7aw AABBdZfWsA AAQrGBEFEQ YXb3oAAAYC JXtrAAAEF1 l9awAABBEG F1kTBhEGCC +LEQVv | |
| 6337 | ewAABt4MEQ QsBxEEbzoA AArcIBAnAA AovgAACt43 EwcCJXtdAA AEcu4vAHAR B2+iAAAKb3 sAAApy | |
| 6338 | mycAcCifAA AKfV0AAAQC KJgAAAoXb5 kAAAreAAIl e10AAARyUj AAcCg+AAAK fV0AAAQqAA AAQTQA | |
| 6339 | AAIAAADVAA AApgAAAHsB AAAMAAAAAA AAAAAAAAAa AAAAeQEAAJ MBAAA3AAAA JgAAARswBQ CzAQAA | |
| 6340 | QgAAEQIle1 0AAARynDAA cCg+AAAKfV 0AAAQCe24A AARzwQAACg oGcvowAHBv wgAACgNvrg AACm/D | |
| 6341 | AAAKEwcrPB EHbzgAAAoL AiV7XQAABA dvewAACnI8 MQBwKFIAAA p9XQAABAZv xAAACgdvew AACgdv | |
| 6342 | ewAACm/FAA AKJhEHbzkA AAotu94VEQ d1AgAAARMI EQgsBxEIbz oAAArcBgNv xgAACt4KBi wGBm86 | |
| 6343 | AAAK3AIle1 0AAARyRDEA cCg+AAAKfV 0AAAQCe24A AARztAAACg xyJQEAcA0J cq4xAHAoPg AACg0J | |
| 6344 | cggyAHAoPg AACg0JckQy AHAoPgAACg 0CJXtdAAAE CXKbJwBwKF IAAAp9XQAA BAlztQAACh MEEQQX | |
| 6345 | b7gAAAoRBA hvuQAACghv ugAAChEEb7 sAAAoTBQIl e10AAARyrj IAcBIFKBoA AApywjIAcC ifAAAK | |
| 6346 | fV0AAATeCg gsBghvOgAA CtzeNxMGAi V7XQAABHIQ MwBwEQZvog AACm97AAAK cpsnAHAonw AACn1d | |
| 6347 | AAAEAiiYAA AKF2+ZAAAK 3gACJXtdAA AEcpczAHAo PgAACn1dAA AEKgBBZAAA AgAAADoAAA BJAAAA | |
| 6348 | gwAAABUAAA AAAAAAAgAA ACIAAAB/AA AAoQAAAAoA AAAAAAAAAg AAAM0AAACM AAAAWQEAAA oAAAAA | |
| 6349 | AAAAAAAAAB YAAABPAQAA ZQEAADcAAA AmAAABAzAF AIcBAAAAAA AAAiV7XQAA BHLxMwBwKD 4AAAp9 | |
| 6350 | XQAABAJyOT QAcH1tAAAE AiV7bQAABA IomAAACm/H AAAKclM0AH BvyAAACm/J AAAKdCkAAA EoPgAA | |
| 6351 | Cn1tAAAEAi V7bQAABHJ7 NABwKD4AAA p9bQAABAIl e20AAAQCKJ gAAApvxwAA CnKfNABwb8 gAAApv | |
| 6352 | yQAACnQpAA ABKD4AAAp9 bQAABAIle2 0AAARyyzQA cCg+AAAKfW 0AAAQCJXtd AAAEcv80AH ACe20A | |
| 6353 | AARymycAcC ifAAAKfV0A AAQCcjk0AH B9bgAABAIl e24AAAQCKJ gAAApvxwAA CnJDNQBwb8 gAAApv | |
| 6354 | yQAACnQpAA ABKD4AAAp9 bgAABAIle2 4AAARyezQA cCg+AAAKfW 4AAAQCJXtu AAAEAiiYAA AKb8cA | |
| 6355 | AApybTUAcG /IAAAKb8kA AAp0KQAAAS g+AAAKfW4A AAQCJXtuAA AEcss0AHAo PgAACn1uAA AEAiV7 | |
| 6356 | XQAABHKbNQ BwAntuAAAE cpsnAHAonw AACn1dAAAE KgAbMAUAzA EAAEMAABEC JXtdAAAEcu E1AHAo | |
| 6357 | PgAACn1dAA AEAgIomAAA Cm/HAAAKci E2AHBvyAAA Cm/JAAAKb3 sAAApzYgAA Cn1oAAAEAi V7XQAA | |
| 6358 | BHI1NgBwAi iYAAAKb8cA AApyITYAcG /IAAAKb8kA AApvewAACn KbJwBwKJ8A AAp9XQAABA ICe2gA | |
| 6359 | AARvygAACn 1jAAAEAnto AAAEc0AAAA YKAgZvQwAA Bm9YAAAGF2 +GAAAGfWwA AAQWCytHAi V7agAA | |
| 6360 | BBdYfWoAAA QCe2wAAAQX AntqAAAEb3 QAAAZvBwAA Bm97AAAKb8 sAAApyJQEA cCgUAAAKLA YHF1gL | |
| 6361 | KwYHFjECFg sCe2wAAAQX AntqAAAEb3 QAAAZvBwAA Bm97AAAKb8 sAAApyJQEA cCggAAAKLY wHGzKI | |
| 6362 | AgJ7agAABB tZfWoAAAQC JXtdAAAEcl 82AHACfGoA AAQoGgAACn KbJwBwKJ8A AAp9XQAABA J7agAA | |
| 6363 | BC0iAiV7XQ AABHKhNgBw KD4AAAp9XQ AABAIomAAA ChdvmQAACt 4KBiwGBm86 AAAK3N41DA Ile10A | |
| 6364 | AARy9zYAcA hvogAACm97 AAAKcpsnAH AonwAACn1d AAAEAiiYAA AKF2+ZAAAK 3gAqQTQAAA IAAACX | |
| 6365 | AAAA8wAAAI oBAAAKAAAA AAAAAAAAAA AWAAAAgAEA AJYBAAA1AA AAJgAAARsw BQDjAQAARA AAEQIl | |
| 6366 | e10AAARyTz cAcCg+AAAK fV0AAARyJQ EAcApyJQEA cAsWDBcNFx MEOOIAAAAX EwQXEwUrLw J7bAAA | |
| 6367 | BAkRBW90AA AGb3sAAApv ywAACnIlAQ BwKCAAAAos BRYTBCsQEQ UXWBMFEQUC e2oAAAQxxx EELA0I | |
| 6368 | F1gMCRdYDT iQAAAACCwC FgwCe2wAAA QJAnteAAAE b3QAAAZvew AACm/LAAAK CgJ7bAAABA kCe2EA | |
| 6369 | AARvdAAABm 97AAAKb8sA AAoLAntkAA AEBm+kAAAK LT8Gb8sAAA pvQQAAChYx MQZvzAAACg J7cwAA | |
| 6370 | BG/MAAAKKC AAAAosGQJ7 ZAAABAZvzQ AACgJ7ZgAA BAcGb84AAA oJF1gNCB8K Pxb///8CCR 8LWX1r | |
| 6371 | AAAEAntkAA AEb88AAAoW MVcCJXtdAA AEcpU3AHAC e2QAAARvzw AAChMHEgco GgAACnKbJw BwKJ8A | |
| 6372 | AAp9XQAABA Ile10AAARy rTcAcAJ8aw AABCgaAAAK cpsnAHAonw AACn1dAAAE KyICJXtdAA AEcsM3 | |
| 6373 | AHAoPgAACn 1dAAAEAiiY AAAKF2+ZAA AK3jcTBgIl e10AAARy+z cAcBEGb6IA AApvewAACn KbJwBw | |
| 6374 | KJ8AAAp9XQ AABAIomAAA ChdvmQAACt 4AKgBBHAAA AAAAABYAAA CVAQAAqwEA ADcAAAAmAA ABGzAF | |
| 6375 | AL8CAABFAA ARAiV7XQAA BHJZOABwKD 4AAAp9XQAA BHIlAQBwCg J7aAAABG/K AAAKb9AAAA pyiTgA | |
| 6376 | cG/RAAAKLC QCFn1cAAAE AgJ7egAABH 10AAAEAgJ7 dwAABH1iAA AEOJwAAAAC e2gAAARvyg AACm/Q | |
| 6377 | AAAKcpE4AH Bv0QAACiwh Ahh9XAAABA ICe3wAAAR9 dAAABAICe3 kAAAR9YgAA BCtfAntoAA AEb8oA | |
| 6378 | AApv0AAACn KZOABwb9EA AAosIQIXfV wAAAQCAnt7 AAAEfXQAAA QCAnt4AAAE fWIAAAQrIg Ile10A | |
| 6379 | AARyozgAcC g+AAAKfV0A AAQCKJgAAA oXb5kAAAoX CziPAAAAAn tsAAAEFwdv dAAABm8HAA AGb3sA | |
| 6380 | AApvzAAACg oGAntzAAAE b8wAAAooFA AACiwJAgd9 XgAABCtSBg J7dAAABG/M AAAKKBQAAA osCQIH | |
| 6381 | fWAAAAQrNg YCe3UAAARv zAAACigUAA AKLAkCB31f AAAEKxoGAn tiAAAEb8wA AAooFAAACi wHAgd9 | |
| 6382 | YQAABAcXWA sHAntqAAAE PmX///8Ce1 4AAAQVMSgC JXtdAAAEci o5AHACfF4A AAQoGgAACn KbJwBw | |
| 6383 | KJ8AAAp9XQ AABCsiAiV7 XQAABHJIOQ BwKD4AAAp9 XQAABAIomA AAChdvmQAA CgJ7YAAABB UxKAIl | |
| 6384 | e10AAARyhj kAcAJ8YAAA BCgaAAAKcp snAHAonwAA Cn1dAAAEKy ICJXtdAAAE crQ5AHAoPg AACn1d | |
| 6385 | AAAEAiiYAA AKF2+ZAAAK AntfAAAEFT EoAiV7XQAA BHICOgBwAn xfAAAEKBoA AApymycAcC ifAAAK | |
| 6386 | fV0AAAQrFg Ile10AAARy HDoAcCg+AA AKfV0AAATe NQwCJXtdAA AEclo6AHAI b6IAAApvew AACnKb | |
| 6387 | JwBwKJ8AAA p9XQAABAIo mAAAChdvmQ AACt4AKgBB HAAAAAAAAB wAAABtAgAA iQIAADUAAA AmAAAB | |
| 6388 | GzAHAOMAAA BGAAARAiV7 XQAABHKqOg BwKD4AAAp9 XQAABAJ7cg AABApz0gAA CgwCKJgAAA pz0AAA | |
| 6389 | Bg0IBgIomA AACm/HAAAK ckM1AHBvyA AACm/JAAAK dCkAAAEUFB Rv0wAACgsC KJgAAAoHFB QJFBRv | |
| 6390 | 1AAACm+ZAA AKAiiYAAAK b5oAAAoXMx YCJXtdAAAE cvI6AHAoPg AACn1dAAAE 3jcTBAIle1 0AAARy | |
| 6391 | QDsAcBEEb6 IAAApvewAA CnKbJwBwKJ 8AAAp9XQAA BAIomAAACh dvmQAACt4A AiV7XQAABH KaOwBw | |
| 6392 | KD4AAAp9XQ AABCoAARAA AAAAFgB/lQ A3JgAAARsw BQBbAQAARw AAEXIlAQBw CgMLHI0pAA ABEwQR | |
| 6393 | BBYHKNUAAA qiEQQXcj8n AHCiEQQYBy ibAAAKohEE GXLqOwBwoh EEGiicAAAK EwUSBXJHJw BwKJ0A | |
| 6394 | AAqiEQQbBy ieAAAKohEE KGEAAAoKFw wrbx6NKQAA ARMGEQYWBy jVAAAKohEG F3I/JwBwoh EGGAco | |
| 6395 | mwAACqIRBh ly6jsAcKIR BhoonAAACh MHEgdyRycA cCidAAAKoh EGG3JDJwBw ohEGHBICKB oAAAqi | |
| 6396 | EQYdByieAA AKohEGKGEA AAoKCBdYDA Yo1gAACi2J AiV7XQAABB MIHI0pAAAB EwkRCRYRCK IRCRdy | |
| 6397 | ADwAcKIRCR gDohEJGXIc PABwohEJGg aiEQkbcpsn AHCiEQkoYQ AACn1dAAAE 3jUNAiV7XQ AABHI8 | |
| 6398 | PABwCW+iAA AKb3sAAApy mycAcCifAA AKfV0AAAQC KJgAAAoXb5 kAAAreAAYq AEEcAAAAAA AABgAA | |
| 6399 | AB4BAAAkAQ AANQAAACYA AAEbMAUAeQ EAAEgAABEX CgJ7bQAABH O0AAAKC3Il AQBwDAhypj wAcCg+ | |
| 6400 | AAAKDAhyNT 0AcCg+AAAK DAhyaz0AcC g+AAAKDAhy pz0AcAJ8bw AABP4WFgAA AW97AAAKct U9AHAo | |
| 6401 | nwAACgwIct s9AHAoPgAA CgwCJXtdAA AECHKbJwBw KFIAAAp9XQ AABAhztQAA Cg0JF2+4AA AKCQdv | |
| 6402 | uQAACgdvug AACglv1wAA ChMEKzECe2 cAAAQRBBEE cik+AHBv2A AACm/ZAAAK EQQRBHJFPg Bwb9gA | |
| 6403 | AApv2QAACm /OAAAKEQRv 2gAACi3GAi V7XQAABHJz PgBwAntnAA AEb9sAAAoT BhIGKBoAAA pymycA | |
| 6404 | cCifAAAKfV 0AAATeCgcs BgdvOgAACt wCe2cAAARv 2wAACi0YAi V7XQAABHKV PgBwKD4AAA p9XQAA | |
| 6405 | BBYK3jkTBQ Ile10AAARy yz4AcBEFb6 IAAApvewAA CnKbJwBwKJ 8AAAp9XQAA BAIomAAACh dvmQAA | |
| 6406 | ChYK3gAGKg AAAEE0AAAC AAAADgAAAP 8AAAANAQAA CgAAAAAAAA AAAAAAAgAA ADwBAAA+AQ AAOQAA | |
| 6407 | ACYAAAEbMA UAggEAAEkA ABECJXtdAA AEcis/AHAo PgAACn1dAA AEciUBAHAK BnJ9PwBwKD 4AAAoK | |
| 6408 | BnK/PwBwKD 4AAAoKBnIF QABwKD4AAA oKBnJdQABw KD4AAAoKBn JjQABwKD4A AAoKBnLZLA BwAnxv | |
| 6409 | AAAE/hYWAA ABb3sAAApy hUAAcCifAA AKCgIle10A AARy70AAcA ZymycAcCif AAAKfV0AAA QWCwJ7 | |
| 6410 | bQAABHO0AA AKDAZztQAA Cg0JF2+4AA AKCQhvuQAA CgJ7ZAAABG /cAAAKEwYr PhIGKN0AAA oTBAlv | |
| 6411 | tgAACm/eAA AKCW+2AAAK chdBAHARBG /fAAAKJghv ugAACglvuw AACiYIb+AA AAoHF1gLEg Yo4QAA | |
| 6412 | Ci253g4SBv 4WCAAAG286 AAAK3N4KCC wGCG86AAAK 3AIle10AAA RyJUEAcBIB KBoAAApymy cAcCif | |
| 6413 | AAAKfV0AAA TeMhMFAiV7 XQAABHJdQQ BwEQVv4gAA Cm97AAAKKF IAAAp9XQAA BAIomAAACh dvmQAA | |
| 6414 | Ct4AKgAAAS gAAAIAxgBL EQEOAAAAAA IApAB9IQEK AAAAAAAAmA C3TwEyJgAA ARswBQAWBg AASgAA | |
| 6415 | EQIle10AAA RywUEAcCg+ AAAKfV0AAA QCe24AAARz tAAACgpy+0 EAcAtzrQAA CgwHBnPjAA AKDQlz | |
| 6416 | 5AAAChMEEQ QIb+UAAAom CG+qAAAKb8 MAAAoTBzg7 AwAAEQdvOA AACnRUAAAB EwURBRZv5g AACjkg | |
| 6417 | AwAAEQUWb+ YAAApvewAA CnKSQgBwKB QAAAosNBEF F2/mAAAKLC oRBRdv5gAA Cm97AAAKb8 sAAApv | |
| 6418 | zAAACnK4Qg BwKBQAAAos BwIXfX0AAA QRBRZv5gAA Cm97AAAKcs JCAHAoFAAA Ciw8EQUXb+ YAAAos | |
| 6419 | MhEFF2/mAA AKb3sAAApv ywAACm/MAA AKcrhCAHAo FAAACjmKAg AAAhd9cQAA BDh+AgAAEQ UWb+YA | |
| 6420 | AApvewAACn L8QgBwKBQA AAosIhEFF2 /mAAAKLBgC EQUXb+YAAA pvewAACn1y AAAEOEMCAA ARBRZv | |
| 6421 | 5gAACm97AA AKcixDAHAo FAAACiwiEQ UXb+YAAAos GAIRBRdv5g AACm97AAAK fXMAAAQ4CA IAABEF | |
| 6422 | Fm/mAAAKb3 sAAApyYEMA cCgUAAAKLC IRBRdv5gAA CiwYAhEFF2 /mAAAKb3sA AAp9dAAABD jNAQAA | |
| 6423 | EQUWb+YAAA pvewAACnKc QwBwKBQAAA osIhEFF2/m AAAKLBgCEQ UXb+YAAApv ewAACn11AA AEOJIB | |
| 6424 | AAARBRZv5g AACm97AAAK csxDAHAoFA AACiwiEQUX b+YAAAosGA IRBRdv5gAA Cm97AAAKfX YAAAQ4 | |
| 6425 | VwEAABEFFm /mAAAKb3sA AApy/EMAcC gUAAAKLCIR BRdv5gAACi wYAhEFF2/m AAAKb3sAAA p9dwAA | |
| 6426 | BDgcAQAAEQ UWb+YAAApv ewAACnIoRA BwKBQAAAos IhEFF2/mAA AKLBgCEQUX b+YAAApvew AACn14 | |
| 6427 | AAAEOOEAAA ARBRZv5gAA Cm97AAAKcl ZEAHAoFAAA CiwiEQUXb+ YAAAosGAIR BRdv5gAACm 97AAAK | |
| 6428 | fXkAAAQ4pg AAABEFFm/m AAAKb3sAAA pygkQAcCgU AAAKLB8RBR dv5gAACiwV AhEFF2/mAA AKb3sA | |
| 6429 | AAp9egAABC tuEQUWb+YA AApvewAACn K2RABwKBQA AAosHxEFF2 /mAAAKLBUC EQUXb+YAAA pvewAA | |
| 6430 | Cn17AAAEKz YRBRZv5gAA Cm97AAAKcu xEAHAoFAAA CiwdEQUXb+ YAAAosEwIR BRdv5gAACm 97AAAK | |
| 6431 | fXwAAAQRB2 85AAAKOrn8 ///eFREHdQ IAAAETCBEI LAcRCG86AA AK3N4MEQQs BxEEbzoAAA rc3goJ | |
| 6432 | LAYJbzoAAA rc3goGLAYG bzoAAArcAi V7XQAABHIg RQBwAiiYAA AKb8cAAApy bkUAcG/IAA AKb8kA | |
| 6433 | AApvewAACn KbJwBwKJ8A AAp9XQAABA Ile10AAAQT CRqNAQAAAR MKEQoWEQmi EQoXco5FAH CiEQoY | |
| 6434 | AntxAAAEjE MAAAGiEQoZ cpsnAHCiEQ oo5wAACn1d AAAEAiV7XQ AABHLMRQBw AntyAAAEcp snAHAo | |
| 6435 | nwAACn1dAA AEAiV7XQAA BHIARgBwAn tzAAAEcpsn AHAonwAACn 1dAAAEAiV7 XQAABHI4Rg BwAnt0 | |
| 6436 | AAAEcpsnAH AonwAACn1d AAAEAiV7XQ AABHJ4RgBw Ant1AAAEcp snAHAonwAA Cn1dAAAEAi V7XQAA | |
| 6437 | BHKsRgBwAn t2AAAEcpsn AHAonwAACn 1dAAAEAiV7 XQAABHLgRg BwAnt3AAAE cpsnAHAonw AACn1d | |
| 6438 | AAAEAiV7XQ AABHIQRwBw Ant4AAAEcp snAHAonwAA Cn1dAAAEAi V7XQAABHJC RwBwAnt5AA AEcpsn | |
| 6439 | AHAonwAACn 1dAAAEAiV7 XQAABHJyRw BwAnt6AAAE cpsnAHAonw AACn1dAAAE AiV7XQAABH KqRwBw | |
| 6440 | Ant7AAAEcp snAHAonwAA Cn1dAAAEAi V7XQAABHLk RwBwAnt8AA AEcpsnAHAo nwAACn1dAA AEAiV7 | |
| 6441 | XQAABHIcSA BwAnxvAAAE /hYWAAABb3 sAAApymycA cCifAAAKfV 0AAATeIRMG AiV7XQAABH IuSABw | |
| 6442 | EQZvogAACi hSAAAKfV0A AATeACoAAE F8AAACAAAA VAAAAE4DAA CiAwAAFQAA AAAAAAACAA AAPgAA | |
| 6443 | AHsDAAC5Aw AADAAAAAAA AAACAAAANg AAAJEDAADH AwAACgAAAA AAAAACAAAA IgAAALEDAA DTAwAA | |
| 6444 | CgAAAAAAAA AAAAAAFgAA AN4FAAD0BQ AAIQAAACYA AAEbMAQAtQ AAAEsAABEC e20AAARztA AACgpy | |
| 6445 | akgAcHO1AA AKCwcXb7gA AAoHBm+5AA AKB2+2AAAK crlJAHAWjC wAAAFv3wAA CiYHb7YAAA pyz0kA | |
| 6446 | cBaMLAAAAW /fAAAKJgdv tgAACnLlSQ BwFowsAAAB b98AAAomB2 +2AAAKcv9J AHByI0oAcA J7XQAA | |
| 6447 | BCg+AAAKb9 8AAAomBm+6 AAAKB2+7AA AKJt4KBiwG Bm86AAAK3A JyJQEAcH1d AAAE3gMm3g AqAAAA | |
| 6448 | ARwAAAIADA COmgAKAAAA AAAAAACxsQ ADJgAAAQMw AgAfAQAAAA AAAAJyJQEA cH1dAAAEAh V9XgAA | |
| 6449 | BAIVfV8AAA QCFX1gAAAE AhV9YQAABA JyJQEAcH1i AAAEAnIlAQ BwfWMAAAQC c6MAAAp9ZA AABAJz | |
| 6450 | owAACn1lAA AEAnPoAAAK fWYAAAQCc+ gAAAp9ZwAA BAIXfWoAAA QCF31rAAAE AnIlAQBwfW 0AAAQC | |
| 6451 | ciUBAHB9bg AABAIo6QAA Cn1vAAAEAh d9cAAABAJy JQEAcH1yAA AEAnIlAQBw fXMAAAQCci UBAHB9 | |
| 6452 | dAAABAJyJQ EAcH11AAAE AnIlAQBwfX YAAAQCciUB AHB9dwAABA JyJQEAcH14 AAAEAnIlAQ BwfXkA | |
| 6453 | AAQCciUBAH B9egAABAJy JQEAcH17AA AEAnIlAQBw fXwAAAQCKO oAAAoqOgIo 6wAACgIDfY YAAAQq | |
| 6454 | bgJ7hgAABG /sAAAKBAUO BA4FDgZv7Q AACiYWKm4C e4YAAARv7A AACgQFDgQO BQ4GDghv7g AACipm | |
| 6455 | AnuGAAAEb+ wAAAoEBQ4E DgUOBm/vAA AKKrQAAADO yu++AQAAAJ EAAABsU3lz dGVtLlJlc2 91cmNl | |
| 6456 | cy5SZXNvdX JjZVJlYWRl ciwgbXNjb3 JsaWIsIFZl cnNpb249NC 4wLjAuMCwg Q3VsdHVyZT 1uZXV0 | |
| 6457 | cmFsLCBQdW JsaWNLZXlU b2tlbj1iNz dhNWM1NjE5 MzRlMDg5I1 N5c3RlbS5S ZXNvdXJjZX MuUnVu | |
| 6458 | dGltZVJlc2 91cmNlU2V0 AgAAAAAAAA AAAAAAUEFE UEFEULQAAA BCU0pCAQAB AAAAAAAMAA AAdjQu | |
| 6459 | MC4zMDMxOQ AAAAAFAGwA AACIIwAAI3 4AAPQjAADc JgAAI1N0cm luZ3MAAAAA 0EoAAExKAA AjVVMA | |
| 6460 | HJUAABAAAA AjR1VJRAAA ACyVAADEDw AAI0Jsb2IA AAAAAAAAAg AAAVcfogkJ AwAAAPolMw AWAAAB | |
| 6461 | AAAAdAAAAB QAAACGAAAA 0wAAAJMAAA ACAAAA7wAA ABsAAAAQAA AASwAAAAwA AABVAAAAfA AAAAgA | |
| 6462 | AAABAAAACA AAAAEAAAAB AAAAAAAKAA EAAAAAAAYA vwG4AQYAxg G4AQYA0gG4 AQYA6gHXAQ oACwL2 | |
| 6463 | AQ4AawJCAh IAxgKmAhYA 7ALhAgoAMg O4ARYAXgXh AgYA1Qa4AR oAswifCAYA 6gjgCBYAFg nhAhYA | |
| 6464 | hQnhAhoAqQ qfCAYAzg2z DQYA9Q3XAQ YANBMjEwYA ZRNQEwYAUB SzDQYAJhW4 AR4AxRa5Fg 4AKhhC | |
| 6465 | AhIAQBimAg YAtxqdGgYA 4hrQGgYA+R rQGgYAFhvQ GgYANRvQGg YAThvQGgYA ZxvQGgYAgh vQGgYA | |
| 6466 | nRvQGgYAth vQGgYA7xvP GwYADxzPGw YAWBy4ARYA gRzhAhYApx zhAgYAvxy4 AQYA0hy4AR YADh3h | |
| 6467 | AgYALh24AR oAmx2fCBoA 7R2fCAoAPR 4eHhYASx7h AgYAjh64AQ oAxB4eHhYA 3x7hAhYA6R 7hAgYA | |
| 6468 | Eh+4AQYAOB /gCAYAXx/g CAYAaB/gCA oAeB+4AQYA rB/gCBoAyR +fCAYA/h+z DRoADCCfCA YAKSDg | |
| 6469 | CAYAUCDgCA YAXSDgCCIA pyCSICIAsi CSIAYAxCC4 AQYA0yDQGk cA9CAAABcB DyEAAAYASy E4IQYA | |
| 6470 | aCG4AQYAbS G4AQYAkSHQ GgoAvSGnIQ oA1iGnIQYA 6yHPGw4ADS JCAgYAVSLg CAYAdiK4AQ YAlCLg | |
| 6471 | CAYA4CK4AR 4A+yK5Fh4A FiO5Fh4AHi O5Fh4AOSO5 Fh4AWiO5Fg YAZSPgCAYA eSO4AR4AmS ODIx4A | |
| 6472 | pyODIx4Asi ODIx4A2COD Ix4A+CPlIx 4AAiS5Fh4A LSTlIwYAaS RYJB4AgiSD Ix4ApySDIx 4A3SSD | |
| 6473 | IxIABCWmAh IAHCWmAhIA 2hKmAhIAsw imAhIAOiWm AhIAVyWmAh IAYiWmAhIA cCWmAhIAfC WmAh4A | |
| 6474 | qCWDIx4AxC XlI1cADyEA AB4A5iXlIx 4AIiaDIx4A MSblIw4ATC ZCAgAAAAAB AAAAAAABAA EAAQAQ | |
| 6475 | ADkAQwAFAA EAAQABABAA UQBDAAUACg AhAAEAEABd AEMABQANAD AAAQAQAHMA QwAFABAAMQ ABABAA | |
| 6476 | hQBDAAUAIQ BAAAEAEACS AEMABQAnAE wAAAAQAJsA QwAFACkAVg ABAQAApwBD AA0AKQBXAA EAEAC1 | |
| 6477 | AEMABQAtAF cAAQAQAMMA QwAFADgAZQ ABABAA0gBD AAUAQwCAAA EAEADiAEMA BQBHAIkAAQ AQAPUA | |
| 6478 | QwAFAEkAjw AAABAABgEQ AQUAWQC3AA ABEABGARAB FQBbALsAAQ AQAE8BWgEZ AFwAvgADAQ AAhQEA | |
| 6479 | AA0AfgDQAA ABAACTAVoB DQCBANAAAA AQAJwBWgEd AIYA0AABAN QCEwABAPcC FwABAAQDGw ABAAkD | |
| 6480 | GwABAA4DHg ABABUDHgAB AB8DHgABAC gDHgABADYD IQABANQCEw ABAFIFFwAB AHIFngAGAA AGHgAG | |
| 6481 | ABAGHgAGAB 0GHgBWgC4G HgBWgDkGHg BWgEcGHgBW gFEGHgBWgF oGHgBWgGMG HgBWgG8GHg ABAHsG | |
| 6482 | FwABAI0G3g ABAJgG3gAB AKMG3gABAK 8G3gABALsG 3gABAMgG3g ABAOAG4gAB APIG4gABAA QH4gBV | |
| 6483 | gHQIHgBVgH 8IHgABALsI AwIBAMQIHg ABANYIBwIG APMIGQIBAN QCEwABAHkJ FwAGBrgJGw BWgMAJ | |
| 6484 | aAJWgMoJaA JWgNsJaAIB AOIJewIBAO 0JIQABAPoJ IQABAAwKIQ ABABcKIQAB ACUKfwIBAD IKfwIB | |
| 6485 | AEQKfwIBAE 8KgwIBAHIF ngABAFsKhw JVgJoLHgAF AK4LewIBAL gLIQABAMYL HgABAMwLGw ABANUL | |
| 6486 | GQIBAN0LHg ABAO0LfwIB APsL4gIBAA YM5gIBAHIF ngABAE8KPg MBAOIJewIB AHIFngABAN sNRwMB | |
| 6487 | ANQCEwABAP sLFwBRgM0O HgBRgNgOHg BRgOcOHgBR gPQOHgBRgP 0OHgBRgAsP HgBRgBoPHg BRgCQP | |
| 6488 | HgABAC0PIQ ABAEAPIQAB AFcPIQABAG wPfwIBAH8P fwIBAJYPfw IBAOIJewIB AHIFngARAE QTywYR | |
| 6489 | AHETzwYRAL UT7QYBANkT +wYBAOcTHg ABAPETGwAB AP4TGwABAA kUGwABAB4U GwABAC4UHg ABAEIU | |
| 6490 | HgABAFcU/w YBAGEU/wYB AHAUBgcBAH sUBgcBAIoU DgcBAJYUDg cBAKMUGwAB ALoUGwABAM 4UEwAB | |
| 6491 | AOMUHgABAA QVHgABACsV EgcBADMVGw ABAE0VGQIB AGoVHgABAI IVHgABAJwV HgABALoVHg ABANIV | |
| 6492 | HgABAOoVHg ABAAAWHgAB ABcWHgABAC 0WHgABAEcW HgABAGIWHg ABAHwWGQIG BrgJGwBWgA kYIQdW | |
| 6493 | gBEYIQcGBr gJGwBWgBkY +wZWgB0Y+w ZWgCIY+wZW gCYY+wYBAD wYKgdQIAAA AACFGEEDJQ ABAKgg | |
| 6494 | AAAAAIUIRw MtAAQAsCAA AAAAhghTAz IABAC4IAAA AACGCFsDMg AEAMAgAAAA AIYIZgM2AA QA0yAA | |
| 6495 | AAAAhgh2Az oABADgIAAA AACGCIQDNg AEAJghAAAA AIYIjgM+AA QAqCIAAAAA hgiYAzYABQ DcIgAA | |
| 6496 | AACGCKUDPg AFADgjAAAA AIYIsgM2AA YASyMAAAAA hgi8Az4ABg BgIwAAAACG CMYDMgAHAJ UjAAAA | |
| 6497 | AIYI0gNDAA cAsCMAAAAA hgjeA0gACA BIJAAAAACG COwDTQAIAF wmAAAAAIYI +gM2AAkAWC cAAAAA | |
| 6498 | hggGBD4ACQ DQJwAAAACG CBIENgAKAN wnAAAAAIYA HgRTAAoAFS gAAAAAxgAq BDYACgAgKA AAAACW | |
| 6499 | ADMEVwAKAF goAAAAAIEA QgRcAAsAOC kAAAAAgQBS BGEADACQKQ AAAACFAGIE LQANAPgpAA AAAIEA | |
| 6500 | dARmAA0AHC sAAAAAlQCL BG8AEACYKw AAAACWAJsE dAARANgsAA AAAJYAqwR0 ABIAQS0AAA AAlgC4 | |
| 6501 | BHkAEwBYLQ AAAACWAMcE VwAVAIgtAA AAAJYA2gR/ ABYA7C4AAA AAhRhBA6IA GwDYMAAAAA CFCEcD | |
| 6502 | LQAdAOAwAA AAAIYIfQUy AB0A9zAAAA AAhgiLBUMA HQAQMQAAAA CGCJkFMgAe ACcxAAAAAI YIpwVD | |
| 6503 | AB4AQDEAAA AAhgi1BToA HwB1MQAAAA CGCMAFqQAf AKgxAAAAAI YIywWuACAA 5jEAAAAAhg jVBbIA | |
| 6504 | IAD/MQAAAA CGCLIDNgAh ABIyAAAAAI YIvAM+ACEA KDIAAAAAhg jGAzIAIgBd MgAAAACGCN IDQwAi | |
| 6505 | AHYyAAAAAM YAKgQ2ACMA ojIAAAAAhh hBA1MAIwCs MgAAAACFGE ED6QAjAAgz AAAAAIYIFA c6ACQA | |
| 6506 | eDMAAAAAhg gpB6kAJADw MwAAAACGCD 4HOgAlAGA0 AAAAAIYIUw epACUA2DQA AAAAhghoBz oAJgBI | |
| 6507 | NQAAAACGCH sHqQAmAL81 AAAAAIYIjg fvACcA2jUA AAAAhgicB+ 8AJwD1NQAA AACGCKoH7w AnABc2 | |
| 6508 | AAAAAIYIuQ fvACcAOTYA AAAAhgjIB+ 8AJwBbNgAA AACGCNgH7w AnAIA2AAAA AIUA6AdTAC cAJDgA | |
| 6509 | AAAAhQDtB/ QAJwCIOAAA AACGGEEDCw IoACw5AAAA AIYYQQMRAi kAtDkAAAAA hgj9CBwCKw C8OQAA | |
| 6510 | AACGCAkJIQ IrANg5AAAA AIUAIgkmAi sAaDoAAAAA hQAxCS4CLg DYOgAAAACV AD4JNgIwAB A7AAAA | |
| 6511 | AJUAPgk+Aj MARDsAAAAA hQBRCUUCNQ BsOwAAAADm AVoJUwA3AH k7AAAAAIYA 6AdTADcAiD sAAAAA | |
| 6512 | hQBiCU0CNw C4OwAAAACF GEEDogA4AA g9AAAAAIUI jQleAjoAED 0AAAAAhgi1 BToAOgBFPQ AAAACG | |
| 6513 | CMAFqQA6AH g9AAAAAIYI lgmuADsAtT 0AAAAAhgih CbIAOwDjPQ AAAACGCLID NgA8APY9AA AAAIYI | |
| 6514 | vAM+ADwADD 4AAAAAhgjG AzIAPQBBPg AAAACGCNID QwA9AG8+AA AAAIYYQQNT AD4AeD4AAA AAhRhB | |
| 6515 | A4sCPgD9Pg AAAACGCGcK kQI/AB4/AA AAAIUIdgpI AD8AJj8AAA AAhQiGCkgA PwAuPwAAAA CFCJQK | |
| 6516 | SAA/ADY/AA AAAIUItQqW Aj8AUD8AAA AAhgi+CpsC PwCMQAAAAA CFCM4KmwI/ AKxBAAAAAI YI4wqb | |
| 6517 | Aj8AVEQAAA AAhgjxCqAC PwBdRAAAAA CGCP8KpgJA AIBEAAAAAI YIDgurAkAA /EQAAAAAhg gbC7AC | |
| 6518 | QABkRQAAAA CFAOgHUwBB AFRHAAAAAI UYQQPqAkEA iUcAAAAAhQ gUDEgARwCR RwAAAACFCL UKlgJH | |
| 6519 | AKlHAAAAAI UIJQw2AEcA sUcAAAAAhQ g4DDIARwC8 RwAAAACGCE QM9gJHAP5H AAAAAIYIWQ z7AkcA | |
| 6520 | GkgAAAAAhg hiDDYARwAk SAAAAACGCG sMPgBHAIxI AAAAAIYItQ U6AEgAlEgA AAAAhgjABa kASAAE | |
| 6521 | SQAAAACGCH QMMgBJAFRJ AAAAAIYIiQ xDAEkA1EkA AAAAhgieDJ sCSgAoSgAA AACGCK8MAA NKAJRK | |
| 6522 | AAAAAIYAwA wFA0oAnkoA AAAAhgD6BA wDTACnSgAA AACGAP4EEg NNALBKAAAA AIYAxQwYA0 4AJEwA | |
| 6523 | AAAAhgDZDC ADUAD0TgAA AACGAPUMQw BTAMhQAAAA AIYA/wwpA1 QAQFIAAAAA hQDoB1MAVg B4UwAA | |
| 6524 | AACBAAkNUw BWAPhUAAAA AIEAGw1TAF YAtFYAAAAA hQAxDWEAVg CYVwAAAACF AD4NXABXAD hYAAAA | |
| 6525 | AIUYQQOLAl gANFoAAAAA hgjrDTIAWQ BBWgAAAADm AQEOSwNZAF haAAAAAIYA Dw5QA1kAWF wAAAAA | |
| 6526 | hQATDpsCWg D0XAAAAACG ACYOQwBaAL ZdAAAAAIYI LQ5WA1sAxF 0AAAAAhggt DlADXAAoXg AAAACG | |
| 6527 | ADYOXANdAD ReAAAAAIUY QQNvA18AQ1 4AAAAAhQhG Di0AYACAXg AAAACGCFsO OgBgALBeAA AAAIYI | |
| 6528 | aw6pAGAATF 8AAAAAhgh7 DjoAYQB8Xw AAAACGCI4O qQBhAKhfAA AAAIYYQQOL AmIAxGAAAA AAhQir | |
| 6529 | D0gAYwDMYA AAAACFCMEP SABjANRgAA AAAIUI2w9I AGMA3GAAAA AAhgjzD5sC YwAlYgAAAA CGCAkQ | |
| 6530 | NgBjADdiAA AAAIYIExA+ AGMASmIAAA AAhggdEDYA ZABcYgAAAA CGCCkQPgBk AG9iAAAAAI YINRA2 | |
| 6531 | AGUAgWIAAA AAhghAED4A ZQCUYgAAAA CGCEsQNgBm AKZiAAAAAI YIWBA+AGYA uWIAAAAAhg hlEDYA | |
| 6532 | ZwDLYgAAAA CGCHIQPgBn AN5iAAAAAI YIfxA2AGgA 8GIAAAAAhg iSED4AaAAD YwAAAACGCK UQNgBp | |
| 6533 | ABVjAAAAAI YItRA+AGkA KGMAAAAAhg jFEDYAagA6 YwAAAACGCN IQPgBqAE1j AAAAAIYI3x A2AGsA | |
| 6534 | X2MAAAAAhg jqED4AawB0 YwAAAACBAP UQswZsALBj AAAAAIEACh G5Bm4AgGQA AAAAhggfEZ sCcQCJ | |
| 6535 | ZQAAAACGCD kRNgBxAJZl AAAAAIYISR FIAHEAqGUA AAAAhghbEU 0AcQC7ZQAA AACGCG0RNg ByAMhl | |
| 6536 | AAAAAIYIfB E2AHIA1WUA AAAAhgiIET 4AcgDjZQAA AACGCJQRNg BzAPBlAAAA AIYIoBE+AH MAAGYA | |
| 6537 | AAAAgQCsEc AGdAA8ZgAA AACBAMURxQ Z1AJhmAAAA AIYI3hGbAn cApGcAAAAA hgD2EcAGdw DkZwAA | |
| 6538 | AACGAA0SxQ Z4AExpAAAA AIUA6AdTAH oAB2oAAAAA gxhBA1MAeg AQagAAAACT CIET0wZ6AE lqAAAA | |
| 6539 | AJMIlRPYBn oAUGoAAAAA kwihE90Geg BYagAAAACW CMUT8QZ7AG tqAAAAAIYY QQNTAHsAX2 oAAAAA | |
| 6540 | kRgGInIMew B0agAAAACG AI8WUwB7AK BrAAAAAIEA lBZTAHsA0G wAAAAAgQCn FlMAewBYcA AAAACR | |
| 6541 | AM8WFgd7AG BxAAAAAIEA 4xY6AHsAAH QAAAAAgQAE F1MAewAkdg AAAACBAB0X Gwd7AEh4AA AAAIEA | |
| 6542 | QRdTAHwA3H kAAAAAgQBY F1MAfADoew AAAACBAGsX UwB8APR9AA AAAIEAgRdT AHwA3IAAAA AAgQCM | |
| 6543 | F1MAfADcgQ AAAACBAKEX wAZ8AGCDAA AAAIEAvRc6 AH0AHIUAAA AAgQDUF1MA fQDUhgAAAA CBAPAX | |
| 6544 | UwB9AHSNAA AAAIEAABhT AH0AVI4AAA AAhhhBA1MA fQB/jwAAAA CGGEEDLgd9 AI6PAAAAAM YAShg0 | |
| 6545 | B34Aqo8AAA AAxgBSGEAH hQDGjwAAAA DGAGAYTgeN AAAAAQBqGA AAAgB2GAAA AwB6GAAAAQ B+GAAA | |
| 6546 | AQB+GAAAAQ B+GAAAAQB+ GAAAAQB+GA AAAQB+GAAA AQAbBQAAAQ AbBQAAAQCE GAAAAQBqGA AAAgB2 | |
| 6547 | GAAAAwB6GA AAAQCNGAAA AQCbGAAAAQ CbGAAAAQCn GAAAAgCsGA AAAQCbGAAA AQBCBQAAAg C0GAAA | |
| 6548 | AwDBGAAABA DOGAAABQDX GAAAAQDjGA AAAgB6GAAA AQB+GAAAAQ B+GAAAAQB+ GAAAAQB+GA AAAQB+ | |
| 6549 | GAAAAQB+GA AAAQDtGAAA AQB+GAAAAQ B+GAAAAQB+ GAAAAQD+GA AAAQAHGQAA AQAHGQAAAg APGQAA | |
| 6550 | AQAYGQAAAg AfGQAAAwBa BgAAAQApGQ AAAgAzGQAA AQBAGQAAAg BFGQAAAwBM GQAAAQBAGQ AAAgBF | |
| 6551 | GQAAAQBWGQ AAAgBeGQAA AQBWGQAAAQ DjGAAAAgB2 GAAAAQB+GA AAAQB+GAAA AQB+GAAAAQ B+GAAA | |
| 6552 | AQCuCwAAAQ B+GAAAAQB+ GAAAAQBmGQ AAAgBWDQAA AwB2GQAABA CAGQAABQBl DQAABgCNGQ AAAQB+ | |
| 6553 | GAAAAQB+GA AAAQB+GAAA AQB2GAAAAg B6GAAAAQB2 GAAAAQB6GA AAAQCSGQAA AgCcGQAAAQ CSGQAA | |
| 6554 | AgCcGQAAAw CkGQAAAQCq GQAAAQCzGQ AAAgC/GQAA AQAwBQAAAQ DQGQAAAQCu CwAAAQCDDQ AAAQDa | |
| 6555 | GQAAAQDlGQ AAAQCDDQAA AQCDDQAAAg DwGQAAAQBq GAAAAQB+GA AAAQB+GAAA AQCuCwAAAQ B+GAAA | |
| 6556 | AQB+GAAAAQ B+GAAAAQB+ GAAAAQB+GA AAAQB+GAAA AQB+GAAAAQ B+GAAAAQB+ GAAAAQBMGQ AAAgD4 | |
| 6557 | GQAAAQBMGQ AAAgD4GQAA AwAFGgAAAQ B+GAAAAQB+ GAAAAQB+GA AAAQD4GQAA AQD4GQAAAg AFGgAA | |
| 6558 | AQD4GQAAAQ D4GQAAAgAF GgAAAQB+GA AAAQAPGgAA AQASGgAAAQ A8GAAAAQAh GgAAAgAoGg AAAwAy | |
| 6559 | GgAABAA/Gg AABQBLGgAA BgBUGgAABw BgGgAAAQAh GgAAAgB3Gg AAAwAyGgAA BAA/GgAABQ BLGgAA | |
| 6560 | BgBUGgAABw BgGgAACACH GgAAAQAhGg AAAgCRGgAA AwAyGgAABA A/GgAABQBL GgAABgBUGg AABwBg | |
| 6561 | GgYACQAMAB EA0QBBAz4A 2QBBAz4A4Q BBAz4A6QBB Az4A8QBBAz 4A+QBBAz4A AQFBAz4ACQ FBAz4A | |
| 6562 | EQFBAz4AGQ FBAz4AIQFB A0MAKQFBA1 MACQBBA1MA MQFBAz4AeQ BiHFoHeQBz HDYAeQCYHG IHOQG0 | |
| 6563 | HGgHeQCEAz YASQHGHG8H UQHaHHQAeQ DiHJsCcQD0 HH4HeQACHY UHWQEeHYwH YQEqBDYAcQ A0HWgH | |
| 6564 | OQFEHZIHeQ COAz4AeQBL HT4AQQBZHc AGSQFmHW8H YQF0HXQAQQ B6HcUGSQDG HLkHSQGHHc EHWQGO | |
| 6565 | HccHgQCvHc 4HaQG/HUgA cQDNHS0AeQ DhHeIHcQA0 HesHgQD4Hf QHSQBmHbkH aQELHjYAWQ GOHYwH | |
| 6566 | WQEeHccHeQ ASHoUHeQFB Az4AeQFDHi kIeQBXHjcI gQHrDTIAgQ G0HEsIeQBj HuIHgQEBDk sDkQBw | |
| 6567 | HmEIkQB8Hj oAEQBaCVMA UQHaHHoIUQ GFHn8IiQEq BDYASQGTHo QISQGaHpII iQGmHpcISQ GvHjIA | |
| 6568 | SQG6HpwIeQ FBA8QIeQHR HrMGSQHRHr MGSQHZHswI mQFBA1MAUQ BBA+0IUQD2 HsUGeQADH/ QIQQBZ | |
| 6569 | HbMGqQEqBD YASQGHHR8J eQBiDDYADA AZHzoADABB AywJDACEAz IJSQGTHjcJ aQAmHzYAsQ FHHzoA | |
| 6570 | sQFSHzYAYQ BzH0IJSQBB A04JYQCAH1 YJYQD4HfQH YQCLH00AsQ EmDlMAMQFB A2MJaQCWH2 sJaQCd | |
| 6571 | H6kA0QFBAz 4A0QG6H1MA SQGTHncJaQ BBAz4AcQDo Bz4AYQDBH4 cJgQDnH44J 2QEBDpUJFA BwHjIJ | |
| 6572 | 6QEaIKkJgQ AwIMQJcQDo B9AJYQA6IF MAcQBBA1MA gQAwINwJcQ BAINAJqQF0 HfcJYQBFIA IK+QFB | |
| 6573 | A9AJcQDoBw gKAQI6IFMA YQBoIFMAgQ BuIFYKgQB/ ID4ACQK/IF wKGQIqBDYA UQEqBG8AOQ HMIJIH | |
| 6574 | CQAqBDYASQ GTHt8KWQHr DTIAWQFBDk sIOQFjHg0L IQJBAz4AHA BBA1MAUQHq IFcAHAAPDm ILHADr | |
| 6575 | DTIAHAAEIY ILJAABDpcL QQB6HawLHA AtDt8LHADM IOYLLABwHv ULLAB8HjoA QQAaIT4AcQ D0HBkM | |
| 6576 | SQBBAz4AeQ AqIV4COQJB A1MAQQJ/IU YMQQKaIU8M mQBBA1UMWQ JBA2IMaQJB A1MAKQBBA1 MAcQJB | |
| 6577 | A1MAMQAvIn YMwQA3IkMA wQBGIjIAeQ JaInsMgQJ/ IoAMgQIqBM AGeQKHInsM SQGTHoYMiQ KZIo4M | |
| 6578 | eQKeInsMMQ GqIjYANABB A1MANAC2Iu YLPAC/IqsM oQDLItgGUQ GFHrQMgQLw IrwMgQJBA8 MMuQAN | |
| 6579 | I8oMmQIPDt AMqQLrDTIA uQBBA1MAuQ BOI/wMsQIP DgINiQJwIx EN8QGvHhgN 8QF+IxwN8Q E6IFMA | |
| 6580 | 0QJBAz4A2Q JBAz4A2QLJ IyQN4QIPDi oN8QIOJDIN 2QIeJDkNAQ NzH1MA8QI6 JDIA8QJKJG EIUQHa | |
| 6581 | HEANCQNwJE UNiQI2DmIN PAB2JOYLEQ NBAz4AEQOO JD4AqQIBDk sDEQPKJHsN GQMPDoENEQ P2JBsH | |
| 6582 | wQAOJZ8NKQ MtDqUNMQOE A2EIsQFiDD YASQElJTYA SQEqJTYANA APDiwJPAAP DmILNADrDT IASQEy | |
| 6583 | JTYASQG2Ii kIOQNBA1MA OQNFJcoNUQ OIJdcNeQKQ JXsMiQKhJV cA2QK2JQ8O eQPRJVwAeQ PcJWEA | |
| 6584 | eQN+IzoAPA DrDTIANAAB DicORABwHj IJiQP8JVMA 4QICJioNAQ M6IFMARAB8 HjoAMQEPJj gO2QJB | |
| 6585 | A1MOkQNBA1 sOmQM/JmIO oQItDmgOSQ GTHm0OPABB A1MAsQBEJp gOMQBBA1MA OQBBA1MAwQ BgJp0O | |
| 6586 | oQNrJqMOoQ N1JqwOoQOF JrcODgBAAL sADgBEAMAA DgBIAMUADg BMAMoADgBQ AM8ADgBUAN QADgBY | |
| 6587 | ANkADgCEAP 8ADgCIAHIB CACoAGwCCA CsAHECCACw AHYCDgDgAM 8CDgAkAXUD DgAoAQUEDg AsAZkE | |
| 6588 | DgAwASkFDg A0AWoFDgA4 AZ0FDgA8Ad YFDgBAASkG CAD8AWwCCA AAAnECCAAI AmwCCAAMAn ECCAAQ | |
| 6589 | AnYCCAAUAi UHLgATAAoP LgAbADoPLg BjAKIPLgAL AMAOLgAzAA oPLgBbAJkP LgArAEAPLg AjADoP | |
| 6590 | LgA7AGQPLg BDADoPgwED BFAL4wGDBH ECIwK7BHEC aQqjBGkMiQ qjBGkMYQur BHECdQebB6 cHrge0 | |
| 6591 | B9UHAAgRCB 8IJAguCEAI UQhaCGUIig iiCLUIvwjT CPoIFQkaCT 4JXglxCX0J sgnXCeIJ6Q n8CQ8K | |
| 6592 | HwopCkMKTg pjCnkKgQqI CpoKqgrGCu YK9goZCzML QwtqC7ML0g vsC/oLCQwS DCEMKQwvDF 0MlAzY | |
| 6593 | DAwNSg1pDY kNrA21DcIN 6g35DRUOPg 5zDo8OAgAB AAMADQAFAB QABgAdAAcA HwAKACQACw AuAAwA | |
| 6594 | OQANADwADg A/AA8AUwAQ AFUAAADyBI gAAAD6BI0A AAD+BI0AAA AFBZEAAAAR BZUAAAAbBZ EAAAAh | |
| 6595 | BZEAAAAqBZ EAAAAwBY0A AAA4BZkAAA BCBZEAAABK BZEAAADyBI gAAADfBY0A AADpBY0AAA DzBZUA | |
| 6596 | AAD6BbcAAA AqBZEAAAAw BY0AAAABCJ UAAAASCJUA AAAjCJUAAA AyCPoAAAA8 CPoAAABGCP oAAABR | |
| 6597 | CPoAAABcCP oAAABoCPoA AACzCFQCAA BwCVkCAACs CWMCAADzBZ UAAACxCbcA AAAqBZEAAA AwBY0A | |
| 6598 | AAAoC7YCAA AzC5kAAAA/ C5kAAABJC5 kAAABaC7sC AABfC8ACAA BrC8ACAAB8 C8ACAACGC8 UCAACR | |
| 6599 | C8oCAABJDZ kAAABaC7sC AABWDZEAAA BlDY0AAABt DS8DAAB+DT QDAACDDZEA AADzBZUAAA CIDY0A | |
| 6600 | AACZDcACAA CmDTkDAAA7 Do0AAABBDm MDAABBDmkD AAChDogAAA CyDpUAAAC+ DpUAAAAkEp kAAAA2 | |
| 6601 | EpkAAABMEp kAAABgEsAC AAByEpEAAA B4EpEAAACA EpEAAACHEp EAAACQEpEA AACZEpEAAA CoEpEA | |
| 6602 | AAC0EpEAAA C9EpEAAADE EsACAADaEp EAAADmEpkA AAD0EpEAAA D/EpEAAAAH E5EAAAAPE8 ACAAA0 | |
| 6603 | E+MGAACtE+ gGAADRE/YG AgACAAMAAg ADAAUAAgAE AAcAAgAFAA kAAgAGAAsA AQAIAA0AAg AHAA0A | |
| 6604 | AgAJAA8AAQ AKAA8AAgAL ABEAAQAMAB EAAgANABMA AQAOABMAAQ AQABUAAgAP ABUAAgARAB cAAQAS | |
| 6605 | ABcAAgATAB kAAgAiABsA AgAjAB0AAQ AkAB0AAgAl AB8AAQAmAB 8AAgAnACEA AQAoACEAAg ApACMA | |
| 6606 | AQAqACMAAg ArACUAAQAs ACUAAQAuAC cAAgAtACcA AgAyACkAAQ AzACkAAgA0 ACsAAQA1AC sAAgA2 | |
| 6607 | AC0AAQA3AC 0AAgA4AC8A AgA5ADEAAg A6ADMAAgA7 ADUAAgA8AD cAAgA9ADkA AgBCADsAAg BDAD0A | |
| 6608 | AgBNAD8AAg BOAEEAAQBP AEEAAgBQAE MAAQBRAEMA AgBSAEUAAQ BTAEUAAQBV AEcAAgBUAE cAAgBY | |
| 6609 | AEkAAgBZAE sAAgBaAE0A AgBbAE8AAg BcAFEAAgBd AFMAAgBeAF UAAgBfAFcA AQBgAFcAAg BhAFkA | |
| 6610 | AgBiAFsAAQ BjAFsAAgBm AF0AAgBnAF 8AAgBoAGEA AgBpAGMAAg BqAGUAAgBr AGcAAgBsAG kAAQBt | |
| 6611 | AGkAAgBuAG sAAQBvAGsA AgBwAG0AAQ BxAG0AAgBy AG8AAgBzAH EAAgCBAHMA AgCGAHUAAg CHAHcA | |
| 6612 | AgCKAHkAAg CLAHsAAQCM AHsAAgCNAH 0AAQCOAH0A AgCQAH8AAg CRAIEAAgCS AIMAAgCTAI UAAgCU | |
| 6613 | AIcAAQCVAI cAAgCWAIkA AQCXAIkAAg CYAIsAAQCZ AIsAAgCaAI 0AAQCbAI0A AgCcAI8AAQ CdAI8A | |
| 6614 | AgCeAJEAAQ CfAJEAAgCg AJMAAQChAJ MAAgCiAJUA AQCjAJUAAg CkAJcAAQCl AJcAAgCoAJ kAAgCp | |
| 6615 | AJsAAgCqAJ 0AAQCrAJ0A AgCsAJ8AAQ CuAKEAAgCt AKEAAgCvAK MAAQCwAKMA AgCzAKUAAg C4AKcA | |
| 6616 | AgC5AKkAAQ C6AKkAAgC7 AKsAJgmgCV oLjgujC54M pAwxDgSAAA ABAAAAnxdm TAAAAAAAAC 0cAAAE | |
| 6617 | AAAAAAAAAA AAAAABAK8B AAAAAAQAAA AAAAAAAAAA AAEAuAEAAA AACwAAAAAA AAAAAAAACg AjAgAA | |
| 6618 | AAALAAAAAA AAAAAAAAAK AIcCAAAAAA QAAAAAAAAA AAAAAAEA4Q IAAAAABAAA AAAAAAAAAA AA+gGT | |
| 6619 | CAAAAAAEAA AAAAAAAAAA AAABALkWAA AAAAQAAAAA AAAAAAAAAA EAkiAAAAAA AAAAAAEAAA CRJgAA | |
| 6620 | EgARAAAAAA AAPE1vZHVs ZT4AU1RfZm NlNjg2M2Nk OGM5NDE4N2 I3YmQyNTI4 MTMwNjM0ZT EuY3Nw | |
| 6621 | cm9qLmRsbA BFeGNlbENl bGwAT2ZmaW NlT3Blblht bABFeGNlbE NvbHVtbgBF eGNlbEhlYW RlckZv | |
| 6622 | b3RlclRleH QARXhjZWxI ZWFkZXJGb2 90ZXIARXhj ZWxQYWNrYW dlAEV4Y2Vs Um93AEV4Y2 VsU3R5 | |
| 6623 | bGVzAEV4Y2 VsQ2FsY01v ZGUARXhjZW xXb3JrYm9v awBFeGNlbF dvcmtzaGVl dABFeGNlbF dvcmtz | |
| 6624 | aGVldHMARX hjZWxXb3Jr c2hlZXRWaW V3AE9mZmlj ZVByb3Blcn RpZXMAUmVz b3VyY2VzAF NUX2Zj | |
| 6625 | ZTY4NjNjZD hjOTQxODdi N2JkMjUyOD EzMDYzNGUx LmNzcHJvai 5Qcm9wZXJ0 aWVzAFNldH Rpbmdz | |
| 6626 | AFNjcmlwdE 1haW4AU1Rf YzA4Yjk2MW ViYWMzNGNh Nzk5MzgxMT M3M2FmY2M2 NjMuY3Nwcm 9qAFNj | |
| 6627 | cmlwdFJlc3 VsdHMARmls ZVR5cGUAQ2 hpbGRFdmVu dExpc3Rlbm VyAG1zY29y bGliAFN5c3 RlbQBP | |
| 6628 | YmplY3QASU Rpc3Bvc2Fi bGUARW51bQ BTeXN0ZW0u Q29sbGVjdG lvbnMASUVu dW1lcmFibG UAU3lz | |
| 6629 | dGVtLkNvbm ZpZ3VyYXRp b24AQXBwbG ljYXRpb25T ZXR0aW5nc0 Jhc2UATWlj cm9zb2Z0Ll NxbFNl | |
| 6630 | cnZlci5TY3 JpcHRUYXNr AE1pY3Jvc2 9mdC5TcWxT ZXJ2ZXIuRH RzLlRhc2tz LlNjcmlwdF Rhc2sA | |
| 6631 | VlNUQVJUU2 NyaXB0T2Jq ZWN0TW9kZW xCYXNlAE1p Y3Jvc29mdC 5TcWxTZXJ2 ZXIuTWFuYW dlZERU | |
| 6632 | UwBNaWNyb3 NvZnQuU3Fs U2VydmVyLk R0cy5SdW50 aW1lAERlZm F1bHRFdmVu dHMAX3hsV2 9ya3No | |
| 6633 | ZWV0AFN5c3 RlbS5YbWwA WG1sRWxlbW VudABfY2Vs bEVsZW1lbn QAX3JvdwBf Y29sAF92YW x1ZQBf | |
| 6634 | dmFsdWVSZW YAX2Zvcm11 bGEAX2RhdG FUeXBlAFVy aQBfaHlwZX JsaW5rAC5j dG9yAGdldF 9FbGVt | |
| 6635 | ZW50AGdldF 9Sb3cAZ2V0 X0NvbHVtbg BnZXRfQ2Vs bEFkZHJlc3 MAZ2V0X0lz TnVtZXJpYw BnZXRf | |
| 6636 | VmFsdWUAc2 V0X1ZhbHVl AGdldF9EYX RhVHlwZQBz ZXRfRGF0YV R5cGUAZ2V0 X1N0eWxlAH NldF9T | |
| 6637 | dHlsZQBnZX RfU3R5bGVJ RABzZXRfU3 R5bGVJRABn ZXRfSHlwZX JsaW5rAHNl dF9IeXBlcm xpbmsA | |
| 6638 | Z2V0X0Zvcm 11bGEAc2V0 X0Zvcm11bG EAZ2V0X0Nv bW1lbnQAUm Vtb3ZlVmFs dWUAVG9TdH JpbmcA | |
| 6639 | SXNOdW1lcm ljVmFsdWUA U2V0U2hhcm VkU3RyaW5n AEdldFNoYX JlZFN0cmlu ZwBBZGRGb3 JtdWxh | |
| 6640 | RWxlbWVudA BHZXRPckNy ZWF0ZUNlbG xFbGVtZW50 AEdldENvbH VtbkxldHRl cgBHZXRDb2 x1bW5O | |
| 6641 | dW1iZXIAR2 V0Um93TnVt YmVyAEdldE NlbGxBZGRy ZXNzAElzVm FsaWRDZWxs QWRkcmVzcw BVcGRh | |
| 6642 | dGVGb3JtdW xhUmVmZXJl bmNlcwBFbG VtZW50AFJv dwBDb2x1bW 4AQ2VsbEFk ZHJlc3MASX NOdW1l | |
| 6643 | cmljAFZhbH VlAERhdGFU eXBlAFN0eW xlAFN0eWxl SUQASHlwZX JsaW5rAEZv cm11bGEAQ2 9tbWVu | |
| 6644 | dABfY29sRW xlbWVudABY bWxOYW1lc3 BhY2VNYW5h Z2VyAF9uc0 1hbmFnZXIA Z2V0X0NvbH Vtbk1p | |
| 6645 | bgBzZXRfQ2 9sdW1uTWlu AGdldF9Db2 x1bW5NYXgA c2V0X0NvbH Vtbk1heABn ZXRfSGlkZG VuAHNl | |
| 6646 | dF9IaWRkZW 4AZ2V0X1dp ZHRoAHNldF 9XaWR0aABD b2x1bW5NaW 4AQ29sdW1u TWF4AEhpZG RlbgBX | |
| 6647 | aWR0aABMZW Z0QWxpZ25l ZFRleHQAQ2 VudGVyZWRU ZXh0AFJpZ2 h0QWxpZ25l ZFRleHQAUG FnZU51 | |
| 6648 | bWJlcgBOdW 1iZXJPZlBh Z2VzAFNoZW V0TmFtZQBG aWxlUGF0aA BGaWxlTmFt ZQBDdXJyZW 50RGF0 | |
| 6649 | ZQBDdXJyZW 50VGltZQBf aGVhZGVyRm 9vdGVyTm9k ZQBfb2RkSG VhZGVyAF9v ZGRGb290ZX IAX2V2 | |
| 6650 | ZW5IZWFkZX IAX2V2ZW5G b290ZXIAX2 ZpcnN0SGVh ZGVyAF9maX JzdEZvb3Rl cgBOdWxsYW JsZWAx | |
| 6651 | AF9hbGlnbl dpdGhNYXJn aW5zAF9kaW ZmZXJlbnRP ZGRFdmVuAF 9kaWZmZXJl bnRGaXJzdA BnZXRf | |
| 6652 | QWxpZ25XaX RoTWFyZ2lu cwBzZXRfQW xpZ25XaXRo TWFyZ2lucw BnZXRfZGlm ZmVyZW50T2 RkRXZl | |
| 6653 | bgBzZXRfZG lmZmVyZW50 T2RkRXZlbg BnZXRfZGlm ZmVyZW50Rm lyc3QAc2V0 X2RpZmZlcm VudEZp | |
| 6654 | cnN0AGdldF 9vZGRIZWFk ZXIAZ2V0X2 9kZEZvb3Rl cgBnZXRfZX ZlbkhlYWRl cgBnZXRfZX ZlbkZv | |
| 6655 | b3RlcgBnZX RfZmlyc3RI ZWFkZXIAZ2 V0X2ZpcnN0 Rm9vdGVyAF NhdmUAR2V0 SGVhZGVyRm 9vdGVy | |
| 6656 | VGV4dABBbG lnbldpdGhN YXJnaW5zAG RpZmZlcmVu dE9kZEV2ZW 4AZGlmZmVy ZW50Rmlyc3 QAb2Rk | |
| 6657 | SGVhZGVyAG 9kZEZvb3Rl cgBldmVuSG VhZGVyAGV2 ZW5Gb290ZX IAZmlyc3RI ZWFkZXIAZm lyc3RG | |
| 6658 | b290ZXIAc2 NoZW1hTWFp bgBzY2hlbW FSZWxhdGlv bnNoaXBzAF dpbmRvd3NC YXNlAFN5c3 RlbS5J | |
| 6659 | Ty5QYWNrYW dpbmcAUGFj a2FnZQBfcG Fja2FnZQBf b3V0cHV0Rm 9sZGVyUGF0 aABfd29ya2 Jvb2sA | |
| 6660 | U3lzdGVtLk lPAEZpbGVJ bmZvAERlYn VnTW9kZQBn ZXRfUGFja2 FnZQBnZXRf V29ya2Jvb2 sAWG1s | |
| 6661 | RG9jdW1lbn QAV3JpdGVE ZWJ1Z0ZpbG UAR2V0U2hh cmVkVXJpAE FkZFNjaGVt YUF0dHJpYn V0ZQBT | |
| 6662 | YXZlUGFydA BEaXNwb3Nl AEdldFhtbE Zyb21VcmkA V29ya2Jvb2 sAX3Jvd0Vs ZW1lbnQAWG 1sTm9k | |
| 6663 | ZQBnZXRfTm 9kZQBnZXRf SGVpZ2h0AH NldF9IZWln aHQATm9kZQ BIZWlnaHQA dmFsdWVfXw BBdXRv | |
| 6664 | bWF0aWMAQX V0b21hdGlj Tm9UYWJsZQ BNYW51YWwA X3hsUGFja2 FnZQBfdXJp V29ya2Jvb2 sAX3Vy | |
| 6665 | aVNoYXJlZF N0cmluZ3MA X3VyaVN0eW xlcwBfdXJp Q2FsY0NoYW luAF94bWxX b3JrYm9vaw BfeG1s | |
| 6666 | U2hhcmVkU3 RyaW5ncwBf eG1sU3R5bG VzAF93b3Jr c2hlZXRzAF 9wcm9wZXJ0 aWVzAGdldF 9Xb3Jr | |
| 6667 | c2hlZXRzAG dldF9Xb3Jr Ym9va1VyaQ BnZXRfU3R5 bGVzVXJpAG dldF9TaGFy ZWRTdHJpbm dzVXJp | |
| 6668 | AFBhY2thZ2 VQYXJ0AGdl dF9QYXJ0AG dldF9Xb3Jr Ym9va1htbA BnZXRfU2hh cmVkU3RyaW 5nc1ht | |
| 6669 | bABnZXRfU3 R5bGVzWG1s AHNldF9TdH lsZXNYbWwA Z2V0X1Byb3 BlcnRpZXMA Z2V0X0NhbG NNb2Rl | |
| 6670 | AHNldF9DYW xjTW9kZQBX b3Jrc2hlZX RzAFdvcmti b29rVXJpAF N0eWxlc1Vy aQBTaGFyZW RTdHJp | |
| 6671 | bmdzVXJpAF BhcnQAV29y a2Jvb2tYbW wAU2hhcmVk U3RyaW5nc1 htbABTdHls ZXNYbWwAUH JvcGVy | |
| 6672 | dGllcwBDYW xjTW9kZQB0 ZW1wQ29sdW 1uTnVtYmVy VGFnAHhsUG Fja2FnZQBf d29ya3NoZW V0VXJp | |
| 6673 | AF9uYW1lAF 9zaGVldElE AF9oaWRkZW 4AX3JlbGF0 aW9uc2hpcE lEAF93b3Jr c2hlZXRYbW wAX3No | |
| 6674 | ZWV0Vmlldw BfaGVhZGVy Rm9vdGVyAG dldF9Xb3Jr c2hlZXRVcm kAZ2V0X1Jl bGF0aW9uc2 hpcElE | |
| 6675 | AGdldF9TaG VldElEAGdl dF9OYW1lU3 BhY2VNYW5h Z2VyAGdldF 9WaWV3AGdl dF9OYW1lAH NldF9O | |
| 6676 | YW1lAGdldF 9kZWZhdWx0 Um93SGVpZ2 h0AHNldF9k ZWZhdWx0Um 93SGVpZ2h0 AGdldF9Xb3 Jrc2hl | |
| 6677 | ZXRYbWwAZ2 V0X0hlYWRl ckZvb3Rlcg BDZWxsAENy ZWF0ZVNoYX JlZEZvcm11 bGEAQ3JlYX RlQ29u | |
| 6678 | ZGl0aW9uYW xGb3JtYXR0 aW5nAEluc2 VydFJvdwBE ZWxldGVSb3 cAQWRkTnVt ZXJpY0NlbG xJRHMA | |
| 6679 | UmVwbGFjZU 51bWVyaWND ZWxsSURzAE dldFN0eWxl TmFtZQBHZX RTdHlsZUlE AFdvcmtzaG VldFVy | |
| 6680 | aQBSZWxhdG lvbnNoaXBJ RABTaGVldE lEAE5hbWVT cGFjZU1hbm FnZXIAVmll dwBOYW1lAG RlZmF1 | |
| 6681 | bHRSb3dIZW lnaHQAV29y a3NoZWV0WG 1sAEhlYWRl ckZvb3Rlcg BTeXN0ZW0u Q29sbGVjdG lvbnMu | |
| 6682 | R2VuZXJpYw BEaWN0aW9u YXJ5YDIAX3 dvcmtzaGVl dHNOb2RlAG dldF9Db3Vu dABJRW51bW VyYXRv | |
| 6683 | cgBHZXRFbn VtZXJhdG9y AEFkZABDcm VhdGVOZXdX b3Jrc2hlZX QARGVsZXRl AGdldF9JdG VtAENv | |
| 6684 | cHkAQ291bn QASXRlbQBn ZXRfU2hlZX RWaWV3RWxl bWVudABnZX RfVGFiU2Vs ZWN0ZWQAc2 V0X1Rh | |
| 6685 | YlNlbGVjdG VkAGdldF9Q YWdlTGF5b3 V0VmlldwBz ZXRfUGFnZU xheW91dFZp ZXcAU2hlZX RWaWV3 | |
| 6686 | RWxlbWVudA BUYWJTZWxl Y3RlZABQYW dlTGF5b3V0 VmlldwBzY2 hlbWFDb3Jl AHNjaGVtZU V4dGVu | |
| 6687 | ZGVkAHNjaG VtYUN1c3Rv bQBzY2hlbW FEYwBzY2hl bWFEY1Rlcm 1zAHNjaGVt YURjbWlUeX BlAHNj | |
| 6688 | aGVtYVhzaQ BzY2hlbWFW dABfdXJpUH JvcGVydGll c0NvcmUAX3 VyaVByb3Bl cnRpZXNFeH RlbmRl | |
| 6689 | ZABfdXJpUH JvcGVydGll c0N1c3RvbQ BfeG1sUHJv cGVydGllc0 NvcmUAX3ht bFByb3Blcn RpZXNF | |
| 6690 | eHRlbmRlZA BfeG1sUHJv cGVydGllc0 N1c3RvbQBn ZXRfQ29yZV Byb3BlcnRp ZXNVcmkAZ2 V0X0V4 | |
| 6691 | dGVuZGVkUH JvcGVydGll c1VyaQBnZX RfQ3VzdG9t UHJvcGVydG llc1VyaQBn ZXRfQ29yZV Byb3Bl | |
| 6692 | cnRpZXNYbW wAZ2V0X1Rp dGxlAHNldF 9UaXRsZQBn ZXRfU3Viam VjdABzZXRf U3ViamVjdA BnZXRf | |
| 6693 | QXV0aG9yAH NldF9BdXRo b3IAZ2V0X0 NvbW1lbnRz AHNldF9Db2 1tZW50cwBn ZXRfS2V5d2 9yZHMA | |
| 6694 | c2V0X0tleX dvcmRzAGdl dF9MYXN0TW 9kaWZpZWRC eQBzZXRfTG FzdE1vZGlm aWVkQnkAZ2 V0X0xh | |
| 6695 | c3RQcmludG VkAHNldF9M YXN0UHJpbn RlZABnZXRf Q2F0ZWdvcn kAc2V0X0Nh dGVnb3J5AG dldF9T | |
| 6696 | dGF0dXMAc2 V0X1N0YXR1 cwBHZXRDb3 JlUHJvcGVy dHlWYWx1ZQ BTZXRDb3Jl UHJvcGVydH lWYWx1 | |
| 6697 | ZQBnZXRfRX h0ZW5kZWRQ cm9wZXJ0aW VzWG1sAGdl dF9BcHBsaW NhdGlvbgBn ZXRfSHlwZX JsaW5r | |
| 6698 | QmFzZQBzZX RfSHlwZXJs aW5rQmFzZQ BnZXRfQXBw VmVyc2lvbg BnZXRfQ29t cGFueQBzZX RfQ29t | |
| 6699 | cGFueQBnZX RfTWFuYWdl cgBzZXRfTW FuYWdlcgBH ZXRFeHRlbm RlZFByb3Bl cnR5VmFsdW UAU2V0 | |
| 6700 | RXh0ZW5kZW RQcm9wZXJ0 eVZhbHVlAG dldF9DdXN0 b21Qcm9wZX J0aWVzWG1s AEdldEN1c3 RvbVBy | |
| 6701 | b3BlcnR5Vm FsdWUAU2V0 Q3VzdG9tUH JvcGVydHlW YWx1ZQBDb3 JlUHJvcGVy dGllc1VyaQ BFeHRl | |
| 6702 | bmRlZFByb3 BlcnRpZXNV cmkAQ3VzdG 9tUHJvcGVy dGllc1VyaQ BDb3JlUHJv cGVydGllc1 htbABU | |
| 6703 | aXRsZQBTdW JqZWN0AEF1 dGhvcgBDb2 1tZW50cwBL ZXl3b3Jkcw BMYXN0TW9k aWZpZWRCeQ BMYXN0 | |
| 6704 | UHJpbnRlZA BDYXRlZ29y eQBTdGF0dX MARXh0ZW5k ZWRQcm9wZX J0aWVzWG1s AEFwcGxpY2 F0aW9u | |
| 6705 | AEh5cGVybG lua0Jhc2UA QXBwVmVyc2 lvbgBDb21w YW55AE1hbm FnZXIAQ3Vz dG9tUHJvcG VydGll | |
| 6706 | c1htbABTeX N0ZW0uUmVz b3VyY2VzAF Jlc291cmNl TWFuYWdlcg ByZXNvdXJj ZU1hbgBTeX N0ZW0u | |
| 6707 | R2xvYmFsaX phdGlvbgBD dWx0dXJlSW 5mbwByZXNv dXJjZUN1bH R1cmUAZ2V0 X1Jlc291cm NlTWFu | |
| 6708 | YWdlcgBnZX RfQ3VsdHVy ZQBzZXRfQ3 VsdHVyZQBD dWx0dXJlAG RlZmF1bHRJ bnN0YW5jZQ BnZXRf | |
| 6709 | RGVmYXVsdA BEZWZhdWx0 AGlucHV0Rm lsZVR5cGUA bG9nU3RyaW 5nAF9lZGlw aUNvbHVtbg Bfc3Nu | |
| 6710 | Q29sdW1uAF 9sYWJSZXBv cnREYXRlQ2 9sdW1uAF9r ZXlGaWVsZE NvbHVtbgBf a2V5RmllbG RDb2x1 | |
| 6711 | bW5OYW1lAG lucHV0Rmls ZU5hbWUATG lzdGAxAHJh d0VkaXBpcw B2YWxpZEtl eUZpZWxkcw BrZXlU | |
| 6712 | b0VkaXBpAH ZhbGlkRWRp cGlJY25zAF 9pbnB1dEV4 Y2VsAF9iYW NrdXBFeGNl bABfaW5wdX RFeGNl | |
| 6713 | bENvbHVtbk NvdW50AF9p bnB1dEV4Y2 VsUm93Q291 bnQAX2lucH V0RXhjZWxX b3Jrc2hlZX QAX2Nv | |
| 6714 | bm5lY3Rpb2 5TdHJpbmdT dGFnaW5nRG F0YWJhc2UA X2Nvbm5lY3 Rpb25TdHJp bmdSZWdpc3 RyeURh | |
| 6715 | dGFiYXNlAE d1aWQAX2d1 aWRJZABfZG 9kX2ZyYWdt ZW50X3Jhd1 9kYXRhX2lk AGVmckRvRE ZyYWdM | |
| 6716 | b2dBbGxUcm Fuc2FjdGlv bnMAZWZyRG 9ERnJhZ0Ny c012aUV0bE 5hbWUAZWZy RG9ERnJhZ0 VkaXBp | |
| 6717 | Q29sdW1uTm FtZQBlZnJE b0RGcmFnTG FiUmVwb3J0 Q29sdW1uTm FtZQBlZnJE b0RGcmFnU3 NuQ29s | |
| 6718 | dW1uTmFtZQ BlZnJEb0RG cmFnQXJjaG l2ZUZvbGRl cgBlZnJEb0 RGcmFnSnBj S2V5RmllbG QAZWZy | |
| 6719 | RG9ERnJhZ1 VzYWZLZXlG aWVsZABlZn JEb0RGcmFn RW1mS2V5Rm llbGQAZWZy RG9ERnJhZ0 pwY0xh | |
| 6720 | YkRhdGVGaW VsZABlZnJE b0RGcmFnVX NhZkxhYkRh dGVGaWVsZA BlZnJEb0RG cmFnRW1mTG FiRGF0 | |
| 6721 | ZUZpZWxkAG VmckRvREZy YWdUZXN0TW 9kZQBNYWlu AE1vdmVGaW xlc1RvQXJj aGl2ZQBJbn NlcnRG | |
| 6722 | cmFnUmF3RG F0YQBTeXN0 ZW0uRGF0YQ BEYXRhVGFi bGUAR2V0RG 9ERnJhZ0Rh dGFUYWJsZQ BJbnNl | |
| 6723 | cnRVcGRhdG VkRXhjZWxG aWxlVG9EYX RhYmFzZQBH ZW5lcmF0ZV VwZGF0ZWRF eGNlbEZpbG UAaW5z | |
| 6724 | ZXJ0RG9EX0 ZyYWdtZW50 X0RhdGFfUm VjZWl2ZV9M b2cAc2V0dX BDb25uZWN0 aW9uU3RyaW 5ncwBs | |
| 6725 | b2FkSW5wdX RFeGNlbERh dGEAc2V0Um F3RWRpcGlz RnJvbUlucH V0AHNldENv bHVtbnMAZX hlY3V0 | |
| 6726 | ZUNSU01WSV BhY2thZ2UA Z2VuZXJhdG VCYWNrdXBF eGNlbEZpbG VOYW1lAHJl dHJpZXZlRG F0YWJh | |
| 6727 | c2VFZGlwaX MAaW5zZXJ0 UmF3RWRpcG lzSW50b0Rh dGFiYXNlAH NldENvbmZp Z1ZhbHVlcw B3cml0 | |
| 6728 | ZUxvZwBTdW NjZXNzAEZh aWx1cmUASl BDAFVTQUYA RU1GAFVOSw BTY3JpcHRP YmplY3RNb2 RlbABk | |
| 6729 | dHMARHRzT2 JqZWN0AE9u RXJyb3IAT2 5JbmZvcm1h dGlvbgBPbl dhcm5pbmcA eGxXb3Jrc2 hlZXQA | |
| 6730 | cm93AGNvbA B2YWx1ZQBz dHJpbmdJRA BpQ29sdW1u TnVtYmVyAG NlbGxBZGRy ZXNzAGlSb3 cAaUNv | |
| 6731 | bHVtbgByb3 dJbmNyZW1l bnQAY29sSW 5jcmVtZW50 AGFmdGVyUm 93AGFmdGVy Q29sdW1uAF dvcmtz | |
| 6732 | aGVldABIZW FkZXJGb290 ZXJOb2RlAG luU3RydWN0 AG5ld0ZpbG UAdGVtcGxh dGUAWG1sRG 9jAHN1 | |
| 6733 | YkZvbGRlcg B1cmlQYXJl bnQAUmVsYX Rpb25zaGlw AHJvb3QAc2 NoZW1hAG5h bWVTcGFjZQ B1cmlQ | |
| 6734 | YXJ0AHhtbF BhcnQAUGFy ZW50WGxQYW NrYWdlAHNo ZWV0TmFtZQ B1cmlXb3Jr c2hlZXQASG lkZQBz | |
| 6735 | dGFydENlbG wAZW5kQ2Vs bABjb2xvcg Bwb3NpdGlv bgByb3dUb0 RlbGV0ZQBz aGlmdE90aG VyUm93 | |
| 6736 | c1VwAFN0eW xlTmFtZQBw b3NpdGlvbk lEAFBvc2l0 aW9uSUQATm V3TmFtZQBw cm9wZXJ0eU 5hbWUA | |
| 6737 | cHJvcFZhbH VlAGR0AGlu cHV0RXhjZW xGaWxlAHNv dXJjZQBlcn JvckNvZGUA c3ViQ29tcG 9uZW50 | |
| 6738 | AGRlc2NyaX B0aW9uAGhl bHBGaWxlAG hlbHBDb250 ZXh0AGlkb2 ZJbnRlcmZh Y2VXaXRoRX Jyb3IA | |
| 6739 | aW5mb3JtYX Rpb25Db2Rl AGZpcmVBZ2 FpbgB3YXJu aW5nQ29kZQ BTeXN0ZW0u UnVudGltZS 5WZXJz | |
| 6740 | aW9uaW5nAF RhcmdldEZy YW1ld29ya0 F0dHJpYnV0 ZQBTeXN0ZW 0uUmVmbGVj dGlvbgBBc3 NlbWJs | |
| 6741 | eVRpdGxlQX R0cmlidXRl AEFzc2VtYm x5RGVzY3Jp cHRpb25BdH RyaWJ1dGUA QXNzZW1ibH lDb25m | |
| 6742 | aWd1cmF0aW 9uQXR0cmli dXRlAEFzc2 VtYmx5Q29t cGFueUF0dH JpYnV0ZQBB c3NlbWJseV Byb2R1 | |
| 6743 | Y3RBdHRyaW J1dGUAQXNz ZW1ibHlDb3 B5cmlnaHRB dHRyaWJ1dG UAQXNzZW1i bHlUcmFkZW 1hcmtB | |
| 6744 | dHRyaWJ1dG UAQXNzZW1i bHlDdWx0dX JlQXR0cmli dXRlAEFzc2 VtYmx5VmVy c2lvbkF0dH JpYnV0 | |
| 6745 | ZQBTeXN0ZW 0uUnVudGlt ZS5Db21waW xlclNlcnZp Y2VzAENvbX BpbGF0aW9u UmVsYXhhdG lvbnNB | |
| 6746 | dHRyaWJ1dG UAUnVudGlt ZUNvbXBhdG liaWxpdHlB dHRyaWJ1dG UAU1RfZmNl Njg2M2NkOG M5NDE4 | |
| 6747 | N2I3YmQyNT I4MTMwNjM0 ZTEuY3Nwcm 9qAEV4Y2Vw dGlvbgBTZW xlY3RTaW5n bGVOb2RlAG dldF9J | |
| 6748 | bm5lclRleH QAWG1sQXR0 cmlidXRlQ2 9sbGVjdGlv bgBnZXRfQX R0cmlidXRl cwBYbWxBdH RyaWJ1 | |
| 6749 | dGUAZ2V0X0 l0ZW1PZgBT dHJpbmcAb3 BfRXF1YWxp dHkAQ29udm VydABUb0lu dDMyAGdldF 9Pd25l | |
| 6750 | ckRvY3VtZW 50AENyZWF0 ZUVsZW1lbn QAQXBwZW5k Q2hpbGQAWG 1sTmFtZWRO b2RlTWFwAF JlbW92 | |
| 6751 | ZU5hbWVkSX RlbQBJbnQz MgBDcmVhdG VBdHRyaWJ1 dGUAQXBwZW 5kAHNldF9J bm5lclRleH QAR2V0 | |
| 6752 | QXR0cmlidX RlAG9wX0lu ZXF1YWxpdH kAUGFyc2UA U2V0QXR0cm lidXRlAEZv cm1hdABHZX ROYW1l | |
| 6753 | ZEl0ZW0AUG Fja2FnZVJl bGF0aW9uc2 hpcABHZXRS ZWxhdGlvbn NoaXAAZ2V0 X1RhcmdldF VyaQBn | |
| 6754 | ZXRfRG9jdW 1lbnRFbGVt ZW50AEluc2 VydEFmdGVy AFRhcmdldE 1vZGUAQ3Jl YXRlUmVsYX Rpb25z | |
| 6755 | aGlwAGdldF 9JZABSZW1v dmVDaGlsZA BTeXN0ZW0u VGV4dC5SZW d1bGFyRXhw cmVzc2lvbn MAUmVn | |
| 6756 | ZXgASXNNYX RjaABYbWxO b2RlTGlzdA BTZWxlY3RO b2RlcwBJbn NlcnRCZWZv cmUAZ2V0X0 N1cnJl | |
| 6757 | bnQATW92ZU 5leHQAVG9E b3VibGUAQ2 hhcgBDb25j YXQAVG9DaG FyQXJyYXkA SXNOdW1iZX IAZ2V0 | |
| 6758 | X0xlbmd0aA BTdWJzdHJp bmcAUmVnZX hPcHRpb25z AFJlcGxhY2 UAU3BsaXQA TmFtZVRhYm xlAFht | |
| 6759 | bE5hbWVUYW JsZQBBZGRO YW1lc3BhY2 UAZ2V0X0No aWxkTm9kZX MARG91Ymxl AGdldF9IYX NWYWx1 | |
| 6760 | ZQBnZXRfRG lyZWN0b3J5 TmFtZQBGaW xlU3lzdGVt SW5mbwBnZX RfRXhpc3Rz AGdldF9GdW xsTmFt | |
| 6761 | ZQBGaWxlTW 9kZQBGaWxl QWNjZXNzAE 9wZW4AVXJp S2luZABDcm VhdGVQYXJ0 AERlbGV0ZV BhcnQA | |
| 6762 | Q29weVRvAH NldF9Jc1Jl YWRPbmx5AE RpcmVjdG9y eUluZm8AQ3 JlYXRlAEdl dFBhcnQAUG Fja2Fn | |
| 6763 | ZVJlbGF0aW 9uc2hpcENv bGxlY3Rpb2 4AR2V0UmVs YXRpb25zaG lwc0J5VHlw ZQBJRW51bW VyYXRv | |
| 6764 | cmAxAFBhY2 tVcmlIZWxw ZXIAUmVzb2 x2ZVBhcnRV cmkAU3RyZW FtAEdldFN0 cmVhbQBDbG 9zZQBM | |
| 6765 | b2FkAFBhcn RFeGlzdHMA U3RyZWFtV3 JpdGVyAFRl eHRXcml0ZX IARmx1c2gA R2V0UmVsYX Rpb25z | |
| 6766 | aGlwcwBEZW xldGVSZWxh dGlvbnNoaX AAU3lzdGVt LldpbmRvd3 MuRm9ybXMA TWVzc2FnZU JveABE | |
| 6767 | aWFsb2dSZX N1bHQAU2hv dwBCb29sZW FuAFJlbW92 ZQBEZWZhdW x0TWVtYmVy QXR0cmlidX RlAFRv | |
| 6768 | Qm9vbGVhbg BWYWx1ZUNv bGxlY3Rpb2 4AZ2V0X1Zh bHVlcwBFbn VtZXJhdG9y AFJlbW92ZU F0dHJp | |
| 6769 | YnV0ZQBnZX RfTGFzdENo aWxkAFN5c3 RlbS5EaWFn bm9zdGljcw BEZWJ1Z2dl ck5vblVzZX JDb2Rl | |
| 6770 | QXR0cmlidX RlAFR5cGUA UnVudGltZV R5cGVIYW5k bGUAR2V0VH lwZUZyb21I YW5kbGUAQX NzZW1i | |
| 6771 | bHkAZ2V0X0 Fzc2VtYmx5 AFN5c3RlbS 5Db21wb25l bnRNb2RlbA BFZGl0b3JC cm93c2FibG VBdHRy | |
| 6772 | aWJ1dGUARW RpdG9yQnJv d3NhYmxlU3 RhdGUAQ29t cGlsZXJHZW 5lcmF0ZWRB dHRyaWJ1dG UALmNj | |
| 6773 | dG9yAFNTSV NTY3JpcHRU YXNrRW50cn lQb2ludEF0 dHJpYnV0ZQ BnZXRfRHRz AHNldF9UYX NrUmVz | |
| 6774 | dWx0AGdldF 9UYXNrUmVz dWx0AFBhdG gAR2V0Rmls ZU5hbWVXaX Rob3V0RXh0 ZW5zaW9uAE RhdGVU | |
| 6775 | aW1lAGdldF 9Ob3cAR2V0 RXh0ZW5zaW 9uAEZpbGUA TW92ZQBHZX RGaWxlTmFt ZQBnZXRfTW Vzc2Fn | |
| 6776 | ZQBDb250YW lucwBUcnlH ZXRWYWx1ZQ BnZXRfSW52 YXJpYW50Q3 VsdHVyZQBJ Rm9ybWF0UH Jvdmlk | |
| 6777 | ZXIARnJvbU 9BRGF0ZQBE YXRhUm93Q2 9sbGVjdGlv bgBnZXRfUm 93cwBEYXRh Um93AEludG VybmFs | |
| 6778 | RGF0YUNvbG xlY3Rpb25C YXNlAERhdG FDb2x1bW5D b2xsZWN0aW 9uAGdldF9D b2x1bW5zAE RhdGFD | |
| 6779 | b2x1bW4ARm lsZVN0cmVh bQBPcGVuUm VhZABCeXRl AFJlYWQAU3 lzdGVtLkRh dGEuU3FsQ2 xpZW50 | |
| 6780 | AFNxbENvbm 5lY3Rpb24A U3FsQ29tbW FuZABTcWxQ YXJhbWV0ZX JDb2xsZWN0 aW9uAGdldF 9QYXJh | |
| 6781 | bWV0ZXJzAF NxbFBhcmFt ZXRlcgBTeX N0ZW0uRGF0 YS5Db21tb2 4ARGJDb21t YW5kAENvbW 1hbmRU | |
| 6782 | eXBlAHNldF 9Db21tYW5k VHlwZQBzZX RfQ29ubmVj dGlvbgBEYk Nvbm5lY3Rp b24ARXhlY3 V0ZU5v | |
| 6783 | blF1ZXJ5AE V4ZWN1dGVT Y2FsYXIAU3 lzdGVtLlRo cmVhZGluZw BUaHJlYWQA U2xlZXAAQ2 9udGFp | |
| 6784 | bnNLZXkAU3 FsQnVsa0Nv cHkAc2V0X0 Rlc3RpbmF0 aW9uVGFibG VOYW1lAFNx bEJ1bGtDb3 B5Q29s | |
| 6785 | dW1uTWFwcG luZ0NvbGxl Y3Rpb24AZ2 V0X0NvbHVt bk1hcHBpbm dzAFNxbEJ1 bGtDb3B5Q2 9sdW1u | |
| 6786 | TWFwcGluZw BXcml0ZVRv U2VydmVyAF ZhcmlhYmxl cwBnZXRfVm FyaWFibGVz AFZhcmlhYm xlAFRy | |
| 6787 | aW0AVG9Mb3 dlcgBUb1Vw cGVyAElEVF NFdmVudHMA TG9hZEZyb2 1TcWxTZXJ2 ZXIARXhlY3 V0YWJs | |
| 6788 | ZQBEVFNFeG VjUmVzdWx0 AENvbm5lY3 Rpb25zAElE VFNMb2dnaW 5nAEV4ZWN1 dGUAR2V0RG lyZWN0 | |
| 6789 | b3J5TmFtZQ BFeGlzdHMA U3FsRGF0YV JlYWRlcgBF eGVjdXRlUm VhZGVyAERi RGF0YVJlYW RlcgBH | |
| 6790 | ZXRPcmRpbm FsAEdldFN0 cmluZwBEYl BhcmFtZXRl ckNvbGxlY3 Rpb24AQ2xl YXIAQWRkV2 l0aFZh | |
| 6791 | bHVlAGdldF 9Jbm5lckV4 Y2VwdGlvbg BTcWxEYXRh QWRhcHRlcg BEYkRhdGFB ZGFwdGVyAE ZpbGwA | |
| 6792 | TmV3R3VpZA BFdmVudHNP YmplY3RXcm FwcGVyAGdl dF9FdmVudH MARmlyZUVy cm9yAEZpcm VJbmZv | |
| 6793 | cm1hdGlvbg BGaXJlV2Fy bmluZwBTVF 9mY2U2ODYz Y2Q4Yzk0MT g3YjdiZDI1 MjgxMzA2Mz RlMS5j | |
| 6794 | c3Byb2ouUH JvcGVydGll cy5SZXNvdX JjZXMucmVz b3VyY2VzAA AAgI1FAHgA YwBlAGwAQw BlAGwA | |
| 6795 | bAAgAEMAbw BuAHMAdABy AHUAYwB0AG 8AcgA6ACAA TgBlAGcAYQ B0AGkAdgBl ACAAcgBvAH cAIABh | |
| 6796 | AG4AZAAgAG MAbwBsAHUA bQBuACAAbg B1AG0AYgBl AHIAcwAgAG EAcgBlACAA bgBvAHQAIA BhAGwA | |
| 6797 | bABvAHcAZQ BkAACAh0UA eABjAGUAbA BDAGUAbABs ACAAQwBvAG 4AcwB0AHIA dQBjAHQAbw ByADoA | |
| 6798 | IAB4AGwAVw BvAHIAawBz AGgAZQBlAH QAIABtAHUA cwB0ACAAYg BlACAAcwBl AHQAIAB0AG 8AIABh | |
| 6799 | ACAAdgBhAG wAaQBkACAA cgBlAGYAZQ ByAGUAbgBj AGUAAAsuAC 8AZAA6AHYA AAEAA3QAAA NzAAAD | |
| 6800 | dgAAc2gAdA B0AHAAOgAv AC8AcwBjAG gAZQBtAGEA cwAuAG8AcA BlAG4AeABt AGwAZgBvAH IAbQBh | |
| 6801 | AHQAcwAuAG 8AcgBnAC8A cwBwAHIAZQ BhAGQAcwBo AGUAZQB0AG 0AbAAvADIA MAAwADYALw BtAGEA | |
| 6802 | aQBuAABRLw AvAGQAOgBo AHkAcABlAH IAbABpAG4A awBzAC8AZA A6AGgAeQBw AGUAcgBsAG kAbgBr | |
| 6803 | AFsAQAByAG UAZgAgAD0A IAAnAHsAMA B9ACcAXQAB BWkAZAAAgI doAHQAdABw ADoALwAvAH MAYwBo | |
| 6804 | AGUAbQBhAH MALgBvAHAA ZQBuAHgAbQ BsAGYAbwBy AG0AYQB0AH MALgBvAHIA ZwAvAG8AZg BmAGkA | |
| 6805 | YwBlAEQAbw BjAHUAbQBl AG4AdAAvAD IAMAAwADYA LwByAGUAbA BhAHQAaQBv AG4AcwBoAG kAcABz | |
| 6806 | AAAdLwAvAG QAOgBoAHkA cABlAHIAbA BpAG4AawBz AAAVaAB5AH AAZQByAGwA aQBuAGsAcw AAMy8A | |
| 6807 | LwBkADoAYw BvAG4AZABp AHQAaQBvAG 4AYQBsAEYA bwByAG0AYQ B0AHQAaQBu AGcAAB0vAC 8AZAA6 | |
| 6808 | AG0AZQByAG cAZQBDAGUA bABsAHMAAB svAC8AZAA6 AHMAaABlAG UAdABEAGEA dABhAAA3Lg AvAGQA | |
| 6809 | OgBoAHkAcA BlAHIAbABp AG4AawBbAE AAcgBlAGYA IAA9ACAAJw B7ADAAfQAn AF0AARNoAH kAcABl | |
| 6810 | AHIAbABpAG 4AawAAB3IA ZQBmAAADcg AAgJtoAHQA dABwADoALw AvAHMAYwBo AGUAbQBhAH MALgBv | |
| 6811 | AHAAZQBuAH gAbQBsAGYA bwByAG0AYQ B0AHMALgBv AHIAZwAvAG 8AZgBmAGkA YwBlAEQAbw BjAHUA | |
| 6812 | bQBlAG4AdA AvADIAMAAw ADYALwByAG UAbABhAHQA aQBvAG4Acw BoAGkAcABz AC8AaAB5AH AAZQBy | |
| 6813 | AGwAaQBuAG sAAAsuAC8A ZAA6AGYAAA 1zAGgAYQBy AGUAZAAABX MAaQAAgKFF AHgAYwBlAG wAQwBl | |
| 6814 | AGwAbAAgAG YAbwByAG0A dQBsAGEAIA BtAGEAcgBr AGUAZAAgAG EAcwAgAHMA aABhAHIAZQ BkACAA | |
| 6815 | YgB1AHQAIA BuAG8AIABy AGUAZgBlAH IAZQBuAGMA ZQAgAEkARA AgAGYAbwB1 AG4AZAAgAC gAaQAu | |
| 6816 | AGUALgAgAH MAaQAgAGEA dAB0AHIAaQ BiAHUAdABl ACkAAE0vAC 8AZAA6AHMA aABlAGUAdA BEAGEA | |
| 6817 | dABhAC8AZA A6AHIAbwB3 AC8AZAA6AG MALwBkADoA ZgBbAEAAcw BpAD0AJwB7 ADAAfQAnAF 0AAX1F | |
| 6818 | AHgAYwBlAG wAQwBlAGwA bAAgAGYAbw ByAG0AdQBs AGEAIABtAG EAcgBrAGUA ZAAgAGEAcw AgAHMA | |
| 6819 | aABhAHIAZQ BkACAAYgB1 AHQAIABuAG 8AIAByAGUA ZgBlAHIAZQ BuAGMAZQAg AG4AbwBkAG UAIABm | |
| 6820 | AG8AdQBuAG QAADtGAHUA bgBjAHQAaQ BvAG4AIABu AG8AdAAgAH kAZQB0ACAA aQBtAHAAbA BlAG0A | |
| 6821 | ZQBuAHQAZQ BkACEAABNb AF4AMAAtAD kALAAuAC0A XQABLV4ALQ BbADAALQA5 ACwALgBdAC sAJAB8 | |
| 6822 | AF4AWwAwAC 0AOQAsAC4A XQArACQAAS MvAC8AZAA6 AHMAaQBbAG QAOgB0AD0A JwB7ADAAfQ AnAF0A | |
| 6823 | AS9wAHIAZQ BjAGUAZABp AG4AZwAtAH MAaQBiAGwA aQBuAGcAOg A6AGQAOgBz AGkAAQ0vAC 8AZAA6 | |
| 6824 | AHMAaQAAA2 YAAC8uAC8A ZAA6AGMAWw BAAGMAbwBs AE4AdQBtAG IAZQByAD0A JwB7ADAAfQ AnAF0A | |
| 6825 | AQNjAAATYw BvAGwATgB1 AG0AYgBlAH IAAAsuAC8A ZAA6AGMAAB lbAF4AYQAt AHoAQQAtAF oAMAAt | |
| 6826 | ADkAXQABF1 sAYQAtAHoA QQAtAFoAMA AtADkAXQAB AyAAAAUgAC AAAANkAAAR LwAvAGQAOg BjAG8A | |
| 6827 | bABzAAAJYw BvAGwAcwAA B20AaQBuAA AHbQBhAHgA AAdjAG8AbA AADWgAaQBk AGQAZQBuAA ADMQAA | |
| 6828 | AzAAAAt3AG kAZAB0AGgA ADFDAG8AbA B1AG0AbgAg AFIAYQBuAG cAZQA6ACAA ewAwAH0AIA B0AG8A | |
| 6829 | IAB7ADEAfQ AAGWgAZQBh AGQAZQByAE YAbwBvAHQA ZQByAABzRQ B4AGMAZQBs AEgAZQBhAG QAZQBy | |
| 6830 | AEYAbwBvAH QAZQByACAA RQByAHIAbw ByADoAIABQ AGEAcwBzAG UAZAAgAGkA bgB2AGEAbA BpAGQA | |
| 6831 | IABoAGUAYQ BkAGUAcgBG AG8AbwB0AG UAcgAgAG4A bwBkAGUAAC FhAGwAaQBn AG4AVwBpAH QAaABN | |
| 6832 | AGEAcgBnAG kAbgBzAAAh ZABpAGYAZg BlAHIAZQBu AHQATwBkAG QARQB2AGUA bgAAHWQAaQ BmAGYA | |
| 6833 | ZQByAGUAbg B0AEYAaQBy AHMAdAAAE2 8AZABkAEgA ZQBhAGQAZQ ByAAATbwBk AGQARgBvAG 8AdABl | |
| 6834 | AHIAABVlAH YAZQBuAEgA ZQBhAGQAZQ ByAAAVZQB2 AGUAbgBGAG 8AbwB0AGUA cgAAF2YAaQ ByAHMA | |
| 6835 | dABIAGUAYQ BkAGUAcgAA F2YAaQByAH MAdABGAG8A bwB0AGUAcg AABSYATAAA BSYAQwAABS YAUgAA | |
| 6836 | GS8AZABlAG YAYQB1AGwA dAAuAHgAbQ BsAAAfYQBw AHAAbABpAG MAYQB0AGkA bwBuAC8AeA BtAGwA | |
| 6837 | AIClaAB0AH QAcAA6AC8A LwBzAGMAaA BlAG0AYQBz AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEA | |
| 6838 | dABzAC4Abw ByAGcALwBv AGYAZgBpAG MAZQBEAG8A YwB1AG0AZQ BuAHQALwAy ADAAMAA2AC 8AcgBl | |
| 6839 | AGwAYQB0AG kAbwBuAHMA aABpAHAAcw AvAG8AZgBm AGkAYwBlAE QAbwBjAHUA bQBlAG4AdA AAe0UA | |
| 6840 | eABjAGUAbA BQAGEAYwBr AGEAZwBlAC AARQByAHIA bwByADoAIA BUAGEAcgBn AGUAdAAgAG YAaQBs | |
| 6841 | AGUAIABhAG wAcgBlAGEA ZAB5ACAAZQ B4AGkAcwB0 AHMAIABhAG 4AZAAgAGkA cwAgAGwAbw BjAGsA | |
| 6842 | ZQBkAC4AAI CDRQB4AGMA ZQBsAFAAYQ BjAGsAYQBn AGUAIABFAH IAcgBvAHIA OgAgAFAAYQ BzAHMA | |
| 6843 | ZQBkACAAaQ BuAHYAYQBs AGkAZAAgAF QAZQBtAHAA bABhAHQAZQ BQAGEAdABo ACAAdABvAC AARQB4 | |
| 6844 | AGMAZQBsAC AAVABlAG0A cABsAGEAdA BlAAADLwAA gIloAHQAdA BwADoALwAv AHMAYwBoAG UAbQBh | |
| 6845 | AHMALgBvAH AAZQBuAHgA bQBsAGYAbw ByAG0AYQB0 AHMALgBvAH IAZwAvAG8A ZgBmAGkAYw BlAEQA | |
| 6846 | bwBjAHUAbQ BlAG4AdAAv ADIAMAAwAD YALwByAGUA bABhAHQAaQ BvAG4AcwBo AGkAcABzAC 8AAAt4 | |
| 6847 | AG0AbABuAH MAADtoAHQA dABwADoALw AvAHcAdwB3 AC4AdwAzAC 4AbwByAGcA LwAyADAAMA AwAC8A | |
| 6848 | eABtAGwAbg BzAC8AADsv AC8AZAA6AH MAaABlAGUA dABEAGEAdA BhAC8AZAA6 AHIAbwB3AF sAQABy | |
| 6849 | AD0AJwB7AD AAfQAnAF0A AQdyAG8Adw AAJy8ALwBk ADoAcwBoAG UAZQB0AEQA YQB0AGEALw BkADoA | |
| 6850 | cgBvAHcAAA VoAHQAABlj AHUAcwB0AG 8AbQBIAGUA aQBnAGgAdA AAGWMAdQBz AHQAbwBtAE YAbwBy | |
| 6851 | AG0AYQB0AA AhLwB4AGwA LwB3AG8Acg BrAGIAbwBv AGsALgB4AG 0AbAAAKy8A eABsAC8Acw BoAGEA | |
| 6852 | cgBlAGQAUw B0AHIAaQBu AGcAcwAuAH gAbQBsAAAd LwB4AGwALw BzAHQAeQBs AGUAcwAuAH gAbQBs | |
| 6853 | AAAjLwB4AG wALwBjAGEA bABjAEMAaA BhAGkAbgAu AHgAbQBsAA CAlWEAcABw AGwAaQBjAG EAdABp | |
| 6854 | AG8AbgAvAH YAbgBkAC4A bwBwAGUAbg B4AG0AbABm AG8AcgBtAG EAdABzAC0A bwBmAGYAaQ BjAGUA | |
| 6855 | ZABvAGMAdQ BtAGUAbgB0 AC4AcwBwAH IAZQBhAGQA cwBoAGUAZQ B0AG0AbAAu AHMAaABlAG UAdAAu | |
| 6856 | AG0AYQBpAG 4AKwB4AG0A bAABEXcAbw ByAGsAYgBv AG8AawAAE2 IAbwBvAGsA VgBpAGUAdw BzAAAZ | |
| 6857 | dwBvAHIAaw BiAG8AbwBr AFYAaQBlAH cAAA1zAGgA ZQBlAHQAcw AAgJthAHAA cABsAGkAYw BhAHQA | |
| 6858 | aQBvAG4ALw B2AG4AZAAu AG8AcABlAG 4AeABtAGwA ZgBvAHIAbQ BhAHQAcwAt AG8AZgBmAG kAYwBl | |
| 6859 | AGQAbwBjAH UAbQBlAG4A dAAuAHMAcA ByAGUAYQBk AHMAaABlAG UAdABtAGwA LgBzAGgAYQ ByAGUA | |
| 6860 | ZABTAHQAcg BpAG4AZwBz ACsAeABtAG wAAQdzAHMA dAAAC2MAbw B1AG4AdAAA F3UAbgBpAH EAdQBl | |
| 6861 | AEMAbwB1AG 4AdAAAgKNo AHQAdABwAD oALwAvAHMA YwBoAGUAbQ BhAHMALgBv AHAAZQBuAH gAbQBs | |
| 6862 | AGYAbwByAG 0AYQB0AHMA LgBvAHIAZw AvAG8AZgBm AGkAYwBlAE QAbwBjAHUA bQBlAG4AdA AvADIA | |
| 6863 | MAAwADYALw ByAGUAbABh AHQAaQBvAG 4AcwBoAGkA cABzAC8Acw BoAGEAcgBl AGQAUwB0AH IAaQBu | |
| 6864 | AGcAcwAAgI 1hAHAAcABs AGkAYwBhAH QAaQBvAG4A LwB2AG4AZA AuAG8AcABl AG4AeABtAG wAZgBv | |
| 6865 | AHIAbQBhAH QAcwAtAG8A ZgBmAGkAYw BlAGQAbwBj AHUAbQBlAG 4AdAAuAHMA cAByAGUAYQ BkAHMA | |
| 6866 | aABlAGUAdA BtAGwALgBz AHQAeQBsAG UAcwArAHgA bQBsAAEVcw B0AHkAbABl AFMAaABlAG UAdAAA | |
| 6867 | C2YAbwBuAH QAcwAACWYA bwBuAHQAAA VzAHoAAAd2 AGEAbAAABT EAMQAACW4A YQBtAGUAAA 9DAGEA | |
| 6868 | bABpAGIAcg BpAAAZYwBl AGwAbABTAH QAeQBsAGUA WABmAHMAAA V4AGYAABFu AHUAbQBGAG 0AdABJ | |
| 6869 | AGQAAA1mAG 8AbgB0AEkA ZAAAD2MAZQ BsAGwAWABm AHMAAAl4AG YASQBkAACA lWgAdAB0AH AAOgAv | |
| 6870 | AC8AcwBjAG gAZQBtAGEA cwAuAG8AcA BlAG4AeABt AGwAZgBvAH IAbQBhAHQA cwAuAG8Acg BnAC8A | |
| 6871 | bwBmAGYAaQ BjAGUARABv AGMAdQBtAG UAbgB0AC8A MgAwADAANg AvAHIAZQBs AGEAdABpAG 8AbgBz | |
| 6872 | AGgAaQBwAH MALwBzAHQA eQBsAGUAcw AAFS8ALwBk ADoAYwBhAG wAYwBQAHIA ABFjAGEAbA BjAE0A | |
| 6873 | bwBkAGUAAA lhAHUAdABv AAAXYQB1AH QAbwBOAG8A VABhAGIAbA BlAAANbQBh AG4AdQBhAG wAAICN | |
| 6874 | VwBvAHIAaw BiAG8AbwBr ACAAUwBhAH YAZQAgAEUA cgByAG8Acg A6ACAAdABo AGUAIAB3AG 8AcgBr | |
| 6875 | AGIAbwBvAG sAIABtAHUA cwB0ACAAYw BvAG4AdABh AGkAbgAgAG EAdAAgAGwA ZQBhAHMAdA AgAG8A | |
| 6876 | bgBlACAAdw BvAHIAawBz AGgAZQBlAH QAIQAAG2MA YQBsAGMAQw BoAGEAaQBu AC4AeABtAG wAAAV4 | |
| 6877 | AGwAABl3AG 8AcgBrAGIA bwBvAGsALg B4AG0AbAAA FXMAdAB5AG wAZQBzAC4A eABtAGwAAC NzAGgA | |
| 6878 | YQByAGUAZA BzAHQAcgBp AG4AZwBzAC 4AeABtAGwA AAlkAG8Abg BlAAAvLwAv AGQAOgBzAG gAZQBl | |
| 6879 | AHQAWwBAAH MAaABlAGUA dABJAGQAPQ B7ADAAfQBd AAAjLwAvAG QAOgBzAGgA ZQBlAHQARg BvAHIA | |
| 6880 | bQBhAHQAUA ByAAAhZABl AGYAYQB1AG wAdABSAG8A dwBIAGUAaQ BnAGgAdAAA G3MAaABlAG UAdABG | |
| 6881 | AG8AcgBtAG EAdABQAHIA AB0vAC8AZA A6AHMAaABl AGUAdABWAG kAZQB3AHMA ACEvAC8AZA A6AGgA | |
| 6882 | ZQBhAGQAZQ ByAEYAbwBv AHQAZQByAA CAgUMAcgBl AGEAdABlAF MAaABhAHIA ZQBkAEYAbw ByAG0A | |
| 6883 | dQBsAGEAIA BFAHIAcgBv AHIAOgAgAH MAdABhAHIA dABDAGUAbA BsACAAZABv AGUAcwAgAG 4AbwB0 | |
| 6884 | ACAAYwBvAG 4AdABhAGkA bgAgAGEAIA BmAG8AcgBt AHUAbABhAC EAAD8vAC8A ZAA6AHMAaA BlAGUA | |
| 6885 | dABEAGEAdA BhAC8AZAA6 AHIAbwB3AC 8AZAA6AGMA LwBkADoAZg AvAEAAcwBp AAAPewAwAH 0AOgB7 | |
| 6886 | ADEAfQAAK2 MAbwBuAGQA aQB0AGkAbw BuAGEAbABG AG8AcgBtAG EAdAB0AGkA bgBnAAALcw BxAHIA | |
| 6887 | ZQBmAAAVLg AvAGQAOgBj AGYAUgB1AG wAZQAADWMA ZgBSAHUAbA BlAAAJdAB5 AHAAZQAAD2 QAYQB0 | |
| 6888 | AGEAQgBhAH IAABFwAHIA aQBvAHIAaQ B0AHkAAA9k AGEAdABhAG IAYQByAAAJ YwBmAHYAbw AAC2MA | |
| 6889 | bwBsAG8Acg AAB3IAZwBi AAATLgAvAG QAOgBjAC8A ZAA6AGYAAB svAC8AZAA6 AHAAYQBnAG UAUwBl | |
| 6890 | AHQAdQBwAA AHLwB4AGwA AAUuAC4AAB t4AGwAXAB3 AG8AcgBrAH MAaABlAGUA dABzAAALcw BoAGUA | |
| 6891 | ZQB0AAAJLg B4AG0AbAAA C3MAcABhAG 4AcwAAIS8A LwBkADoAYw BlAGwAbABY AGYAcwAvAG QAOgB4 | |
| 6892 | AGYAADkvAC 8AZAA6AGMA ZQBsAGwAUw B0AHkAbABl AFsAQAB4AG YASQBkACAA PQAgACcAew AwAH0A | |
| 6893 | JwBdAAE5Lw AvAGQAOgBj AGUAbABsAF MAdAB5AGwA ZQBbAEAAbg BhAG0AZQAg AD0AIAAnAH sAMAB9 | |
| 6894 | ACcAXQABPy 8ALwBkADoA YwBlAGwAbA BYAGYAcwAv AGQAOgB4AG YAWwBAAHgA ZgBJAGQAIA A9ACAA | |
| 6895 | JwB7ADAAfQ AnAF0AAS9w AHIAZQBjAG UAZABpAG4A ZwAtAHMAaQ BiAGwAaQBu AGcAOgA6AG QAOgB4 | |
| 6896 | AGYAARUvAC 8AZAA6AHMA aABlAGUAdA BzAAAJcgA6 AGkAZAAAD3 MAaABlAGUA dABJAGQAAI CPQQBk | |
| 6897 | AGQAIAB3AG 8AcgBrAHMA aABlAGUAdA AgAEUAcgBy AG8AcgA6AC AAYQB0AHQA ZQBtAHAAdA BpAG4A | |
| 6898 | ZwAgAHQAbw AgAGMAcgBl AGEAdABlAC AAdwBvAHIA awBzAGgAZQ BlAHQAIAB3 AGkAdABoAC AAZAB1 | |
| 6899 | AHAAbABpAG MAYQB0AGUA IABuAGEAbQ BlAAApLwB4 AGwALwB3AG 8AcgBrAHMA aABlAGUAdA BzAC8A | |
| 6900 | cwBoAGUAZQ B0AACAk2EA cABwAGwAaQ BjAGEAdABp AG8AbgAvAH YAbgBkAC4A bwBwAGUAbg B4AG0A | |
| 6901 | bABmAG8Acg BtAGEAdABz AC0AbwBmAG YAaQBjAGUA ZABvAGMAdQ BtAGUAbgB0 AC4AcwBwAH IAZQBh | |
| 6902 | AGQAcwBoAG UAZQB0AG0A bAAuAHcAbw ByAGsAcwBo AGUAZQB0AC sAeABtAGwA AYCbaAB0AH QAcAA6 | |
| 6903 | AC8ALwBzAG MAaABlAG0A YQBzAC4Abw BwAGUAbgB4 AG0AbABmAG 8AcgBtAGEA dABzAC4Abw ByAGcA | |
| 6904 | LwBvAGYAZg BpAGMAZQBE AG8AYwB1AG 0AZQBuAHQA LwAyADAAMA A2AC8AcgBl AGwAYQB0AG kAbwBu | |
| 6905 | AHMAaABpAH AAcwAvAHcA bwByAGsAcw BoAGUAZQB0 AAATdwBvAH IAawBzAGgA ZQBlAHQAAA 94AG0A | |
| 6906 | bABuAHMAOg ByAAAVcwBo AGUAZQB0AF YAaQBlAHcA cwAAE3MAaA BlAGUAdABW AGkAZQB3AA AddwBv | |
| 6907 | AHIAawBiAG 8AbwBrAFYA aQBlAHcASQ BkAAATcwBo AGUAZQB0AE QAYQB0AGEA AIDvRQByAH IAbwBy | |
| 6908 | ADoAIABZAG 8AdQAgAGEA cgBlACAAYQ B0AHQAZQBt AHAAdABpAG 4AZwAgAHQA bwAgAGQAZQ BsAGUA | |
| 6909 | dABlACAAdA BoAGUAIABs AGEAcwB0AC AAdwBvAHIA awBzAGgAZQ BlAHQAIABp AG4AIAB0AG gAZQAg | |
| 6910 | AHcAbwByAG sAYgBvAG8A awAuACAAIA BPAG4AZQAg AHcAbwByAG sAcwBoAGUA ZQB0ACAATQ BVAFMA | |
| 6911 | VAAgAGIAZQ AgAHAAcgBl AHMAZQBuAH QAIABpAG4A IAB0AGgAZQ AgAHcAbwBy AGsAYgBvAG 8AawAh | |
| 6912 | AAArLwAvAG QAOgB3AG8A cgBrAGIAbw BvAGsALwBk ADoAcwBoAG UAZQB0AHMA AC8uAC8AZA A6AHMA | |
| 6913 | aABlAGUAdA BbAEAAcwBo AGUAZQB0AE kAZAA9AHsA MAB9AF0AAF dUAGgAZQAg AG0AZQB0AG gAbwBk | |
| 6914 | ACAAbwByAC AAbwBwAGUA cgBhAHQAaQ BvAG4AIABp AHMAIABuAG 8AdAAgAGkA bQBwAGwAZQ BtAGUA | |
| 6915 | bgB0AGUAZA AuAAAbLwAv AGQAOgBzAG gAZQBlAHQA VgBpAGUAdw AAF3QAYQBi AFMAZQBsAG UAYwB0 | |
| 6916 | AGUAZAAACX YAaQBlAHcA ABVwAGEAZw BlAEwAYQB5 AG8AdQB0AA AlLwBkAG8A YwBQAHIAbw BwAHMA | |
| 6917 | LwBjAG8Acg BlAC4AeABt AGwAACMvAG QAbwBjAFAA cgBvAHAAcw AvAGEAcABw AC4AeABtAG wAACkv | |
| 6918 | AGQAbwBjAF AAcgBvAHAA cwAvAGMAdQ BzAHQAbwBt AC4AeABtAG wAAAV2AHQA AICJaAB0AH QAcAA6 | |
| 6919 | AC8ALwBzAG MAaABlAG0A YQBzAC4Abw BwAGUAbgB4 AG0AbABmAG 8AcgBtAGEA dABzAC4Abw ByAGcA | |
| 6920 | LwBvAGYAZg BpAGMAZQBE AG8AYwB1AG 0AZQBuAHQA LwAyADAAMA A2AC8AZABv AGMAUAByAG 8AcABz | |
| 6921 | AFYAVAB5AH AAZQBzAAAF eABwAACAk2 gAdAB0AHAA OgAvAC8Acw BjAGgAZQBt AGEAcwAuAG 8AcABl | |
| 6922 | AG4AeABtAG wAZgBvAHIA bQBhAHQAcw AuAG8AcgBn AC8AbwBmAG YAaQBjAGUA RABvAGMAdQ BtAGUA | |
| 6923 | bgB0AC8AMg AwADAANgAv AGUAeAB0AG UAbgBkAGUA ZAAtAHAAcg BvAHAAZQBy AHQAaQBlAH MAAQdj | |
| 6924 | AHQAcAAAgI 9oAHQAdABw ADoALwAvAH MAYwBoAGUA bQBhAHMALg BvAHAAZQBu AHgAbQBsAG YAbwBy | |
| 6925 | AG0AYQB0AH MALgBvAHIA ZwAvAG8AZg BmAGkAYwBl AEQAbwBjAH UAbQBlAG4A dAAvADIAMA AwADYA | |
| 6926 | LwBjAHUAcw B0AG8AbQAt AHAAcgBvAH AAZQByAHQA aQBlAHMAAQ VjAHAAAICP aAB0AHQAcA A6AC8A | |
| 6927 | LwBzAGMAaA BlAG0AYQBz AC4AbwBwAG UAbgB4AG0A bABmAG8Acg BtAGEAdABz AC4AbwByAG cALwBw | |
| 6928 | AGEAYwBrAG EAZwBlAC8A MgAwADAANg AvAG0AZQB0 AGEAZABhAH QAYQAvAGMA bwByAGUALQ BwAHIA | |
| 6929 | bwBwAGUAcg B0AGkAZQBz AAEFZABjAA BBaAB0AHQA cAA6AC8ALw BwAHUAcgBs AC4AbwByAG cALwBk | |
| 6930 | AGMALwBlAG wAZQBtAGUA bgB0AHMALw AxAC4AMQAv AAAPZABjAH QAZQByAG0A cwAAM2gAdA B0AHAA | |
| 6931 | OgAvAC8AcA B1AHIAbAAu AG8AcgBnAC 8AZABjAC8A dABlAHIAbQ BzAC8AABFk AGMAbQBpAH QAeQBw | |
| 6932 | AGUAADloAH QAdABwADoA LwAvAHAAdQ ByAGwALgBv AHIAZwAvAG QAYwAvAGQA YwBtAGkAdA B5AHAA | |
| 6933 | ZQAvAAAHeA BzAGkAAFNo AHQAdABwAD oALwAvAHcA dwB3AC4Adw AzAC4AbwBy AGcALwAyAD AAMAAx | |
| 6934 | AC8AWABNAE wAUwBjAGgA ZQBtAGEALQ BpAG4AcwB0 AGEAbgBjAG UAAXVhAHAA cABsAGkAYw BhAHQA | |
| 6935 | aQBvAG4ALw B2AG4AZAAu AG8AcABlAG 4AeABtAGwA ZgBvAHIAbQ BhAHQAcwAt AHAAYQBjAG sAYQBn | |
| 6936 | AGUALgBjAG 8AcgBlAC0A cAByAG8AcA BlAHIAdABp AGUAcwArAH gAbQBsAAEj YwBwADoAYw BvAHIA | |
| 6937 | ZQBQAHIAbw BwAGUAcgB0 AGkAZQBzAA CAq2gAdAB0 AHAAOgAvAC 8AcwBjAGgA ZQBtAGEAcw AuAG8A | |
| 6938 | cABlAG4AeA BtAGwAZgBv AHIAbQBhAH QAcwAuAG8A cgBnAC8AcA BhAGMAawBh AGcAZQAvAD IAMAAw | |
| 6939 | ADYALwByAG UAbABhAHQA aQBvAG4Acw BoAGkAcABz AC8AbQBlAH QAYQBkAGEA dABhAC8AYw BvAHIA | |
| 6940 | ZQAtAHAAcg BvAHAAZQBy AHQAaQBlAH MAAQt0AGkA dABsAGUAAA 9zAHUAYgBq AGUAYwB0AA APYwBy | |
| 6941 | AGUAYQB0AG 8AcgAAF2QA ZQBzAGMAcg BpAHAAdABp AG8AbgAAEW sAZQB5AHcA bwByAGQAcw AAHWwA | |
| 6942 | YQBzAHQATQ BvAGQAaQBm AGkAZQBkAE IAeQAAF2wA YQBzAHQAUA ByAGkAbgB0 AGUAZAAAEW MAYQB0 | |
| 6943 | AGUAZwBvAH IAeQAAG2MA bwBuAHQAZQ BuAHQAUwB0 AGEAdAB1AH MAADcvAC8A YwBwADoAYw BvAHIA | |
| 6944 | ZQBQAHIAbw BwAGUAcgB0 AGkAZQBzAC 8AewAwAH0A OgB7ADEAfQ AAgIthAHAA cABsAGkAYw BhAHQA | |
| 6945 | aQBvAG4ALw B2AG4AZAAu AG8AcABlAG 4AeABtAGwA ZgBvAHIAbQ BhAHQAcwAt AG8AZgBmAG kAYwBl | |
| 6946 | AGQAbwBjAH UAbQBlAG4A dAAuAGUAeA B0AGUAbgBk AGUAZAAtAH AAcgBvAHAA ZQByAHQAaQ BlAHMA | |
| 6947 | KwB4AG0AbA ABFVAAcgBv AHAAZQByAH QAaQBlAHMA AICvaAB0AH QAcAA6AC8A LwBzAGMAaA BlAG0A | |
| 6948 | YQBzAC4Abw BwAGUAbgB4 AG0AbABmAG 8AcgBtAGEA dABzAC4Abw ByAGcALwBv AGYAZgBpAG MAZQBE | |
| 6949 | AG8AYwB1AG 0AZQBuAHQA LwAyADAAMA A2AC8AcgBl AGwAYQB0AG kAbwBuAHMA aABpAHAAcw AvAGUA | |
| 6950 | eAB0AGUAbg BkAGUAZAAt AHAAcgBvAH AAZQByAHQA aQBlAHMAAR dBAHAAcABs AGkAYwBhAH QAaQBv | |
| 6951 | AG4AABtIAH kAcABlAHIA bABpAG4Aaw BCAGEAcwBl AAAVQQBwAH AAVgBlAHIA cwBpAG8Abg AAD0MA | |
| 6952 | bwBtAHAAYQ BuAHkAAA9N AGEAbgBhAG cAZQByAAAt LwAvAHgAcA A6AFAAcgBv AHAAZQByAH QAaQBl | |
| 6953 | AHMALwB4AH AAOgB7ADAA fQAAgIdhAH AAcABsAGkA YwBhAHQAaQ BvAG4ALwB2 AG4AZAAuAG 8AcABl | |
| 6954 | AG4AeABtAG wAZgBvAHIA bQBhAHQAcw AtAG8AZgBm AGkAYwBlAG QAbwBjAHUA bQBlAG4AdA AuAGMA | |
| 6955 | dQBzAHQAbw BtAC0AcABy AG8AcABlAH IAdABpAGUA cwArAHgAbQ BsAAGAq2gA dAB0AHAAOg AvAC8A | |
| 6956 | cwBjAGgAZQ BtAGEAcwAu AG8AcABlAG 4AeABtAGwA ZgBvAHIAbQ BhAHQAcwAu AG8AcgBnAC 8AbwBm | |
| 6957 | AGYAaQBjAG UARABvAGMA dQBtAGUAbg B0AC8AMgAw ADAANgAvAH IAZQBsAGEA dABpAG8Abg BzAGgA | |
| 6958 | aQBwAHMALw BjAHUAcwB0 AG8AbQAtAH AAcgBvAHAA ZQByAHQAaQ BlAHMAAVkv AC8AYwB0AH AAOgBQ | |
| 6959 | AHIAbwBwAG UAcgB0AGkA ZQBzAC8AYw B0AHAAOgBw AHIAbwBwAG UAcgB0AHkA LwBAAG4AYQ BtAGUA | |
| 6960 | WwAuAD0AJw B7ADAAfQAn AF0AASEvAC 8AYwB0AHAA OgBQAHIAbw BwAGUAcgB0 AGkAZQBzAA BhLwAv | |
| 6961 | AGMAdABwAD oAUAByAG8A cABlAHIAdA BpAGUAcwAv AGMAdABwAD oAcAByAG8A cABlAHIAdA B5AC8A | |
| 6962 | QABjAHQAcA A6AG4AYQBt AGUAWwAuAD 0AJwB7ADAA fQAnAF0AAQ dwAGkAZAAA EXAAcgBvAH AAZQBy | |
| 6963 | AHQAeQAAC2 YAbQB0AGkA ZAAATXsARA A1AEMARABE ADUAMAA1AC 0AMgBFADkA QwAtADEAMA AxAEIA | |
| 6964 | LQA5ADMAOQ A3AC0AMAA4 ADAAMAAyAE IAMgBDAEYA OQBBAEUAfQ ABDWwAcAB3 AHMAdAByAA ARZABv | |
| 6965 | AGMAUAByAG 8AcABzAAAR YwBvAHIAZQ AuAHgAbQBs AAAPYQBwAH AALgB4AG0A bAAAFWMAdQ BzAHQA | |
| 6966 | bwBtAC4AeA BtAGwAAH9T AFQAXwBmAG MAZQA2ADgA NgAzAGMAZA A4AGMAOQA0 ADEAOAA3AG IANwBi | |
| 6967 | AGQAMgA1AD IAOAAxADMA MAA2ADMANA BlADEALgBj AHMAcAByAG 8AagAuAFAA cgBvAHAAZQ ByAHQA | |
| 6968 | aQBlAHMALg BSAGUAcwBv AHUAcgBjAG UAcwAAQ0IA ZQBnAGkAbg BuAGkAbgBn ACAARABvAE QARgBy | |
| 6969 | AGEAZwBtAG UAbgB0AFMA YwByAGkAcA B0AFQAYQBz AGsALgAgAA AzVQBwAGQA YQB0AGUAIA BJAEMA | |
| 6970 | TgAgAGEAbg BkACAATQBW AEkAIABzAH QAYQB0AHUA cwAAE0MATw BNAFAATABF AFQARQAuAA ADXAAA | |
| 6971 | A18AAB15AH kAeQB5AE0A TQBkAGQASA BIAG0AbQBz AHMAADVBAH IAYwBoAGkA dgBpAG4AZw AgAGkA | |
| 6972 | bgBwAHUAdA BFAHgAYwBl AGwAIAB0AG 8AIAA6ACAA AAU7ACAAAD dBAHIAYwBo AGkAdgBpAG 4AZwAg | |
| 6973 | AGIAYQBjAG sAdQBwAEUA eABjAGUAbA AgAHQAbwAg ADoAIAAAV0 UAUgBSAE8A UgA6ACAATQ BvAHYA | |
| 6974 | ZQBGAGkAbA BlAHMAVABv AEEAcgBjAG gAaQB2AGUA IAB0AGgAcg BlAHcAIABl AHgAYwBlAH AAdABp | |
| 6975 | AG8AbgA6AC AAAD1DAG8A bQBwAGwAZQ B0AGUAZAAg AE0AbwB2AG UARgBpAGwA ZQBzAFQAbw BBAHIA | |
| 6976 | YwBoAGkAdg BlADsAIAAA F1AAcgBvAG MAZQBzAHMA aQBuAGcAIA AAESAAIABy AG8AdwBzAD sAIAAA | |
| 6977 | WUUAUgBSAE 8AUgAgAHcA aQB0AGgAIA BsAGEAYgBS AGUAcABvAH IAdABEAGEA dABlACAAYw BvAG4A | |
| 6978 | dgBlAHIAcw BpAG8AbgAg AG8AbgAgAH IAbwB3ADoA IAAAEyAAIA BWAGEAbAB1 AGUAOgAgAA AZIABF | |
| 6979 | AHgAYwBlAH AAdABpAG8A bgA6ACAAAB lEAG8ARAAg AEYAcgBhAG cAIABFAFQA TAAAK0kAbg B2AGEA | |
| 6980 | bABpAGQAIA BFAEQASQBQ AEkAIABmAG 8AdQBuAGQA OgAgAAAjIA AgACAASQBD AE4AIAByAG UAdAB1 | |
| 6981 | AHIAbgBlAG QAOgAgAAAN QQBkAGQAZQ BkACAAADsg AHIAbwB3AH MAIAB0AG8A IABkAG8AZA AgAGYA | |
| 6982 | cgBhAGcAIA BkAGEAdABh AHQAYQBiAG wAZQA7ACAA AFVFAFIAUg BPAFIAOgAg AEkAbgBzAG UAcgB0 | |
| 6983 | AEYAcgBhAG cAUgBhAHcA RABhAHQAYQ AgAHQAaABy AGUAdwAgAG UAeABjAGUA cAB0AGkAbw BuADoA | |
| 6984 | IAAAO0MAbw BtAHAAbABl AHQAZQBkAC AASQBuAHMA ZQByAHQARg ByAGEAZwBS AGEAdwBEAG EAdABh | |
| 6985 | ADsAIAAAFV AAQQBUAEkA RQBOAFQAUw BTAE4AADFE AE8ARABfAE YAUgBBAEcA TQBFAE4AVA BfAFIA | |
| 6986 | QQBXAF8ARA BBAFQAQQBf AEkARAAAI0 8AUgBJAEcA SQBOAEEATA BJAE4AUABV AFQARABBAF QARQAA | |
| 6987 | D0MAUgBFAE EAVABFAEQA ABNDAFIARQ BBAFQARQBE AEIAWQAAD1 UAUABEAEEA VABFAEQAAB NVAFAA | |
| 6988 | RABBAFQARQ BEAEIAWQAA H0wAQQBCAF 8AUgBlAHAA bwByAHQAXw BEAEEAVABF AAAXUABBAF QASQBF | |
| 6989 | AE4AVABfAE kAQwBOAABN QgBlAGcAaQ BuACAASQBu AHMAZQByAH QAVQBwAGQA YQB0AGUAZA BFAHgA | |
| 6990 | YwBlAGwARg BpAGwAZQBU AG8ARABhAH QAYQBiAGEA cwBlAABVSQ BOAFMARQBS AFQAIABJAE 4AVABP | |
| 6991 | ACAAWwBFAE YAUgBdAC4A WwBEAE8ARA BfAEYAUgBB AEcATQBFAE 4AVABfAFIA QQBXAF8ARA BBAFQA | |
| 6992 | QQBdACAAAH EoAFsAUwBP AFUAUgBDAE UAXwBMAEEA QgBdACwAWw BGAEkATABF AF8ARABBAF QAQQBd | |
| 6993 | ACwAWwBPAF IASQBHAEkA TgBBAEwAXw BOAEEATQBF AF0ALABbAE MATwBOAFQA RQBOAFQAXw BUAFkA | |
| 6994 | UABFAF0AAF 0sAFsAQwBS AEUAQQBUAE UARABCAFkA XQAsAFsAQw BSAEUAQQBU AEUARABdAC wAWwBV | |
| 6995 | AFAARABBAF QARQBEAEIA WQBdACwAWw BVAFAARABB AFQARQBEAF 0AKQAgAAAR VgBBAEwAVQ BFAFMA | |
| 6996 | IAAoAAADJw ABDywAQABi AHkAdABlAH MAAAUsACcA AREsACcARQ BYAEMARQBM ACcAAScsAC cARABP | |
| 6997 | AEQAIABGAF IAQQBHAE0A RQBOAFQAIA BFAFQATAAn AAEVLABnAG UAdABkAGEA dABlACgAKQ AAFywA | |
| 6998 | ZwBlAHQAZA BhAHQAZQAo ACkAKQAADU AAYgB5AHQA ZQBzAAAVSQ BuAHMAZQBy AHQAZQBkAD oAIAAA | |
| 6999 | QyAAaQBuAH QAbwAgAGUA ZgByAC4AZA BvAGQAXwBm AHIAYQBnAG 0AZQBuAHQA XwByAGEAdw BfAGQA | |
| 7000 | YQB0AGEAOw AgAACA4XMA ZQBsAGUAYw B0ACAAdABv AHAAKAAxAC kAIABbAEQA TwBEAF8ARg BSAEEA | |
| 7001 | RwBNAEUATg BUAF8AUgBB AFcAXwBEAE EAVABBAF8A SQBEAF0AIA BmAHIAbwBt ACAARQBGAF IALgBE | |
| 7002 | AE8ARABfAE YAUgBBAEcA TQBFAE4AVA BfAFIAQQBX AF8ARABBAF QAQQAgAG8A cgBkAGUAcg AgAGIA | |
| 7003 | eQAgAFsARA BPAEQAXwBG AFIAQQBHAE 0ARQBOAFQA XwBSAEEAVw BfAEQAQQBU AEEAXwBJAE QAXQAg | |
| 7004 | AGQAZQBzAG MAADVkAG8A ZABfAGYAcg BhAGcAbQBl AG4AdABfAH IAYQB3AF8A ZABhAHQAYQ BfAGkA | |
| 7005 | ZAA6ACAAAF 9FAFIAUgBP AFIAOgAgAE kAbgBzAGUA cgB0AFUAcA BkAGEAdABl AGQARQB4AG MAZQBs | |
| 7006 | AEYAaQBsAG UAIAB0AGgA cgBlAHcAIA BlAHgAYwBl AHAAdABpAG 8AbgA6ACAA AClDAG8AcA B5AGkA | |
| 7007 | bgBnACAAaQ BuAHAAdQB0 ACAAZgBpAG wAZQA6ACAA ACMgAHQAbw AgAGIAYQBj AGsAdQBwAC AAZgBp | |
| 7008 | AGwAZQA6AC AAADdHAGUA dAAgAGgAYQ BuAGQAbABl ACAAbwBuAC AAYgBhAGMA awB1AHAAIA BmAGkA | |
| 7009 | bABlADsAIA AAK1IAZQBt AG8AdgBlAC AAaQBuAHYA YQBsAGkAZA AgAHIAbwB3 AHMAOwAgAA BjRQBS | |
| 7010 | AFIATwBSAD oAIABHAGUA bgBlAHIAYQ B0AGUAVQBw AGQAYQB0AG UAZABFAHgA YwBlAGwARg BpAGwA | |
| 7011 | ZQAgAHQAaA ByAGUAdwAg AGUAeABjAG UAcAB0AGkA bwBuADoAIA AASUMAbwBt AHAAbABlAH QAZQBk | |
| 7012 | ACAARwBlAG 4AZQByAGEA dABlAFUAcA BkAGEAdABl AGQARQB4AG MAZQBsAEYA aQBsAGUAOw AgAABd | |
| 7013 | UwB0AGEAcg B0AGkAbgBn ACAAaQBuAH MAZQByAHQA RABvAEQAXw BGAHIAYQBn AG0AZQBuAH QAXwBE | |
| 7014 | AGEAdABhAF 8AUgBlAGMA ZQBpAHYAZQ BfAEwAbwBn ADsAIAAAQU UARgBSAC4A RABvAEQAXw BGAFIA | |
| 7015 | QQBHAE0ARQ BOAFQAXwBE AEEAVABBAF 8AUgBFAEMA RQBJAFYARQ BMAE8ARwAA ByAAIAAgAA BpSQBu | |
| 7016 | AHMAZQByAH QAZQBkACAA cgBlAGMAbw ByAGQAcwAg AGkAbgB0AG 8AIABEAG8A RABfAEYAUg BBAEcA | |
| 7017 | TQBFAE4AVA BfAEQAQQBU AEEAXwBSAE UAQwBFAEkA VgBFAEwATw BHADsAIAAA WVUAUABEAE EAVABF | |
| 7018 | ACAAWwBFAE YAUgBdAC4A WwBEAG8ARA BfAEYAUgBB AEcATQBFAE 4AVABfAEQA QQBUAEEAXw BSAEUA | |
| 7019 | QwBFAEkAVg BFAEwATwBH AF0AIAAAO1 MARQBUACAA WwBMAEEAQg BfAFIAZQBw AG8AcgB0AF 8ARABB | |
| 7020 | AFQARQBdAC AAPQAgAG4A dQBsAGwAIA AAaVcASABF AFIARQAgAF sATABBAEIA XwBSAGUAcA BvAHIA | |
| 7021 | dABfAEQAQQ BUAEUAXQAg AD0AIAAnAD EAOQAwADAA LQAwADEALQ AwADEAIAAw ADAAOgAwAD AAOgAw | |
| 7022 | ADAALgAwAD AAMAAnACAA ARNVAHAAZA BhAHQAZQBk ADoAIAAATS AAaQBuACAA ZQBmAHIALg BEAG8A | |
| 7023 | RABfAEYAUg BBAEcATQBF AE4AVABfAE QAQQBUAEEA XwBSAEUAQw BFAEkAVgBF AEwATwBHAD sAIAAA | |
| 7024 | gIVFAFIAUg BPAFIAOgAg AGkAbgBzAG UAcgB0AEQA bwBEAF8ARg ByAGEAZwBt AGUAbgB0AF 8ARABh | |
| 7025 | AHQAYQBfAF IAZQBjAGUA aQB2AGUAXw BMAG8AZwBf AEUAbgB0AH IAeQAgAHQA aAByAGUAdw AgAGUA | |
| 7026 | eABjAGUAcA B0AGkAbwBu ADoAIAAAWU UAbgBkAGkA bgBnACAAaQ BuAHMAZQBy AHQARABvAE QAXwBG | |
| 7027 | AHIAYQBnAG 0AZQBuAHQA XwBEAGEAdA BhAF8AUgBl AGMAZQBpAH YAZQBfAEwA bwBnADsAIA AAR1MA | |
| 7028 | dABhAHIAdA BpAG4AZwAg AHMAZQB0AH UAcABDAG8A bgBuAGUAYw B0AGkAbwBu AFMAdAByAG kAbgBn | |
| 7029 | AHMAKAApAD sAIAAAGUQA YQB0AGEAIA BTAG8AdQBy AGMAZQA9AA AnVQBzAGUA cgA6ADoATA BvAGcA | |
| 7030 | ZwBpAG4AZw BTAGUAcgB2 AGUAcgAAIz sASQBuAGkA dABpAGEAbA AgAEMAYQB0 AGEAbABvAG cAPQAA | |
| 7031 | K1UAcwBlAH IAOgA6AEwA bwBnAGcAaQ BuAGcARABh AHQAYQBiAG EAcwBlAAAz OwBJAG4AdA BlAGcA | |
| 7032 | cgBhAHQAZQ BkACAAUwBl AGMAdQByAG kAdAB5AD0A VAByAHUAZQ AAQ2MAbwBu AG4AZQBjAH QAaQBv | |
| 7033 | AG4AUwB0AH IAaQBuAGcA UwB0AGEAZw BpAG4AZwBE AGEAdABhAG IAYQBzAGUA OgAgAAApVQ BzAGUA | |
| 7034 | cgA6ADoAUg BlAGcAaQBz AHQAcgB5AF MAZQByAHYA ZQByAAAtVQ BzAGUAcgA6 ADoAUgBlAG cAaQBz | |
| 7035 | AHQAcgB5AE QAYQB0AGEA YgBhAHMAZQ AARWMAbwBu AG4AZQBjAH QAaQBvAG4A UwB0AHIAaQ BuAGcA | |
| 7036 | UgBlAGcAaQ BzAHQAcgB5 AEQAYQB0AG EAYgBhAHMA ZQA6ACAAAD 9TAHQAYQBy AHQAaQBuAG cAIABs | |
| 7037 | AG8AYQBkAE kAbgBwAHUA dABFAHgAYw BlAGwARABh AHQAYQAoAC kAOwAgAAAT ZgBpAGwAZQ BOAGEA | |
| 7038 | bQBlADIAAC lVAHMAaQBu AGcAIABwAG EAYwBrAGEA ZwBlACAAZg BpAGwAZQA6 ACAAAEFDAG 8AbAB1 | |
| 7039 | AG0AbgBzAC AAaQBuACAA aQBuAHAAdQ B0AEUAeABj AGUAbABEAG EAdABhACAA ZgBpAGwAZQ A6ACAA | |
| 7040 | AFVFAFIAUg BPAFIAOgAg AE4AbwAgAE MAbwBsAHUA bQBuAHMAIA BpAG4AIABp AG4AcAB1AH QARQB4 | |
| 7041 | AGMAZQBsAE QAYQB0AGEA IABmAGkAbA BlADsAIAAA V0UAUgBSAE 8AUgA6ACAA bABvAGEAZA BJAG4A | |
| 7042 | cAB1AHQARQ B4AGMAZQBs AEQAYQB0AG EAIAB0AGgA cgBlAHcAIA BlAHgAYwBl AHAAdABpAG 8AbgA6 | |
| 7043 | ACAAAEVTAH QAYQByAHQA aQBuAGcAIA BzAGUAdABS AGEAdwBFAG QAaQBwAGkA cwBGAHIAbw BtAEkA | |
| 7044 | bgBwAHUAdA AoACkAOwAg AAAXcgBhAH cARQBkAGkA cABpAHMAOg AgAAAVUgBv AHcAQwBvAH UAbgB0 | |
| 7045 | ADoAIAAAN0 UAUgBSAE8A UgA6ACAATg BvACAAcgBh AHcARQBkAG kAcABpAHMA IABmAG8AdQ BuAGQA | |
| 7046 | LgAgAABdRQ BSAFIATwBS ADoAIABzAG UAdABSAGEA dwBFAGQAaQ BwAGkAcwBG AHIAbwBtAE kAbgBw | |
| 7047 | AHUAdAAgAH QAaAByAGUA dwAgAGUAeA BjAGUAcAB0 AGkAbwBuAD oAIAAAL1MA dABhAHIAdA BpAG4A | |
| 7048 | ZwAgAHMAZQ B0AEMAbwBs AHUAbQBuAH MAKAApADsA IAAAB0oAUA BDAAAHRQBN AEYAAAlVAF MAQQBG | |
| 7049 | AACAhUUAUg BSAE8AUgA6 ACAAQwBvAH UAbABkACAA bgBvAHQAIA BkAGUAdABl AHIAbQBpAG 4AZQAg | |
| 7050 | AGkAbgBwAH UAdAAgAGYA aQBsAGUAIA B0AHkAcABl ACAAZAB1AG UAIAB0AG8A IABmAGkAbA BlAG4A | |
| 7051 | YQBtAGUAIA BpAHMAcwB1 AGUAOwAgAA AdRQBEAEkA UABJACAAYw BvAGwAdQBt AG4AOgAgAA A9RQBS | |
| 7052 | AFIATwBSAD oAIABFAEQA SQBQAEkAIA BjAG8AbAB1 AG0AbgAgAG 4AbwB0ACAA ZgBvAHUAbg BkADsA | |
| 7053 | AC1MAGEAYg BSAGUAcABv AHIAdABEAG EAdABlACAA YwBvAGwAdQ BtAG4AOgAg AABNRQBSAF IATwBS | |
| 7054 | ADoAIABMAG EAYgBSAGUA cABvAHIAdA BEAGEAdABl ACAAYwBvAG wAdQBtAG4A IABuAG8AdA AgAGYA | |
| 7055 | bwB1AG4AZA A7AAAZcwBz AG4AIABjAG 8AbAB1AG0A bgA6ACAAAD 1XAEEAUgBO AEkATgBHAD oAIABz | |
| 7056 | AHMAbgAgAG MAbwBsAHUA bQBuACAAbg BvAHQAIABm AG8AdQBuAG QAOwAAT0UA UgBSAE8AUg A6ACAA | |
| 7057 | cwBlAHQARQ BkAGkAcABp AEMAbwBsAH UAbQBuACAA dABoAHIAZQ B3ACAAZQB4 AGMAZQBwAH QAaQBv | |
| 7058 | AG4AOgAgAA BHUwB0AGEA cgB0ACAAcg B1AG4AbgBp AG4AZwAgAE MAUgBTAF8A TQBWAEkAIA BzAGMA | |
| 7059 | cgBpAHAAdA AgAHQAYQBz AGsAOwAgAA BNRQBSAFIA TwBSADoAIA BGAGEAaQBs AHUAcgBlAC AAcgB1 | |
| 7060 | AG4AbgBpAG 4AZwAgAGMA aABpAGwAZA AgAHAAYQBj AGsAYQBnAG UALgAgAABZ RQBSAFIATw BSADoA | |
| 7061 | IABFAHgAYw BlAHAAdABp AG8AbgAgAG kAbgAgAGUA eABlAGMAdQ B0AGUAQwBS AFMATQBWAE kAUABh | |
| 7062 | AGMAawBhAG cAZQAoACkA OgAgAABPQw BvAG0AcABs AGUAdABlAG QAIAByAHUA bgBuAGkAbg BnACAA | |
| 7063 | QwBSAFMAXw BNAFYASQAg AHMAYwByAG kAcAB0ACAA dABhAHMAaw A7ACAAABVf AG8AcgBpAG cAaQBu | |
| 7064 | AGEAbABfAA AbUwBvAHUA cgBjAGUAIA BGAGkAbABl ADoAIAAAHz sAIABCAGEA YwBrAHUAcA AgAEYA | |
| 7065 | aQBsAGUAOg AgAABpRQBS AFIATwBSAD oAIABnAGUA bgBlAHIAYQ B0AGUATwB1 AHQAcAB1AH QARQB4 | |
| 7066 | AGMAZQBsAE YAaQBsAGUA TgBhAG0AZQ AgAHQAaABy AGUAdwAgAG UAeABjAGUA cAB0AGkAbw BuADoA | |
| 7067 | IAAAgI1zAG UAbABlAGMA dAAgAFAAYQ B0AGkAZQBu AHQAXwBFAG QAaQBwAGkA LAAgAE0AVg BJAF8A | |
| 7068 | UABBAFQASQ BFAE4AVABf AEkAQwBOAF 8ATgBJAF8A RABPAEQAIA BmAHIAbwBt ACAAZQB0AG wAXwBj | |
| 7069 | AHIAcwBfAG 0AdgBpAF8A cABhAHQAaQ BlAG4AdAAg AAA1dwBoAG UAcgBlACAA TQBWAEkAXw BSAGUA | |
| 7070 | cwBwAG8Abg BzAGUAIAA9 ACAAJwBPAE sAJwAgAAE7 YQBuAGQAIA BjAHIAZQBh AHQAZQBkAG IAeQAg | |
| 7071 | AD0AIAAnAE QAbwBEAEYA cgBhAGcARQ BUAEwAJwAg AAEtYQBuAG QAIABSAFUA TgBfAEkARA BFAE4A | |
| 7072 | VABJAEYASQ BFAFIAIAA9 ACAAJwABBS cAIAABTWEA bgBkACAATQ BWAEkAXwBQ AEEAVABJAE UATgBU | |
| 7073 | AF8ASQBDAE 4AXwBOAEkA XwBEAE8ARA AgAGkAcwAg AG4AbwB0AC AAbgB1AGwA bAAAG1AAYQ B0AGkA | |
| 7074 | ZQBuAHQAXw BFAGQAaQBw AGkAAC1NAF YASQBfAFAA QQBUAEkARQ BOAFQAXwBJ AEMATgBfAE 4ASQBf | |
| 7075 | AEQATwBEAA AhIwAgAHYA YQBsAGkAZA AgAGUAZABp AHAAaQBzAD oAIAAANVcA QQBSAE4ASQ BOAEcA | |
| 7076 | OgAgAE4ATw AgAFYAQQBM AEkARAAgAE UARABJAFAA SQBTADsAIA AAX0UAUgBS AE8AUgA6AC AAcgBl | |
| 7077 | AHQAcgBpAG UAdgBlAEQA YQB0AGEAYg BhAHMAZQBF AGQAaQBwAG kAcwAgAHQA aAByAGUAdw AgAGUA | |
| 7078 | eABjAGUAcA B0AGkAbwBu ADoAIAAAUV MAdABhAHIA dABpAG4AZw AgAGkAbgBz AGUAcgB0AF IAYQB3 | |
| 7079 | AEUAZABpAH AAaQBzAEkA bgB0AG8ARA BhAHQAYQBi AGEAcwBlAC gAKQA7ACAA AEFJAE4AUw BFAFIA | |
| 7080 | VAAgAEkATg BUAE8AIABF AFQATABfAE MAUgBTAF8A TQBWAEkAXw BQAGEAdABp AGUAbgB0AC AAAEUo | |
| 7081 | AFsAUABBAF QASQBFAE4A VABfAEUARA BJAFAASQBd ACwAWwBSAF UATgBfAEkA RABFAE4AVA BJAEYA | |
| 7082 | SQBFAFIAXQ AsAABXWwBD AFIARQBBAF QARQBEAF0A LABbAEMAUg BFAEEAVABF AEQAQgBZAF 0ALABb | |
| 7083 | AFUAUABEAE EAVABFAEQA XQAsAFsAVQ BQAEQAQQBU AEUARABCAF kAXQAABSkA IAAAIVYAQQ BMAFUA | |
| 7084 | RQBTACAAKA BAAGUAZABp AHAAaQAsAC AAAGknACwA IABnAGUAdA BkAGEAdABl ACgAKQAsAC AAJwBE | |
| 7085 | AG8ARABGAH IAYQBnAEUA VABMACcALA AgAGcAZQB0 AGQAYQB0AG UAKAApACwA IAAnAEQAbw BEAEYA | |
| 7086 | cgBhAGcARQ BUAEwAJwAp AAEnSQBuAH MAZQByAHQA IABlAGQAaQ BwAGkAcwAg AHMAcQBsAD oAIAAA | |
| 7087 | DUAAZQBkAG kAcABpAAA3 RgBpAG4AaQ BzAGgAZQBk ACAAaQBuAH MAZQByAHQA aQBuAGcAIA BlAGQA | |
| 7088 | aQBwAGkAcw A6ACAAAGNF AFIAUgBPAF IAOgAgAEUA eABjAGUAcA B0AGkAbwBu ACAAdwByAG kAdABp | |
| 7089 | AG4AZwAgAG UAZABpAHAA aQBzACAAdA BvACAAdABo AGUAIABkAG EAdABhAGIA YQBzAGUAOg AgAAA5 | |
| 7090 | UwB0AGEAcg B0AGkAbgBn ACAAcwBlAH QAQwBvAG4A ZgBpAGcAVg BhAGwAdQBl AHMAKAApAD sAIAAA | |
| 7091 | gJVzAGUAbA BlAGMAdAAg AFsATgBBAE 0ARQBdACwA IABbAHYAYQ BsAHUAZQBd ACAAZgByAG 8AbQAg | |
| 7092 | AEMAUgBTAF 8AUwBFAFQA VABJAE4ARw BTACAAdwBo AGUAcgBlAC AAWwBOAEEA TQBFAF0AIA BsAGkA | |
| 7093 | awBlACAAKA AnAEUAZgBy AEQAbwBEAE YAcgBhAGcA JQAnACkAAS VFAGYAcgBE AG8ARABGAH IAYQBn | |
| 7094 | AFQAZQBzAH QATQBvAGQA ZQAACXQAcg B1AGUAADlF AGYAcgBEAG 8ARABGAHIA YQBnAEwAbw BnAEEA | |
| 7095 | bABsAFQAcg BhAG4AcwBh AGMAdABpAG 8AbgBzAAAv RQBmAHIARA BvAEQARgBy AGEAZwBDAH IAcwBN | |
| 7096 | AHYAaQBFAH QAbABOAGEA bQBlAAAzRQ BmAHIARABv AEQARgByAG EAZwBFAGQA aQBwAGkAQw BvAGwA | |
| 7097 | dQBtAG4ATg BhAG0AZQAA O0UAZgByAE QAbwBEAEYA cgBhAGcATA BhAGIAUgBl AHAAbwByAH QAQwBv | |
| 7098 | AGwAdQBtAG 4ATgBhAG0A ZQAAL0UAZg ByAEQAbwBE AEYAcgBhAG cAUwBzAG4A QwBvAGwAdQ BtAG4A | |
| 7099 | TgBhAG0AZQ AAL0UAZgBy AEQAbwBEAE YAcgBhAGcA QQByAGMAaA BpAHYAZQBG AG8AbABkAG UAcgAA | |
| 7100 | K0UAZgByAE QAbwBEAEYA cgBhAGcASg BwAGMASwBl AHkARgBpAG UAbABkAAAt RQBmAHIARA BvAEQA | |
| 7101 | RgByAGEAZw BVAHMAYQBm AEsAZQB5AE YAaQBlAGwA ZAAAK0UAZg ByAEQAbwBE AEYAcgBhAG cARQBt | |
| 7102 | AGYASwBlAH kARgBpAGUA bABkAAAzRQ BmAHIARABv AEQARgByAG EAZwBKAHAA YwBMAGEAYg BEAGEA | |
| 7103 | dABlAEYAaQ BlAGwAZAAA NUUAZgByAE QAbwBEAEYA cgBhAGcAVQ BzAGEAZgBM AGEAYgBEAG EAdABl | |
| 7104 | AEYAaQBlAG wAZAAAM0UA ZgByAEQAbw BEAEYAcgBh AGcARQBtAG YATABhAGIA RABhAHQAZQ BGAGkA | |
| 7105 | ZQBsAGQAAE 1EAHQAcwAu AFYAYQByAG kAYQBiAGwA ZQBzAFsAVQ BzAGUAcgA6 ADoAZgBpAG wAZQBO | |
| 7106 | AGEAbQBlAD IAXQAuAFYA YQBsAHUAZQ A6ACAAAB9V AHMAZQByAD oAOgBmAGkA bABlAE4AYQ BtAGUA | |
| 7107 | MgAAPUUAZg ByAEQAbwBE AEYAcgBhAG cATABvAGcA QQBsAGwAVA ByAGEAbgBz AGEAYwB0AG kAbwBu | |
| 7108 | AHMAOgAgAA AzRQBmAHIA RABvAEQARg ByAGEAZwBD AHIAcwBNAH YAaQBFAHQA bABOAGEAbQ BlADoA | |
| 7109 | IAAAN0UAZg ByAEQAbwBE AEYAcgBhAG cARQBkAGkA cABpAEMAbw BsAHUAbQBu AE4AYQBtAG UAOgAg | |
| 7110 | AAA/ZQBmAH IARABvAEQA RgByAGEAZw BMAGEAYgBS AGUAcABvAH IAdABDAG8A bAB1AG0Abg BOAGEA | |
| 7111 | bQBlADoAIA AAM2UAZgBy AEQAbwBEAE YAcgBhAGcA UwBzAG4AQw BvAGwAdQBt AG4ATgBhAG 0AZQA6 | |
| 7112 | ACAAADNlAG YAcgBEAG8A RABGAHIAYQ BnAEEAcgBj AGgAaQB2AG UARgBvAGwA ZABlAHIAOg AgAAAv | |
| 7113 | RQBmAHIARA BvAEQARgBy AGEAZwBKAH AAYwBLAGUA eQBGAGkAZQ BsAGQAOgAg AAAxRQBmAH IARABv | |
| 7114 | AEQARgByAG EAZwBVAHMA YQBmAEsAZQ B5AEYAaQBl AGwAZAA6AC AAAC9FAGYA cgBEAG8ARA BGAHIA | |
| 7115 | YQBnAEUAbQ BmAEsAZQB5 AEYAaQBlAG wAZAA6ACAA ADdFAGYAcg BEAG8ARABG AHIAYQBnAE oAcABj | |
| 7116 | AEwAYQBiAE QAYQB0AGUA RgBpAGUAbA BkADoAIAAA OUUAZgByAE QAbwBEAEYA cgBhAGcAVQ BzAGEA | |
| 7117 | ZgBMAGEAYg BEAGEAdABl AEYAaQBlAG wAZAA6ACAA ADdFAGYAcg BEAG8ARABG AHIAYQBnAE UAbQBm | |
| 7118 | AEwAYQBiAE QAYQB0AGUA RgBpAGUAbA BkADoAIAAA EWcAdQBpAG QASQBkADoA IAAAO0UAcg ByAG8A | |
| 7119 | cgAgAGcAZQ B0AHQAaQBu AGcAIABjAG 8AbgBmAGkA ZwAgAHYAYQ BsAHUAZQBz ADoAIAAAgU 1JAE4A | |
| 7120 | UwBFAFIAVA AgAEkATgBU AE8AIABFAF QATABfAEUA cgByAG8Acg BMAG8AZwBz ACAAKABQAG EAYwBr | |
| 7121 | AGEAZwBlAE kARAAsACAA UAByAG8AYw BlAHMAcwBJ AEQALAAgAE UAcgByAG8A cgBOAHUAbQ BiAGUA | |
| 7122 | cgAsACAARQ ByAHIAbwBy AEQAZQBzAG MAcgBpAHAA dABpAG8Abg AsACAARQBy AHIAbwByAF QAaQBt | |
| 7123 | AGUAKQAgAF YAQQBMAFUA RQBTACAAKA BAAFAAYQBj AGsAYQBnAG UASQBEACwA IABAAFAAcg BvAGMA | |
| 7124 | ZQBzAHMASQ BEACwAIABA AEUAcgByAG 8AcgBOAHUA bQBiAGUAcg AsACAAQABF AHIAcgBvAH IARABl | |
| 7125 | AHMAYwByAG kAcAB0AGkA bwBuACwAIA BnAGUAdABk AGEAdABlAC gAKQApAAAV QABQAGEAYw BrAGEA | |
| 7126 | ZwBlAEkARA AAFUAAUABy AG8AYwBlAH MAcwBJAEQA ABlAAEUAcg ByAG8AcgBO AHUAbQBiAG UAcgAA | |
| 7127 | I0AARQByAH IAbwByAEQA ZQBzAGMAcg BpAHAAdABp AG8AbgAAJU QAbwBEACAA RgByAGEAZw BtAGUA | |
| 7128 | bgB0ACAARQ BUAEwAOgAg AAAAAACNvQ sMZevxQYSR 14oUjkcYAA i3elxWGTTg iQiJhF3NgI DMkQMG | |
| 7129 | EiwDBhIhAg YIAgYOAwYS JQcgAwESLA gIBCAAEiED IAAIAyAADg MgAAIEIAEB DgQgAQEIBC AAEiUF | |
| 7130 | IAEBEiUDIA ABBAABAg4E IAEIDgQgAQ 4ICCADEiES LAgIBAABDg gEAAEIDgUA Ag4ICAgABQ 4OCAgI | |
| 7131 | CAQoABIhAy gACAMoAA4D KAACBCgAEi UDBhIpBiAC ARIsCAQgAQ ECAyAADQQg AQENAygADQ QmAFAA | |
| 7132 | BCYATgAEJg BBAAQmAFoA BCYARgAEJg BEAAQmAFQA AwYSEAYGFR EtAQIFIAEB EiEEIAASEA UgAQ4S | |
| 7133 | EAQoABIQcm gAdAB0AHAA OgAvAC8Acw BjAGgAZQBt AGEAcwAuAG 8AcABlAG4A eABtAGwAZg BvAHIA | |
| 7134 | bQBhAHQAcw AuAG8AcgBn AC8AcwBwAH IAZQBhAGQA cwBoAGUAZQ B0AG0AbAAv ADIAMAAwAD YALwBt | |
| 7135 | AGEAaQBuAI CGaAB0AHQA cAA6AC8ALw BzAGMAaABl AG0AYQBzAC 4AbwBwAGUA bgB4AG0AbA BmAG8A | |
| 7136 | cgBtAGEAdA BzAC4AbwBy AGcALwBvAG YAZgBpAGMA ZQBEAG8AYw B1AG0AZQBu AHQALwAyAD AAMAA2 | |
| 7137 | AC8AcgBlAG wAYQB0AGkA bwBuAHMAaA BpAHAAcwAI Mb84Vq02Tj UDBhIxAwYS KAUgAQESNQ cgAgES | |
| 7138 | NRI1AgYCBC AAEjEEIAAS KAcgAwESOQ 4OByACEiUS JQ4HAAMBEi EODgYAAgES IQ4HIAIBEi USOQYg | |
| 7139 | ARI5EiUEKA ASMQQoABIo BCAAEj0EKA ASPQMGESQE AAAAAAQBAA AABAIAAAAD BhIYAwYSOQ MGEjAD | |
| 7140 | BhI4BSABAR IYBCAAEjAE IAASQQQgAB I5BSABARI5 BCAAEjgEIA ARJAUgAQER JAQoABIwBC gAEkEE | |
| 7141 | KAASOQQoAB I4BCgAESQS YwBvAGwATg B1AG0AYgBl AHIAAwYSNA MGEhQLIAYB EhgODhIlCA IEIAAS | |
| 7142 | KQQgABI0BC AAEhQGIAIS CAgIBSABEh wIBSABEgwI ByACARIIEg gIIAMBEggS CA4FIAIBCA IEKAAS | |
| 7143 | KQQoABI0BC gAEhQIBhUS RQIIEiwDBh I9BCAAEkkF IAESLA4FIA ESLAgGIAIS LA4OBSgBEi wIBSgB | |
| 7144 | EiwOBSABAR IsgI5oAHQA dABwADoALw AvAHMAYwBo AGUAbQBhAH MALgBvAHAA ZQBuAHgAbQ BsAGYA | |
| 7145 | bwByAG0AYQ B0AHMALgBv AHIAZwAvAH AAYQBjAGsA YQBnAGUALw AyADAAMAA2 AC8AbQBlAH QAYQBk | |
| 7146 | AGEAdABhAC 8AYwBvAHIA ZQAtAHAAcg BvAHAAZQBy AHQAaQBlAH MAgJJoAHQA dABwADoALw AvAHMA | |
| 7147 | YwBoAGUAbQ BhAHMALgBv AHAAZQBuAH gAbQBsAGYA bwByAG0AYQ B0AHMALgBv AHIAZwAvAG 8AZgBm | |
| 7148 | AGkAYwBlAE QAbwBjAHUA bQBlAG4AdA AvADIAMAAw ADYALwBlAH gAdABlAG4A ZABlAGQALQ BwAHIA | |
| 7149 | bwBwAGUAcg B0AGkAZQBz AICOaAB0AH QAcAA6AC8A LwBzAGMAaA BlAG0AYQBz AC4AbwBwAG UAbgB4 | |
| 7150 | AG0AbABmAG 8AcgBtAGEA dABzAC4Abw ByAGcALwBv AGYAZgBpAG MAZQBEAG8A YwB1AG0AZQ BuAHQA | |
| 7151 | LwAyADAAMA A2AC8AYwB1 AHMAdABvAG 0ALQBwAHIA bwBwAGUAcg B0AGkAZQBz AEBoAHQAdA BwADoA | |
| 7152 | LwAvAHAAdQ ByAGwALgBv AHIAZwAvAG QAYwAvAGUA bABlAG0AZQ BuAHQAcwAv ADEALgAxAC 8AMmgA | |
| 7153 | dAB0AHAAOg AvAC8AcAB1 AHIAbAAuAG 8AcgBnAC8A ZABjAC8AdA BlAHIAbQBz AC8AOGgAdA B0AHAA | |
| 7154 | OgAvAC8AcA B1AHIAbAAu AG8AcgBnAC 8AZABjAC8A ZABjAG0AaQ B0AHkAcABl AC8AUmgAdA B0AHAA | |
| 7155 | OgAvAC8Adw B3AHcALgB3 ADMALgBvAH IAZwAvADIA MAAwADEALw BYAE0ATABT AGMAaABlAG 0AYQAt | |
| 7156 | AGkAbgBzAH QAYQBuAGMA ZQCAiGgAdA B0AHAAOgAv AC8AcwBjAG gAZQBtAGEA cwAuAG8AcA BlAG4A | |
| 7157 | eABtAGwAZg BvAHIAbQBh AHQAcwAuAG 8AcgBnAC8A bwBmAGYAaQ BjAGUARABv AGMAdQBtAG UAbgB0 | |
| 7158 | AC8AMgAwAD AANgAvAGQA bwBjAFAAcg BvAHAAcwBW AFQAeQBwAG UAcwAFIAIO Dg4GIAMBDg 4OBCAB | |
| 7159 | Dg4FIAIBDg 4DBhJNAwYS UQQAABJNBA AAElEFAAEB ElEECAASTQ QIABJRAwYS QAQAABJABA gAEkAD | |
| 7160 | BhFMBgYVEl UBDgcGFRJF Ag4OAwYSNQ MGEVkEAAAS XQUgAQESXQ MGEUgEAwAA AAMGEmEFIA EBEmEL | |
| 7161 | IAcCEmUIDg 4OCA4NIAgB EmUIDg4OCA 4QAgsgBwES ZQgODg4IDg cgAhI9DhIp BSAAEoCdBi ABEoCh | |
| 7162 | DgUAAgIODg gHAwISPRKA oQYgAhIhDg 4GIAESPRI9 BSABEj0OCC ABEoChEoCh CwcEEj0SgK ESgKEI | |
| 7163 | BgcCDhKAoQ UHARKAoQQH AggOBwACAh IlEiUFAAIO DhwGIAISPQ 4OBiABEoC1 DgwHBQ4SPR KAoQ4S | |
| 7164 | gLUIIAISPR I9Ej0IIAMS gKEODg4LIA MSgLUSJRGA uQ4QBwcSPR I9DhIhEoCh EoC1Dg0HBR I9EoCh | |
| 7165 | EoChDhI9BA cBEiEEBwES PQQgAQIOCA cCEoC9EoC9 CCACEoDBDh IpCgcECBI9 EiESgMEFIA ESPQgI | |
| 7166 | BwMOEoDBEj 0GBwISIRI9 AyAAHBQHCR IhEj0SPRKA wRI9Ej0IEk kSCQQAAQgI BAABDQgFAA IODg4H | |
| 7167 | BwUIAwgIAw QgAB0DBAAB AgMFIAIOCA gSBw4ICAID DggIAwgdAw gdAwgICQcG CAIDDh0DCA QHAggI | |
| 7168 | ByACAQ4RgM kGIAEdDh0D GQcQDhKAvR KAvQ4OHQMI CA4ICA4IHQ MdDggGIAEB EoDRBSAAEo DBGgcM | |
| 7169 | EoDNEj0SPR KAoRKAoRI9 AhI9CAgSSR IJBAcCAg4E BwINDgYAAw 4OHBwFFREt AQIFIAEBEw AEIAAT | |
| 7170 | AAYAAw4ODg 4DBwEOCwAD EjEOEYDdEY DhByACAQ4R gOUHIAISQR IlDgQHARIl ByACAQ4SgJ kFIAES | |
| 7171 | NQ4FBwESgJ kFAAEOHQ4J BwMSgOkSNR 0OBiABEkES JQYgARKA7Q 4KIAAVEoDx ARKAtQgVEo DxARKA | |
| 7172 | tQgAAhIlEi USJREHBBIl EkESgLUVEo DxARKAtQsg AhKA+RGA3R GA4QYgAQES gPkEBwESQQ UgABKA | |
| 7173 | +QYHAhI5Ek ENBwYSPRI9 Ej0IEkkSCQ QAAQ0OBQcB EoDNBSABAh IlBiABARKB AQ8HBhJBEi ESIRIh | |
| 7174 | EiESgP0JBw MSQRIhEoD9 GQcLEkESIR IhEiESIRIh EiESIRIhEi ESgP0KBwQR JBI9EoChDg cHAxIh | |
| 7175 | DhEkBSAAEo DtBgABEYEJ DhUHBhIlEo C1EiwVEoDx ARKAtRJJEg kHBwISPRKA oQYHAwgSIQ 4RBwoS | |
| 7176 | IQ4IEj0ICA gSCBJJEgkP BwYSPRI9Eo ChEj0SPRI9 GwcPEiESPQ gSgMEIEj0I CAgICBKAwR I9EkkS | |
| 7177 | CRgHDRI9Eo DBCAgSPQgI CAgSgMESPR JJEgkGAAMO HBwcDwcGEj 0SgKEOEoC1 EiUSQRYHCh I9EoCh | |
| 7178 | Ej0SgKEOCB JJEkkSCRIJ CyACEoChEo ChEoChGQcN CBI9CAgSPR KAoQgOEoCh EkkSSRIJEg kPBwgO | |
| 7179 | Ej0IEj0OEj 0SSRIJDAcG CA4SPQ4SPR KAwQkBAARJ dGVtAAAHFR JFAggSLAcg AgETABMBFw cMEoDN | |
| 7180 | CBI9Dg4IAh I9EoC1EiUS SRIJCyAAFR KBFQITABMB CBUSgRUCCB IsCyAAFRGB GQITABMBCB URgRkC | |
| 7181 | CBIsBiADDg 4ODh4HDggS PRKAoQgSJR JBEoD9EjkS gLUSIRIsCB JJEgkMBwUS ORIhEiESIR IhBiAB | |
| 7182 | EwETAAUgAQ ITAAgHAxIs Ej0SPQQgAB MBDgcDEiwS LBURgRkCCB IsCAcDEiwS SRIJBgcDDg 4SPQcg | |
| 7183 | AxIhDg4OBw cEDhI9Dg4F BwIOEj0WBw sOEj0SPQgS PRKAoQgSIR IhEkkSCQgA ARKBIRGBJQ UgABKB | |
| 7184 | KQcgAgEOEo EpBAcBEk0G IAEBEYExCA EAAgAAAAAA AwAAAQQgAB JhBAABDg4F AAARgUEHAA QODg4O | |
| 7185 | DgUAAgEODg kHAw4SgJkR gUEFFRJVAQ 4GFRJFAg4O CCACAhMAEB MBBwACDQ4S gUkGAAERgU ENBiAD | |
| 7186 | AQgICAUgAB KBTQcgARKB UR0cIwcRDg 4OFRJVAQ4S XRGBQRIYEi wIEoCZEoCZ Dh0OHRwOHQ 4IBSAA | |
| 7187 | EoFZCSACEo FdDhKBIQQH ARJdBgABEo FhDgMgAAoH IAMIHQUICA UgABKBcQcg AhKBdQ4cBi ABARGB | |
| 7188 | fQYgAQESgW kEAAEIHAQA AQEIFwcKAg 4SgWEdBRKB aQ4SgW0IEo FtEoCZBgAD AQ4OAhEHCg 4OCA4S | |
| 7189 | GBIsCBKAmQ 4dDgUgABKB jQcgAhKBkQ 4OFQcJEoGJ HBKBaQ4SgW 0IEoCZEkkS CQUgABKBlQ YgARKB | |
| 7190 | mRwIBwMSGA gSgJkMBwgO DggIAggSgJ kIBwcDDggS gJkMIAUSga EODg4OEoGl EiAFEYGtEo GxEoGV | |
| 7191 | EoGlEoG1HA 4HBQ4SgaES gZ0SUBKAmR UHCg4OCBKA mR0OEYFBHQ 4RgUEOHQ4F IAASgbkRBw cCEoFp | |
| 7192 | DhKBbRKBuR KAmQgJIAAV EYHBARMABh URgcEBDgUg ABKAmRQHBw 4IEoFpEoFt DhKAmRURgc EBDgcg | |
| 7193 | AgEOEoFpBi ABARKBbQUg AQgSXQQgAR wIBQABDh0c GwcLEoFpDh JdEoFtEoHJ EoFREoCZEk kSCRwd | |
| 7194 | HAgHAhKBaR KBbQQAABFZ BSAAEoHRCC AFAggODg4I CiAGAQgODg 4IEAIIIAUB CA4ODghJAQ AaLk5F | |
| 7195 | VEZyYW1ld2 9yayxWZXJz aW9uPXY0Lj YBAFQOFEZy YW1ld29ya0 Rpc3BsYXlO YW1lEi5ORV QgRnJh | |
| 7196 | bWV3b3JrID QuNi8BACpT VF9mY2U2OD YzY2Q4Yzk0 MTg3YjdiZD I1MjgxMzA2 MzRlMS5jc3 Byb2oA | |
| 7197 | AAUBAAAAAC MBAB5EZXBh cnRtZW50IG 9mIFZldGVy YW5zIEFmZm FpcnMAADQB AC9Db3B5cm lnaHQg | |
| 7198 | QCBEZXBhcn RtZW50IG9m IFZldGVyYW 5zIEFmZmFp cnMgMjAxNA AACAEACAAA AAAAHgEAAQ BUAhZX | |
| 7199 | cmFwTm9uRX hjZXB0aW9u VGhyb3dzAQ AAALA1AQAA AAAAAAAAAM 41AQAAIAAA AAAAAAAAAA AAAAAA | |
| 7200 | AAAAAAAAAA DANQEAAAAA AAAAAAAAAA AAAABfQ29y RGxsTWFpbg Btc2NvcmVl LmRsbAAAAA AA/yUA | |
| 7201 | IAAQAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AQAQAAAAGA AAgAAA | |
| 7202 | AAAAAAAAAA AAAAAAAQAB AAAAMAAAgA AAAAAAAAAA AAAAAAAAAQ AAAAAASAAA AFhAAQCMBA AAAAAA | |
| 7203 | AAAAAACMBD QAAABWAFMA XwBWAEUAUg BTAEkATwBO AF8ASQBOAE YATwAAAAAA vQTv/gAAAQ AAAAEA | |
| 7204 | ZkyfFwAAAQ BmTJ8XPwAA AAAAAAAEAA AAAgAAAAAA AAAAAAAAAA AAAEQAAAAB AFYAYQByAE YAaQBs | |
| 7205 | AGUASQBuAG YAbwAAAAAA JAAEAAAAVA ByAGEAbgBz AGwAYQB0AG kAbwBuAAAA AAAAALAE7A MAAAEA | |
| 7206 | UwB0AHIAaQ BuAGcARgBp AGwAZQBJAG 4AZgBvAAAA yAMAAAEAMA AwADAAMAAw ADQAYgAwAA AAYAAf | |
| 7207 | AAEAQwBvAG 0AcABhAG4A eQBOAGEAbQ BlAAAAAABE AGUAcABhAH IAdABtAGUA bgB0ACAAbw BmACAA | |
| 7208 | VgBlAHQAZQ ByAGEAbgBz ACAAQQBmAG YAYQBpAHIA cwAAAAAAgA ArAAEARgBp AGwAZQBEAG UAcwBj | |
| 7209 | AHIAaQBwAH QAaQBvAG4A AAAAAFMAVA BfAGYAYwBl ADYAOAA2AD MAYwBkADgA YwA5ADQAMQ A4ADcA | |
| 7210 | YgA3AGIAZA AyADUAMgA4 ADEAMwAwAD YAMwA0AGUA MQAuAGMAcw BwAHIAbwBq AAAAAABAAA 8AAQBG | |
| 7211 | AGkAbABlAF YAZQByAHMA aQBvAG4AAA AAADEALgAw AC4ANgAwAD QANwAuADEA OQA1ADUAOA AAAAAA | |
| 7212 | gAAvAAEASQ BuAHQAZQBy AG4AYQBsAE 4AYQBtAGUA AABTAFQAXw BmAGMAZQA2 ADgANgAzAG MAZAA4 | |
| 7213 | AGMAOQA0AD EAOAA3AGIA NwBiAGQAMg A1ADIAOAAx ADMAMAA2AD MANABlADEA LgBjAHMAcA ByAG8A | |
| 7214 | agAuAGQAbA BsAAAAAACE ADAAAQBMAG UAZwBhAGwA QwBvAHAAeQ ByAGkAZwBo AHQAAABDAG 8AcAB5 | |
| 7215 | AHIAaQBnAG gAdAAgAEAA IABEAGUAcA BhAHIAdABt AGUAbgB0AC AAbwBmACAA VgBlAHQAZQ ByAGEA | |
| 7216 | bgBzACAAQQ BmAGYAYQBp AHIAcwAgAD IAMAAxADQA AACIAC8AAQ BPAHIAaQBn AGkAbgBhAG wARgBp | |
| 7217 | AGwAZQBuAG EAbQBlAAAA UwBUAF8AZg BjAGUANgA4 ADYAMwBjAG QAOABjADkA NAAxADgANw BiADcA | |
| 7218 | YgBkADIANQ AyADgAMQAz ADAANgAzAD QAZQAxAC4A YwBzAHAAcg BvAGoALgBk AGwAbAAAAA AAeAAr | |
| 7219 | AAEAUAByAG 8AZAB1AGMA dABOAGEAbQ BlAAAAAABT AFQAXwBmAG MAZQA2ADgA NgAzAGMAZA A4AGMA | |
| 7220 | OQA0ADEAOA A3AGIANwBi AGQAMgA1AD IAOAAxADMA MAA2ADMANA BlADEALgBj AHMAcAByAG 8AagAA | |
| 7221 | AAAARAAPAA EAUAByAG8A ZAB1AGMAdA BWAGUAcgBz AGkAbwBuAA AAMQAuADAA LgA2ADAANA A3AC4A | |
| 7222 | MQA5ADUANQ A4AAAAAABI AA8AAQBBAH MAcwBlAG0A YgBsAHkAIA BWAGUAcgBz AGkAbwBuAA AAMQAu | |
| 7223 | ADAALgA2AD AANAA3AC4A MQA5ADUANQ A4AAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7224 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7225 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7226 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7227 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7228 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAw AQAMAAAA4D UAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7229 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7230 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7231 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7232 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7233 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7234 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7235 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7236 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA | |
| 7237 | AAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAAAAA</Bi naryItem> | |
| 7238 | </Sc riptProjec t> | |
| 7239 | </DTS: ObjectData > | |
| 7240 | </DTS:Ex ecutable> | |
| 7241 | </DTS:Exec utables> | |
| 7242 | <DTS:ForEa chVariable Mappings> | |
| 7243 | <DTS:For EachVariab leMapping | |
| 7244 | DTS:Cr eationName ="" | |
| 7245 | DTS:DT SID="{9C7B C503-CE88- 4BBE-8C35- 083A1F6C8B D7}" | |
| 7246 | DTS:Ob jectName=" {9C7BC503- CE88-4BBE- 8C35-083A1 F6C8BD7}" | |
| 7247 | DTS:Va lueIndex=" 0" | |
| 7248 | DTS:Va riableName ="User::fi leName2" / > | |
| 7249 | </DTS:ForE achVariabl eMappings> | |
| 7250 | </ DTS:Execut able> | |
| 7251 | </DT S:Executab les> | |
| 7252 | </DTS: Executable > | |
| 7253 | </DTS:Ex ecutables> | |
| 7254 | <DTS:Pre cedenceCon straints> | |
| 7255 | <DTS:P recedenceC onstraint | |
| 7256 | DTS: refId="Pac kage.Prece denceConst raints[Con straint]" | |
| 7257 | DTS: CreationNa me="" | |
| 7258 | DTS: DTSID="{E1 F035FF-262 4-4BDE-86D E-4389C974 8D79}" | |
| 7259 | DTS: From="Pack age\Sequen ce Contain er" | |
| 7260 | DTS: LogicalAnd ="True" | |
| 7261 | DTS: ObjectName ="Constrai nt" | |
| 7262 | DTS: To="Packag e\LogPacka ge End" /> | |
| 7263 | <DTS:P recedenceC onstraint | |
| 7264 | DTS: refId="Pac kage.Prece denceConst raints[Con straint 1] " | |
| 7265 | DTS: CreationNa me="" | |
| 7266 | DTS: DTSID="{56 2A420E-5BD 6-4DF8-B0C 6-020447E4 2B00}" | |
| 7267 | DTS: From="Pack age\Log Pa ckage Beg an" | |
| 7268 | DTS: LogicalAnd ="True" | |
| 7269 | DTS: ObjectName ="Constrai nt 1" | |
| 7270 | DTS: To="Packag e\Sequence Container " /> | |
| 7271 | </DTS:Pr ecedenceCo nstraints> | |
| 7272 | <DTS:Eve ntHandlers > | |
| 7273 | <DTS:E ventHandle r | |
| 7274 | DTS: refId="Pac kage.Event Handlers[O nError]" | |
| 7275 | DTS: CreationNa me="OnErro r" | |
| 7276 | DTS: DTSID="{1E 1ABCBF-A7E F-4C4E-B48 D-216CD952 32A5}" | |
| 7277 | DTS: EventID="6 094914" | |
| 7278 | DTS: EventName= "OnError" | |
| 7279 | DTS: LocaleID=" -1"> | |
| 7280 | <DTS :Variables > | |
| 7281 | <D TS:Variabl e | |
| 7282 | DTS:Creati onName="" | |
| 7283 | DTS:DTSID= "{28A476DF -D016-4962 -A3E4-FC5B 5A658282}" | |
| 7284 | DTS:Includ eInDebugDu mp="2345" | |
| 7285 | DTS:Namesp ace="User" | |
| 7286 | DTS:Object Name="Noti ficationGr oup"> | |
| 7287 | <DTS:Varia bleValue | |
| 7288 | DTS:DataTy pe="8"> PII </DTS:Vari ableValue> | |
| 7289 | </ DTS:Variab le> | |
| 7290 | <D TS:Variabl e | |
| 7291 | DTS:Creati onName="" | |
| 7292 | DTS:Descri ption="The propagate property of the eve nt" | |
| 7293 | DTS:DTSID= "{95DFF8AA -3134-407E -801A-B6FA BA598A5E}" | |
| 7294 | DTS:Includ eInDebugDu mp="6789" | |
| 7295 | DTS:Namesp ace="Syste m" | |
| 7296 | DTS:Object Name="Prop agate"> | |
| 7297 | <DTS:Varia bleValue | |
| 7298 | DTS:Data Type="11"> -1</DTS:Va riableValu e> | |
| 7299 | </ DTS:Variab le> | |
| 7300 | </DT S:Variable s> | |
| 7301 | <DTS :Executabl es> | |
| 7302 | <D TS:Executa ble | |
| 7303 | DTS:refId= "Package.E ventHandle rs[OnError ]\Log Pack age Error" | |
| 7304 | DTS:Creati onName="Mi crosoft.Sq lServer.Dt s.Tasks.Ex ecuteSQLTa sk.Execute SQLTask, M icrosoft.S qlServer.S QLTask, Ve rsion=11.0 .0.0, Cult ure=neutra l, PublicK eyToken=89 845dcd8080 cc91" | |
| 7305 | DTS:Descri ption="Exe cute SQL T ask" | |
| 7306 | DTS:DTSID= "{EB1C96D2 -A19F-4DEE -B989-DEA1 56478FBC}" | |
| 7307 | DTS:Execut ableType=" Microsoft. SqlServer. Dts.Tasks. ExecuteSQL Task.Execu teSQLTask, Microsoft .SqlServer .SQLTask, Version=11 .0.0.0, Cu lture=neut ral, Publi cKeyToken= 89845dcd80 80cc91" | |
| 7308 | DTS:Locale ID="-1" | |
| 7309 | DTS:Object Name="Log Package Er ror" | |
| 7310 | DTS:TaskCo ntact="Exe cute SQL T ask; Micro soft Corpo ration; Mi crosoft SQ L Server 2 008; © 200 7 Microsof t Corporat ion; All R ights Rese rved;http: //www.micr osoft.com/ sql/suppor t/default. asp;1"> | |
| 7311 | <DTS:Varia bles /> | |
| 7312 | <DTS:Prope rtyExpress ion | |
| 7313 | DTS:Name ="SqlState mentSource ">"exec db o.usp_ETL_ PackageErr or " + (DT _WSTR, 50) @[User::i PackageID] + " ,'" + @[System: :SourceNam e] + "'," + (DT_WSTR , 50) @[Sy stem::Erro rCode] + " ,'" + @[Sy stem::Erro rDescripti on] +"' | |
| 7314 | GO | |
| 7315 | Declare @D ate dateti me=getdate () | |
| 7316 | Exec dbo.u sp_ETL_Pac kageEnd 0, @Date,'Fai led' | |
| 7317 | go | |
| 7318 | "</DTS:Pro pertyExpre ssion> | |
| 7319 | <DTS:Objec tData> | |
| 7320 | <SQLTask :SqlTaskDa ta | |
| 7321 | SQLTas k:Connecti on="{D7948 F44-D7BE-4 422-8F90-4 A130AECABC 9}" | |
| 7322 | SQLTas k:SqlState mentSource ="exec dbo .usp_ETL_P ackageErro r 0 ,'',0, ''
GO& #xA;Declar e @Date da tetime=get date() &#x A;Exec dbo .usp_ETL_P ackageEnd 0,@Date,'F ailed'
 ;go
" xmlns:SQLT ask="www.m icrosoft.c om/sqlserv er/dts/tas ks/sqltask " /> | |
| 7323 | </DTS:Obje ctData> | |
| 7324 | </ DTS:Execut able> | |
| 7325 | <D TS:Executa ble | |
| 7326 | DTS:refId= "Package.E ventHandle rs[OnError ]\Send Mai l Task" | |
| 7327 | DTS:Creati onName="Mi crosoft.Sq lServer.Dt s.Tasks.Se ndMailTask .SendMailT ask, Micro soft.SqlSe rver.SendM ailTask, V ersion=11. 0.0.0, Cul ture=neutr al, Public KeyToken=8 9845dcd808 0cc91" | |
| 7328 | DTS:Descri ption="Sen d Mail Tas k" | |
| 7329 | DTS:DTSID= "{73A83212 -CFEB-4903 -93C7-5132 0410094A}" | |
| 7330 | DTS:Execut ableType=" Microsoft. SqlServer. Dts.Tasks. SendMailTa sk.SendMai lTask, Mic rosoft.Sql Server.Sen dMailTask, Version=1 1.0.0.0, C ulture=neu tral, Publ icKeyToken =89845dcd8 080cc91" | |
| 7331 | DTS:Locale ID="-1" | |
| 7332 | DTS:Object Name="Send Mail Task " | |
| 7333 | DTS:TaskCo ntact="Sen d Mail Tas k; Microso ft Corpora tion; Micr osoft SQL Server 200 8; © 2007 Microsoft Corporatio n; All Rig hts Reserv ed;http:// www.micros oft.com/sq l/support/ default.as p;1"> | |
| 7334 | <DTS:Varia bles /> | |
| 7335 | <DTS:Prope rtyExpress ion | |
| 7336 | DTS:Name ="FromLine ">@[System ::PackageN ame] + "_E rrors@VA.g ov"</DTS:P ropertyExp ression> | |
| 7337 | <DTS:Prope rtyExpress ion | |
| 7338 | DTS:Name ="MessageS ource">@[S ystem::Pac kageName] + " versio n: " + (DT _STR, 10, 1252) @[Sy stem::Vers ionMajor]+ "."+(DT_ST R, 10, 125 2) @[Syste m::Version Minor]+"." +(DT_STR, 10, 1252) @[System:: VersionBui ld] + " h as Encount ered the f ollowing E rror | |
| 7339 | ErrorNumbe r: " + (DT _STR, 100, 1252) @[S ystem::Err orCode] + " | |
| 7340 | ErrorDescr iption: '" + @[Syst em::ErrorD escription ] + "'"</D TS:Propert yExpressio n> | |
| 7341 | <DTS:Prope rtyExpress ion | |
| 7342 | DTS:Name ="Subject" >@[System: :PackageNa me] + " ve rsion: " + (DT_STR, 10, 1252) @[System:: VersionMaj or]+"."+(D T_STR, 10, 1252) @[S ystem::Ver sionMinor] +"."+(DT_S TR, 10, 12 52) @[Syst em::Versio nBuild] + " has Enc ountered a n Error"</ DTS:Proper tyExpressi on> | |
| 7343 | <DTS:Prope rtyExpress ion | |
| 7344 | DTS:Name ="ToLine"> @[User::No tification Group]</DT S:Property Expression > | |
| 7345 | <DTS:Objec tData> | |
| 7346 | <SendMai lTask:Send MailTaskDa ta | |
| 7347 | SendMa ilTask:SMT PServer="{ E10C6F7C-0 8E9-4420-9 6A9-5E0456 F9D7CA}" | |
| 7348 | SendMailTa sk:From=" P I I " | |
| 7349 | SendMailTa sk:To=" PII " | |
| 7350 | SendMa ilTask:Sub ject="DoDF ragment_Im port versi on: 1.0.89 1 has Enco untered an Error" | |
| 7351 | SendMa ilTask:Mes sageSource ="DoDFragm ent_Import version: 1.0.891 ha s Encounte red the fo llowing Er ror
Er rorNumber: 0
Err orDescript ion: ''" x mlns:SendM ailTask="w ww.microso ft.com/sql server/dts /tasks/sen dmailtask" /> | |
| 7352 | </DTS:Obje ctData> | |
| 7353 | </ DTS:Execut able> | |
| 7354 | </DT S:Executab les> | |
| 7355 | <DTS :Precedenc eConstrain ts> | |
| 7356 | <D TS:Precede nceConstra int | |
| 7357 | DTS:refId= "Package.E ventHandle rs[OnError ].Preceden ceConstrai nts[Constr aint]" | |
| 7358 | DTS:Creati onName="" | |
| 7359 | DTS:DTSID= "{D9796D0E -5BDE-4EDA -848A-A012 3C48FF04}" | |
| 7360 | DTS:From=" Package.Ev entHandler s[OnError] \Log Packa ge Error" | |
| 7361 | DTS:Logica lAnd="True " | |
| 7362 | DTS:Object Name="Cons traint" | |
| 7363 | DTS:To="Pa ckage.Even tHandlers[ OnError]\S end Mail T ask" /> | |
| 7364 | </DT S:Preceden ceConstrai nts> | |
| 7365 | </DTS: EventHandl er> | |
| 7366 | </DTS:Ev entHandler s> | |
| 7367 | <DTS:Des ignTimePro perties><! [CDATA[<?x ml version ="1.0"?> | |
| 7368 | <!--This C DATA secti on contain s the layo ut informa tion of th e package. The secti on include s informat ion such a s (x,y) co ordinates, width, an d height.- -> | |
| 7369 | <!--If you manually edit this section an d make a m istake, yo u can dele te it. --> | |
| 7370 | <!--The pa ckage will still be able to lo ad normall y but the previous l ayout info rmation wi ll be lost and the d esigner wi ll automat ically re- arrange th e elements on the de sign surfa ce.--> | |
| 7371 | <Objects | |
| 7372 | Version= "sql11"> | |
| 7373 | <!--Each node belo w will con tain prope rties that do not af fect runti me behavio r.--> | |
| 7374 | <Package | |
| 7375 | design -time-name ="Package" > | |
| 7376 | <Layou tInfo> | |
| 7377 | <Gra phLayout | |
| 7378 | Ca pacity="8" xmlns="cl r-namespac e:Microsof t.SqlServe r.Integrat ionService s.Designer .Model.Ser ialization ;assembly= Microsoft. SqlServer. Integratio nServices. Graph" xml ns:mssgle= "clr-names pace:Micro soft.SqlSe rver.Graph .LayoutEng ine;assemb ly=Microso ft.SqlServ er.Graph" xmlns:asse mbly="http ://schemas .microsoft .com/winfx /2006/xaml "> | |
| 7379 | <N odeLayout | |
| 7380 | Size="136, 59" | |
| 7381 | Id="Packag e\Log Pack age Began " | |
| 7382 | TopLeft="1 03.1897274 63312,52.8 3333333333 31" /> | |
| 7383 | <N odeLayout | |
| 7384 | Size="136, 44" | |
| 7385 | Id="Packag e\LogPacka ge End" | |
| 7386 | TopLeft="9 4.15618448 63732,505. 6781970649 89" /> | |
| 7387 | <N odeLayout | |
| 7388 | Size="215, 44" | |
| 7389 | Id="Packag e\Sequence Container \Foreach L oop Contai ner\Script Task - pr ocess reco rds" | |
| 7390 | TopLeft="2 5.51362683 43816,12.5 2620545073 38" /> | |
| 7391 | <C ontainerLa yout | |
| 7392 | HeaderHeig ht="43.924 5283018867 95" | |
| 7393 | IsExpanded ="True" | |
| 7394 | PanelSize= "290,87" | |
| 7395 | Size="290, 131" | |
| 7396 | Id="Packag e\Sequence Container \Foreach L oop Contai ner" | |
| 7397 | TopLeft="3 1.61006289 30818,26.3 4381551362 69" /> | |
| 7398 | <C ontainerLa yout | |
| 7399 | HeaderHeig ht="43.924 5283018867 95" | |
| 7400 | IsExpanded ="True" | |
| 7401 | PanelSize= "332,218" | |
| 7402 | Size="332, 262" | |
| 7403 | Id="Packag e\Sequence Container " | |
| 7404 | TopLeft="3 7.16666666 66666,152. 0911949685 54" /> | |
| 7405 | <E dgeLayout | |
| 7406 | Id="Packag e.Preceden ceConstrai nts[Constr aint]" | |
| 7407 | TopLeft="2 03.1666666 66667,414. 0911949685 54"> | |
| 7408 | <EdgeLayou t.Curve> | |
| 7409 | <mssgle: Curve | |
| 7410 | StartC onnector=" {assembly: Null}" | |
| 7411 | EndCon nector="-4 1.01048218 02934,91.5 8700209643 51" | |
| 7412 | Start= "0,0" | |
| 7413 | End="- 41.0104821 802934,84. 0870020964 351"> | |
| 7414 | <mssgl e:Curve.Se gments> | |
| 7415 | <mss gle:Segmen tCollectio n | |
| 7416 | Ca pacity="5" > | |
| 7417 | <m ssgle:Line Segment | |
| 7418 | End="0,41. 7935010482 175" /> | |
| 7419 | <m ssgle:Cubi cBezierSeg ment | |
| 7420 | Point1="0, 41.7935010 482175" | |
| 7421 | Point2="0, 45.7935010 482175" | |
| 7422 | Point3="-4 ,45.793501 0482175" / > | |
| 7423 | <m ssgle:Line Segment | |
| 7424 | End="-37.0 1048218029 34,45.7935 010482175" /> | |
| 7425 | <m ssgle:Cubi cBezierSeg ment | |
| 7426 | Point1="-3 7.01048218 02934,45.7 9350104821 75" | |
| 7427 | Point2="-4 1.01048218 02934,45.7 9350104821 75" | |
| 7428 | Point3="-4 1.01048218 02934,49.7 9350104821 75" /> | |
| 7429 | <m ssgle:Line Segment | |
| 7430 | End="-41.0 1048218029 34,84.0870 020964351" /> | |
| 7431 | </ms sgle:Segme ntCollecti on> | |
| 7432 | </mssg le:Curve.S egments> | |
| 7433 | </mssgle :Curve> | |
| 7434 | </EdgeLayo ut.Curve> | |
| 7435 | <EdgeLayou t.Labels> | |
| 7436 | <EdgeLab elCollecti on /> | |
| 7437 | </EdgeLayo ut.Labels> | |
| 7438 | </ EdgeLayout > | |
| 7439 | <E dgeLayout | |
| 7440 | Id="Packag e.Preceden ceConstrai nts[Constr aint 1]" | |
| 7441 | TopLeft="1 71.1897274 63312,111. 8333333333 33"> | |
| 7442 | <EdgeLayou t.Curve> | |
| 7443 | <mssgle: Curve | |
| 7444 | StartC onnector=" {assembly: Null}" | |
| 7445 | EndCon nector="31 .976939203 3546,40.25 7861635220 9" | |
| 7446 | Start= "0,0" | |
| 7447 | End="3 1.97693920 33546,32.7 5786163522 09"> | |
| 7448 | <mssgl e:Curve.Se gments> | |
| 7449 | <mss gle:Segmen tCollectio n | |
| 7450 | Ca pacity="5" > | |
| 7451 | <m ssgle:Line Segment | |
| 7452 | End="0,16. 1289308176 104" /> | |
| 7453 | <m ssgle:Cubi cBezierSeg ment | |
| 7454 | Point1="0, 16.1289308 176104" | |
| 7455 | Point2="0, 20.1289308 176104" | |
| 7456 | Point3="4, 20.1289308 176104" /> | |
| 7457 | <m ssgle:Line Segment | |
| 7458 | End="27.97 6939203354 6,20.12893 08176104" /> | |
| 7459 | <m ssgle:Cubi cBezierSeg ment | |
| 7460 | Point1="27 .976939203 3546,20.12 8930817610 4" | |
| 7461 | Point2="31 .976939203 3546,20.12 8930817610 4" | |
| 7462 | Point3="31 .976939203 3546,24.12 8930817610 4" /> | |
| 7463 | <m ssgle:Line Segment | |
| 7464 | End="31.97 6939203354 6,32.75786 16352209" /> | |
| 7465 | </ms sgle:Segme ntCollecti on> | |
| 7466 | </mssg le:Curve.S egments> | |
| 7467 | </mssgle :Curve> | |
| 7468 | </EdgeLayo ut.Curve> | |
| 7469 | <EdgeLayou t.Labels> | |
| 7470 | <EdgeLab elCollecti on /> | |
| 7471 | </EdgeLayo ut.Labels> | |
| 7472 | </ EdgeLayout > | |
| 7473 | </Gr aphLayout> | |
| 7474 | </Layo utInfo> | |
| 7475 | </Packag e> | |
| 7476 | <DtsEven tHandler | |
| 7477 | design -time-name ="Package. EventHandl ers[OnErro r]"> | |
| 7478 | <Layou tInfo> | |
| 7479 | <Gra phLayout | |
| 7480 | Ca pacity="4" xmlns="cl r-namespac e:Microsof t.SqlServe r.Integrat ionService s.Designer .Model.Ser ialization ;assembly= Microsoft. SqlServer. Integratio nServices. Graph" xml ns:mssgle= "clr-names pace:Micro soft.SqlSe rver.Graph .LayoutEng ine;assemb ly=Microso ft.SqlServ er.Graph" xmlns:asse mbly="http ://schemas .microsoft .com/winfx /2006/xaml " xmlns:ms sgm="clr-n amespace:M icrosoft.S qlServer.G raph.Model ;assembly= Microsoft. SqlServer. Graph"> | |
| 7481 | <N odeLayout | |
| 7482 | Size="135. 7735849056 61,43.9245 283018868" | |
| 7483 | Id="Packag e.EventHan dlers[OnEr ror]\Log P ackage Err or" | |
| 7484 | TopLeft="5 .5,5.5" /> | |
| 7485 | <N odeLayout | |
| 7486 | Size="135. 7735849056 61,43.9245 283018868" | |
| 7487 | Id="Packag e.EventHan dlers[OnEr ror]\Send Mail Task" | |
| 7488 | TopLeft="2 4.36792452 83019,99.9 1509433962 26" /> | |
| 7489 | <E dgeLayout | |
| 7490 | Id="Packag e.EventHan dlers[OnEr ror].Prece denceConst raints[Con straint]" | |
| 7491 | TopLeft="7 3.38679245 28302,49.4 2452830188 68"> | |
| 7492 | <EdgeLayou t.Curve> | |
| 7493 | <mssgle: Curve | |
| 7494 | StartC onnector=" {assembly: Null}" | |
| 7495 | EndCon nector="18 .867924528 3019,50.49 0566037735 8" | |
| 7496 | Start= "0,0" | |
| 7497 | End="1 8.86792452 83019,42.9 9056603773 58"> | |
| 7498 | <mssgl e:Curve.Se gments> | |
| 7499 | <mss gle:Segmen tCollectio n | |
| 7500 | Ca pacity="5" > | |
| 7501 | <m ssgle:Line Segment | |
| 7502 | End="0,25. 2452830188 679" /> | |
| 7503 | <m ssgle:Line Segment | |
| 7504 | End="18.86 7924528301 9,25.24528 30188679" /> | |
| 7505 | <m ssgle:Line Segment | |
| 7506 | End="18.86 7924528301 9,42.99056 60377358" /> | |
| 7507 | </ms sgle:Segme ntCollecti on> | |
| 7508 | </mssg le:Curve.S egments> | |
| 7509 | </mssgle :Curve> | |
| 7510 | </EdgeLayo ut.Curve> | |
| 7511 | <EdgeLayou t.Labels> | |
| 7512 | <mssgm:E dgeLabel | |
| 7513 | Boundi ngBox="0,0 ,0,0" | |
| 7514 | Relati vePosition ="Any" /> | |
| 7515 | </EdgeLayo ut.Labels> | |
| 7516 | </ EdgeLayout > | |
| 7517 | </Gr aphLayout> | |
| 7518 | </Layo utInfo> | |
| 7519 | </DtsEve ntHandler> | |
| 7520 | </Objects> ]]></DTS:D esignTimeP roperties> | |
| 7521 | </DTS:Exec utable> |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.