diff --git a/样品仓库/BPCK.cfg b/样品仓库/BPCK.cfg new file mode 100644 index 0000000..7876259 --- /dev/null +++ b/样品仓库/BPCK.cfg @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-U"D:\ͨERP" +-O"D:\ͨERP" +-I"D:\ͨERP" +-R"D:\ͨERP" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/样品仓库/BPCK.dof b/样品仓库/BPCK.dof new file mode 100644 index 0000000..6bb5bd4 --- /dev/null +++ b/样品仓库/BPCK.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=D:\ͨERP +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\Ŀ\Ŀ\\Ʒֿ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/样品仓库/BPCK.dpr b/样品仓库/BPCK.dpr new file mode 100644 index 0000000..75f7fd7 --- /dev/null +++ b/样品仓库/BPCK.dpr @@ -0,0 +1,54 @@ +library BPCK; + +uses + SysUtils, + classes, + forms, + WinTypes, + WinProcs, + U_DataLink in 'U_DataLink.pas' {BPCK_DataLink: TDataModule}, + U_GetDllForm in 'U_GetDllForm.pas', + U_Fun10 in '..\..\..\ThreeFun\Fun\U_Fun10.pas', + U_BpRklist in 'U_BpRklist.pas' {frmBpRklist}, + U_BpCk in 'U_BpCk.pas' {frmbpCk}, + U_BpGdCklist in 'U_BpGdCklist.pas' {frmBpGdCklist}, + U_BpRk in 'U_BpRk.pas' {frmbpRk}, + U_ZDYHelp in '..\..\..\ThreeFun\Form\U_ZDYHelp.pas' {frmZDYHelp}, + U_ProductOrderNewListSEl in 'U_ProductOrderNewListSEl.pas' {frmProductOrderNewListSEl}, + U_ZdyAttachCP in 'U_ZdyAttachCP.pas' {frmZdyAttachCP}, + U_ZdyAttachGYS in 'U_ZdyAttachGYS.pas' {frmZdyAttachGYS}, + U_ZdyAttachment in 'U_ZdyAttachment.pas' {frmZdyAttachment}, + U_BpGdCkEdit in 'U_BpGdCkEdit.pas' {frmBpGdCkEdit}, + U_Fun in '..\..\..\ThreeFun\Fun\U_Fun.pas', + U_SelExportField in '..\..\..\ThreeFun\Form\U_SelExportField.pas' {frmSelExportField}, + U_SelPrintField in '..\..\..\ThreeFun\Form\U_SelPrintField.pas' {frmSelPrintField}, + U_SelPrintFieldNew in '..\..\..\ThreeFun\Form\U_SelPrintFieldNew.pas' {frmSelPrintFieldNew}, + U_ColumnSet in '..\..\..\ThreeFun\Form\U_ColumnSet.pas' {frmColumnSet}, + U_ColumnBandSet in '..\..\..\ThreeFun\Form\U_ColumnBandSet.pas' {frmColumnBandSet}, + U_ZdyAttachmentBJ_Edit in 'U_ZdyAttachmentBJ_Edit.pas' {frmZdyAttachmentBJ_Edit}, + U_ZdyAttachmentBJ in 'U_ZdyAttachmentBJ.pas' {frmZdyAttachmentCB}; + +{$R *.res} + +procedure DllEnterPoint(dwReason: DWORD);far;stdcall; +begin + DLLProc := @DLLEnterPoint; + DllEnterPoint(DLL_PROCESS_ATTACH); +end; + +procedure DLLUnloadProc(Reason: Integer); register; +begin + { if (Reason = DLL_PROCESS_DETACH) or (Reason=DLL_THREAD_DETACH) then + Application:=NewDllApp; } +end; +exports + GetDllForm; +begin + try + NewDllApp:=Application; + DLLProc := @DLLUnloadProc; + except + + end; +end. + diff --git a/样品仓库/BPCK.res b/样品仓库/BPCK.res new file mode 100644 index 0000000..2d6f24c Binary files /dev/null and b/样品仓库/BPCK.res differ diff --git a/样品仓库/ProjectGroup1.bpg b/样品仓库/ProjectGroup1.bpg new file mode 100644 index 0000000..7a8a674 --- /dev/null +++ b/样品仓库/ProjectGroup1.bpg @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe BPCK.dll +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + +BPCK.dll: BPCK.dpr + $(DCC) + + diff --git a/样品仓库/ProjectGroup1.~bpg b/样品仓库/ProjectGroup1.~bpg new file mode 100644 index 0000000..b27dbcb --- /dev/null +++ b/样品仓库/ProjectGroup1.~bpg @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe BaseData.dll +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + +BaseData.dll: BaseData.dpr + $(DCC) + + diff --git a/样品仓库/SYSTEMSET.ini b/样品仓库/SYSTEMSET.ini new file mode 100644 index 0000000..e4904d4 --- /dev/null +++ b/样品仓库/SYSTEMSET.ini @@ -0,0 +1,3 @@ +[SERVER] +ַ=127.0.0.1 +=XXXXXXX1 \ No newline at end of file diff --git a/样品仓库/U_BpCk.dfm b/样品仓库/U_BpCk.dfm new file mode 100644 index 0000000..19fa7bd --- /dev/null +++ b/样品仓库/U_BpCk.dfm @@ -0,0 +1,403 @@ +object frmbpCk: TfrmbpCk + Left = 198 + Top = 152 + Width = 897 + Height = 442 + BorderIcons = [biSystemMenu] + Caption = #20986#24211#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 881 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 881 + Height = 64 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 36 + Top = 20 + Width = 48 + Height = 12 + Caption = #20986#24211#26085#26399 + end + object Label2: TLabel + Left = 488 + Top = 24 + Width = 48 + Height = 12 + Caption = #20986#24211#31867#22411 + end + object Label3: TLabel + Left = 36 + Top = 80 + Width = 48 + Height = 12 + Caption = #21457#24448#21333#20301 + end + object Label4: TLabel + Left = 252 + Top = 20 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object Label5: TLabel + Left = 36 + Top = 40 + Width = 48 + Height = 12 + Caption = #35746#21333#20449#24687 + end + object Label6: TLabel + Left = 252 + Top = 40 + Width = 24 + Height = 12 + Caption = #20135#21697 + end + object Label7: TLabel + Left = 488 + Top = 40 + Width = 48 + Height = 12 + Caption = #39068' '#33394 + end + object CRTime: TDateTimePicker + Left = 88 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + end + object CRType: TComboBox + Left = 544 + Top = 16 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + Text = #38144#21806#20986#24211 + Items.Strings = ( + #38144#21806#20986#24211 + #21152#24037#20986#24211) + end + object FirstName: TBtnEditA + Left = 88 + Top = 76 + Width = 557 + Height = 20 + ReadOnly = True + TabOrder = 2 + OnBtnClick = FirstNameBtnClick + end + object ckName: TComboBox + Left = 280 + Top = 16 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 3 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object orderNO: TBtnEditA + Left = 88 + Top = 36 + Width = 100 + Height = 20 + ReadOnly = True + TabOrder = 4 + OnBtnClick = orderNOBtnClick + end + object PRTCodeName: TEdit + Left = 280 + Top = 36 + Width = 100 + Height = 20 + Enabled = False + ReadOnly = True + TabOrder = 5 + end + object PRTColor: TEdit + Left = 544 + Top = 36 + Width = 100 + Height = 20 + Enabled = False + ReadOnly = True + TabOrder = 6 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 122 + Width = 881 + Height = 260 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object v1MJXH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_CodeNamePropertiesButtonClick + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1P_SPEC: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'P_SPEC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 90 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1P_MF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1P_KZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'P_KZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1CPType: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 60 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 132 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 93 + Width = 881 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 292 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 340 + Top = 8 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 400 + Top = 9 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 17 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 728 + Top = 101 + end +end diff --git a/样品仓库/U_BpCk.pas b/样品仓库/U_BpCk.pas new file mode 100644 index 0000000..da943ec --- /dev/null +++ b/样品仓库/U_BpCk.pas @@ -0,0 +1,629 @@ +unit U_BpCk; + +interface + +uses + Windows, Messages, SysUtils,StrUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, + cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, + cxButtonEdit, cxDropDownEdit, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, BtnEdit; + +type + TfrmbpCk = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + CRTime: TDateTimePicker; + Label2: TLabel; + CRType: TComboBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1P_SPEC: TcxGridDBColumn; + v1P_MF: TcxGridDBColumn; + v1P_KZ: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + FirstName: TBtnEditA; + v1MJID: TcxGridDBColumn; + v1MJXH: TcxGridDBColumn; + v1CPType: TcxGridDBColumn; + ckName: TComboBox; + Label4: TLabel; + Label5: TLabel; + orderNO: TBtnEditA; + Label6: TLabel; + PRTCodeName: TEdit; + Label7: TLabel; + PRTColor: TEdit; + v1P_Color: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FirstNameBtnClick(Sender: TObject); + procedure orderNOBtnClick(Sender: TObject); + private + fmainID,fsubID:string; + procedure InitGrid(); + function savedate():Boolean; + procedure SetComboBox(); + function YSData(Order_Main10:TClientDataSet):Boolean; + { Private declarations } + public + fkeyNO:string; + FType:integer; + fCKName:string; + { Public declarations } + end; + +var + frmbpCk: TfrmbpCk; + +implementation + uses + U_DataLink,U_Fun10,U_ZDYHelp, U_Bpkclist, + U_ProductOrderNewList; +{$R *.dfm} +function TfrmbpCk.YSData(Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou,cust:String; +begin + Result:=False; + with Order_Main10 do + begin + + with ADOQueryTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_main where MainID='''+Trim(Order_Main10.fieldbyname('MainID').AsString)+''''); + Open; + cust:=FieldbyName('customerNOName').AsString; + end; + with ADOQueryTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from JYOrder_sub where MainID='''+Trim(Order_Main10.fieldbyname('MainID').AsString)+''''); + sql.Add(' and subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+''''); + Open; + Price:=FieldbyName('PrtPrice').AsString; + end; + + with ADOQueryTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(cust)+''' and YFDefFlag1=0 '); + Open; + end; + if not ADOQueryTmp.IsEmpty then + begin + CRID:=ADOQueryTmp.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(cust); + FieldByName('ZdyStr1').Value:='Ӧ'; + Post; + end; + end; + with ADOQueryTmp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(Order_Main10.fieldbyname('MainID').AsString)+''''); + sql.Add(' and subID='''+Trim(Order_Main10.fieldbyname('subID').AsString)+''''); + sql.Add(' and YFName=''Ʒ'' '); + Open; + end; + if ADOQueryTmp.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('MainId').AsString); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(cust); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',date())); + FieldByName('YFType').Value:='Զ'; + FieldByName('Price').Value:=Price; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(cust); + FieldByName('YFName').Value:='Ʒ'; + FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); + FieldByName('subID').Value:=Trim(Order_Main10.fieldbyname('subID').AsString); + Post; + end; + end + else + begin + YFID:=Trim(ADOQueryTmp.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(Qty),0) from BP_INout A '); + sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType=''Ʒ'' )'); + sql.Add(',PS=(select isnull(count(*),0) from BP_INout A '); + sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType=''Ʒ'' )'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); + sql.Add(' where YFID='''+Trim(YFID)+''''); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; +procedure TfrmbpCk.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; + + CRType.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +function TfrmbpCk.savedate():Boolean; +var + fkcID:integer; + Filler:string; + FillTime:TdateTime; + maxno:string; +begin + result:=false; + try + ADOQueryCmd.Connection.BeginTrans; + if FType=0 then + begin + if GetLSNo(ADOQueryCmd,fkeyNO,'CK','BP_InOut',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Filler:=DName; + FillTime:=SGetServerDateTime(adoqueryTmp); + end + else + begin + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + open; + Filler:=adoqueryTmp.fieldbyname('Filler').AsString; + FillTime:=adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update BP_kc set RollNum=A.RollNum + B.RollNum, Qty=A.Qty + B.Qty '); + sql.Add('from BP_kc A'); + sql.Add('inner join BP_INout B on B.kcid=A.kcid'); + sql.Add('where B.CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + CDS_Main.DisableControls; + CDS_Main.First; + with CDS_Main do + begin + while not eof do + begin + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value:=trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value:=recNo; + ADOQueryCmd.FieldByName('CKName').Value:=trim(CKName.Text); + ADOQueryCmd.FieldByName('mainID').Value:=trim(fmainID); + ADOQueryCmd.FieldByName('subID').Value:=trim(fsubID); + ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTIme.Date); + ADOQueryCmd.FieldByName('CRType').Value:=trim(CRType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value:=''; + ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); + ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); + ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); + ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value:=trim(fieldbyname('P_CodeName').AsString); + ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value:=trim(fieldbyname('P_Color').AsString); + ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; + ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value:=fieldbyname('RollNum').AsFloat; + ADOQueryCmd.FieldByName('Qty').Value:=fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value:=trim(fieldbyname('QtyUnit').AsString); + ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); + ADOQueryCmd.FieldByName('Filler').Value:=trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value:=dateTimetostr(FillTime); + // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); + // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); + if FType=1 then + begin + ADOQueryCmd.FieldByName('editer').Value:=trim(dName); + ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(adoqueryTmp); + end; + ADOQueryCmd.FieldByName('kcID').Value:=FieldByName('kcID').AsInteger; + ADOQueryCmd.Post; + + edit; + FieldByName('CRNO').Value:=trim(fkeyNO); + FieldByName('mainID').Value:=trim(fmainID); + FieldByName('subID').Value:=trim(fsubID); + post; + next; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update BP_kc set RollNum=A.RollNum - B.RollNum, Qty=A.Qty - B.Qty '); + sql.Add('from BP_kc A'); + sql.Add('inner join BP_INout B on B.kcid=A.kcid'); + sql.Add('where B.CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update BP_kc set RollNum=1'); + sql.Add('from BP_kc A'); + sql.Add('where A.RollNum=0 and A.Qty<>0 '); + execsql; + end; + + if trim(CRType.Text)='Ʒ' then + begin + if not YSData(CDS_Main) then + begin + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result:=true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; +procedure TfrmbpCk.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.*,B.orderNo,B.PrtCodeName,B.PrtColor from BP_InOut A'); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('where A.CRNO='+quotedstr(trim(fkeyNO))); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + if not CDS_Main.IsEmpty then + begin + CRTime.Date:= CDS_Main.fieldbyname('CRTime').AsDateTime; + CKName.ItemIndex:=CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); + CRType.ItemIndex:=CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); + fmainID:=trim(CDS_Main.fieldbyname('MainID').AsString); + fsubID:=trim(CDS_Main.fieldbyname('subID').AsString); + orderNo.Text:=trim(CDS_Main.fieldbyname('orderNo').AsString); + PRTCodeName.Text:=trim(CDS_Main.fieldbyname('PRTCodeName').AsString); + PRTColor.Text:=trim(CDS_Main.fieldbyname('PRTColor').AsString); + // FirstName.TxtCode:=trim(CDS_Main.fieldbyname('FirstNo').AsString); + // FirstName.Text:=trim(CDS_Main.fieldbyname('FirstName').AsString); + end; + finally + end; +end; + +procedure TfrmbpCk.FormDestroy(Sender: TObject); +begin + frmbpCk:=nil; +end; + +procedure TfrmbpCk.FormCreate(Sender: TObject); +begin + CRTime.Date:=DServerDate; + cxGrid1.Align:=alclient; + readCxGrid(self.Caption,Tv1,'ƥֿ'); + fmainID:=''; + fsubID:=''; +end; + +procedure TfrmbpCk.FormClose(Sender: TObject; var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + Action:=cahide; +end; + +procedure TfrmbpCk.FormShow(Sender: TObject); +begin + SetComboBox(); + InitGrid(); +end; + +procedure TfrmbpCk.TBSaveClick(Sender: TObject); +begin + if cds_main.IsEmpty then exit; + CRTime.SetFocus; + if trim(CRType.Text)='' then + begin + application.MessageBox('ͲΪգ','ʾϢ',0); + exit; + end; + + if (trim(CRType.Text)='Ʒ') and (trim(orderNO.Text)='') then + begin + application.MessageBox('ϢΪգ','ʾϢ',0); + exit; + end; + + if cds_main.Locate('QtyUnit','',[]) then + begin + application.MessageBox('λΪգ','ʾϢ',0); + exit; + end; + if cds_main.Locate('QtyUnit',NULL,[]) then + begin + application.MessageBox('λΪգ','ʾϢ',0); + exit; + end; + + if savedate() then + begin + application.MessageBox('ݱɹ','ʾϢ'); + ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + end; +end; + +procedure TfrmbpCk.v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Cloth'; + flagname:=''; + if ShowModal=1 then + begin + Self.CDS_Main.Edit; + Self.CDS_Main.FieldByName('P_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + Self.CDS_Main.FieldByName('P_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmbpCk.ToolButton1Click(Sender: TObject); +begin + frmBpkclist:=TfrmBpkclist.create(self); + with frmBpkclist do + begin + fType:=10; + fckName:=self.fckName; + if showmodal=1 then + begin + cds_main.DisableControls; + cds_main.First; + while not cds_main.Eof do + begin + if (cds_main.fieldbyname('ssel').AsBoolean) and + (not self.cds_main.Locate('kcid',cds_main.fieldbyname('kcid').AsInteger,[])) then + begin + self.cds_main.Append; + self.cds_main.FieldByName('kcid').Value:=trim(cds_main.fieldbyname('kcid').AsString); + self.cds_main.FieldByName('MJID').Value:=trim(cds_main.fieldbyname('MJID').AsString); + self.cds_main.FieldByName('MJXH').Value:=trim(cds_main.fieldbyname('MJXH').AsString); + self.cds_main.FieldByName('CPTYPE').Value:=trim(cds_main.fieldbyname('CPTYPE').AsString); + self.cds_main.FieldByName('P_Code').Value:=trim(cds_main.fieldbyname('P_Code').AsString); + self.cds_main.FieldByName('P_CodeName').Value:=trim(cds_main.fieldbyname('P_CodeName').AsString); + self.cds_main.FieldByName('P_spec').Value:=trim(cds_main.fieldbyname('P_spec').AsString); + self.cds_main.FieldByName('P_Color').Value:=trim(cds_main.fieldbyname('P_Color').AsString); + self.cds_main.FieldByName('P_MF').Value:=cds_main.fieldbyname('P_MF').AsFloat; + self.cds_main.FieldByName('P_KZ').Value:=cds_main.fieldbyname('P_KZ').AsFloat; + self.cds_main.FieldByName('RollNum').Value:=cds_main.fieldbyname('RollNum').AsFloat; + self.cds_main.FieldByName('Qty').Value:=cds_main.fieldbyname('Qty').AsFloat; + self.cds_main.FieldByName('QtyUnit').Value:=trim(cds_main.fieldbyname('QtyUnit').AsString); + self.cds_main.Post; + end; + cds_main.Next; + end; + cds_main.EnableControls; + end; + free; + end; + +end; + +procedure TfrmbpCk.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then exit; + CDS_Main.Delete; +end; + +procedure TfrmbpCk.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmbpCk.FirstNameBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='Factory'; + flagname:='ص'; + MainType:='RanFactory'; + if ShowModal=1 then + begin + FirstName.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString); + FirstName.TxtCode:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYNo').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmbpCk.orderNOBtnClick(Sender: TObject); +begin + frmProductOrderNewList:=TfrmProductOrderNewList.Create(Application); + with frmProductOrderNewList do + begin + DParameters1:='Ȩ'; + if showmodal=1 then + begin + self.fmainID:=trim(Order_Main.fieldbyname('MainID').AsString); + self.fsubID:=trim(Order_Main.fieldbyname('subID').AsString); + self.orderNo.Text:=trim(Order_Main.fieldbyname('orderNo').AsString); + self.PRTCodeName.Text:=trim(Order_Main.fieldbyname('PRTCodeName').AsString); + self.PRTColor.Text:=trim(Order_Main.fieldbyname('PRTColor').AsString); + end; + free; + end; +end; + +end. diff --git a/样品仓库/U_BpGdCkEdit.dfm b/样品仓库/U_BpGdCkEdit.dfm new file mode 100644 index 0000000..0f1f39c --- /dev/null +++ b/样品仓库/U_BpGdCkEdit.dfm @@ -0,0 +1,480 @@ +object frmBpGdCkEdit: TfrmBpGdCkEdit + Left = 216 + Top = 139 + Width = 1050 + Height = 530 + Caption = #20986#24211#32534#36753 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1034 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + Visible = False + OnClick = TBRafreshClick + end + object TOk: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450#20986#24211 + ImageIndex = 41 + OnClick = TOkClick + end + object TBExport: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #25171#21360 + Enabled = False + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 150 + Width = 1034 + Height = 266 + Align = alTop + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1ckqty + end + item + Kind = skSum + Column = v1money + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + OptionsView.IndicatorWidth = 15 + Styles.Header = BPCK_DataLink.Default + OnCustomDrawIndicatorCell = Tv1CustomDrawIndicatorCell + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_CodeNamePropertiesButtonClick + Properties.OnEditValueChanged = v1P_CodeNamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 152 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnEditValueChanged = v1P_ColorPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1ckqty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Footer = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Header = BPCK_DataLink.cxStyle_fontclFuchsia + Width = 121 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 92 + end + object v1price: TcxGridDBColumn + Caption = #20986#24211#20215#26684 + DataBinding.FieldName = 'price' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 103 + end + object v1money: TcxGridDBColumn + Caption = #20986#24211#37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclPurple + Styles.Footer = BPCK_DataLink.cxStyle_fontclPurple + Styles.Header = BPCK_DataLink.cxStyle_fontclPurple + Width = 98 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 0 + Top = 32 + Width = 1034 + Height = 89 + Align = alTop + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 2 + object GroupBox1: TGroupBox + Left = 0 + Top = 0 + Width = 1034 + Height = 89 + Align = alClient + Caption = #20986#24211#20449#24687 + Color = clSkyBlue + ParentColor = False + TabOrder = 0 + object Label8: TLabel + Left = 24 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 208 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 420 + Top = 20 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 24 + Top = 68 + Width = 54 + Height = 12 + Caption = #22791' '#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 24 + Top = 44 + Width = 52 + Height = 12 + Caption = #23458#25143#22320#22336 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CRTime: TDateTimePicker + Left = 88 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + end + object CRType: TComboBox + Tag = 2 + Left = 265 + Top = 16 + Width = 120 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object cust: TBtnEditA + Left = 484 + Top = 16 + Width = 297 + Height = 20 + ReadOnly = True + TabOrder = 2 + OnBtnClick = custBtnClick + end + object note: TEdit + Left = 88 + Top = 64 + Width = 693 + Height = 20 + TabOrder = 3 + end + object custaddress: TEdit + Left = 88 + Top = 40 + Width = 693 + Height = 20 + Enabled = False + TabOrder = 4 + end + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 121 + Width = 1034 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object Panel1: TPanel + Left = 676 + Top = 124 + Width = 289 + Height = 25 + BevelOuter = bvNone + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + object Label23: TLabel + Left = 108 + Top = 4 + Width = 45 + Height = 14 + Caption = #25968#37327#65306 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 536 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 612 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 12 + end + object ADOQuery1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 740 + Top = 16 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_BpGdCkEdit.pas b/样品仓库/U_BpGdCkEdit.pas new file mode 100644 index 0000000..55c4b28 --- /dev/null +++ b/样品仓库/U_BpGdCkEdit.pas @@ -0,0 +1,776 @@ +unit U_BpGdCkEdit; + +interface + +uses + Windows, Messages, SysUtils, Variants, cxEdit,Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, DB, cxDBData,cxTextEdit, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCheckBox, BtnEdit, cxCurrencyEdit,strUtils, RM_Common, + RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset; + +type + TfrmBpGdCkEdit = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + TOk: TToolButton; + v1P_Color: TcxGridDBColumn; + v1ckqty: TcxGridDBColumn; + v1price: TcxGridDBColumn; + v1money: TcxGridDBColumn; + Panel2: TPanel; + GroupBox1: TGroupBox; + CRTime: TDateTimePicker; + Label8: TLabel; + CRType: TComboBox; + Label5: TLabel; + Label9: TLabel; + cust: TBtnEditA; + ADOQuery1: TADOQuery; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + Panel1: TPanel; + Label23: TLabel; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + Label1: TLabel; + note: TEdit; + Label2: TLabel; + custaddress: TEdit; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TOkClick(Sender: TObject); + procedure custBtnClick(Sender: TObject); + procedure v1ckqtyPropertiesEditValueChanged(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); + procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; + var ADone: Boolean); + private + procedure InitGrid(); + procedure SetComboBox(); + function savedate():Boolean; + function YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; + procedure DoKc(); + + { Private declarations } + public + fType:integer; + fCKName:string; + fkeyNO:string; + + { Public declarations } + end; + +var + frmBpGdCkEdit: TfrmBpGdCkEdit; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk, U_ZdyAttachCP, U_ZdyAttachment; +{$R *.dfm} +procedure TfrmBpGdCkEdit.DoKc(); +begin + Label23.Caption:='0'; + IF CDS_Main.IsEmpty then exit; + IF trim(CDS_Main.fieldbyname('P_CodeName').AsString)='' then exit; + IF trim(CDS_Main.fieldbyname('P_Color').AsString)='' then exit; + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select AA.* '); + sql.Add('FROM( select A.ckName,P_CodeName,A.P_Color,A.QtyUnit,ckQty=0.00,Price=0.00,money=0.00, '); + sql.Add(' SUM(case when CRFlag='''' then Qty else -1 * Qty end ) as Qty '); + sql.Add('from BP_InOut A '); + sql.Add('where P_CodeName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString)) ); + sql.Add('and P_Color='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString)) ); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + sql.Add('group by A.ckName,P_CodeName,A.P_Color,A.QtyUnit)AA '); + open; + end; + IF not ADOQuery1.IsEmpty then + begin +// Label22.Caption:='ƥ'+trim(ADOQuery1.fieldbyname('kcRollNum').AsString); + Label23.Caption:=''+trim(ADOQuery1.fieldbyname('Qty').AsString); + end; +end; +function TfrmBpGdCkEdit.YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou:String; +begin + Result:=False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(cust.text)+''''); + sql.Add('and ZdyStr1=''Ӧ'''); + sql.Add('and YFDefFlag1=1 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID:=ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(cust.text); + FieldByName('ZdyStr1').Value:='Ӧ'; + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''㶫'' '); + execsql; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''㶫'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ckNo); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(cust.Text); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime)); + FieldByName('YFType').Value:='Զ'; + FieldByName('ps').Value:=0; + FieldByName('Qty').Value:=Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value:=Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value:=Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value:=Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(cust.Text); + FieldByName('P_CodeName').Value:=trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value:=trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFName').Value:='㶫'; + FieldByName('MainId').Value:=Trim(ckNo); + FieldByName('subID').Value:=Trim(ckID); + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end + else + begin + YFID:=Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; +function TfrmBpGdCkEdit.savedate():Boolean; +var + fkcID,i:integer; + Filler:string; + FillTime:TdateTime; + maxno:string; +begin + result:=false; + try + ADOQueryCmd.Connection.BeginTrans; + if FType=0 then + begin + if GetLSNo(ADOQueryCmd,fkeyNO,'GC','BP_InOut',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Filler:=DName; + FillTime:=SGetServerDateTime(adoqueryTmp); + end + else + begin + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + open; + Filler:=adoqueryTmp.fieldbyname('Filler').AsString; + FillTime:=adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(fkeyNO)+''''); + sql.Add(' and YFName=''㶫'' '); + sql.Add('and YFDefFlag1=1 '); + execsql; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + CDS_Main.DisableControls; + CDS_Main.First; + i:=1; + with CDS_Main do + begin + while not eof do + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value:=trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value:=i; + ADOQueryCmd.FieldByName('CKName').Value:=trim(fckName); + // ADOQueryCmd.FieldByName('mainID').Value:=trim(fmainID); + // ADOQueryCmd.FieldByName('subID').Value:=trim(fsubID); + ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.Date); + ADOQueryCmd.FieldByName('CRType').Value:=trim(crType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value:=''; + // ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); + // ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); + // ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); + // ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value:=trim(fieldbyname('P_CodeName').AsString); + // ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value:=trim(fieldbyname('P_Color').AsString); + // ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; + // ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value:=0; + ADOQueryCmd.FieldByName('Qty').Value:=fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('Price').Value:=fieldbyname('Price').AsFloat; + ADOQueryCmd.FieldByName('money').Value:=fieldbyname('money').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value:=trim(fieldbyname('QtyUnit').AsString); + // ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); + ADOQueryCmd.FieldByName('Filler').Value:=trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value:=dateTimetostr(FillTime); + ADOQueryCmd.FieldByName('cust').Value:=trim(cust.Text); + ADOQueryCmd.FieldByName('custaddress').Value:=trim(custaddress.Text); + ADOQueryCmd.FieldByName('note').Value:=trim(note.Text); + // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); + // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); + if FType=10 then + begin + ADOQueryCmd.FieldByName('editer').Value:=trim(dName); + ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(ADOQuery1); + end; + ADOQueryCmd.Post; + + if not YSData(fkeyNo,inttostr(i),CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + i:=i+1; + next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result:=true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; +procedure TfrmBpGdCkEdit.SetComboBox(); +begin + { ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; } + + CRType.Items.Clear; + // CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpGdCkEdit.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.* from BP_InOut A'); + sql.Add('where A.CRNO='+quotedstr(trim(fkeyNO))); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + if not CDS_Main.IsEmpty then + begin + CRTime.Date:= CDS_Main.fieldbyname('CRTime').AsDateTime; + // CKName.ItemIndex:=CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); + CRType.ItemIndex:=CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); + cust.Text:= trim(CDS_Main.fieldbyname('cust').AsString); + custaddress.Text:= trim(CDS_Main.fieldbyname('custaddress').AsString); + note.Text:= trim(CDS_Main.fieldbyname('note').AsString); + end; + finally + end; +end; + +procedure TfrmBpGdCkEdit.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + if fType=10 then Action:=cahide + else Action:=cafree; +end; + +procedure TfrmBpGdCkEdit.FormDestroy(Sender: TObject); +begin + frmBpGdCkEdit:=nil; +end; + +procedure TfrmBpGdCkEdit.FormShow(Sender: TObject); +begin +{ if fType=10 then + begin + TOk.Visible:=true; + // v1Ssel.Visible:=true; + v1ckqty.Visible:=true; + v1price.Visible:=true; + v1money.Visible:=true; + GroupBox1.Visible:=true; + end + else + begin + TOk.Visible:=false; + // v1Ssel.Visible:=false; + v1ckqty.Visible:=false; + v1price.Visible:=false; + v1money.Visible:=false; + GroupBox1.Visible:=false; + end; } + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpGdCkEdit.FormCreate(Sender: TObject); +begin + //BegDate.Date:=DServerDate-7; +// EndDate.Date:=DServerDate; + CRTime.date:= DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpGdCkEdit.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpGdCkEdit.TBRafreshClick(Sender: TObject); +begin + + initGrid(); +end; + +procedure TfrmBpGdCkEdit.TBPrintClick(Sender: TObject); +var + filepath:string; +begin + if trim(fkeyNO)='' then exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Do_PrintMd '); + sql.Add('@mainID='+quotedstr(trim(fkeyNO))); + sql.Add(',@flag='+quotedstr(trim('㶫'))); + open; + end; + + try + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(DName); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; + +end; + +procedure TfrmBpGdCkEdit.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpGdCkEdit.TOkClick(Sender: TObject); +begin + CRTIME.SetFocus; + IF CDS_Main.IsEmpty then exit; + if trim(CRType.Text)='' then + begin + application.MessageBox('ͲΪգ','ʾϢ',0); + exit; + end; + if trim(cust.Text)=''then + begin + application.MessageBox('ͻΪգ','ʾϢ',0); + exit; + end; + if savedate() then + begin + application.MessageBox('ݱɹ','ʾϢ'); + TOk.Enabled:=false; + TBPrint.Enabled:=true; + // ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + end; +end; + +procedure TfrmBpGdCkEdit.custBtnClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:='㶫ͻ'; + if ShowModal=1 then + begin + cust.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + custaddress.Text:=Trim(CDS_HZ.fieldbyname('defnote1').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmBpGdCkEdit.v1ckqtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; + num1:double; + +begin + fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with CDS_Main do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=TcxTextEdit(Sender).EditingText; + num1:=FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value:=strtofloat(format('%8.0f',[num1])); + Post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpGdCkEdit.CheckBox1Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmBpGdCkEdit.ToolButton1Click(Sender: TObject); +begin + CopyAddRow(Tv1,CDS_Main); + CDS_Main.edit; + CDS_Main.fieldbyname('QtyUnit').Value:='M'; + CDS_Main.Post; +end; + +procedure TfrmBpGdCkEdit.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then exit; + CDS_Main.Delete; +end; + +procedure TfrmBpGdCkEdit.v1P_CodeNamePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + + IF trim(mvalue)='' then exit; + + IF rightBstr(trim(mvalue),1)<>'#'THEN + BEGIn + mvalue:=trim(mvalue)+'#'; + END; + + + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value:=Trim(mvalue); + Post; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); + open; + end; + IF ADOQuery1.IsEmpty then + begin + application.MessageBox('Ʒڣ','ʾϢ',0); + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value:=''; + Post; + end; + exit; + end; + +end; + +procedure TfrmBpGdCkEdit.v1P_ColorPropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + + IF trim(mvalue)='' then exit; + + IF rightBstr(trim(mvalue),1)<>'#'THEN + BEGIn + mvalue:=trim(mvalue)+'#'; + END; + + + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value:=Trim(mvalue); + Post; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); + sql.Add('and DEFstr3='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString))); + open; + end; + IF ADOQuery1.IsEmpty then + begin + application.MessageBox('ɫڣ','ʾϢ',0); + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value:=''; + Post; + end; + end; +end; + +procedure TfrmBpGdCkEdit.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + DoKc(); +end; + +procedure TfrmBpGdCkEdit.v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal=1 then + begin + Self.CDS_main.Edit; + Self.CDS_main.FieldByName('P_Code').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + Self.CDS_main.FieldByName('P_CodeName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + Self.CDS_main.FieldByName('P_Color').Value:=Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); + // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + Self.CDS_main.Post; + end; + end; + finally + frmZdyAttachCP.Free; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpGdCkEdit.Tv1CustomDrawIndicatorCell( + Sender: TcxGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); +var + FValue: string; + FBounds: TRect; + begin + FBounds := AViewInfo.Bounds; + if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then + begin + ACanvas.FillRect(FBounds); + ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); + FValue :=IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index+1); + InflateRect(FBounds, -1, -1) ; + ACanvas.Font.Color := clBlack; + ACanvas.Brush.Style := bsClear; + ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); + ADone := True; + end; + end; + + +end. diff --git a/样品仓库/U_BpGdCklist.dfm b/样品仓库/U_BpGdCklist.dfm new file mode 100644 index 0000000..c8dbb73 --- /dev/null +++ b/样品仓库/U_BpGdCklist.dfm @@ -0,0 +1,515 @@ +object frmBpGdCklist: TfrmBpGdCklist + Left = 87 + Top = 133 + Width = 1178 + Height = 579 + Caption = #20986#24211#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1162 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + Visible = False + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #20986#24211 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBADD1: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #26679#21697#20986#24211 + ImageIndex = 3 + OnClick = TBADD1Click + end + object TBEdit: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 339 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object Tlook: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #26597#30475 + ImageIndex = 57 + OnClick = TlookClick + end + object TBExport: TToolButton + Left = 465 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #25171#21360#20986#24211#21333 + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 627 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1162 + Height = 45 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 168 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object Label3: TLabel + Left = 464 + Top = 16 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 628 + Top = 16 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 288 + Top = 16 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 328 + Top = 56 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object Label7: TLabel + Left = 772 + Top = 16 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 1000 + Top = 16 + Width = 65 + Height = 12 + Caption = #20986#24211#21333#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 180 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 520 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object P_Color: TEdit + Tag = 2 + Left = 660 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = P_CodeNameChange + end + object CRType: TComboBox + Tag = 2 + Left = 344 + Top = 12 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 4 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #38144#21806#20986#24211 + #21152#24037#20986#24211) + end + object ckName: TComboBox + Left = 356 + Top = 52 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 5 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object cust: TEdit + Tag = 2 + Left = 804 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = P_CodeNameChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 77 + Width = 1162 + Height = 384 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1CRNO: TcxGridDBColumn + Caption = #20986#24211#32534#21495 + DataBinding.FieldName = 'CRNO' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CRID: TcxGridDBColumn + Caption = #24207#27425#21495 + DataBinding.FieldName = 'CRID' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1CRTime: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + Width = 60 + end + object v1CRType: TcxGridDBColumn + Caption = #20986#24211#31867#22411 + DataBinding.FieldName = 'CRType' + HeaderAlignmentHorz = taCenter + end + object v1cust: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'cust' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1custaddress: TcxGridDBColumn + Caption = #23458#25143#22320#22336 + DataBinding.FieldName = 'custaddress' + HeaderAlignmentHorz = taCenter + Width = 96 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Filler: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1FillTime: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 75 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 724 + Top = 4 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 832 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 856 + Top = 161 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 876 + Top = 101 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 508 + Top = 68 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_BpGdCklist.pas b/样品仓库/U_BpGdCklist.pas new file mode 100644 index 0000000..ea6a1f9 --- /dev/null +++ b/样品仓库/U_BpGdCklist.pas @@ -0,0 +1,436 @@ +unit U_BpGdCklist; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, RM_System, RM_Dataset, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport; + +type + TfrmBpGdCklist = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1CRType: TcxGridDBColumn; + v1CRTime: TcxGridDBColumn; + v1CRNO: TcxGridDBColumn; + v1CRID: TcxGridDBColumn; + v1Filler: TcxGridDBColumn; + v1FillTime: TcxGridDBColumn; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + P_CodeName: TEdit; + P_Color: TEdit; + CRType: TComboBox; + Label5: TLabel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + ckName: TComboBox; + Label6: TLabel; + v1P_Color: TcxGridDBColumn; + v1cust: TcxGridDBColumn; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + Tlook: TToolButton; + cust: TEdit; + Label7: TLabel; + TBADD1: TToolButton; + Label8: TLabel; + v1custaddress: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TlookClick(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure TBADD1Click(Sender: TObject); + private + procedure InitGrid(); + procedure SetComboBox(); + { Private declarations } + public + fCKName:string; + fManage:string; + { Public declarations } + end; + +var + frmBpGdCklist: TfrmBpGdCklist; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpCk, U_BpkcCk, U_BpGdCkEdit,U_BpGdYPCkEdit; +{$R *.dfm} + +procedure TfrmBpGdCklist.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; + + CRType.Items.Clear; + CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpGdCklist.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + sql.Add('and CRFlag='''' '); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select COUNT(distinct CRNo) as CRNo from BP_InOut A'); + sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + sql.Add('and CRFlag='''' '); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + open; + IF IsEmpty then + begin + Label8.Caption:='ⵥ0'; + end + else + begin + Label8.Caption:='ⵥ'+Fieldbyname('CRNo').AsString; + end; + end; + finally + end; +end; + +procedure TfrmBpGdCklist.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + Action:=cafree; +end; + +procedure TfrmBpGdCklist.FormDestroy(Sender: TObject); +begin + frmBpGdCklist:=nil; +end; + +procedure TfrmBpGdCklist.TBAddClick(Sender: TObject); +begin + frmBpGdCkEdit:=TfrmBpGdCkEdit.create(self); + with frmBpGdCkEdit do + begin + fkeyNo:=''; + fType:=0; + fckName:=self.fckName; + if showmodal=1 then + begin + + // self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; + TBRafresh.Click; +end; + +procedure TfrmBpGdCklist.P_CodeNameChange(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,CDS_Main); + SInitCDSData20(ADOQueryTmp,CDS_Main); +end; + +procedure TfrmBpGdCklist.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + IF trim(fManage)='Ȩ' then TBDel.Visible:=true + else TBDel.Visible:=false; + InitGrid(); +end; + +procedure TfrmBpGdCklist.FormCreate(Sender: TObject); +begin + BegDate.Date:=DServerDate; + EndDate.Date:=DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpGdCklist.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpGdCklist.TBEditClick(Sender: TObject); +begin + if cds_main.IsEmpty then exit; + + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣ޸ģ','ʾ',0); + Exit; + end; } + + frmBpGdCkEdit:=TfrmBpGdCkEdit.create(self); + with frmBpGdCkEdit do + begin + fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString; + fType:=10; + fckName:=self.fckName; + if showmodal=1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; +end; + +procedure TfrmBpGdCklist.TBDelClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } +{ with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣɾ','ʾ',0); + Exit; + end; } + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + + try + + + with ADOQueryCmd do + begin + Close; + sql.Clear; + + + { sql.Add('update Contract_Cloth_DH set DHPS=A.DHPS - B.RollNum, DHQty=A.DHQty - B.Qty '); + sql.Add('from Contract_Cloth_DH A'); + sql.Add('inner join BP_INout B on cast(B.kcid as varchar)=A.SXDHID and rtrim(B.FirstName)=rtrim(A.FirstName)'); + sql.Add('where B.CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add('and B.CRType=''ӹ'' '); } + + + + sql.Add('delete from YF_Money_CR '); + SQL.Add('where maiNID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where YFDefFlag1=1 '); + + sql.Add('update BP_kc set RollNum=1, Qty=A.Qty + B.Qty '); + sql.Add('from BP_kc A'); + sql.Add('inner join BP_INout B on B.kcid=A.kcid'); + sql.Add('where B.CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + + sql.Add('delete from BP_InOut '); + SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ⵥɾ'))); + sql.Add(','+quotedstr(trim('ⵥţ'+trim(CDS_Main.FieldByName('CRNO').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + TBRafresh.Click; + except + Application.MessageBox('ɾʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmBpGdCklist.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmBpGdCklist.TBPrintClick(Sender: TObject); +var + filepath:string; +begin + if CDS_Main.IsEmpty then exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Do_PrintMd '); + sql.Add('@mainID='+quotedstr(trim(CDS_Main.fieldbyname('cRNo').AsString))); + sql.Add(',@flag='+quotedstr(trim('㶫'))); + open; + end; + + try + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; + +end; + +procedure TfrmBpGdCklist.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpGdCklist.TlookClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + frmBpGdCkEdit:=TfrmBpGdCkEdit.create(self); + with frmBpGdCkEdit do + begin + fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString; + fType:=10; + fckName:=self.fckName; + tok.Enabled:=false; + TBPrint.Enabled:=true; + tv1.OptionsData.Editing:=false; + if showmodal=1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; +end; + +procedure TfrmBpGdCklist.Tv1DblClick(Sender: TObject); +begin + Tlook.Click; +end; + +procedure TfrmBpGdCklist.TBADD1Click(Sender: TObject); +begin + frmBpGdYPCkEdit:=TfrmBpGdYPCkEdit.create(self); + with frmBpGdYPCkEdit do + begin + fkeyNo:=''; + fType:=0; + fckName:=self.fckName; + if showmodal=1 then + begin + + // self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; + TBRafresh.Click; +end; + +end. diff --git a/样品仓库/U_BpGdYPCkEdit.dfm b/样品仓库/U_BpGdYPCkEdit.dfm new file mode 100644 index 0000000..4a40e8a --- /dev/null +++ b/样品仓库/U_BpGdYPCkEdit.dfm @@ -0,0 +1,596 @@ +object frmBpGdYPCkEdit: TfrmBpGdYPCkEdit + Left = 213 + Top = 123 + Width = 1035 + Height = 564 + Caption = #20986#24211#32534#36753 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1019 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + Visible = False + OnClick = TBRafreshClick + end + object TOk: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450#20986#24211 + ImageIndex = 41 + OnClick = TOkClick + end + object TBExport: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #25171#21360 + Enabled = False + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 214 + Width = 1019 + Height = 251 + Align = alTop + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1ckqty + end + item + Kind = skSum + Column = v1money + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_CodeNamePropertiesButtonClick + Properties.OnEditValueChanged = v1P_CodeNamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 152 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnEditValueChanged = v1P_ColorPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1ckqty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Footer = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Header = BPCK_DataLink.cxStyle_fontclFuchsia + Width = 121 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 92 + end + object v1price: TcxGridDBColumn + Caption = #20986#24211#20215#26684 + DataBinding.FieldName = 'price' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 103 + end + object v1money: TcxGridDBColumn + Caption = #20986#24211#37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclPurple + Styles.Footer = BPCK_DataLink.cxStyle_fontclPurple + Styles.Header = BPCK_DataLink.cxStyle_fontclPurple + Width = 98 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 0 + Top = 32 + Width = 1019 + Height = 153 + Align = alTop + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 2 + object GroupBox1: TGroupBox + Left = 0 + Top = 0 + Width = 1019 + Height = 97 + Align = alTop + Caption = #20986#24211#20449#24687 + Color = clSkyBlue + Ctl3D = True + ParentColor = False + ParentCtl3D = False + TabOrder = 0 + object Label8: TLabel + Left = 24 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 208 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 420 + Top = 20 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 24 + Top = 72 + Width = 54 + Height = 12 + Caption = #22791' '#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 24 + Top = 44 + Width = 52 + Height = 12 + Caption = #23458#25143#22320#22336 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CRTime: TDateTimePicker + Left = 88 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + OnKeyPress = CRTimeKeyPress + end + object CRType: TComboBox + Tag = 2 + Left = 265 + Top = 16 + Width = 120 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + OnKeyPress = CRTimeKeyPress + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object cust: TBtnEditA + Left = 484 + Top = 16 + Width = 297 + Height = 20 + ReadOnly = True + TabOrder = 2 + OnKeyPress = CRTimeKeyPress + OnBtnClick = custBtnClick + end + object note: TEdit + Left = 88 + Top = 68 + Width = 693 + Height = 20 + TabOrder = 3 + OnKeyPress = CRTimeKeyPress + end + object custaddress: TEdit + Left = 88 + Top = 40 + Width = 693 + Height = 20 + Enabled = False + TabOrder = 4 + end + end + object GroupBox2: TGroupBox + Left = 0 + Top = 97 + Width = 1019 + Height = 56 + Align = alClient + Caption = #20135#21697#20449#24687 + Color = clSkyBlue + Ctl3D = True + ParentColor = False + ParentCtl3D = False + TabOrder = 1 + object Label2: TLabel + Left = 28 + Top = 28 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 208 + Top = 28 + Width = 54 + Height = 12 + Caption = #25968' '#37327 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 424 + Top = 28 + Width = 54 + Height = 12 + Caption = #21333' '#20215 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object P_CodeName: TBtnEditA + Left = 88 + Top = 24 + Width = 100 + Height = 20 + TabOrder = 0 + OnExit = P_CodeNameExit + OnKeyPress = CRTimeKeyPress + OnBtnClick = P_CodeNameBtnClick + end + object Edit1: TEdit + Left = 268 + Top = 24 + Width = 121 + Height = 20 + TabOrder = 1 + OnKeyPress = CRTimeKeyPress + end + object Edit2: TEdit + Left = 488 + Top = 24 + Width = 121 + Height = 20 + TabOrder = 2 + OnKeyPress = CRTimeKeyPress + end + object Button1: TButton + Left = 620 + Top = 20 + Width = 75 + Height = 25 + Caption = #30830#23450 + TabOrder = 3 + OnClick = Button1Click + end + object CheckBox1: TCheckBox + Left = 736 + Top = 24 + Width = 97 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + OnClick = CheckBox1Click + end + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 185 + Width = 1019 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object Panel1: TPanel + Left = 736 + Top = 168 + Width = 213 + Height = 25 + BevelOuter = bvNone + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + object Label23: TLabel + Left = 60 + Top = 4 + Width = 45 + Height = 14 + Caption = #25968#37327#65306 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 536 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 612 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 12 + end + object ADOQuery1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 740 + Top = 16 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_BpGdYPCkEdit.pas b/样品仓库/U_BpGdYPCkEdit.pas new file mode 100644 index 0000000..476233d --- /dev/null +++ b/样品仓库/U_BpGdYPCkEdit.pas @@ -0,0 +1,882 @@ +unit U_BpGdYPCkEdit; + +interface + +uses + Windows, Messages, SysUtils, Variants, cxEdit,Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, DB, cxDBData,cxTextEdit, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCheckBox, BtnEdit, cxCurrencyEdit,strUtils, RM_Common, + RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset; + +type + TfrmBpGdYPCkEdit = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + TOk: TToolButton; + v1P_Color: TcxGridDBColumn; + v1ckqty: TcxGridDBColumn; + v1price: TcxGridDBColumn; + v1money: TcxGridDBColumn; + Panel2: TPanel; + GroupBox1: TGroupBox; + CRTime: TDateTimePicker; + Label8: TLabel; + CRType: TComboBox; + Label5: TLabel; + Label9: TLabel; + cust: TBtnEditA; + ADOQuery1: TADOQuery; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + Panel1: TPanel; + Label23: TLabel; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + Label1: TLabel; + note: TEdit; + v1ssel: TcxGridDBColumn; + GroupBox2: TGroupBox; + Label2: TLabel; + P_CodeName: TBtnEditA; + Label3: TLabel; + Edit1: TEdit; + Label4: TLabel; + Edit2: TEdit; + Button1: TButton; + CheckBox1: TCheckBox; + custaddress: TEdit; + Label6: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TOkClick(Sender: TObject); + procedure custBtnClick(Sender: TObject); + procedure v1ckqtyPropertiesEditValueChanged(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); + procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); + procedure P_CodeNameBtnClick(Sender: TObject); + procedure P_CodeNameExit(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure CRTimeKeyPress(Sender: TObject; var Key: Char); + private + procedure InitGrid(); + procedure SetComboBox(); + function savedate():Boolean; + function YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; + procedure DoKc(); + { Private declarations } + public + fType:integer; + fCKName:string; + fkeyNO:string; + + { Public declarations } + end; + +var + frmBpGdYPCkEdit: TfrmBpGdYPCkEdit; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk, U_ZdyAttachCP, U_ZdyAttachment; +{$R *.dfm} +procedure TfrmBpGdYPCkEdit.DoKc(); +begin + Label23.Caption:='0'; + IF CDS_Main.IsEmpty then exit; + IF trim(CDS_Main.fieldbyname('P_CodeName').AsString)='' then exit; + IF trim(CDS_Main.fieldbyname('P_Color').AsString)='' then exit; + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select AA.* '); + sql.Add('FROM( select A.ckName,P_CodeName,A.P_Color,A.QtyUnit,ckQty=0.00,Price=0.00,money=0.00, '); + sql.Add(' SUM(case when CRFlag='''' then Qty else -1 * Qty end ) as Qty '); + sql.Add('from BP_InOut A '); + sql.Add('where P_CodeName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString)) ); + sql.Add('and P_Color='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString)) ); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + sql.Add('group by A.ckName,P_CodeName,A.P_Color,A.QtyUnit)AA '); + open; + end; + IF not ADOQuery1.IsEmpty then + begin +// Label22.Caption:='ƥ'+trim(ADOQuery1.fieldbyname('kcRollNum').AsString); + Label23.Caption:=''+trim(ADOQuery1.fieldbyname('Qty').AsString); + end; +end; +function TfrmBpGdYPCkEdit.YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou:String; +begin + Result:=False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(cust.text)+''''); + sql.Add('and YFDefFlag1=1 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID:=ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(cust.text); + FieldByName('ZdyStr1').Value:='Ӧ'; + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''㶫'' '); + execsql; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''㶫'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ckNo); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(cust.Text); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime)); + FieldByName('YFType').Value:='Զ'; + FieldByName('ps').Value:=0; + FieldByName('Qty').Value:=Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value:=Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value:=Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value:=Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(cust.Text); + FieldByName('P_CodeName').Value:=trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value:=trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFName').Value:='㶫'; + FieldByName('MainId').Value:=Trim(ckNo); + FieldByName('subID').Value:=Trim(ckID); + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end + else + begin + YFID:=Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; +function TfrmBpGdYPCkEdit.savedate():Boolean; +var + fkcID,i:integer; + Filler:string; + FillTime:TdateTime; + maxno:string; +begin + result:=false; + try + ADOQueryCmd.Connection.BeginTrans; + if FType=0 then + begin + if GetLSNo(ADOQueryCmd,fkeyNO,'GC','BP_InOut',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Filler:=DName; + FillTime:=SGetServerDateTime(adoqueryTmp); + end + else + begin + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + open; + Filler:=adoqueryTmp.fieldbyname('Filler').AsString; + FillTime:=adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(fkeyNO)+''''); + sql.Add(' and YFName=''㶫'' '); + sql.Add('and YFDefFlag1=1 '); + execsql; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + CDS_Main.DisableControls; + CDS_Main.First; + i:=1; + with CDS_Main do + begin + while not eof do + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value:=trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value:=i; + ADOQueryCmd.FieldByName('CKName').Value:=trim(fckName); + // ADOQueryCmd.FieldByName('mainID').Value:=trim(fmainID); + // ADOQueryCmd.FieldByName('subID').Value:=trim(fsubID); + ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.Date); + ADOQueryCmd.FieldByName('CRType').Value:=trim(crType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value:=''; + // ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); + // ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); + // ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); + // ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value:=trim(fieldbyname('P_CodeName').AsString); + // ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value:=trim(fieldbyname('P_Color').AsString); + // ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; + // ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value:=0; + ADOQueryCmd.FieldByName('Qty').Value:=fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('Price').Value:=fieldbyname('Price').AsFloat; + ADOQueryCmd.FieldByName('money').Value:=fieldbyname('money').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value:=trim(fieldbyname('QtyUnit').AsString); + // ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); + ADOQueryCmd.FieldByName('Filler').Value:=trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value:=dateTimetostr(FillTime); + ADOQueryCmd.FieldByName('cust').Value:=trim(cust.Text); + ADOQueryCmd.FieldByName('custaddress').Value:=trim(custaddress.Text); + ADOQueryCmd.FieldByName('note').Value:=trim(note.Text); + // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); + // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); + if FType=1 then + begin + ADOQueryCmd.FieldByName('editer').Value:=trim(dName); + ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(ADOQuery1); + end; + ADOQueryCmd.Post; + + if not YSData(fkeyNo,inttostr(i),CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + i:=i+1; + next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result:=true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; +procedure TfrmBpGdYPCkEdit.SetComboBox(); +begin + { ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; } + + CRType.Items.Clear; + // CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpGdYPCkEdit.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.* from BP_InOut A'); + sql.Add('where A.CRNO='+quotedstr(trim(fkeyNO))); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + if not CDS_Main.IsEmpty then + begin + CRTime.Date:= CDS_Main.fieldbyname('CRTime').AsDateTime; + // CKName.ItemIndex:=CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); + CRType.ItemIndex:=CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); + cust.Text:= trim(CDS_Main.fieldbyname('cust').AsString); + custaddress.Text:= trim(CDS_Main.fieldbyname('custaddress').AsString); + note.Text:= trim(CDS_Main.fieldbyname('note').AsString); + end; + finally + end; +end; + +procedure TfrmBpGdYPCkEdit.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + if fType=10 then Action:=cahide + else Action:=cafree; +end; + +procedure TfrmBpGdYPCkEdit.FormDestroy(Sender: TObject); +begin + frmBpGdYPCkEdit:=nil; +end; + +procedure TfrmBpGdYPCkEdit.FormShow(Sender: TObject); +begin +{ if fType=10 then + begin + TOk.Visible:=true; + // v1Ssel.Visible:=true; + v1ckqty.Visible:=true; + v1price.Visible:=true; + v1money.Visible:=true; + GroupBox1.Visible:=true; + end + else + begin + TOk.Visible:=false; + // v1Ssel.Visible:=false; + v1ckqty.Visible:=false; + v1price.Visible:=false; + v1money.Visible:=false; + GroupBox1.Visible:=false; + end; } + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpGdYPCkEdit.FormCreate(Sender: TObject); +begin + //BegDate.Date:=DServerDate-7; +// EndDate.Date:=DServerDate; + CRTime.date:= DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpGdYPCkEdit.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpGdYPCkEdit.TBRafreshClick(Sender: TObject); +begin + + initGrid(); +end; + +procedure TfrmBpGdYPCkEdit.TBPrintClick(Sender: TObject); +var + filepath:string; +begin + if trim(fkeyNO)='' then exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Do_PrintMd '); + sql.Add('@mainID='+quotedstr(trim(fkeyNO))); + sql.Add(',@flag='+quotedstr(trim('㶫'))); + open; + end; + + try + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(DName); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; + +end; + +procedure TfrmBpGdYPCkEdit.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpGdYPCkEdit.TOkClick(Sender: TObject); +begin + CRTIME.SetFocus; + IF CDS_Main.IsEmpty then exit; + if trim(CRType.Text)='' then + begin + application.MessageBox('ͲΪգ','ʾϢ',0); + exit; + end; + if trim(cust.Text)=''then + begin + application.MessageBox('ͻΪգ','ʾϢ',0); + exit; + end; + if savedate() then + begin + application.MessageBox('ݱɹ','ʾϢ'); + TOk.Enabled:=false; + TBPrint.Enabled:=true; + // ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + end; +end; + +procedure TfrmBpGdYPCkEdit.custBtnClick(Sender: TObject); +begin + try + frmZdyAttachment:=TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + fkhType:='㶫ͻ'; + if ShowModal=1 then + begin + cust.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + custaddress.Text:=Trim(CDS_HZ.fieldbyname('defnote1').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; +end; + +procedure TfrmBpGdYPCkEdit.v1ckqtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; + num1:double; + +begin + fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with CDS_Main do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=TcxTextEdit(Sender).EditingText; + num1:=FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value:=strtofloat(format('%8.0f',[num1])); + Post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpGdYPCkEdit.CheckBox1Click(Sender: TObject); +begin + IF CDS_Main.IsEmpty then exit; + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + edit; + fieldbyname('ssel').Value:=checkbox1.Checked; + post; + next; + end; + First; + EnableControls; + end; +// TBRafresh.Click; +end; + +procedure TfrmBpGdYPCkEdit.ToolButton1Click(Sender: TObject); +begin + CopyAddRow(Tv1,CDS_Main); + CDS_Main.edit; + CDS_Main.fieldbyname('QtyUnit').Value:='M'; + CDS_Main.Post; +end; + +procedure TfrmBpGdYPCkEdit.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then exit; + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + if CDS_Main.Locate('ssel',true,[]) then + begin + CDS_Main.Delete; + end + else + begin + First; + EnableControls; + exit; + end; + //next; + end; + First; + EnableControls; + end; + +end; + +procedure TfrmBpGdYPCkEdit.v1P_CodeNamePropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + + IF trim(mvalue)='' then exit; + + IF rightBstr(trim(mvalue),1)<>'#'THEN + BEGIn + mvalue:=trim(mvalue)+'#'; + END; + + + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value:=Trim(mvalue); + Post; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); + open; + end; + IF ADOQuery1.IsEmpty then + begin + application.MessageBox('Ʒڣ','ʾϢ',0); + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value:=''; + Post; + end; + exit; + end; + +end; + +procedure TfrmBpGdYPCkEdit.v1P_ColorPropertiesEditValueChanged( + Sender: TObject); +var + mvalue:string; +begin + mvalue:=TcxTextEdit(Sender).EditingText; + + IF trim(mvalue)='' then exit; + + IF rightBstr(trim(mvalue),1)<>'#'THEN + BEGIn + mvalue:=trim(mvalue)+'#'; + END; + + + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value:=Trim(mvalue); + Post; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); + sql.Add('and DEFstr3='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString))); + open; + end; + IF ADOQuery1.IsEmpty then + begin + application.MessageBox('ɫڣ','ʾϢ',0); + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value:=''; + Post; + end; + end; +end; + +procedure TfrmBpGdYPCkEdit.Tv1CellClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + DoKc(); +end; + +procedure TfrmBpGdYPCkEdit.v1P_CodeNamePropertiesButtonClick(Sender: TObject; + AButtonIndex: Integer); +begin + try + frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal=1 then + begin + Self.CDS_main.Edit; + Self.CDS_main.FieldByName('P_Code').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + Self.CDS_main.FieldByName('P_CodeName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + Self.CDS_main.FieldByName('P_Color').Value:=Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); + // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + Self.CDS_main.Post; + end; + end; + finally + frmZdyAttachCP.Free; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpGdYPCkEdit.P_CodeNameBtnClick(Sender: TObject); +begin + try + frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal=1 then + begin + Self.P_COdeName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZdyAttachCP.Free; + end; +end; + +procedure TfrmBpGdYPCkEdit.P_CodeNameExit(Sender: TObject); +var + mvalue:string; +begin + mvalue:=trim(P_CodeName.Text); + IF trim(mvalue)='' then exit; + + IF rightBstr(trim(mvalue),1)<>'#'THEN + BEGIn + mvalue:=trim(mvalue)+'#'; + END; + P_CodeName.Text:= trim(mvalue); + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(mvalue))); + open; + end; + IF ADOQuery1.IsEmpty then + begin + application.MessageBox('Ʒڣ','ʾϢ',0); + P_CodeName.Text:=''; + exit; + end; +end; + +procedure TfrmBpGdYPCkEdit.Button1Click(Sender: TObject); +begin + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName='+quotedstr(trim(P_CodeName.Text))); + open; + end; + + CDS_Main.DisableControls; + CDS_Main.Last; + while not ADOQuery1.Eof do + begin + CDS_Main.Append; + CDS_main.FieldByName('P_Code').Value:=Trim(ADOQuery1.fieldbyname('ZdyCode').AsString); + CDS_main.FieldByName('P_CodeName').Value:=Trim(ADOQuery1.fieldbyname('ZDYName').AsString); + CDS_main.FieldByName('P_Color').Value:=Trim(ADOQuery1.fieldbyname('DEFstr3').AsString); + CDS_main.FieldByName('Qty').Value:=strtofloatdef(trim(edit1.Text),0); + CDS_main.FieldByName('Price').Value:=strtofloatdef(trim(edit2.Text),0); + CDS_main.FieldByName('Money').Value:=strtofloat(format('%.0f',[CDS_main.FieldByName('Qty').AsFloat * CDS_main.FieldByName('Price').AsFloat])); + CDS_Main.Post; + ADOQuery1.Next; + end; + CDS_Main.EnableControls; + +end; + +procedure TfrmBpGdYPCkEdit.CRTimeKeyPress(Sender: TObject; var Key: Char); +begin + Key:=UpCase(Key); + if key=#13 then + begin + perform(WM_NEXTDLGCTL,0,0); + Key := #0; + end; +end; + +end. diff --git a/样品仓库/U_BpRk.dfm b/样品仓库/U_BpRk.dfm new file mode 100644 index 0000000..4ff58e7 --- /dev/null +++ b/样品仓库/U_BpRk.dfm @@ -0,0 +1,593 @@ +object frmbpRk: TfrmbpRk + Left = 173 + Top = 162 + Width = 1086 + Height = 500 + BorderIcons = [biSystemMenu] + Caption = #20837#24211#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1070 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBSave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TBSaveClick + end + object TBPrint: TToolButton + Left = 63 + Top = 0 + Caption = #25171#21360#36864#36135#21333 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 158 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 1070 + Height = 96 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 36 + Top = 20 + Width = 52 + Height = 12 + Caption = #20837#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 356 + Top = 20 + Width = 52 + Height = 12 + Caption = #20837#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 212 + Top = 20 + Width = 26 + Height = 12 + Caption = #20179#24211 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 36 + Top = 68 + Width = 54 + Height = 12 + Caption = #22791' '#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 36 + Top = 44 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 876 + Top = 20 + Width = 54 + Height = 12 + Caption = #25968' '#37327 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 876 + Top = 48 + Width = 52 + Height = 12 + Caption = #22797#21046#34892#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 404 + Top = 148 + Width = 52 + Height = 12 + Caption = #23458#25143#22320#22336 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 104 + Top = 160 + Width = 52 + Height = 12 + Caption = #20844#21496#25260#22836 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 355 + Top = 43 + Width = 53 + Height = 12 + Caption = #20379' '#24212' '#21830 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CRTime: TDateTimePicker + Left = 92 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + end + object CRType: TComboBox + Left = 412 + Top = 16 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 1 + Items.Strings = ( + #37319#36141#20837#24211) + end + object ckName: TComboBox + Left = 244 + Top = 16 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 2 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object note: TEdit + Left = 92 + Top = 64 + Width = 421 + Height = 20 + TabOrder = 3 + end + object cust: TBtnEditA + Left = 92 + Top = 40 + Width = 245 + Height = 20 + ReadOnly = True + TabOrder = 4 + OnBtnClick = custBtnClick + end + object Edit1: TEdit + Left = 928 + Top = 16 + Width = 80 + Height = 20 + TabOrder = 5 + OnKeyPress = Edit1KeyPress + end + object Edit2: TEdit + Left = 928 + Top = 44 + Width = 80 + Height = 20 + TabOrder = 6 + OnKeyPress = Edit2KeyPress + end + object custaddress: TEdit + Left = 460 + Top = 144 + Width = 333 + Height = 20 + Enabled = False + TabOrder = 7 + end + object SYRName: TComboBox + Tag = 2 + Left = 156 + Top = 156 + Width = 253 + Height = 20 + Style = csDropDownList + Ctl3D = False + ItemHeight = 12 + ParentCtl3D = False + TabOrder = 8 + Items.Strings = ( + #27491#24120#21333 + #21098#26679#21333) + end + object FactoryNoName: TEdit + Left = 413 + Top = 39 + Width = 97 + Height = 20 + TabOrder = 9 + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 154 + Width = 1070 + Height = 260 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end + item + Kind = skSum + Column = v1Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1MJXH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v1MJId: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJId' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_CodeNamePropertiesButtonClick + Properties.OnEditValueChanged = v1P_CodeNamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1PRTSpec: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'P_SPEC' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 90 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_ColorPropertiesButtonClick + Properties.OnEditValueChanged = v1P_ColorPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_MF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_KZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'P_KZ' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1CPType: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'CPType' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsEditFixedList + Properties.Items.Strings = ( + #27491#21697 + #19968#31561#27425#21697 + #20108#31561#27425#21697) + Properties.ReadOnly = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 60 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1QtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 60 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg' + #26412) + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = v1QtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1Column2: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.cxStyle_fontclPurple + Styles.Footer = BPCK_DataLink.cxStyle_fontclPurple + Styles.Header = BPCK_DataLink.cxStyle_fontclPurple + Width = 81 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 125 + Width = 1070 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 292 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 344 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 400 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 1 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 532 + Top = 65 + end + object ADOQuery1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 500 + Top = 8 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_BpRk.pas b/样品仓库/U_BpRk.pas new file mode 100644 index 0000000..b7e922a --- /dev/null +++ b/样品仓库/U_BpRk.pas @@ -0,0 +1,1212 @@ +unit U_BpRk; + +interface + +uses + Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls, + Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, + cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxButtonEdit, cxDropDownEdit, + DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, BtnEdit, + RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, + dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, + dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter, cxContainer, cxMaskEdit; + +type + TfrmbpRk = class(TForm) + ToolBar1: TToolBar; + TBSave: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + CRTime: TDateTimePicker; + Label2: TLabel; + CRType: TComboBox; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1PRTSpec: TcxGridDBColumn; + v1P_MF: TcxGridDBColumn; + v1P_KZ: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + Label3: TLabel; + ckName: TComboBox; + v1MJXH: TcxGridDBColumn; + v1MJId: TcxGridDBColumn; + v1CPType: TcxGridDBColumn; + v1P_Color: TcxGridDBColumn; + note: TEdit; + Label4: TLabel; + cust: TBtnEditA; + Label9: TLabel; + ADOQuery1: TADOQuery; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + Edit1: TEdit; + Label5: TLabel; + Label6: TLabel; + Edit2: TEdit; + TBPrint: TToolButton; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + custaddress: TEdit; + Label7: TLabel; + SYRName: TComboBox; + Label25: TLabel; + Label8: TLabel; + FactoryNoName: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure TBSaveClick(Sender: TObject); + procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); + procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); + procedure v1P_ColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure custBtnClick(Sender: TObject); + procedure v1QtyPropertiesEditValueChanged(Sender: TObject); + procedure Edit1KeyPress(Sender: TObject; var Key: Char); + procedure Edit2KeyPress(Sender: TObject; var Key: Char); + procedure TBPrintClick(Sender: TObject); + procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + private + procedure InitGrid(); + function savedate(): Boolean; + procedure SetComboBox(); + function YFData(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; + function YSData_gd(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; + function YSData_YP(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; + { Private declarations } + public + fkeyNO: string; + FType: integer; + fCKName: string; + { Public declarations } + end; + +var + frmbpRk: TfrmbpRk; + +implementation + +uses + U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachCP, U_ZdyAttachment, U_ZdyAttachGYS; +{$R *.dfm} + +function TfrmbpRk.YFData(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; +begin + Result := False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(FactoryNoName.text) + ''''); + sql.Add('and YFDefFlag1=0 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID := ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(cust.text); + FieldByName('ZdyStr1').Value := 'Ӧ'; + FieldByName('YFDefFlag1').Value := 0; + Post; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''ɹ'' '); + execsql; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''ɹ'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'TF', 'YF_Money_CR', 4, 1) = False then + begin + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(ckNo); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'ӦǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(FactoryNoName.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('ps').Value := 1 * Order_Main10.fieldbyname('RollNum').AsFloat; + FieldByName('Qty').Value := 1 * Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value := Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value := 1 * Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value := 1 * Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + FieldByName('QtyUnit').Value := Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value := Trim(FactoryNoName.Text); + FieldByName('P_CodeName').Value := trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value := trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFName').Value := 'ɹ'; + FieldByName('MainId').Value := Trim(ckNo); + FieldByName('subID').Value := Trim(CkID); + FieldByName('YFDefFlag1').Value := 0; + Post; + end; + end + else + begin + YFID := Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID=' + CRID); + ExecSQL; + end; + end; + Result := True; +end; + +function TfrmbpRk.YSData_gd(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; +begin + Result := False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(cust.text) + ''''); + sql.Add('and YFDefFlag1=1 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID := ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(cust.text); + FieldByName('ZdyStr1').Value := 'Ӧ'; + FieldByName('YFDefFlag1').Value := 1; + Post; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''㶫˻'' '); + execsql; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''㶫˻'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'TH', 'YF_Money_CR', 4, 1) = False then + begin + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(ckNo); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'ӦտǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(cust.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('ps').Value := -1 * Order_Main10.fieldbyname('RollNum').AsFloat; + FieldByName('Qty').Value := -1 * Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value := Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value := -1 * Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value := -1 * Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + FieldByName('QtyUnit').Value := Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value := Trim(cust.Text); + FieldByName('P_CodeName').Value := trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value := trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFName').Value := '㶫˻'; + FieldByName('MainId').Value := Trim(ckNo); + FieldByName('subID').Value := Trim(CkID); + FieldByName('YFDefFlag1').Value := 1; + Post; + end; + end + else + begin + YFID := Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID=' + CRID); + ExecSQL; + end; + end; + Result := True; +end; + +function TfrmbpRk.YSData_YP(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; +begin + Result := False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(cust.text) + ''''); + sql.Add('and YFDefFlag1=0 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID := ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(cust.text); + FieldByName('ZdyStr1').Value := 'Ӧ'; + FieldByName('YFDefFlag1').Value := 0; + Post; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''Ʒ˻'' '); + execsql; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''Ʒ˻'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'TH', 'YF_Money_CR', 4, 1) = False then + begin + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(ckNo); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'ӦտǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(cust.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('ps').Value := -1 * Order_Main10.fieldbyname('RollNum').AsFloat; + FieldByName('Qty').Value := -1 * Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value := Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value := -1 * Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value := -1 * Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + FieldByName('QtyUnit').Value := Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value := Trim(cust.Text); + FieldByName('P_CodeName').Value := trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value := trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFName').Value := 'Ʒ˻'; + FieldByName('MainId').Value := Trim(ckNo); + FieldByName('subID').Value := Trim(CkID); + FieldByName('fstr2').Value := 'Ʒ'; + FieldByName('SYRName').Value := trim(SYRName.Text); + FieldByName('YFDefFlag1').Value := 0; + Post; + end; + end + else + begin + YFID := Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID=' + CRID); + ExecSQL; + end; + end; + Result := True; +end; + +procedure TfrmbpRk.SetComboBox(); +begin + ckName.Items.Clear; + + if fCkName = 'Ʒֿ' then + begin + if fType = 1 then + begin + CRType.Enabled := False; + end; + SYRName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''SYRNAME'''); + open; + // SYRName.Items.Add(trim('')); + if not IsEmpty then + begin + while not eof do + begin + SYRName.Items.Add(trim(fieldbyname('zdyname').AsString)); + next; + end; + SYRName.ItemIndex := 0; + end; + end; + end; + + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName) <> '' then + sql.Add('and zdyName=' + quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count > 0 then + ckName.ItemIndex := 0; + + CRType.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPRKTYPE'''); + if trim(fCKName) <> '' then + sql.Add('and note=' + quotedstr(trim(fCKName))); + sql.Add('and zdyName not like ''%%'' '); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count > 0 then + CRType.ItemIndex := 0; +end; + +function TfrmbpRk.savedate(): Boolean; +var + fkcID: integer; + Filler: string; + FillTime: TdateTime; +begin + result := false; + try + ADOQueryCmd.Connection.BeginTrans; + if FType = 0 then + begin + if trim(CRType.Text) = '㶫˻' then + begin + if GetLSNo(ADOQueryCmd, fkeyNO, 'TR', 'BP_InOut', 3, 1) = False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!', 'ʾ', 0); + Exit; + end; + end + else + begin + if GetLSNo(ADOQueryCmd, fkeyNO, 'RK', 'BP_InOut', 3, 1) = False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!', 'ʾ', 0); + Exit; + end; + end; + Filler := DName; + FillTime := SGetServerDateTime(adoqueryTmp); + end + else + begin + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + open; + Filler := adoqueryTmp.fieldbyname('Filler').AsString; + FillTime := adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + execsql; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_kc'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + execsql; + end; + + CDS_Main.DisableControls; + CDS_Main.First; + with CDS_Main do + begin + while not eof do + begin + + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.add('Update BP_Kcid Set kcid=kcid+1'); + sql.Add('select kcid from BP_Kcid'); + Open; + end; + fkcID := ADOQueryCmd.fieldbyname('kcid').AsInteger; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + // fkcID:=strtoint(RightBStr(trim(fkeyNO),length(fkeyNO)-3)+inttostr(recNo)); + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value := trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value := recNo; + ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', CRTIme.Date); + ADOQueryCmd.FieldByName('CKName').Value := trim(CKName.Text); + ADOQueryCmd.FieldByName('CRType').Value := trim(CRType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value := ''; + ADOQueryCmd.FieldByName('MJID').Value := trim(fieldbyname('MJID').AsString); + ADOQueryCmd.FieldByName('MJXH').Value := trim(fieldbyname('MJXH').AsString); + ADOQueryCmd.FieldByName('CPTYPE').Value := trim(fieldbyname('CPTYPE').AsString); + ADOQueryCmd.FieldByName('P_Code').Value := trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value := trim(fieldbyname('P_CodeName').AsString); + ADOQueryCmd.FieldByName('P_spec').Value := trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value := trim(fieldbyname('P_Color').AsString); + ADOQueryCmd.FieldByName('P_MF').Value := fieldbyname('P_MF').AsFloat; + ADOQueryCmd.FieldByName('P_KZ').Value := fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value := fieldbyname('RollNum').AsFloat; + ADOQueryCmd.FieldByName('Qty').Value := fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value := trim(fieldbyname('QtyUnit').AsString); + ADOQueryCmd.FieldByName('price').Value := fieldbyname('price').AsFloat; + ADOQueryCmd.FieldByName('money').Value := fieldbyname('money').AsFloat; + ADOQueryCmd.FieldByName('note').Value := trim(note.Text); + ADOQueryCmd.FieldByName('cust').Value := trim(cust.Text); + ADOQueryCmd.FieldByName('FactoryNoName').Value := trim(FactoryNoName.Text); + ADOQueryCmd.FieldByName('SYRName').Value := trim(SYRName.Text); + ADOQueryCmd.FieldByName('custaddress').Value := trim(custaddress.Text); + ADOQueryCmd.FieldByName('Filler').Value := trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value := dateTimetostr(FillTime); + if FType = 1 then + begin + ADOQueryCmd.FieldByName('editer').Value := trim(dName); + ADOQueryCmd.FieldByName('editTime').Value := SGetServerDateTime(adoqueryTmp); + end; + ADOQueryCmd.FieldByName('kcID').Value := fkcID; + ADOQueryCmd.Post; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_KC'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('kcID').Value := fkcID; + ADOQueryCmd.FieldByName('CKName').Value := trim(CKName.Text); + ADOQueryCmd.FieldByName('CRNO').Value := trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value := recNo; + ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', CRTIme.Date); + ADOQueryCmd.FieldByName('CRType').Value := trim(CRType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value := ''; + ADOQueryCmd.FieldByName('MJXH').Value := trim(fieldbyname('MJXH').AsString); + ADOQueryCmd.FieldByName('MJID').Value := trim(fieldbyname('MJID').AsString); + ADOQueryCmd.FieldByName('CPType').Value := trim(fieldbyname('CPType').AsString); + ADOQueryCmd.FieldByName('P_Code').Value := trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value := trim(fieldbyname('P_CodeName').AsString); + ADOQueryCmd.FieldByName('P_spec').Value := trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value := trim(fieldbyname('P_Color').AsString); + ADOQueryCmd.FieldByName('P_MF').Value := fieldbyname('P_MF').AsFloat; + ADOQueryCmd.FieldByName('P_KZ').Value := fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value := fieldbyname('RollNum').AsFloat; + ADOQueryCmd.FieldByName('Qty').Value := fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value := trim(fieldbyname('QtyUnit').AsString); + ADOQueryCmd.FieldByName('kcID').Value := fkcID; + ADOQueryCmd.Post; + + if trim(CRType.Text) = '˻' then + begin + if not YSData_YP(fkeyNo, inttostr(CDS_Main.RecNo), CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + if trim(CRType.Text) = '㶫˻' then + begin + if not YSData_GD(fkeyNo, inttostr(CDS_Main.RecNo), CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + if trim(CRType.Text) = 'ɹ' then + begin + if not YFData(fkeyNo, inttostr(CDS_Main.RecNo), CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result := true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; + +procedure TfrmbpRk.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + open; + end; + SCreateCDS20(adoqueryTmp, CDS_Main); + SInitCDSData20(adoqueryTmp, CDS_Main); + if not CDS_Main.IsEmpty then + begin + CRTime.Date := CDS_Main.fieldbyname('CRTime').AsDateTime; + CKName.ItemIndex := CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); + CRType.ItemIndex := CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); + // FirstName.TxtCode:=trim(CDS_Main.fieldbyname('FirstNo').AsString); + // FirstName.Text:=trim(CDS_Main.fieldbyname('FirstName').AsString); + note.Text := trim(CDS_Main.fieldbyname('note').AsString); + cust.Text := trim(CDS_Main.fieldbyname('cust').AsString); + FactoryNoName.Text := trim(CDS_Main.fieldbyname('FactoryNoName').AsString); + custaddress.Text := trim(CDS_Main.fieldbyname('custaddress').AsString); + if SYRName.Items.IndexOf(trim(CDS_Main.fieldbyname('SYRName').AsString)) > -1 then + SYRName.ItemIndex := SYRName.Items.IndexOf(trim(CDS_Main.fieldbyname('SYRName').AsString)) + else + SYRName.ItemIndex := -1; + end; + finally + end; +end; + +procedure TfrmbpRk.FormDestroy(Sender: TObject); +begin + frmbpRk := nil; +end; + +procedure TfrmbpRk.FormCreate(Sender: TObject); +begin + CRTime.Date := DServerDate; + cxGrid1.Align := alclient; + readCxGrid(self.Caption, Tv1, 'ƥֿ'); +end; + +procedure TfrmbpRk.FormClose(Sender: TObject; var Action: TCloseAction); +begin + writeCxGrid(self.Caption, Tv1, 'ƥֿ'); + Action := cahide; +end; + +procedure TfrmbpRk.FormShow(Sender: TObject); +begin + SetComboBox(); + InitGrid(); +end; + +procedure TfrmbpRk.TBSaveClick(Sender: TObject); +begin + if cds_main.IsEmpty then + exit; + CRTime.SetFocus; + if trim(CRType.Text) = '' then + begin + application.MessageBox('ͲΪգ', 'ʾϢ', 0); + exit; + end; + + if (trim(CRType.Text) = '˻') or (trim(CRType.Text) = '㶫˻') then + begin + if trim(cust.Text) = '' then + begin + application.MessageBox('˻ͻΪգ', 'ʾϢ', 0); + exit; + end; + end; + + if (trim(CRType.Text) = 'ɹ') then + begin + if trim(FactoryNoName.Text) = '' then + begin + application.MessageBox('Ӧ̲Ϊգ', 'ʾϢ', 0); + exit; + end; + end; + if cds_main.Locate('QtyUnit', '', []) then + begin + application.MessageBox('λΪգ', 'ʾϢ', 0); + exit; + end; + if cds_main.Locate('QtyUnit', NULL, []) then + begin + application.MessageBox('λΪգ', 'ʾϢ', 0); + exit; + end; + if savedate() then + begin + application.MessageBox('ݱɹ', 'ʾϢ'); + TBsave.Enabled := false; + if trim(CRType.Text) = '㶫˻' then + TBPrint.Visible := true; + // ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ', 'ʾϢ', MB_ICONERROR); + end; +end; + +procedure TfrmbpRk.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + try + frmZdyAttachCP := TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal = 1 then + begin + Self.CDS_main.Edit; + Self.CDS_main.FieldByName('P_Code').Value := Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + Self.CDS_main.FieldByName('P_CodeName').Value := Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + Self.CDS_main.FieldByName('P_Color').Value := Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); + // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + Self.CDS_main.Post; + end; + end; + finally + frmZdyAttachCP.Free; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmbpRk.ToolButton1Click(Sender: TObject); +begin + CDS_Main.Append; + CDS_Main.fieldbyname('CPType').Value := 'Ʒ'; + CDS_Main.fieldbyname('QtyUnit').Value := 'M'; + CDS_Main.Post; +end; + +procedure TfrmbpRk.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then + exit; + CDS_Main.Delete; +end; + +procedure TfrmbpRk.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmbpRk.v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + mvalue := TcxTextEdit(Sender).EditingText; + + if trim(mvalue) = '' then + exit; + + if rightBstr(trim(mvalue), 1) <> '#' then + begin + mvalue := trim(mvalue) + '#'; + end; + + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value := Trim(mvalue); + Post; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName=' + quotedstr(trim(CDS_main.fieldbyname('P_CodeName').AsString))); + open; + end; + if ADOQueryCmd.IsEmpty then + begin + application.MessageBox('Ʒڣ', 'ʾϢ', 0); + with CDS_main do + begin + Edit; + FieldByName('P_CodeName').Value := ''; + Post; + end; + end; + + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmbpRk.v1P_ColorPropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + mvalue := TcxTextEdit(Sender).EditingText; + + if trim(mvalue) = '' then + exit; + + if rightBstr(trim(mvalue), 1) <> '#' then + begin + mvalue := trim(mvalue) + '#'; + end; + + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value := Trim(mvalue); + Post; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName=' + quotedstr(trim(CDS_main.fieldbyname('P_CodeName').AsString))); + sql.Add('and DEFstr3=' + quotedstr(trim(CDS_main.fieldbyname('P_Color').AsString))); + open; + end; + if ADOQueryCmd.IsEmpty then + begin + application.MessageBox('ɫڣ', 'ʾϢ', 0); + with CDS_main do + begin + Edit; + FieldByName('P_Color').Value := ''; + Post; + end; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmbpRk.v1P_ColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'OrdColor'; + flagname := 'ɫ'; + V1Name.Caption := ''; + V1Note.Caption := 'Ӣ'; + MainType := Trim(DName); + fnote := True; + if ShowModal = 1 then + begin + Self.CDS_Main.Edit; + Self.CDS_Main.FieldByName('P_Color').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + '#'; + Self.CDS_Main.Post; + end; + end; + finally + frmZDYHelp.Free; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmbpRk.custBtnClick(Sender: TObject); +begin + + try + frmZdyAttachment := TfrmZdyAttachment.Create(Application); + with frmZdyAttachment do + begin + if trim(self.ckName.Text) = '㶫ֿ' then + fkhType := '㶫ͻ' + else + fkhType := trim(SYRName.Text); + if ShowModal = 1 then + begin + cust.Text := Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + custaddress.Text := Trim(CDS_HZ.fieldbyname('defnote1').AsString); + end; + end; + finally + frmZdyAttachment.Free; + end; + +end; + +procedure TfrmbpRk.v1QtyPropertiesEditValueChanged(Sender: TObject); +var + fieldname: string; + num1: double; +begin + fieldname := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with CDS_Main do + begin + Edit; + FieldByName(Trim(fieldname)).Value := TcxTextEdit(Sender).EditingText; + num1 := FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value := strtofloat(format('%8.2f', [num1])); + Post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmbpRk.Edit1KeyPress(Sender: TObject; var Key: Char); +var + FReal: Double; + maxno: string; +begin + if Key = #13 then + begin + if Trim(Edit1.Text) = '' then + Exit; + if TryStrToFloat(Edit1.Text, FReal) = False then + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + if CDS_Main.IsEmpty then + begin + CDS_Main.Append; + CDS_Main.fieldbyname('CPType').Value := 'Ʒ'; + CDS_main.fieldbyname('RollNum').Value := 1; + CDS_main.fieldbyname('Qty').Value := Edit1.Text; + CDS_Main.fieldbyname('QtyUnit').Value := 'M'; + CDS_Main.Post; + end + else + begin + CopyAddRowCDS(CDS_main); + tv1.Controller.EditingController.ShowEdit(); + with CDS_main do + begin + Edit; + CDS_main.fieldbyname('RollNum').Value := 1; + CDS_main.fieldbyname('Qty').Value := Edit1.Text; + Post; + end; + end; + Edit1.Text := ''; + end; + + tv1.Controller.EditingController.ShowEdit(); + +end; + +procedure TfrmbpRk.Edit2KeyPress(Sender: TObject; var Key: Char); +var + FReal: Double; + maxno: string; + I: integer; +begin + if Key = #13 then + begin + if Trim(Edit2.Text) = '' then + Exit; + if TryStrToFlOAT(Edit2.Text, FReal) = False then + begin + Application.MessageBox('Ƿ!', 'ʾ', 0); + Exit; + end; + if CDS_main.IsEmpty then + exit; + I := STRTOintdef(Edit2.Text, 0); + for I := 1 to STRTOintdef(Edit2.Text, 0) do + begin + CopyAddRowCDS(CDS_main); + end; + Edit1.Text := ''; + end; + tv1.Controller.EditingController.ShowEdit(); + +end; + +procedure TfrmbpRk.TBPrintClick(Sender: TObject); +var + filepath: string; +begin + if CDS_Main.IsEmpty then + exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Do_PrintMd '); + sql.Add('@mainID=' + quotedstr(trim(fkeyNO))); + sql.Add(',@flag=' + quotedstr(trim('㶫'))); + open; + end; + + try + filepath := ExtractFilePath(Application.ExeName) + 'report\˻뵥.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); + exit; + end; + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; +end; + +procedure TfrmbpRk.FactoryNoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + + try + frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); + with frmZdyAttachGYS do + begin + if ShowModal = 1 then + begin + FactoryNoName.Text := Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + FactoryNoName.Hint := Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + + end; + end; + finally + frmZdyAttachGYS.Free; + end; +end; + +end. + diff --git a/样品仓库/U_BpRklist.dfm b/样品仓库/U_BpRklist.dfm new file mode 100644 index 0000000..e841e06 --- /dev/null +++ b/样品仓库/U_BpRklist.dfm @@ -0,0 +1,630 @@ +object frmBpRklist: TfrmBpRklist + Left = 98 + Top = 205 + Width = 1160 + Height = 500 + Caption = #20837#24211#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1144 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 95 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + Visible = False + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ToolButton1: TToolButton + Left = 441 + Top = 0 + Caption = #25171#21360#36864#36135#21333 + ImageIndex = 12 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 536 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1144 + Height = 61 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #20837#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 168 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object Label3: TLabel + Left = 448 + Top = 16 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 616 + Top = 16 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 288 + Top = 16 + Width = 52 + Height = 12 + Caption = #20837#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 288 + Top = 100 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object Label7: TLabel + Left = 760 + Top = 16 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 896 + Top = 16 + Width = 26 + Height = 12 + Caption = #21253#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 288 + Top = 40 + Width = 52 + Height = 12 + Caption = #36135#36816#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 500 + Top = 40 + Width = 65 + Height = 12 + Caption = #20837#24211#21333#25968#65306 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 180 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 500 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object P_Color: TEdit + Tag = 2 + Left = 644 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = P_CodeNameChange + end + object CRType: TComboBox + Tag = 2 + Left = 344 + Top = 12 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 4 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object ckName: TComboBox + Left = 320 + Top = 96 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 5 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object cust: TEdit + Tag = 2 + Left = 792 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = P_CodeNameChange + end + object packNo: TEdit + Tag = 1 + Left = 928 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 7 + OnChange = P_CodeNameChange + end + object defstr2: TComboBox + Tag = 2 + Left = 344 + Top = 36 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 8 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #24555#20214 + #24930#20214) + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 93 + Width = 1144 + Height = 336 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1CRNO: TcxGridDBColumn + Caption = #20837#24211#32534#21495 + DataBinding.FieldName = 'CRNO' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CRID: TcxGridDBColumn + Caption = #24207#27425#21495 + DataBinding.FieldName = 'CRID' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1CRTime: TcxGridDBColumn + Caption = #20837#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + Width = 60 + end + object v1CRType: TcxGridDBColumn + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'CRType' + HeaderAlignmentHorz = taCenter + end + object v1cust: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'cust' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1MJXH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_SPEC: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'P_SPEC' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 90 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_MF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_KZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'P_KZ' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1CPType: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1packNO: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'packNO' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Filler: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1FillTime: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v1defstr2: TcxGridDBColumn + Caption = #36135#36816#31867#22411 + DataBinding.FieldName = 'defstr2' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1gangNo: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'gangNo' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1defNote1: TcxGridDBColumn + Caption = #29289#27969#22791#27880 + DataBinding.FieldName = 'defNote1' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1Column1: TcxGridDBColumn + Caption = #23458#25143#22320#22336 + DataBinding.FieldName = 'custaddress' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 604 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 628 + Top = 5 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 664 + Top = 9 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 508 + Top = 140 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 836 + Top = 4 + ReportData = {} + end + object RMXLSExport2: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 912 + Top = 9 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 716 + Top = 4 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 764 + Top = 4 + end + object ADOPrint1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 864 + Top = 4 + end + object RMDB_Sub: TRMDBDataSet + Visible = True + DataSet = ADOPrint1 + Left = 632 + Top = 160 + end +end diff --git a/样品仓库/U_BpRklist.pas b/样品仓库/U_BpRklist.pas new file mode 100644 index 0000000..8789797 --- /dev/null +++ b/样品仓库/U_BpRklist.pas @@ -0,0 +1,579 @@ +unit U_BpRklist; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, + RM_Common, RM_Class, RM_e_Xls, RM_System, RM_GridReport, cxLookAndFeels, + cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, + dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter, cxNavigator; + +type + TfrmBpRklist = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1P_SPEC: TcxGridDBColumn; + v1P_MF: TcxGridDBColumn; + v1P_KZ: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1CRType: TcxGridDBColumn; + v1CRTime: TcxGridDBColumn; + v1CRNO: TcxGridDBColumn; + v1CRID: TcxGridDBColumn; + v1Filler: TcxGridDBColumn; + v1FillTime: TcxGridDBColumn; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + P_CodeName: TEdit; + P_Color: TEdit; + CRType: TComboBox; + Label5: TLabel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + v1MJID: TcxGridDBColumn; + v1MJXH: TcxGridDBColumn; + v1CPType: TcxGridDBColumn; + ckName: TComboBox; + Label6: TLabel; + v1P_Color: TcxGridDBColumn; + RMGridReport1: TRMGridReport; + RMXLSExport2: TRMXLSExport; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + ADOPrint1: TADOQuery; + RMDB_Sub: TRMDBDataSet; + Label7: TLabel; + cust: TEdit; + v1cust: TcxGridDBColumn; + v1packNO: TcxGridDBColumn; + packNo: TEdit; + Label8: TLabel; + Label9: TLabel; + defstr2: TComboBox; + v1defstr2: TcxGridDBColumn; + v1gangNo: TcxGridDBColumn; + v1defNote1: TcxGridDBColumn; + ToolButton1: TToolButton; + v1Column1: TcxGridDBColumn; + Label10: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + private + TblCprk: string; + procedure InitGrid(); + procedure SetComboBox(); + procedure CreateTable(); + procedure DropTable(); + procedure DoRkNum(); + { Private declarations } + public + fCKName, fManage: string; + { Public declarations } + end; + +var + frmBpRklist: TfrmBpRklist; + +implementation + +uses + U_DataLink, U_Fun10, U_ZDYHelp, U_BpRk; +{$R *.dfm} + +procedure TfrmBpRklist.DoRkNum(); +var + RKNo: Tstringlist; +begin + RKNo := Tstringlist.Create; + RKNo.Clear; + try + with CDS_Main do + begin + DisableControls; + First; + while not eof do + begin + if RKNo.IndexOf(trim(fieldbyname('CRNO').AsString)) < 0 then + begin + RKNo.Add(trim(fieldbyname('CRNO').AsString)); + end; + next; + end; + EnableControls; + First; + end; + Label10.Caption := 'ⵥ' + inttostr(RKNo.Count); + finally + RKNo.Free; + end; + +end; + +procedure TfrmBpRklist.DropTable(); +var + strSQL: string; +begin + // TblCprk := '[##CP_INOut123' + trim(DCode) + IntToStr(Handle)+formatdatetime('hhnnsszzz',time) + ']'; + //ʱ + strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(strSQL); + ExecSQL; + end; +end; + +procedure TfrmBpRklist.CreateTable(); +var + strSQL: string; +begin + TblCprk := '[##BP_INoutPPack' + trim(DCode) + IntToStr(Handle) + formatdatetime('hhnnsszzz', time) + ']'; + //ʱ + strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk + #13 + 'CREATE TABLE ' + TblCprk + ' (' + 'MainID VARCHAR(20),' + 'subID VARCHAR(20),' + 'BCID Varchar(20))'#13; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(strSQL); + ExecSQL; + end; +end; + +procedure TfrmBpRklist.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName) <> '' then + sql.Add('and zdyName=' + quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count > 0 then + ckName.ItemIndex := 0; + + CRType.Items.Clear; + CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPRKTYPE'''); + if trim(fCKName) <> '' then + sql.Add('and note=' + quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count > 0 then + CRType.ItemIndex := 0; + + if fCKName = '㶫ֿ' then + ToolButton1.Visible := true; +end; + +procedure TfrmBpRklist.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + sql.Add('where CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); + sql.Add('and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); + sql.Add('and CRFlag='''' '); + if trim(FckName) <> '' then + sql.Add('and ckName=' + quotedstr(trim(fckName))); + open; + end; + SCreateCDS20(adoqueryTmp, CDS_Main); + SInitCDSData20(adoqueryTmp, CDS_Main); + DoRkNum(); + finally + end; +end; + +procedure TfrmBpRklist.FormClose(Sender: TObject; var Action: TCloseAction); +begin + writeCxGrid(self.Caption, Tv1, 'ƥֿ'); + Action := cafree; +end; + +procedure TfrmBpRklist.FormDestroy(Sender: TObject); +begin + frmBpRklist := nil; +end; + +procedure TfrmBpRklist.TBAddClick(Sender: TObject); +begin + frmbpRk := TfrmbpRk.create(self); + with frmbpRk do + begin + fkeyNo := ''; + fType := 0; + fckName := self.fckName; + if showmodal = 1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo', trim(fkeyNo), []); + end; + free; + end; +end; + +procedure TfrmBpRklist.P_CodeNameChange(Sender: TObject); +begin + if ADOQueryTmp.Active = False then + Exit; + SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryTmp, CDS_Main); + SInitCDSData20(ADOQueryTmp, CDS_Main); + DoRkNum(); +end; + +procedure TfrmBpRklist.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption, Tv1, 'ƥֿ'); + SetComboBox(); + InitGrid(); + if fckName = '㶫ֿ' then + begin + if fmanage = 'Ȩ' then + TBDel.Visible := true + else + TBDel.Visible := false; + end; +end; + +procedure TfrmBpRklist.FormCreate(Sender: TObject); +begin + BegDate.Date := DServerDate; + EndDate.Date := DServerDate; + cxGrid1.Align := alclient; + +end; + +procedure TfrmBpRklist.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpRklist.TBEditClick(Sender: TObject); +begin + if cds_main.IsEmpty then + exit; + + if pos('', Trim(CDS_Main.fieldbyname('CRType').AsString)) > 0 then + begin + Application.MessageBox('ⲻɾ!', 'ʾ', 0); + Exit; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid=''' + Trim(CDS_Main.fieldbyname('kcid').AsString) + ''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣ޸ģ', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' select * from YF_Money_CR '); + SQL.Add(' where mainID=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''' '); + sql.Add(' and status>=''1'' '); + Open; + if not IsEmpty then + begin + Application.MessageBox('Ӧտûгˣ޸!', 'ʾ', 0); + exit; + end; + end; + frmbpRk := TfrmbpRk.create(self); + with frmbpRk do + begin + fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; + fType := 1; + fckName := self.fckName; + if showmodal = 1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo', trim(fkeyNo), []); + end; + free; + end; +end; + +procedure TfrmBpRklist.TBDelClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then + Exit; + { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } + + if pos('', Trim(CDS_Main.fieldbyname('CRType').AsString)) > 0 then + begin + Application.MessageBox('ⲻɾ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' select * from YF_Money_CR '); + SQL.Add(' where mainID=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''' '); + sql.Add(' and status>=''1'' '); + Open; + if not IsEmpty then + begin + Application.MessageBox('Ӧտûгˣ޸!', 'ʾ', 0); + exit; + end; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid=''' + Trim(CDS_Main.fieldbyname('kcid').AsString) + ''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣɾ', 'ʾ', 0); + Exit; + end; + + if Application.MessageBox('ȷҪɾ', 'ʾ', 32 + 4) <> IDYES then + Exit; + + try + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + SQL.Add('where maiNID=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''' '); + + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + // sql.Add(' where YFDefFlag1=1 '); + + sql.Add('delete from BP_InOut '); + SQL.Add('where CRNO=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''' '); + sql.Add('delete from BP_kc '); + SQL.Add('where CRNO=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''' '); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' ' + quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(',' + quotedstr(trim(self.Caption))); + sql.Add(',' + quotedstr(trim('ⵥɾ'))); + sql.Add(',' + quotedstr(trim('ⵥţ' + trim(CDS_Main.FieldByName('CRNO').AsString)))); + sql.Add(',' + quotedstr(trim('ɹ'))); + sql.Add(')'); + execsql; + end; + TBRafresh.Click; + except + Application.MessageBox('ɾʧܣ', 'ʾϢ', 0); + end; +end; + +procedure TfrmBpRklist.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmBpRklist.TBPrintClick(Sender: TObject); +var + filepath: string; +begin + if CDS_Main.IsEmpty then + exit; + + CreateTable(); + + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + with adoqueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(' insert into ' + TblCprk + '(MainID,subID) values( '); + SQL.Add(' ' + quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); + SQL.Add(',' + quotedstr(trim(CDS_Main.fieldbyname('CRID').AsString))); + sql.add(')'); + execsql; + end; + next; + end; + First; + EnableControls; + end; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Get_BPRkpackList '); + sql.Add('@mainID=' + quotedstr(trim(''))); + sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk))); + sql.Add(',@flag=' + quotedstr(trim('1'))); + open; + end; + + with AdoPrint1 do + begin + close; + sql.Clear; + sql.Add('exec P_Get_BPRkpackList '); + sql.Add('@mainID=' + quotedstr(trim(''))); + sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk))); + sql.Add(',@flag=' + quotedstr(trim('10'))); + open; + end; + + try + filepath := ExtractFilePath(Application.ExeName) + 'report\ⵥ.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); + exit; + end; + RMVariables['begdate'] := FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ' - ' + FormatDateTime('yyyy-MM-dd', enddate.DateTime); + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; + + DropTable(); + +end; + +procedure TfrmBpRklist.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then + Exit; + TcxGridToExcel(self.Caption, cxgrid1); +end; + +procedure TfrmBpRklist.ToolButton1Click(Sender: TObject); +var + filepath: string; +begin + if CDS_Main.IsEmpty then + exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('exec P_Do_PrintMd '); + sql.Add('@mainID=' + quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); + sql.Add(',@flag=' + quotedstr(trim('㶫'))); + open; + end; + + try + filepath := ExtractFilePath(Application.ExeName) + 'report\˻뵥.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); + exit; + end; + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + finally + + end; +end; + +end. + diff --git a/样品仓库/U_BpYPCkEdit.dfm b/样品仓库/U_BpYPCkEdit.dfm new file mode 100644 index 0000000..2ab4c60 --- /dev/null +++ b/样品仓库/U_BpYPCkEdit.dfm @@ -0,0 +1,554 @@ +object frmBpYPCkEdit: TfrmBpYPCkEdit + Left = 329 + Top = 239 + Width = 1071 + Height = 512 + Caption = #20986#24211#32534#36753 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1053 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + Visible = False + OnClick = TBRafreshClick + end + object TOk: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450#20986#24211 + ImageIndex = 41 + OnClick = TOkClick + end + object TBExport: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #25171#21360 + Enabled = False + ImageIndex = 12 + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 153 + Width = 1053 + Height = 420 + Align = alTop + TabOrder = 1 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1ckqty + end + item + Kind = skSum + Column = v1Column2 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + OptionsView.IndicatorWidth = 15 + Styles.Header = BPCK_DataLink.Default + OnCustomDrawIndicatorCell = Tv1CustomDrawIndicatorCell + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnButtonClick = v1P_CodeNamePropertiesButtonClick + Properties.OnEditValueChanged = v1P_CodeNamePropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 152 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.OnEditValueChanged = v1P_ColorPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 98 + end + object v1ckqty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'Qty' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Footer = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Header = BPCK_DataLink.cxStyle_fontclFuchsia + Width = 121 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 92 + end + object v1Column1: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + end + object v1Column2: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.cxStyle_fontclPurple + Styles.Footer = BPCK_DataLink.cxStyle_fontclPurple + Styles.Header = BPCK_DataLink.cxStyle_fontclPurple + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 0 + Top = 32 + Width = 1053 + Height = 93 + Align = alTop + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 2 + object GroupBox1: TGroupBox + Left = 0 + Top = 0 + Width = 1053 + Height = 93 + Align = alClient + Caption = #20986#24211#20449#24687 + Color = clSkyBlue + ParentColor = False + TabOrder = 0 + object Label8: TLabel + Left = 24 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 208 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 24 + Top = 44 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label1: TLabel + Left = 588 + Top = 21 + Width = 52 + Height = 12 + Caption = #35746#21333#20449#24687 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 936 + Top = 24 + Width = 24 + Height = 12 + Caption = #21333#20215 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 410 + Top = 44 + Width = 54 + Height = 12 + Caption = #22791' '#27880 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label25: TLabel + Left = 410 + Top = 20 + Width = 52 + Height = 12 + Caption = #20844#21496#25260#22836 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 24 + Top = 68 + Width = 60 + Height = 12 + Caption = #21098' '#26679' '#20154 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CRTime: TDateTimePicker + Left = 88 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + end + object CRType: TComboBox + Tag = 2 + Left = 265 + Top = 16 + Width = 120 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object cust: TBtnEditA + Left = 88 + Top = 40 + Width = 297 + Height = 20 + Enabled = False + TabOrder = 2 + OnBtnClick = custBtnClick + end + object orderNO: TBtnEditA + Left = 652 + Top = 17 + Width = 128 + Height = 20 + ReadOnly = True + TabOrder = 3 + OnBtnClick = orderNOBtnClick + end + object Edit1: TEdit + Left = 964 + Top = 20 + Width = 60 + Height = 20 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 4 + Visible = False + OnKeyPress = Edit1KeyPress + end + object note: TEdit + Left = 469 + Top = 40 + Width = 313 + Height = 20 + TabOrder = 5 + end + object SYRName: TComboBox + Tag = 2 + Left = 469 + Top = 16 + Width = 96 + Height = 20 + Style = csDropDownList + Ctl3D = False + ItemHeight = 12 + ParentCtl3D = False + TabOrder = 6 + Items.Strings = ( + #27491#24120#21333 + #21098#26679#21333) + end + object defstr1: TBtnEditA + Left = 88 + Top = 64 + Width = 101 + Height = 20 + Enabled = False + TabOrder = 7 + OnBtnClick = custBtnClick + end + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 125 + Width = 1053 + Height = 28 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 3 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton2Click + end + end + object Panel1: TPanel + Left = 764 + Top = 128 + Width = 289 + Height = 25 + BevelOuter = bvNone + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + object Label23: TLabel + Left = 104 + Top = 8 + Width = 45 + Height = 14 + Caption = #25968#37327#65306 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 536 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 612 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 12 + end + object ADOQuery1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 740 + Top = 16 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_BpYPCkEdit.pas b/样品仓库/U_BpYPCkEdit.pas new file mode 100644 index 0000000..afffffd --- /dev/null +++ b/样品仓库/U_BpYPCkEdit.pas @@ -0,0 +1,1054 @@ +unit U_BpYPCkEdit; + +interface + +uses + Windows, Messages, SysUtils, Variants, cxEdit, Classes, Graphics, Controls, + Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, DB, cxDBData, cxTextEdit, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, + cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox, + BtnEdit, cxCurrencyEdit, strUtils, RM_Common, RM_Class, RM_e_Xls, + RM_GridReport, RM_System, RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, + cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, + dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter; + +type + TfrmBpYPCkEdit = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + TOk: TToolButton; + v1P_Color: TcxGridDBColumn; + v1ckqty: TcxGridDBColumn; + Panel2: TPanel; + GroupBox1: TGroupBox; + CRTime: TDateTimePicker; + Label8: TLabel; + CRType: TComboBox; + Label5: TLabel; + Label9: TLabel; + cust: TBtnEditA; + ADOQuery1: TADOQuery; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + Panel1: TPanel; + Label23: TLabel; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + orderNO: TBtnEditA; + Label1: TLabel; + Edit1: TEdit; + Label2: TLabel; + note: TEdit; + Label3: TLabel; + SYRName: TComboBox; + Label25: TLabel; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + Label4: TLabel; + defstr1: TBtnEditA; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TOkClick(Sender: TObject); + procedure custBtnClick(Sender: TObject); + procedure v1ckqtyPropertiesEditValueChanged(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); + procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure orderNOBtnClick(Sender: TObject); + procedure Edit1KeyPress(Sender: TObject; var Key: Char); + procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); + procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); + private + fmainID, fsubID: string; + procedure InitGrid(); + procedure SetComboBox(); + function savedate(): Boolean; + function YSData(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; + function SKData(fYFName: string; fMoney: double): Boolean; + procedure DoKc(); + { Private declarations } + public + fType: integer; + fCKName: string; + fkeyNO: string; + + { Public declarations } + end; + +var + frmBpYPCkEdit: TfrmBpYPCkEdit; + +implementation + +uses + U_DataLink, U_Fun10, U_ZDYHelp, U_BpRk, U_ProductOrderNewList, U_ZdyAttachCP; +{$R *.dfm} + +function TfrmBpYPCkEdit.SKData(fYFName: string; fMoney: double): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; + fYFDefFlag1: string; +begin + Result := False; + fYFDefFlag1 := '0'; + CRID := '0'; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_LL where exists(select YFID from YF_Money_CR X where X.YFID=YF_Money_LL.fromMainID and X.MainID=''' + Trim(fkeyNO) + ''' and X.YFName=''' + trim(fYFName) + ''' ) and isnull(fromMainID,'''')<>'''''); + execsql; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add('where MainID=''' + Trim(fkeyNO) + ''''); + sql.Add('and YFName=''' + trim(fYFName) + ''' '); + execsql; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(fkeyNO) + ''''); + // sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''' + trim(fYFName) + ''' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'SK', 'YF_Money_CR', 4, 1) = False then + begin + Application.MessageBox('ȡտʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(fkeyNO); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'տǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(cust.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('ps').Value := 0; + FieldByName('Qty').Value := 0; + FieldByName('Price').Value := 0; + FieldByName('Money').Value := fMoney; + FieldByName('BBMoney').Value := fMoney; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + // FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value := Trim(cust.Text); + FieldByName('YFName').Value := fYFName; + FieldByName('MainId').Value := Trim(fkeyNo); + // FieldByName('subID').Value:=Trim(ckID); + // FieldByName('P_CodeName').Value:=trim(Order_Main10.fieldbyname('P_CodeName').AsString); + // FieldByName('P_Color').Value:=trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('fstr2').Value := 'Ʒ'; + FieldByName('SYRName').Value := trim(SYRName.Text); + FieldByName('status').Value := '0'; + Post; + end; + end + else + begin + YFID := Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + Result := True; +end; + +procedure TfrmBpYPCkEdit.DoKc(); +begin + Label23.Caption := '0'; + if CDS_Main.IsEmpty then + exit; + if trim(CDS_Main.fieldbyname('P_CodeName').AsString) = '' then + exit; + if trim(CDS_Main.fieldbyname('P_Color').AsString) = '' then + exit; + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select AA.* '); + sql.Add('FROM( select A.ckName,P_CodeName,A.P_Color,A.QtyUnit,ckQty=0.00,Price=0.00,money=0.00, '); + sql.Add(' SUM(case when CRFlag='''' then Qty else -1 * Qty end ) as Qty '); + sql.Add('from BP_InOut A '); + sql.Add('where P_CodeName=' + quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); + sql.Add('and P_Color=' + quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString))); + if trim(FckName) <> '' then + sql.Add('and ckName=' + quotedstr(trim(FckName))); + sql.Add('group by A.ckName,P_CodeName,A.P_Color,A.QtyUnit)AA '); + open; + end; + if not ADOQuery1.IsEmpty then + begin +// Label22.Caption:='ƥ'+trim(ADOQuery1.fieldbyname('kcRollNum').AsString); + Label23.Caption := '' + trim(ADOQuery1.fieldbyname('Qty').AsString); + end; +end; + +function TfrmBpYPCkEdit.YSData(ckNo, CkID: string; Order_Main10: TClientDataSet): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; + fYFDefFlag1: string; +begin + Result := False; + fYFDefFlag1 := '0'; + if trim(fCKName) = 'Ʒֿ' then + fYFDefFlag1 := '2'; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(cust.text) + ''''); + sql.Add('and ZdyStr1=''Ӧ'''); + sql.Add('and YFDefFlag1=''' + fYFDefFlag1 + ''' '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID := ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(cust.text); + FieldByName('ZdyStr1').Value := 'Ӧ'; + FieldByName('YFDefFlag1').Value := fYFDefFlag1; + Post; + end; + end; + { with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''Ʒ'' '); + execsql; + end; } + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(ckNo) + ''''); + sql.Add(' and subID=''' + Trim(CkID) + ''''); + sql.Add(' and YFName=''Ʒ'' '); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then + begin + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(ckNo); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'ӦտǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := Trim(cust.Text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('ps').Value := 0; + FieldByName('Qty').Value := Order_Main10.fieldbyname('Qty').AsFloat; + FieldByName('Price').Value := Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value := Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value := Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + FieldByName('QtyUnit').Value := Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value := Trim(cust.Text); + FieldByName('YFName').Value := 'Ʒ'; + FieldByName('MainId').Value := Trim(ckNo); + FieldByName('subID').Value := Trim(CkID); + FieldByName('P_CodeName').Value := trim(Order_Main10.fieldbyname('P_CodeName').AsString); + FieldByName('P_Color').Value := trim(Order_Main10.fieldbyname('P_Color').AsString); + FieldByName('YFDefFlag1').Value := fYFDefFlag1; + FieldByName('fstr2').Value := 'Ʒ'; + FieldByName('SYRName').Value := trim(SYRName.Text); + FieldByName('note').Value := trim(Order_Main10.fieldbyname('Sorddefstr1').AsString); + FieldByName('status').Value := '1'; + Post; + end; + end + else + begin + YFID := Trim(ADOQuery1.fieldbyname('YFID').AsString); + end; + + end; + Result := True; +end; + +function TfrmBpYPCkEdit.savedate(): Boolean; +var + fkcID, i: integer; + Filler: string; + FillTime: TdateTime; + maxno: string; +begin + result := false; + try + ADOQueryCmd.Connection.BeginTrans; + if FType = 0 then + begin + if GetLSNo(ADOQueryCmd, fkeyNO, 'CK', 'BP_InOut', 3, 1) = False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!', 'ʾ', 0); + Exit; + end; + Filler := DName; + FillTime := SGetServerDateTime(adoqueryTmp); + end + else + begin + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + open; + Filler := adoqueryTmp.fieldbyname('Filler').AsString; + FillTime := adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + end; + + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(fkeyNO) + ''''); + // sql.Add(' and subID='''+Trim(ckID)+''''); + sql.Add(' and YFName=''Ʒ'' '); + execsql; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO=' + quotedstr(trim(fkeyNO))); + execsql; + end; + CDS_Main.DisableControls; + CDS_Main.First; + i := 1; + with CDS_Main do + begin + while not eof do + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value := trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value := i; + ADOQueryCmd.FieldByName('CKName').Value := trim(fckName); + ADOQueryCmd.FieldByName('mainID').Value := trim(fieldbyname('mainID').AsString); + ADOQueryCmd.FieldByName('subID').Value := trim(fieldbyname('subID').AsString); + ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', CRTime.Date); + ADOQueryCmd.FieldByName('CRType').Value := trim(crType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value := ''; + // ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); + // ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); + // ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); + // ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value := trim(fieldbyname('P_CodeName').AsString); + // ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value := trim(fieldbyname('P_Color').AsString); + // ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; + // ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value := 0; + ADOQueryCmd.FieldByName('Qty').Value := fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('Price').Value := fieldbyname('Price').AsFloat; + ADOQueryCmd.FieldByName('money').Value := fieldbyname('money').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value := trim(fieldbyname('QtyUnit').AsString); + // ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); + ADOQueryCmd.FieldByName('Filler').Value := trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value := dateTimetostr(FillTime); + ADOQueryCmd.FieldByName('cust').Value := trim(cust.Text); + ADOQueryCmd.FieldByName('note').Value := trim(note.Text); + ADOQueryCmd.FieldByName('SYRName').Value := trim(SYRName.Text); + ADOQueryCmd.FieldByName('defstr1').Value := trim(defstr1.Text); + // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); + // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); + if FType = 1 then + begin + ADOQueryCmd.FieldByName('editer').Value := trim(dName); + ADOQueryCmd.FieldByName('editTime').Value := SGetServerDateTime(ADOQuery1); + end; + ADOQueryCmd.Post; + if trim(CRType.Text) = 'Ʒ۳' then + begin + if not YSData(fkeyNo, inttostr(i), CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + if trim(CRType.Text) = 'Ʒ۳' then + begin + if not YSData(fkeyNo, inttostr(i), CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + i := i + 1; + next; + end; + end; + + if (trim(CRType.Text) = 'Ʒ۳') and (tv1.DataController.Summary.FooterSummaryValues[1] > 0) then + begin + if not SKData('Ʒտ', tv1.DataController.Summary.FooterSummaryValues[1]) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result := true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; + +procedure TfrmBpYPCkEdit.SetComboBox(); +begin + { ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; } + + CRType.Items.Clear; + // CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName) <> '' then + sql.Add('and note=' + quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count > 0 then + CRType.ItemIndex := 0; +end; + +procedure TfrmBpYPCkEdit.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.*,B.orderNo,B.Sorddefstr1 from BP_InOut A'); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('where A.CRNO=' + quotedstr(trim(fkeyNO))); + open; + end; + SCreateCDS20(adoqueryTmp, CDS_Main); + SInitCDSData20(adoqueryTmp, CDS_Main); + if not CDS_Main.IsEmpty then + begin + CRTime.Date := CDS_Main.fieldbyname('CRTime').AsDateTime; + // CKName.ItemIndex:=CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); + CRType.ItemIndex := CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); + fmainID := trim(CDS_Main.fieldbyname('MainID').AsString); + fsubID := trim(CDS_Main.fieldbyname('subID').AsString); + orderNo.Text := trim(CDS_Main.fieldbyname('orderNo').AsString); + cust.Text := trim(CDS_Main.fieldbyname('cust').AsString); + defstr1.Text := trim(CDS_Main.fieldbyname('defstr1').AsString); + note.Text := trim(CDS_Main.fieldbyname('note').AsString); + if SYRName.Items.IndexOf(trim(CDS_Main.fieldbyname('SYRName').AsString)) > -1 then + SYRName.ItemIndex := SYRName.Items.IndexOf(trim(CDS_Main.fieldbyname('SYRName').AsString)) + else + SYRName.ItemIndex := -1; + end; + finally + end; +end; + +procedure TfrmBpYPCkEdit.FormClose(Sender: TObject; var Action: TCloseAction); +begin + writeCxGrid(self.Caption, Tv1, 'ƥֿ'); + if fType = 10 then + Action := cahide + else + Action := cafree; +end; + +procedure TfrmBpYPCkEdit.FormDestroy(Sender: TObject); +begin + frmBpYPCkEdit := nil; +end; + +procedure TfrmBpYPCkEdit.FormShow(Sender: TObject); +begin +{ if fType=10 then + begin + TOk.Visible:=true; + // v1Ssel.Visible:=true; + v1ckqty.Visible:=true; + v1price.Visible:=true; + v1money.Visible:=true; + GroupBox1.Visible:=true; + end + else + begin + TOk.Visible:=false; + // v1Ssel.Visible:=false; + v1ckqty.Visible:=false; + v1price.Visible:=false; + v1money.Visible:=false; + GroupBox1.Visible:=false; + end; } + + SYRName.Items.Clear; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''SYRNAME'''); + open; + if not IsEmpty then + begin + while not eof do + begin + SYRName.Items.Add(trim(fieldbyname('zdyname').AsString)); + next; + end; + SYRName.ItemIndex := 0; + end; + end; + + if trim(fCKName) = 'Ʒֿ' then + begin + SYRName.Items.Clear; + SYRName.Items.Add('˷֯'); + SYRName.ItemIndex := 0; + // SYRName.Enabled:=; + // orderType.Enabled:=false; + end; + readCxGrid(self.Caption, Tv1, 'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpYPCkEdit.FormCreate(Sender: TObject); +begin + //BegDate.Date:=DServerDate-7; +// EndDate.Date:=DServerDate; + CRTime.date := DServerDate; + cxGrid1.Align := alclient; + +end; + +procedure TfrmBpYPCkEdit.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpYPCkEdit.TBRafreshClick(Sender: TObject); +begin + + initGrid(); +end; + +procedure TfrmBpYPCkEdit.TBPrintClick(Sender: TObject); +var + filepath: string; +begin + if trim(fkeyNO) = '' then + exit; + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('select A.mainID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler as xsyg,SUM(A.Qty) as Qty,AVG(A.Price) as Price,SUM(A.money) as Money, '); + sql.Add('customNameAddress=(select Top 1 DEFNote1 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('DEFNote2=(select Top 1 DEFNote2 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr8=(select Top 1 defstr8 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr2=(select Top 1 defstr2 from KH_Zdy_Attachment X where X.ZdyName=A.cust),'); + sql.Add('DEFNote3=(select Top 1 DEFNote3 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('P_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and Type=''CP'') '); + sql.Add(',P_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and X.DEFstr3=A.P_Color and Type=''CP'') '); + sql.Add('from BP_INout A '); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); + sql.Add('where A.CRNO=' + quotedstr(trim(fkeyNO))); + sql.Add('group by A.mainID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler'); + open; + end; + + try + if fCKName = 'Ʒֿ' then + filepath := ExtractFilePath(Application.ExeName) + 'report\뵥Ʒ.rmf' + else + filepath := ExtractFilePath(Application.ExeName) + 'report\뵥Ʒ1.rmf'; + + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); + exit; + end; + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(DName); + RMGridReport1.LoadFromFile(filepath); + // RMGridReport1.ShowReport; + RMGridReport1.PrintReport; + finally + + end; + +end; + +procedure TfrmBpYPCkEdit.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then + Exit; + TcxGridToExcel(self.Caption, cxgrid1); +end; + +procedure TfrmBpYPCkEdit.TOkClick(Sender: TObject); +begin + CRTIME.SetFocus; + if CDS_Main.IsEmpty then + exit; + if trim(CRType.Text) = '' then + begin + application.MessageBox('ͲΪգ', 'ʾϢ', 0); + exit; + end; + if trim(CRType.Text) = 'Ʒ۳' then + begin + if trim(cust.Text) = '' then + begin + application.MessageBox('ͻΪգ', 'ʾϢ', 0); + exit; + end; + end; + if trim(CRType.Text) = 'Ʒ۳' then + begin + if trim(cust.Text) = '' then + begin + application.MessageBox('ͻΪգ', 'ʾϢ', 0); + exit; + end; + end; + if savedate() then + begin + application.MessageBox('ݱɹ', 'ʾϢ'); + TOk.Enabled := false; + TBPrint.Enabled := true; + // ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ', 'ʾϢ', MB_ICONERROR); + end; +end; + +procedure TfrmBpYPCkEdit.custBtnClick(Sender: TObject); +begin + try + frmZDYHelp := TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag := 'YPJYR'; + flagname := ''; + if ShowModal = 1 then + begin + defstr1.Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBpYPCkEdit.v1ckqtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue, fieldname, qty1, qty2: string; + num1: double; +begin + fieldname := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with CDS_Main do + begin + Edit; + FieldByName(Trim(fieldname)).Value := TcxTextEdit(Sender).EditingText; + num1 := FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value := strtofloat(format('%.0f', [num1])); + Post; + end; + Tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpYPCkEdit.CheckBox1Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmBpYPCkEdit.ToolButton1Click(Sender: TObject); +begin + CopyAddRow(Tv1, CDS_Main); + CDS_Main.edit; + CDS_Main.fieldbyname('QtyUnit').Value := 'M'; + CDS_Main.Post; +end; + +procedure TfrmBpYPCkEdit.ToolButton2Click(Sender: TObject); +begin + if CDS_Main.IsEmpty then + exit; + CDS_Main.Delete; +end; + +procedure TfrmBpYPCkEdit.v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + mvalue := TcxTextEdit(Sender).EditingText; + + if trim(mvalue) = '' then + exit; + + if rightBstr(trim(mvalue), 1) <> '#' then + begin + mvalue := trim(mvalue) + '#'; + end; + + with CDS_Main do + begin + Edit; + FieldByName('P_CodeName').Value := Trim(mvalue); + Post; + end; + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName=' + quotedstr(trim(CDS_main.fieldbyname('P_CodeName').AsString))); + open; + end; + if ADOQueryCmd.IsEmpty then + begin + application.MessageBox('Ʒڣ', 'ʾϢ', 0); + with CDS_main do + begin + Edit; + FieldByName('P_CodeName').Value := ''; + Post; + end; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); + +end; + +procedure TfrmBpYPCkEdit.v1P_ColorPropertiesEditValueChanged(Sender: TObject); +var + mvalue: string; +begin + mvalue := TcxTextEdit(Sender).EditingText; + + if trim(mvalue) = '' then + exit; + + if rightBstr(trim(mvalue), 1) <> '#' then + begin + mvalue := trim(mvalue) + '#'; + end; + + with CDS_Main do + begin + Edit; + FieldByName('P_Color').Value := Trim(mvalue); + Post; + end; + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from KH_Zdy_Attachment A '); + sql.Add('where zdyName=' + quotedstr(trim(CDS_main.fieldbyname('P_CodeName').AsString))); + sql.Add('and DEFstr3=' + quotedstr(trim(CDS_main.fieldbyname('P_Color').AsString))); + open; + end; + if ADOQueryCmd.IsEmpty then + begin + application.MessageBox('ɫڣ', 'ʾϢ', 0); + with CDS_main do + begin + Edit; + FieldByName('P_Color').Value := ''; + Post; + end; + end; + self.tv1.Controller.EditingController.ShowEdit(); + DoKc(); +end; + +procedure TfrmBpYPCkEdit.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + DoKc(); +end; + +procedure TfrmBpYPCkEdit.orderNOBtnClick(Sender: TObject); +begin + frmProductOrderNewList := TfrmProductOrderNewList.Create(Application); + with frmProductOrderNewList do + begin + fsyrName := trim(self.SYRName.Text); + DParameters1 := 'Ȩ'; + if showmodal = 1 then + begin + self.fmainID := trim(Order_Main.fieldbyname('MainID').AsString); + self.fsubID := trim(Order_Main.fieldbyname('subID').AsString); + self.orderNo.Text := trim(Order_Main.fieldbyname('orderNo').AsString); + self.cust.Text := trim(Order_Main.fieldbyname('CustomerNoName').AsString); + self.note.Text := trim(Order_Main.fieldbyname('note').AsString); + if SYRName.Items.IndexOf(trim(Order_Main.fieldbyname('SYRName').AsString)) > -1 then + SYRName.ItemIndex := SYRName.Items.IndexOf(trim(Order_Main.fieldbyname('SYRName').AsString)) + else + SYRName.ItemIndex := -1; + // self.PRTColor.Text:=trim(Order_Main.fieldbyname('PRTColor').AsString); + end; + free; + end; + + with ADOQuery1 do + begin + close; + sql.Clear; + sql.Add('select * from JYOrder_sub '); + sql.Add('where mainID=' + quotedstr(trim(FmainID))); + open; + end; + + CDS_Main.EmptyDataSet; + CDS_Main.DisableControls; + + if not ADOQuery1.IsEmpty then + begin + while not ADOQuery1.Eof do + begin + CDS_Main.Append; + CDS_Main.Fieldbyname('mainID').Value := trim(ADOQuery1.Fieldbyname('mainID').AsString); + CDS_Main.Fieldbyname('subID').Value := trim(ADOQuery1.Fieldbyname('subID').AsString); + CDS_Main.Fieldbyname('P_CodeName').Value := trim(ADOQuery1.Fieldbyname('PrtCodeName').AsString); + CDS_Main.Fieldbyname('P_Color').Value := trim(ADOQuery1.Fieldbyname('PrtColor').AsString); + CDS_Main.Fieldbyname('Sorddefstr1').Value := trim(ADOQuery1.Fieldbyname('Sorddefstr1').AsString); + CDS_Main.Fieldbyname('Qty').Value := trim(ADOQuery1.Fieldbyname('PrtOrderQty').AsString); + CDS_Main.Fieldbyname('Price').Value := trim(ADOQuery1.Fieldbyname('PrtPrice').AsString); + CDS_Main.Fieldbyname('money').Value := format('%.0f', [CDS_Main.Fieldbyname('Qty').AsFloat * CDS_Main.Fieldbyname('Price').AsFloat]); + CDS_Main.Fieldbyname('QtyUnit').Value := 'M'; + CDS_Main.Post; + ADOQuery1.next; + end; + end; + CDS_Main.First; + CDS_Main.EnableControls; +end; + +procedure TfrmBpYPCkEdit.Edit1KeyPress(Sender: TObject; var Key: Char); +var + num1: double; +begin + if Key = #13 then + begin + with CDS_Main do + begin + DisableControls; + first; + while not eof do + begin + Edit; + FieldByName('Price').Value := strtofloatdef(edit1.Text, 0); + num1 := FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value := strtofloat(format('%.0f', [num1])); + Post; + next; + end; + first; + EnableControls; + end; + Tv1.Controller.EditingController.ShowEdit(); + end; +end; + +procedure TfrmBpYPCkEdit.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); +begin + try + frmZdyAttachCP := TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal = 1 then + begin + Self.CDS_main.Edit; + Self.CDS_main.FieldByName('P_Code').Value := Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + Self.CDS_main.FieldByName('P_CodeName').Value := Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + Self.CDS_main.FieldByName('P_Color').Value := Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); + // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + Self.CDS_main.Post; + end; + end; + finally + frmZdyAttachCP.Free; + end; + self.tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmBpYPCkEdit.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); +var + FValue: string; + FBounds: TRect; +begin + FBounds := AViewInfo.Bounds; + if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then + begin + ACanvas.FillRect(FBounds); + ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); + FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); + InflateRect(FBounds, -1, -1); + ACanvas.Font.Color := clBlack; + ACanvas.Brush.Style := bsClear; + ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); + ADone := True; + end; +end; + +end. + diff --git a/样品仓库/U_Bpcklist.dfm b/样品仓库/U_Bpcklist.dfm new file mode 100644 index 0000000..c7b72a9 --- /dev/null +++ b/样品仓库/U_Bpcklist.dfm @@ -0,0 +1,567 @@ +object frmBpCklist: TfrmBpCklist + Left = 212 + Top = 134 + Width = 1088 + Height = 579 + Caption = #20986#24211#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label7: TLabel + Left = 800 + Top = 48 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1072 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 107 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + Visible = False + end + object TBAdd: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBAddClick + end + object TBEdit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBEditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object TBExport: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #25171#21360#20986#24211#21333 + ImageIndex = 12 + OnClick = TBPrintClick + end + object ToolButton1: TToolButton + Left = 477 + Top = 0 + AutoSize = True + Caption = #25171#21360#20986#24211#26631#31614 + ImageIndex = 12 + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 588 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1072 + Height = 45 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 168 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object Label3: TLabel + Left = 456 + Top = 16 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 624 + Top = 16 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 288 + Top = 16 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 328 + Top = 56 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object Label8: TLabel + Left = 776 + Top = 16 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 180 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 508 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object P_Color: TEdit + Tag = 2 + Left = 652 + Top = 12 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = P_CodeNameChange + end + object CRType: TComboBox + Tag = 2 + Left = 344 + Top = 12 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 4 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #38144#21806#20986#24211 + #21152#24037#20986#24211) + end + object ckName: TComboBox + Left = 356 + Top = 52 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 5 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object customerNoname: TEdit + Tag = 2 + Left = 808 + Top = 13 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = P_CodeNameChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 77 + Width = 1072 + Height = 384 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1CRNO: TcxGridDBColumn + Caption = #20986#24211#32534#21495 + DataBinding.FieldName = 'CRNO' + HeaderAlignmentHorz = taCenter + Width = 70 + end + object v1CRID: TcxGridDBColumn + Caption = #24207#27425#21495 + DataBinding.FieldName = 'CRID' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1SYRName: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1orderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1customerNoname: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'customerNoname' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v1CRTime: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + Width = 60 + end + object v1CRType: TcxGridDBColumn + Caption = #20986#24211#31867#22411 + DataBinding.FieldName = 'CRType' + HeaderAlignmentHorz = taCenter + end + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1MJXH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_SPEC: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'P_SPEC' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 90 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1P_MF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'P_MF' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1P_KZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'P_KZ' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1CPTYPE: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'CPTYPE' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + Visible = False + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 50 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 50 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Width = 90 + end + object v1Filler: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1FillTime: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v1Column1: TcxGridDBColumn + Caption = #21098#26679#20154 + DataBinding.FieldName = 'defstr1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 724 + Top = 4 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 824 + Top = 28 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 936 + Top = 25 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 660 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 592 + Top = 52 + end + object ADOPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 816 + Top = 16 + end + object RMDB_MD: TRMDBDataSet + Visible = True + DataSet = ADOPrint + Left = 848 + Top = 16 + end + object RMGridReport1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 896 + Top = 8 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 948 + Top = 20 + end +end diff --git a/样品仓库/U_Bpcklist.pas b/样品仓库/U_Bpcklist.pas new file mode 100644 index 0000000..c360e91 --- /dev/null +++ b/样品仓库/U_Bpcklist.pas @@ -0,0 +1,499 @@ +unit U_BpCklist; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, + RM_Dataset, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + +type + TfrmBpCklist = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBAdd: TToolButton; + TBEdit: TToolButton; + TBDel: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1P_SPEC: TcxGridDBColumn; + v1P_MF: TcxGridDBColumn; + v1P_KZ: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1CRType: TcxGridDBColumn; + v1CRTime: TcxGridDBColumn; + v1CRNO: TcxGridDBColumn; + v1CRID: TcxGridDBColumn; + v1Filler: TcxGridDBColumn; + v1FillTime: TcxGridDBColumn; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + P_CodeName: TEdit; + P_Color: TEdit; + CRType: TComboBox; + Label5: TLabel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + v1MJID: TcxGridDBColumn; + v1MJXH: TcxGridDBColumn; + v1CPTYPE: TcxGridDBColumn; + ckName: TComboBox; + Label6: TLabel; + v1P_Color: TcxGridDBColumn; + ADOPrint: TADOQuery; + RMDB_MD: TRMDBDataSet; + RMGridReport1: TRMGridReport; + RMXLSExport1: TRMXLSExport; + v1orderNo: TcxGridDBColumn; + v1customerNoname: TcxGridDBColumn; + customerNoname: TEdit; + Label7: TLabel; + Label8: TLabel; + v1SYRName: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + ToolButton1: TToolButton; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure TBAddClick(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBEditClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + private + procedure InitGrid(); + procedure SetComboBox(); + { Private declarations } + public + fCKName:string; + { Public declarations } + end; + +var + frmBpCklist: TfrmBpCklist; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpCk, U_BpYPCkEdit; +{$R *.dfm} +procedure TfrmBpCklist.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; + + CRType.Items.Clear; + CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpCklist.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select A.*,B.orderNo,C.customerNoname from BP_InOut A'); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); + sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + sql.Add('and CRFlag='''' '); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + finally + end; +end; + +procedure TfrmBpCklist.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + Action:=cafree; +end; + +procedure TfrmBpCklist.FormDestroy(Sender: TObject); +begin + frmBpCklist:=nil; +end; + +procedure TfrmBpCklist.TBAddClick(Sender: TObject); +begin + frmBpYPCkEdit:=TfrmBpYPCkEdit.create(self); + with frmBpYPCkEdit do + begin + fkeyNo:=''; + fType:=0; + fckName:=self.fckName; + if showmodal=1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; + TBRafresh.Click; +end; + +procedure TfrmBpCklist.P_CodeNameChange(Sender: TObject); +var + m:string; +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + m:= SGetFilters(Panel1,1,2); + SCreateCDS20(ADOQueryTmp,CDS_Main); + SInitCDSData20(ADOQueryTmp,CDS_Main); +end; + +procedure TfrmBpCklist.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpCklist.FormCreate(Sender: TObject); +begin + BegDate.Date:=DServerDate; + EndDate.Date:=DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpCklist.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpCklist.TBEditClick(Sender: TObject); +begin + if cds_main.IsEmpty then exit; + + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' select * from YF_Money_CR '); + SQL.Add(' where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add(' and status>=''1'' '); + Open; + if not IsEmpty then + begin + Application.MessageBox('Ӧտûгˣ޸ij!','ʾ',0); + exit; + end; + end; + + { with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣ޸ģ','ʾ',0); + Exit; + end; } + + frmBpYPCkEdit:=TfrmBpYPCkEdit.create(self); + with frmBpYPCkEdit do + begin + fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString; + fType:=1; + fckName:=self.fckName; + if showmodal=1 then + begin + TBRafresh.Click; + self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; + end; + free; + end; + TBRafresh.Click; +end; + +procedure TfrmBpCklist.TBDelClick(Sender: TObject); +var + YFID,CRID:string; +begin + if CDS_Main.IsEmpty then Exit; + + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add(' select * from YF_Money_CR '); + SQL.Add(' where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add(' and status>=''1'' '); + Open; + if not IsEmpty then + begin + Application.MessageBox('Ӧտûгˣܳ!','ʾ',0); + exit; + end; + end; + { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then + begin + Application.MessageBox('ܲ˵!','ʾ',0); + Exit; + end; } +{ with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from BP_InOut A'); + SQL.Add('where A.kcid='''+Trim(CDS_Main.fieldbyname('kcid').AsString)+''' '); + sQL.Add('and A.CRFlag='''''); + Open; + end; + if not ADOQueryCmd.IsEmpty then + begin + Application.MessageBox('Ѳݣɾ','ʾ',0); + Exit; + end; } + + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + + + try + + + with ADOQueryCmd do + begin + Close; + sql.Clear; + + sql.Add('update BP_kc set RollNum=1, Qty=A.Qty + B.Qty '); + sql.Add('from BP_kc A'); + sql.Add('inner join BP_INout B on B.kcid=A.kcid'); + sql.Add('where B.CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + + sql.Add('delete from BP_InOut '); + SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); + sql.Add(' '+quotedstr(trim(DName))); + sql.Add(',getdate() '); + sql.Add(','+quotedstr(trim(self.Caption))); + sql.Add(','+quotedstr(trim('ⵥɾ'))); + sql.Add(','+quotedstr(trim('ⵥţ'+trim(CDS_Main.FieldByName('CRNO').AsString)))); + sql.Add(','+quotedstr(trim('ɹ'))); + sql.Add(')'); + if CDS_Main.FieldByName('CRType').AsString='Ʒ۳' then + begin + sql.Add('delete from YF_Money_CR '); + SQL.Add('where maiNID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + // sql.Add(' where CRID='''+Trim(CRID)+''''); + end; + if CDS_Main.FieldByName('CRType').AsString='Ʒ۳' then + begin + sql.Add('delete from YF_Money_CR '); + SQL.Add('where maiNID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + // sql.Add(' where CRID='''+Trim(CRID)+''''); + end; + execsql; + end; + TBRafresh.Click; + except + Application.MessageBox('ɾʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmBpCklist.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmBpCklist.TBPrintClick(Sender: TObject); +var + filepath:string; +begin + if CDS_Main.IsEmpty then exit; +{ if trim(CDS_Main.FieldByName('CRType').AsString)<>'Ʒ' then + begin + application.MessageBox('Ʒ,ܴӡⵥ','ʾϢ',0); + exit; + end; } + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('select A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler as xsyg,SUM(A.Qty) as Qty,AVG(A.Price) as Price,SUM(A.money) as Money, '); + sql.Add('customNameAddress=(select Top 1 DEFNote1 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('DEFNote2=(select Top 1 DEFNote2 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr8=(select Top 1 defstr8 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr2=(select Top 1 defstr2 from KH_Zdy_Attachment X where X.ZdyName=A.cust),'); + sql.Add('DEFNote3=(select Top 1 DEFNote3 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('P_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and Type=''CP'') '); + sql.Add(',P_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and X.DEFstr3=A.P_Color and Type=''CP'') '); + sql.Add('from BP_INout A '); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); + sql.Add('where A.CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); + sql.Add('group by A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler'); + open; + end; + + + try + + IF fCKName='Ʒֿ' then + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥Ʒ.rmf' + else + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥Ʒ1.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + RMGridReport1.ShowReport; + + IF fCKName='Ʒֿ' then + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥ǩ.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + // RMGridReport1.ShowReport; + RMGridReport1.PrintReport; + finally + + end; + +end; + +procedure TfrmBpCklist.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpCklist.ToolButton1Click(Sender: TObject); +var + filepath:string; +begin + if CDS_Main.IsEmpty then exit; +{ if trim(CDS_Main.FieldByName('CRType').AsString)<>'Ʒ' then + begin + application.MessageBox('Ʒ,ܴӡⵥ','ʾϢ',0); + exit; + end; } + + with AdoPrint do + begin + close; + sql.Clear; + sql.Add('select A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler as xsyg,SUM(A.Qty) as Qty,AVG(A.Price) as Price,SUM(A.money) as Money, '); + sql.Add('customNameAddress=(select Top 1 DEFNote1 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('DEFNote2=(select Top 1 DEFNote2 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr8=(select Top 1 defstr8 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('defstr2=(select Top 1 defstr2 from KH_Zdy_Attachment X where X.ZdyName=A.cust),'); + sql.Add('DEFNote3=(select Top 1 DEFNote3 from KH_Zdy_Attachment X where X.ZdyName=A.cust), '); + sql.Add('P_CodeNameZW=(select Top 1 defnote3 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and Type=''CP'') '); + sql.Add(',P_colorName=(select Top 1 DEFstr6 from KH_Zdy_Attachment X where X.ZdyName=A.P_CodeName and X.DEFstr3=A.P_Color and Type=''CP'') '); + sql.Add('from BP_INout A '); + sql.Add('left join JYOrder_sub B on B.mainID=A.mainID and B.subID=A.subID '); + sql.Add('left join JYOrder_Main C on C.mainID=A.mainID '); + sql.Add('where A.CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); + sql.Add('group by A.mainID,A.subID,A.SYRName,A.cust,A.P_CodeName,A.P_Color,A.QtyUnit,B.Sorddefnote1,c.note,C.orderNo,C.customerNoname,C.orddefnote1,C.FHAddress,C.LXFS,C.Filler'); + open; + end; + + + try + + filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥ǩ1.rmf'; + if not FileExists(Pchar(filepath)) then + begin + application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + exit; + end; + RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); + RMVariables['zdr'] :=trim(DName); + RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + RMGridReport1.LoadFromFile(filepath); + // RMGridReport1.ShowReport; + RMGridReport1.PrintReport; + finally + + end; +end; + +end. diff --git a/样品仓库/U_BpkcCk.dfm b/样品仓库/U_BpkcCk.dfm new file mode 100644 index 0000000..62f92d5 --- /dev/null +++ b/样品仓库/U_BpkcCk.dfm @@ -0,0 +1,494 @@ +object frmBpkcCk: TfrmBpkcCk + Left = 64 + Top = 128 + Width = 1143 + Height = 602 + Caption = #20986#24211#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1127 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TOk: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450#20986#24211 + ImageIndex = 41 + Visible = False + OnClick = TOkClick + end + object TBExport: TToolButton + Left = 150 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 213 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 276 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 101 + Width = 1127 + Height = 316 + Align = alTop + TabOrder = 1 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = v1Qty + end + item + Kind = skSum + Column = v1ckqty + end + item + Kind = skSum + Column = v1money + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1Ssel: TcxGridDBColumn + DataBinding.FieldName = 'sel' + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 112 + end + object v1P_Color: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 69 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 96 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 147 + end + object v1ckqty: TcxGridDBColumn + Caption = #20986#24211#25968#37327 + DataBinding.FieldName = 'ckqty' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Styles.Content = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Footer = BPCK_DataLink.cxStyle_fontclFuchsia + Styles.Header = BPCK_DataLink.cxStyle_fontclFuchsia + Width = 105 + end + object v1price: TcxGridDBColumn + Caption = #20986#24211#20215#26684 + DataBinding.FieldName = 'price' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.DisplayFormat = '0.##' + Properties.OnEditValueChanged = v1ckqtyPropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 103 + end + object v1money: TcxGridDBColumn + Caption = #20986#24211#37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.cxStyle_fontclPurple + Styles.Footer = BPCK_DataLink.cxStyle_fontclPurple + Styles.Header = BPCK_DataLink.cxStyle_fontclPurple + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel2: TPanel + Left = 0 + Top = 32 + Width = 1127 + Height = 69 + Align = alTop + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 2 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 608 + Height = 69 + Align = alClient + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object Label1: TLabel + Left = 11 + Top = 91 + Width = 52 + Height = 12 + Caption = #20837#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 52 + Top = 116 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 32 + Top = 28 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 416 + Top = 104 + Width = 52 + Height = 12 + Caption = #35268#26684#22411#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 296 + Top = 84 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object Label7: TLabel + Left = 260 + Top = 28 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 64 + Top = 87 + Width = 100 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ShowCheckbox = True + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 64 + Top = 111 + Width = 100 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ShowCheckbox = True + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 84 + Top = 24 + Width = 120 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object P_spec: TEdit + Tag = 2 + Left = 480 + Top = 100 + Width = 120 + Height = 20 + TabOrder = 3 + OnChange = P_CodeNameChange + end + object CheckBox1: TCheckBox + Left = 440 + Top = 24 + Width = 97 + Height = 17 + Caption = #21547#24211#23384#20026#38646 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 4 + OnClick = CheckBox1Click + end + object ckName: TComboBox + Left = 320 + Top = 80 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 5 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + object P_Color: TEdit + Tag = 1 + Left = 288 + Top = 24 + Width = 121 + Height = 20 + TabOrder = 6 + OnChange = P_CodeNameChange + end + end + object GroupBox1: TGroupBox + Left = 608 + Top = 0 + Width = 519 + Height = 69 + Align = alRight + Caption = #20986#24211#20449#24687 + Color = clSkyBlue + ParentColor = False + TabOrder = 1 + object Label8: TLabel + Left = 24 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 204 + Top = 20 + Width = 52 + Height = 12 + Caption = #20986#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 24 + Top = 44 + Width = 54 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object CRTime: TDateTimePicker + Left = 88 + Top = 16 + Width = 100 + Height = 20 + Date = 41509.970132187500000000 + Format = 'yyyy-MM-dd' + Time = 41509.970132187500000000 + TabOrder = 0 + end + object CRType: TComboBox + Tag = 2 + Left = 265 + Top = 16 + Width = 120 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 1 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object cust: TBtnEditA + Left = 88 + Top = 40 + Width = 297 + Height = 20 + TabOrder = 2 + OnBtnClick = custBtnClick + end + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 536 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 612 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 12 + end + object ADOQuery1: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 740 + Top = 16 + end +end diff --git a/样品仓库/U_BpkcCk.pas b/样品仓库/U_BpkcCk.pas new file mode 100644 index 0000000..2d7aec8 --- /dev/null +++ b/样品仓库/U_BpkcCk.pas @@ -0,0 +1,523 @@ +unit U_BpkcCk; + +interface + +uses + Windows, Messages, SysUtils, Variants, cxEdit,Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, DB, cxDBData,cxTextEdit, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCheckBox, BtnEdit, cxCurrencyEdit; + +type + TfrmBpkcCk = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + TOk: TToolButton; + v1P_Color: TcxGridDBColumn; + v1ckqty: TcxGridDBColumn; + v1price: TcxGridDBColumn; + v1money: TcxGridDBColumn; + Panel2: TPanel; + Panel1: TPanel; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label6: TLabel; + Label7: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + P_CodeName: TEdit; + P_spec: TEdit; + CheckBox1: TCheckBox; + ckName: TComboBox; + P_Color: TEdit; + GroupBox1: TGroupBox; + CRTime: TDateTimePicker; + Label8: TLabel; + CRType: TComboBox; + Label5: TLabel; + Label9: TLabel; + cust: TBtnEditA; + ADOQuery1: TADOQuery; + v1Ssel: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TOkClick(Sender: TObject); + procedure custBtnClick(Sender: TObject); + procedure v1ckqtyPropertiesEditValueChanged(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + private + procedure InitGrid(); + procedure SetComboBox(); + function savedate():Boolean; + function YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; + { Private declarations } + public + fType:integer; + fCKName:string; + fkeyNO:string; + + { Public declarations } + end; + +var + frmBpkcCk: TfrmBpkcCk; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk; +{$R *.dfm} +function TfrmBpkcCk.YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; +var + CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou:String; +begin + Result:=False; + with Order_Main10 do + begin + with ADOQuery1 do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(cust.text)+''''); + sql.Add('and YFDefFlag1=1 '); + Open; + end; + if not ADOQuery1.IsEmpty then + begin + CRID:=ADOQuery1.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('FactoryName').Value:=Trim(cust.text); + FieldByName('ZdyStr1').Value:='Ӧ'; + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end; + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID='''+Trim(ckNo)+''''); + sql.Add(' and subID='''+Trim(ckID)+''''); + Open; + end; + if ADOQuery1.IsEmpty then + begin + if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then + begin + Application.MessageBox('ȡӦʧ!','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value:=Trim(YFID); + FieldByName('YFTypeId').Value:=Trim(ckNo); + FieldByName('CRID').Value:=StrToInt(CRID); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRType').Value:='ӦտǼ'; + FieldByName('CRFlag').Value:='Ӧ'; + FieldByName('QtyFlag').Value:=1; + FieldByName('FactoryName').Value:=Trim(cust.Text); + FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',date())); + FieldByName('YFType').Value:='Զ'; + FieldByName('Qty').Value:=Order_Main10.fieldbyname('ckQty').AsFloat; + FieldByName('Price').Value:=Order_Main10.fieldbyname('Price').AsFloat; + FieldByName('Money').Value:=Order_Main10.fieldbyname('Money').AsFloat; + FieldByName('BBMoney').Value:=Order_Main10.fieldbyname('Money').AsFloat; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value:=1; + FieldByName('BZType').Value:=''; + FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); + FieldByName('ComTaiTou').Value:=Trim(cust.Text); + FieldByName('YFName').Value:='۽'; + FieldByName('MainId').Value:=Trim(ckNo); + FieldByName('subID').Value:=Trim(ckID); + FieldByName('YFDefFlag1').Value:=1; + Post; + end; + end + else + begin + YFID:=Trim(ADOQueryTmp.fieldbyname('YFID').AsString); + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID='+CRID); + ExecSQL; + end; + end; + Result:=True; +end; +function TfrmBpkcCk.savedate():Boolean; +var + fkcID,i:integer; + Filler:string; + FillTime:TdateTime; + maxno:string; +begin + result:=false; + try + ADOQueryCmd.Connection.BeginTrans; + if GetLSNo(ADOQueryCmd,fkeyNO,'CK','BP_InOut',3,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + Filler:=DName; + FillTime:=SGetServerDateTime(ADOQuery1); + + + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('delete from BP_InOut'); + sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); + execsql; + end; + CDS_Main.DisableControls; + CDS_Main.First; + i:=1; + with CDS_Main do + begin + while not eof do + begin + if Fieldbyname('ssel').AsBoolean then + begin + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('select * from BP_InOut'); + sql.Add('where 1=2 '); + open; + end; + ADOQueryCmd.Append; + ADOQueryCmd.FieldByName('CRNO').Value:=trim(fkeyNO); + ADOQueryCmd.FieldByName('CRID').Value:=i; + ADOQueryCmd.FieldByName('CKName').Value:=trim(fckName); + // ADOQueryCmd.FieldByName('mainID').Value:=trim(fmainID); + // ADOQueryCmd.FieldByName('subID').Value:=trim(fsubID); + ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.Date); + ADOQueryCmd.FieldByName('CRType').Value:=trim(crType.Text); + ADOQueryCmd.FieldByName('CRFlag').Value:=''; + // ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); + // ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); + // ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); + // ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); + ADOQueryCmd.FieldByName('P_CodeName').Value:=trim(fieldbyname('P_CodeName').AsString); + // ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); + ADOQueryCmd.FieldByName('P_Color').Value:=trim(fieldbyname('P_Color').AsString); + // ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; + // ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; + ADOQueryCmd.FieldByName('RollNum').Value:=0; + ADOQueryCmd.FieldByName('Qty').Value:=fieldbyname('ckQty').AsFloat; + ADOQueryCmd.FieldByName('Price').Value:=fieldbyname('Price').AsFloat; + ADOQueryCmd.FieldByName('money').Value:=fieldbyname('money').AsFloat; + ADOQueryCmd.FieldByName('QtyUnit').Value:=trim(fieldbyname('QtyUnit').AsString); + // ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); + ADOQueryCmd.FieldByName('Filler').Value:=trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value:=dateTimetostr(FillTime); + ADOQueryCmd.FieldByName('cust').Value:=trim(cust.Text); + // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); + // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); + if FType=1 then + begin + ADOQueryCmd.FieldByName('editer').Value:=trim(dName); + ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(ADOQuery1); + end; + ADOQueryCmd.Post; + + if not YSData(fkeyNo,inttostr(i),CDS_Main) then + begin + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + i:=i+1; + end; + next; + end; + end; + CDS_Main.EnableControls; + ADOQueryCmd.Connection.CommitTrans; + result:=true; + except + CDS_Main.EnableControls; + ADOQueryCmd.Connection.RollbackTrans; + end; +end; +procedure TfrmBpkcCk.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; + + CRType.Items.Clear; + // CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpkcCk.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select AA.*,QtyUnit=''M'' '); + sql.Add('FROM( select A.ckName,P_CodeName,A.P_Color,ckQty=0.00,Price=0.00,money=0.00, '); + sql.Add(' SUM(case when CRFlag='''' then Qty else -1 * Qty end ) as Qty '); + sql.Add('from BP_InOut A '); + sql.Add('group by A.ckName,P_CodeName,A.P_Color)AA '); + if trim(FckName)<>'' then + sql.Add('where ckName='+quotedstr(trim(FckName)) ); + if checkbox1.Checked then + sql.Add('and qty<>0 '); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + finally + end; +end; + +procedure TfrmBpkcCk.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + if fType=10 then Action:=cahide + else Action:=cafree; +end; + +procedure TfrmBpkcCk.FormDestroy(Sender: TObject); +begin + frmBpkcCk:=nil; +end; + +procedure TfrmBpkcCk.P_CodeNameChange(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,CDS_Main); + SInitCDSData20(ADOQueryTmp,CDS_Main); +end; + +procedure TfrmBpkcCk.FormShow(Sender: TObject); +begin + if fType=10 then + begin + TOk.Visible:=true; + v1Ssel.Visible:=true; + v1ckqty.Visible:=true; + v1price.Visible:=true; + v1money.Visible:=true; + GroupBox1.Visible:=true; + end + else + begin + TOk.Visible:=false; + v1Ssel.Visible:=false; + v1ckqty.Visible:=false; + v1price.Visible:=false; + v1money.Visible:=false; + GroupBox1.Visible:=false; + end; + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpkcCk.FormCreate(Sender: TObject); +begin + BegDate.Date:=DServerDate-7; + EndDate.Date:=DServerDate; + CRTime.date:= DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpkcCk.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpkcCk.TBRafreshClick(Sender: TObject); +begin + + initGrid(); +end; + +procedure TfrmBpkcCk.TBPrintClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpkcCk.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpkcCk.TOkClick(Sender: TObject); +begin + CRTIME.SetFocus; + if not CDS_Main.Locate('SSel',True,[]) then + begin + Application.MessageBox('ûѡ!','ʾ',0); + Exit; + end; + if trim(CRType.Text)='' then + begin + application.MessageBox('ͲΪգ','ʾϢ',0); + exit; + end; + if trim(cust.Text)=''then + begin + application.MessageBox('ͻΪգ','ʾϢ',0); + exit; + end; + if savedate() then + begin + application.MessageBox('ݱɹ','ʾϢ'); + InitGrid(); + fkeyNo:=''; + // ModalResult:=1; + end + else + begin + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + end; +end; + +procedure TfrmBpkcCk.custBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='GDCustFlag'; + flagname:='ͻ'; + if ShowModal=1 then + begin + cust.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmBpkcCk.v1ckqtyPropertiesEditValueChanged(Sender: TObject); +var + mvalue,fieldname,qty1,qty2:String; + num1:double; + +begin + fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; + with CDS_Main do + begin + Edit; + FieldByName(Trim(fieldname)).Value:=TcxTextEdit(Sender).EditingText; + num1:=FieldByName('ckQty').AsFloat * FieldByName('Price').AsFloat; + FieldByName('Money').Value:=strtofloat(format('%8.2f',[num1])); + Post; + end; + Tv1.Controller.EditingController.ShowEdit(); + +end; + +procedure TfrmBpkcCk.CheckBox1Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +end. diff --git a/样品仓库/U_Bpkclist.dfm b/样品仓库/U_Bpkclist.dfm new file mode 100644 index 0000000..bace319 --- /dev/null +++ b/样品仓库/U_Bpkclist.dfm @@ -0,0 +1,442 @@ +object frmBpkclist: TfrmBpkclist + Left = 172 + Top = 168 + Width = 956 + Height = 500 + Caption = #24211#23384#20449#24687#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 948 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #26597#35810 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TOk: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #30830#23450 + ImageIndex = 41 + Visible = False + OnClick = TOkClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 948 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #20837#24211#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 64 + Top = 40 + Width = 13 + Height = 12 + Caption = #33267 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 268 + Top = 40 + Width = 52 + Height = 12 + Caption = #20135#21697#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 552 + Top = 16 + Width = 52 + Height = 12 + Caption = #35268#26684#22411#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 268 + Top = 16 + Width = 52 + Height = 12 + Caption = #20837#24211#31867#22411 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 288 + Top = 72 + Width = 24 + Height = 12 + Caption = #20179#24211 + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 100 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + ShowCheckbox = True + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 100 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + ShowCheckbox = True + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 324 + Top = 36 + Width = 120 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object P_spec: TEdit + Tag = 2 + Left = 616 + Top = 12 + Width = 120 + Height = 20 + TabOrder = 3 + OnChange = P_CodeNameChange + end + object CRType: TComboBox + Tag = 2 + Left = 324 + Top = 12 + Width = 120 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 4 + OnChange = P_CodeNameChange + Items.Strings = ( + '' + #29983#20135#20837#24211) + end + object CheckBox1: TCheckBox + Left = 556 + Top = 36 + Width = 97 + Height = 17 + Caption = #21547#24211#23384#20026#38646 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 5 + end + object ckName: TComboBox + Left = 320 + Top = 68 + Width = 100 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + ItemIndex = 0 + TabOrder = 6 + Text = #26679#21697#20179#24211 + Items.Strings = ( + #26679#21697#20179#24211) + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 948 + Height = 316 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = 'C_Code' + Column = v1P_CodeName + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1RollNum + end + item + Kind = skSum + Column = v1Qty + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.FocusCellOnTab = True + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object v1Ssel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'Ssel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + end + object v1CRTime: TcxGridDBColumn + Caption = #20837#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1CRType: TcxGridDBColumn + Caption = #20837#24211#31867#22411 + DataBinding.FieldName = 'CRType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + end + object v1MJID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1MJXH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'MJXH' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1P_CodeName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1P_SPEC: TcxGridDBColumn + Caption = #35268#26684#22411#21495 + DataBinding.FieldName = 'P_SPEC' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Sorting = False + Width = 90 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1P_MF: TcxGridDBColumn + Caption = #38376#24133'(cm)' + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1P_KZ: TcxGridDBColumn + Caption = #20811#37325'(g/'#13217')' + DataBinding.FieldName = 'P_KZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1CPType: TcxGridDBColumn + Caption = #31561#32423 + DataBinding.FieldName = 'CPType' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v1RollNum: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'RollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 59 + end + object v1Qty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = BPCK_DataLink.FontBlue + Styles.Footer = BPCK_DataLink.FontBlue + Styles.Header = BPCK_DataLink.FontBlue + Width = 59 + end + object v1QtyUnit: TcxGridDBColumn + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'QtyUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Note: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 680 + Top = 8 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 536 + Top = 4 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 576 + Top = 1 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 612 + Top = 5 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 504 + Top = 12 + end +end diff --git a/样品仓库/U_Bpkclist.pas b/样品仓库/U_Bpkclist.pas new file mode 100644 index 0000000..23c83cb --- /dev/null +++ b/样品仓库/U_Bpkclist.pas @@ -0,0 +1,219 @@ +unit U_Bpkclist; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, + cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, + cxGridPopupMenu, cxCheckBox; + +type + TfrmBpkclist = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBExport: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1P_CodeName: TcxGridDBColumn; + v1P_SPEC: TcxGridDBColumn; + v1P_MF: TcxGridDBColumn; + v1P_KZ: TcxGridDBColumn; + v1RollNum: TcxGridDBColumn; + v1Qty: TcxGridDBColumn; + v1QtyUnit: TcxGridDBColumn; + v1Note: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1CRType: TcxGridDBColumn; + v1CRTime: TcxGridDBColumn; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + P_CodeName: TEdit; + P_spec: TEdit; + CRType: TComboBox; + Label5: TLabel; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + DataSource1: TDataSource; + CDS_Main: TClientDataSet; + cxGridPopupMenu1: TcxGridPopupMenu; + TOk: TToolButton; + v1Ssel: TcxGridDBColumn; + CheckBox1: TCheckBox; + v1MJID: TcxGridDBColumn; + v1MJXH: TcxGridDBColumn; + v1CPType: TcxGridDBColumn; + ckName: TComboBox; + Label6: TLabel; + v1Column1: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TOkClick(Sender: TObject); + private + procedure InitGrid(); + procedure SetComboBox(); + { Private declarations } + public + fType:integer; + fCKName:string; + + { Public declarations } + end; + +var + frmBpkclist: TfrmBpkclist; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk; +{$R *.dfm} +procedure TfrmBpkclist.SetComboBox(); +begin + ckName.Items.Clear; + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPCK'' '); + if trim(fCKName)<>'' then + sql.Add('and zdyName='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if ckName.Items.Count>0 then ckName.ItemIndex:=0; + + CRType.Items.Clear; + CRType.Items.Add(''); + with adoQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from KH_ZDY where Type=''BPRKTYPE'''); + if trim(fCKName)<>'' then + sql.Add('and note='+quotedstr(trim(fCKName))); + open; + while not eof do + begin + CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); + next; + end; + end; + if CRType.Items.Count>0 then CRType.ItemIndex:=0; +end; +procedure TfrmBpkclist.InitGrid(); +begin + try + with adoqueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from BP_KC A'); + sql.Add('where 1=1'); + if begdate.Checked then + sql.Add('and CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); + if enddate.Checked then + sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); + if not CheckBox1.Checked then + sql.Add('and (RollNum<>0 or qty<>0 ) '); + if trim(FckName)<>'' then + sql.Add('and ckName='+quotedstr(trim(FckName)) ); + open; + end; + SCreateCDS20(adoqueryTmp,CDS_Main); + SInitCDSData20(adoqueryTmp,CDS_Main); + finally + end; +end; + +procedure TfrmBpkclist.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + writeCxGrid(self.Caption,Tv1,'ƥֿ'); + if fType=10 then Action:=cahide + else Action:=cafree; +end; + +procedure TfrmBpkclist.FormDestroy(Sender: TObject); +begin + frmBpkclist:=nil; +end; + +procedure TfrmBpkclist.P_CodeNameChange(Sender: TObject); +begin + if ADOQueryTmp.Active=False then Exit; + SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryTmp,CDS_Main); + SInitCDSData20(ADOQueryTmp,CDS_Main); +end; + +procedure TfrmBpkclist.FormShow(Sender: TObject); +begin + if fType=10 then + begin + TOk.Visible:=true; + v1Ssel.Visible:=true; + end; + readCxGrid(self.Caption,Tv1,'ƥֿ'); + SetComboBox(); + InitGrid(); +end; + +procedure TfrmBpkclist.FormCreate(Sender: TObject); +begin + BegDate.Date:=DServerDate-7; + EndDate.Date:=DServerDate; + cxGrid1.Align:=alclient; + +end; + +procedure TfrmBpkclist.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmBpkclist.TBRafreshClick(Sender: TObject); +begin + + initGrid(); +end; + +procedure TfrmBpkclist.TBPrintClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpkclist.TBExportClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid1); +end; + +procedure TfrmBpkclist.TOkClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + ModalResult:=1; +end; + +end. diff --git a/样品仓库/U_DataLink.dfm b/样品仓库/U_DataLink.dfm new file mode 100644 index 0000000..a73e475 --- /dev/null +++ b/样品仓库/U_DataLink.dfm @@ -0,0 +1,18108 @@ +object BPCK_DataLink: TBPCK_DataLink + OldCreateOrder = False + OnDestroy = DataModuleDestroy + Left = 244 + Top = 208 + Height = 349 + Width = 482 + object AdoDataLink: TADOQuery + Connection = ADOLink + Parameters = <> + Left = 136 + Top = 8 + end + object ADOLink: TADOConnection + LoginPrompt = False + Left = 48 + Top = 8 + end + object ThreeImgList: TImageList + Height = 24 + Width = 24 + Left = 48 + Top = 72 + Bitmap = { + 494C01018900F000040018001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 000000000000360000002800000060000000A005000001002000000000000070 + 0800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F800000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A5004F69BE004F69BE004F69BE000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 00000000000000000000000000000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00506CCA00173CB900506CCA000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A9897004F6ED5001740C9004F6ED5000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA006885E7006885 + E7006885E7001C4BE8001948E8001C4BE8006885E7006885E7006885E7000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE006A8AF3004A70 + F0004A70F0002957EE002957EE002957EE004A70F0004A70F0006A8AF3000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF007F99ED007F99 + ED007F99ED003B64EF003B64EF003E67F0007F99ED007F99ED007F99ED000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB008EA6F6006989F3008EA6F6000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4009AAFF700829CF5009AAFF7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F00ADBDF400ADBDF400ADBDF4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008195DB0028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 7300283973002839730028397300283973002839730028397300283973002839 + 73002839730028397300283973007287D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A4B3E50031437F002B38 + 680026335B002B396C008E9FD400C0C0C000C1C1C100C7C7C700C8C8C800D5D5 + D500DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC003E5291002B3767002A386800445799004D60A1005166AC005267AC005166 + AE005267AB005064A8004E63A7004A5D9B002F3D6E0029366400293665009FAD + DC00D3D3D3000000000000000000000000002D3E7C00092EAA000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7000429A7000429A7000429A7000429A7000429A7000429 + A7000429A7000429A7003B57B400354682000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536AB6007089DA005570 + CD003E5ABA00566EBC0047589200B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CBCBCB0093A2 + D800475891005166B1004E60A2004E69C0003B58BA003856B9003B58B9003754 + B7003653B6003552B300304DAF003551AE003545790047568D004C60A3002A37 + 670092A1D7000000000000000000000000004057A7002345B600042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042AAA000328 + A300042AAA00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC004157A200334A9300374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000374E9A002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D00374E9A0000000000000000006782DF006983DC00617C + D6004461C2003A57B800576EBC00283A7700B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004860 + B200506BC8003B5BC4005570CA005E78D1003D5DC8004664CA004563C9004563 + C9004361C7003F5DC3003B5AC0003151BA0049598E004E67B800324EAE004A5A + 93004157A400000000000000000000000000A7B7ED00435EBA00153AB7000930 + B3000930B3000930B3000930B3000930B3000930B3000930B3008191C600FFFF + FF00FFFFFF000930B3000930B3000930B3000930B3000930B3000930B3000930 + B3000930B3000F35B5003D4F8D008499DF0033478A004F6CCC004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC00657FD30033478A000000000033478A00657FD3004F6CCC004F6C + CC004F6CCC004F6CCC0033478A0000000000000000006F8AE5007891E300758E + DF005873CF004663C3003A57B80047589300283B7800B7C5F100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C52 + 9E005978E100617FE4006F8BE800859DED006D89E9006E8AEA006C89E9006B88 + E8006986E7006481E300617EE1005C7ADE007F93D4005270D3004362CB005971 + C10033458400000000000000000000000000000000003A4E93004E69C0002449 + C500163DC100163DC100163DC100163DC100163DC100153AB800FFFFFF00FFFF + FF00FFFFFF00153AB800163DC100163DC100163DC100163DC100163DC100163D + C1001F45C4004E69C600A8B7EE00000000004158A7001B47D800204BD900224C + D9001B47D800829AE9004158A700000000004158A700829AE900204BD900224C + D900204BD900829AE9004158A700000000004158A700829AE9001B47D800224C + D900204BD9001B47D8004158A7000000000000000000778ACD009EB0EF00829A + E800778FE00096A8E3008292C800344EA200576EBC0048599300B7C5F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + AD006E8CEF007994F1007C97F3008DA5F500819BF400829CF500809AF4007F9A + F4007C97F3007692EF00738FED006F8BEB007F98E9005F7DE0005876DB006079 + CC00384C900000000000000000000000000000000000617ACE004E61A5004666 + D0001D44C9001D44C9001D44C9001D44C9001D44C9001C43C500A8B4DC00FFFF + FF00FFFFFF001D44C9001D44C9001D44C9001D44C9001D44C9001D44C9001D44 + C9003E60D0005066AD0000000000000000004961B6002D58E7003861E9003A62 + E9002C57E7009BAFF3004961B600000000004961B6009BAFF3003861E9003A62 + E900365FE8009BAFF3004961B600000000004961B6009BAFF3002D58E7003A62 + E900365FE8002C57E7004961B60000000000000000003F59B0007E90D000A1B3 + EF00839AE5008A96BD00B3C0EB00384F9C00344EA200576EBC002A3D7900B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004862 + B9007A96F4008AA3F6008EA6F60092A9F60093AAF60093AAF60092A9F60091A8 + F6008EA6F60088A2F600839DF400809AF4007591EF006F8BEB006784E700637E + D5003D539C0000000000000000000000000000000000000000003A53A1005A73 + C600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF001C3CA6004660 + B6004660B600234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002F54 + D2005974CB003E549E0000000000000000004F69C0003C65EF00496FF0004C72 + F1003A64EF00A9BBF8004F69C000000000004F69C000A9BBF800496FF0004C72 + F100476EF000A9BBF8004F69C000000000004F69C000A9BBF8003C65EF004C72 + F100476EF0003A64EF004F69C0000000000000000000BECCF5004059B0007F92 + D100849BE8004E5C8A008A96BD008292C800384F9C00344EA200495A93002B3D + 7A00B7C5F1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DE00859FF5009FB3F700B2C2F900B7C7F900B8C7F900B9C8F900B7C7F900B5C5 + F900B3C3F900ABBDF800A6B9F800A0B4F70094ABF6008CA5F6007894F400617A + CE006B85DA00000000000000000000000000000000000000000000000000455E + B200476ADF003158DB003158DB003158DB003158DB003158DB0092A2D700FFFF + FF00FFFFFF003158DB003158DB003158DB003158DB003158DB003158DB00657E + D0004159AB000000000000000000000000005770C700BBC9F600BECBF700BFCC + F600BAC8F600B5C4F5005770C700000000005770C700B5C4F500BECBF700BFCC + F600BECBF700B5C4F5005770C700000000005770C700B5C4F500BBC9F600BFCC + F600BECBF700BAC8F6005770C70000000000000000000000000000000000BECC + F5008093D100A2B4EF006576AF008A96BD00B3C0EB008292C800344EA200566E + BC00495A9500B7C5F10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3DB + F8007C95E8009DB2F700B2C2F900C9D5FB00BAC5E800AEB8D800A1AAC900A0A9 + C8009DA7C8009AA6CE009CAAD700A1B1E6009FB3F7008CA5F6007E99F500556E + C200D2DBF8000000000000000000000000000000000000000000000000009AAD + EC006984E0003C62E200375EE000375EE000375EE000375EE00095A5D900FFFF + FF00FFFFFF00375EE000375EE000375EE000375EE000375EE000395FE000566C + B600748ADC000000000000000000000000005B76D2005872C9005872C9007A7E + 8E005872C9005872C9005B76D200000000005B76D2005872C9005872C9006F74 + 83005872C9005872C9005B76D200000000005B76D2005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000435CB2007C8FD1009AADEF004E5C8A008A96BD00B3C0EB00384F9C00344E + A200576EBC002C3F7C00B7C5F100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E76C700869DE9009CB1F700A2AFD900ADB5CF00D6D9E100EDECEB00ECEB + EA00ECEBEA00E4E4E800D2D5E100A2ACCE0097ADF70088A2F6007791E70092A5 + EC00000000000000000000000000000000000000000000000000000000000000 + 0000687ECB00587AE9003E64E5003E64E5003E64E5003E64E50097A7DB00FFFF + FF00FFFFFF003E64E5003E64E5003E64E5003E64E5003E64E5005073E8004A63 + BB00000000000000000000000000000000000000000000000000000000007878 + 7800000000000000000000000000000000000000000000000000000000006666 + 6600000000000000000000000000000000000000000000000000000000005656 + 5600000000000000000000000000000000000000000000000000000000000000 + 0000BECCF500445DB3007C90D1006576AF004E5C8A008A96BD008292C800384F + 9C00344EA2004A5B95002D3F7C00B7C5F1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED8F7006B84DB005C72BD00C7CBDB00CDCBCA00A19F9E009997 + 960099989600B8B7B500D1D0CE00CACEDE005972C5006B84DB00CED8F7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000657FD9006C83CD006686F2004C71F0004C71F0004C71F000CDD4EE00FFFF + FF00FFFFFF004C71F0004C71F0004C71F0004C71F0006182F1007087D4000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000000000000000000000000000000000000000000000000000000000008080 + 8000000000000000000000000000000000000000000000000000000000007070 + 7000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BECCF5008294D300A2B4EF006576AF008A96BD00B3C0 + EB008292C800344EA200576EBC004B5C9500B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000093A7ED006475AC0083879400ACAAA900C3C1 + C000C7C5C4009896950081879B006879B4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2DBF800536CC1008098E7005176F1005176F1005176F100CFD6EF00FFFF + FF00FFFFFF005176F1005176F1005176F100597CF2007E97ED005870C3000000 + 0000000000000000000000000000000000000000000000000000000000009D9D + 9D009A9A9A0099999900989898009494940094949400919191008E8E8E008C8C + 8C008C8C8C008888880088888800858585008282820080808000808080007C7C + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465FB5008395D300A2B4EF004E5C8A008A96 + BD00B3C0EB00384F9C003B58B800576EBC002F3E750032437D00354787003B50 + 98004C64BB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009D9D9D005D5C5C00A9A7A500AFAD + AB00B7B5B300C0BEBD00646363009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E3006B81CC00587CF200587CF200587CF200D1D8EF00FFFF + FF00FFFFFF00587CF200587CF200587CF200718FF4007388D200607AD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009999 + 9900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF5004760B6008396D4006576AF004F5D + 8A008A96BD008292C8004663C3003C59B900596DAF00586CAF005D72B800647B + C8005C70B1004760B40000000000000000000000000000000000000000000000 + 000000000000000000000000000059595900ACABAA00C2C1C000BDBCBA00B7B6 + B400AFADAB00A8A6A500B7B5B400AEADAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000839AE800869FF3006686F3006586F300F3F5FA00FFFF + FF00FFFFFF006586F3006586F3006586F300758AD1007189DF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000364C99002B3D7B002B3D7B002B3D7B006367 + 73002B3D7B002B3D7B002B3D7B00364C99000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5007F92D400A2B4 + EF00869DE800778FE0006781D7005873CF003351B600203FA6000C2C96001B3B + A8003D5ABD00667FD0004861B400000000000000000000000000000000000000 + 00000000000000000000000000007E7E7D00D1D0D000D2D2D100CDCCCB00C7C6 + C500BFBDBC00A8A6A400A8A6A400B9B7B600AAAAAA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008B9FE0007E99F5006B8AF300FFFFFF00FFFF + FF00FFFFFF006B8AF3006B8AF3007A96F400526CC50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031448600657ED100506CCA00506CCA00506C + CA00506CCA00506CCA00657ED100314486000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004963B9008597 + D500A4B5EF00849BE600778FE0006781D7004461C200415DBA00445EB4001433 + 9B001839A7003A58BC005F73B4004A62B5000000000000000000000000000000 + 0000000000000000000000000000C2C1C100E0DFDE00E1E0E000DBDBDA00D5D4 + D300CCCBCA00B4B3B100A6A4A300ACAAA8006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005F77C90097ACF2007592F4005B73C3005B73 + C3005B73C3007290F4007491F40090A7F300849BE80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000374C94006580D8000732C1000833C1000833 + C1000833C1000631C1006681D900374C94000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004A63 + BA008799D60093A7EB00859BE600778FE0008196DA0099A8D9008F9DCD008191 + C7003853AB001536A5005E78CD003F549B000000000000000000000000000000 + 0000000000000000000000000000A9A9A8004D4D4D00F7F6F600F1F1F100EBEA + EA00E2E1E000C8C7C600B9B7B60070706F004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005C75C8009FB1EF007F9AF5007F9A + F5007F9AF500829CF500A1B4F300687FCD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445BAC00869EEC002C55DE003D62DF003E63 + DF003C61DF002A53DD00869EEC00445BAC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D66BB00A3B5F1009EB0EF008FA4EA00596CAD00AAB9EF0000000000536B + BC005A6999007F8FC400546DBE003A4C8B000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00FDFDFD00F8F8F800F2F1 + F100E9E8E800CFCECD00B9B7B6004D4D4D004D4D4D0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000006B84DE008699DB00859FF500859F + F500859FF50096ACF7008FA2E0005E79D6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63B900A1B4F600446BEC005F80EE006383 + EF005E7FEE004269EC00A1B4F6004A63B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004E67BD00A7B8F300A7B8F10095A9ED004C65BB0000000000000000000000 + 0000465CAA006B79A8004F66B400374883000000000000000000000000000000 + 00000000000000000000000000004D4D4D004D4D4D00BCBCBC00E6E6E600CBCB + CB00BABAB9009A9999007A7A79004D4D4D006969690000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF9005C75CC0094ABF6008CA5 + F6008CA5F600A6B7F100647CCD00AFBFF3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F68BF00A6B9F800567AF2007B97F4007F9A + F5007995F4005378F100A5B8F8004F68BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC000A3B5F400ADBDF4009DB0F1004D62AF00D1DAF800000000000000 + 0000000000003F56A1007284C00034437B000000000000000000000000000000 + 0000000000000000000000000000515151004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A7B6EB00A4B7 + F800A2B6F8005E77CA00D3DBF900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556EC500B8C7F900597CF2007E99F500829C + F5007C97F400577BF200B7C7F900556EC5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C77D400AABBF5009BB0F50097ACF300829BEB006D81C9005169C1000000 + 000000000000000000003D5299003D539D000000000000000000000000000000 + 0000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D004D4D4D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CF00B2C0 + F100B1BFF1007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005771C800B7C6F600BFCCF500C6D1F700C7D2 + F700C6D1F700BECBF500B7C6F6005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008C9EDC00A9BAF50090A7F3007B95EE007993EA006C81C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AAAAAA004D4D4D004D4D4D004D4D + 4D004D4D4D004D4D4D004D4D4D00AAAAAA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007C93E6005771 + C9005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005B76D2005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005B76D2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005974CF008C9EDD00A5B7F5007490EE00718DED006E8AE800526B + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D600556FC500556EC400546DC1005169 + BB00546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000038477E0041486200404761003E455F003D44 + 5F003C435E003B435D003B425D003A415C000000000000000000000000000000 + 000000000000000000000000000000000000000000002F3E710045569500475C + A400435AA700435AA700435AA600435AA500445BA600435AA500445AA5004359 + A4004359A3004359A2004359A2004359A1004358A0004358A00043589F004358 + 9F00495A990044528B0043569E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CACACA00596FB9003E5194003E51 + 94003E5194003E5194003E5194003D5092003B4D8B00384A860034447C003241 + 77002F3E71002A3867002936620040529200C3C3C300DBDBDB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000474E6A007A8ABF0013339F0013339F001333 + 9F0013339F0013339F0013339F007988BD000000000000000000000000000000 + 0000000000000000000000000000000000006279C9004660B4002747B000072B + A3000328A0000328A00003279F0003279F0003279E0003279D0003269C000326 + 9B0003269A000326990003269800032597000325960003259500032594000324 + 9300072895002743A2002E3D6F008EA1E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005E72B6008DA1E40090A5 + EB008DA3ED008BA2ED00879EEB008199E9007E96E4007B92E000758CD7007187 + D1006E84CC00687CC0006F7FB7004D5B8A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000048516E007B8BC10003279E0003279E000327 + 9E0003279E0003279E0003279E007B8BC0000000000000000000000000000000 + 000000000000000000000000000000000000283C80002748B5000429A8000429 + A7000429A6000429A5000429A5000328A3000328A2000328A2000328A0000328 + A00003279F0003279E0003279E0003279D0003269B0003269B0003269A000326 + 99000326980003259700495A99002D428A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008AA0EB00829CF5007995 + F4007290F4006989F3006082F2004C71ED004469E6003A5FDE00274DCD001D43 + C300143AB9000328A3003652AF006E7EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004B5472007C8CC3000328A2000328A2000328 + A2000328A2000328A2000328A2007B8BC3000000000000000000000000000000 + 0000000000000000000000000000000000002B3E8100042CB300042CB200042C + B20003238D00506BC800042BAF00042BAD00042BAD00042BAC00042AAA000322 + 8800506AC3000429A8000429A8000429A7000429A6000429A500032184000328 + A3000328A2000328A100435EB800263873000000000028387100283871002838 + 7100283871002838710028387100283871002838710028387100283871002838 + 7100293C7A000000000000000000000000000000000000000000000000000000 + 0000000000004B62B10028387100000000000000000096AAEE0093AAF60096AC + F700829DF5007894F4006D8CF3005679EE004B6FE7004166DF002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000515978007D8EC800042AAB00042AAB00042A + AB00042AAB00042AAB00042AAB007B8CC7000000000000000000000000000000 + 0000000000000000000000000000000000002D418600042DB800042DB700042D + B600032492004F6BCA00042CB400042CB300042CB200042CB100042BB0000323 + 8C004F6AC700042BAD00042BAC00042BAC00042AAA00042AAA00032187000429 + A8000429A8000429A700435FBC0028397700000000004862B8004E67BA005069 + BB004D66BA004C66BA004A64B8004660B700435EB600435DB6007D8FCC00929D + C00033447F000000000000000000000000000000000000000000000000000000 + 0000A3B4EB0035447D0034468200000000000000000097ABEE0097ADF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000535C7C007C8ECB00042CB100042CB100042C + B100042CB100042CB100042CB1007B8DCA000000000000000000000000000000 + 0000000000000000000000000000000000002F438B000530BE00042EBC00042E + BC00032595004F6CCE00042EB900042DB700042DB7000328A200031F7E000219 + 6400374B8D00031F7C0003269A00042CB100042BB000042BAF0003238C00042B + AD00042BAC00042AAB00425FBF002A3C7C00000000004F69BF002948B1002F4D + B3002B4AB2002646B0002142AF001739AB001033A9001538AA00929EC4003749 + 8600ACBBEB000000000000000000000000000000000000000000000000000000 + 000033488F0051629F00445CA900000000000000000099ADEE0098AEF70097AD + F700829DF5007894F4006D8CF3005679EE00000000007A94E8002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000555E7F007D8FCE00042DB600042DB600042D + B600042DB600042DB600042DB6007C8ECD000000000000000000000000000000 + 000000000000000000000000000000000000344A9400143ECA001740CA00153E + C900072A9E005875D7000E38C5000B36C4000934C2000D2A8A00CDCCCA00CBCA + C800C9C7C600CECCCB0003208300042EBB00042EBA00042EB90003249300042D + B700042DB600042DB6004361C7002F428500000000005C76CC004C68C7005570 + CA004B67C7004562C500405EC4003454C000546FCA006E80BC00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000004455 + 92004964BF006980CC00B4C3EF0000000000000000009AAEEF0098AEF70097AD + F700829DF5007894F4006D8CF30011172D0000000000161B2B002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005A6488007E92D400042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF007C90D2000000000000000000000000000000 + 000000000000000000000000000000000000364B99001D46D100224AD2002149 + D1000A2DA3005F7CDC001A43CD001640CB00153FCA0016359B00EDEDEC00ECEC + EB00EBEBEA00DBDCE20005258E000530C100042FBF00042FBF0003269800042F + BD00042EBC00042EBB004362CB0031458A0000000000607AD1005873CF00627C + D2005873D000526ECD004D6ACC004261C9004F6CCC00586FBA00000000000000 + 0000000000000000000000000000000000000000000000000000556EC3004D67 + BC003F5FC8008596D00000000000000000000000000099ADF00097ADF70097AD + F700829DF5007894F4006D8CF3001F1F1F000C0C0C001F1F1F002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E678B007F92D5000531C4000531C3000531 + C3000531C3000531C3000531C4007D91D4000000000000000000000000000000 + 000000000000000000000000000000000000394F9E00264FD8002C53D8002C53 + D7000D31A8006884E100254DD400214AD2002049D2001D45CC001639AF000826 + 8B004E67BA001034AC00113AC5000F3AC8000C37C7000A35C50004279C000632 + C3000531C200042FC0004262CF0033478F00000000006580D700637ED6006F88 + DA00647FD700607BD6005A76D4004E6CD1004766CF005C77D2005871C5000000 + 000000000000000000000000000000000000CCD6F700455EB10044599E003255 + CA00385ACB008392C20000000000000000000000000098ACF00094ABF60096AC + F700829DF5007894F4006D8CF3003A405600333333003F4454002C51CE002146 + C400163BBA000328A30003269B00687CBE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000606A8F008295D800113CCB00153FCC00153F + CC00153FCC00153FCC00123DCC008094D7000000000000000000000000000000 + 0000000000000000000000000000000000003D55A800375EE2004166E3004267 + E3001338B0007691E9003B61E000375DDE00355CDD00345BDD003057DB000F33 + AB006C87E4002951D800274FD700264ED6001834940017349400072074001330 + 9200122F91001338B3004869D800384E9800000000006C86E0007891E300889E + E6007E96E4007992E300748EE2006984E0006480DE005977DC006580D8005269 + B900485EA600445BAA004359A600455BA5005570CC004F6FDA003459D5002F55 + D40095A5D9004960AE000000000000000000000000008EA4EE00859FF50089A2 + F600859FF5007E99F5007592F4006283F000597AE9005072E1003E60D2003457 + C9002C4EC0001C3DAC003652AF007181BA000000000000000000000000000000 + 0000000000008282820080808000828282000000000000000000000000000000 + 0000000000000000000000000000657097008C9EE000365CDB003F64DC003F64 + DC003F64DC003F64DC00365CDB008A9DDF000000000000000000000000000000 + 0000000000000000000000000000000000004059AD003F66E7004B70E8004D71 + E900163BB3007E98ED00456AE5004368E4004166E3003F64E2003C62E1001237 + AF00748FE900345BDD003259DC003158DC00B6B6BA00BFBDBB00BDBBB900BAB8 + B600AEAEB200173494004C6DDC003A509D00000000006E89E5007E96E70094A8 + EB008BA1EA00869DE8008199E8007690E600718BE5006B86E3006683E3006B86 + E300607EE2005270D3005A76D5005A78DE004A6CDE003158D900264FD8006D88 + E2008090C500879CE1000000000000000000000000006E84D0008AA1EE0090A6 + F00091A7F0008FA5F0008CA3EF00879FED00849BE8008097E3007B91DA00788D + D400758ACF007083C5007283BE00576798000000000000000000000000000000 + 0000000000008080800040404000808080000000000000000000000000000000 + 00000000000000000000000000006973990091A4E300466AE1005475E4005475 + E4005475E4005475E400466AE1008FA1E1000000000000000000000000000000 + 000000000000000000000000000000000000425CB200486DEC004D6CD2003D55 + A600122C80005E6FA8003851A4004362CA004B70E800496EE700456AE600153A + B3007A95EC003F64E3003E64E3003C62E200D7D5D400CDCCCA00CBCAC800C7C5 + C300CECCCB001F3B99005071E0003D54A200000000006D89E7007C96EA0097AB + EE009DB0F00093A8EE008DA3ED00839BEC007D97EB007792E9006D89E8006381 + E7006482E700607FE6005E7DE6005072E3004065E1003D62E100335ADF00A8B6 + E400566BB80000000000000000000000000000000000718BE2005771C8005771 + C8005771C8005771C8005771C800556EC400516ABD004E66B600485EA7006D71 + 7D00717170005E616D003A4A83005068B8000000000000000000000000000000 + 0000000000008080800045454500808080000000000000000000000000000000 + 00000000000000000000000000006B769E0096A8E5005879E7006684E9006684 + E9006684E9006684E9005879E70094A5E4000000000000000000000000000000 + 0000000000000000000000000000000000004760B700587CF2005166AD00D7D5 + D400CBCAC800C9C7C600C7C5C300465DA9006283F2006082F1005C7EEF001B40 + BB008AA2F3005477ED005377ED005175EC004361C7004261C70014339B003D5C + C5003C5CC5004166E2005678E8004259AC00000000005F80EE00A0B3F500ACB9 + E700B9C6F100A5B7F500A0B3F5009DB1F40097ACF40092A9F400869FF200819B + F1007D97F100728FF0006C8AF0006786EF005B7DED005074EC007F99F0005C76 + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000CCCCCC008080800000000000000000000000000000000000000000000000 + 000000000000808080005050500080808000000000000000000000000000717F + AF00889FE90091A6EA009AACEB00A8B8ED00B0C0F4008BA3F20087A0F20087A0 + F20087A0F20087A0F200849EF200AFBFF4009DAEE90097AAE90090A4E8008E9A + C200616D9500CDD7F70000000000000000004861B8006082F2005E73BB00E4E5 + EA00ECECEB00EBEBEA00EAEAE9005269B4006D8CF3006B8AF3006888F3001E43 + BE0092A9F5006082F1005F81F1005C7EF000597CEF00577AEF001A3FBB005175 + ED005074EC004A6FEB00597BEB00455DB10000000000859FF400A6B6E8005E76 + C700768BD200BDCAF600A4B7F700A8BAF700A4B7F7009FB3F60094ABF6008EA6 + F50088A1F500809BF5007A96F4007592F4006384F300839DF400B3C1ED00D3DB + F900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D1D1D1008080800000000000000000000000000000000000000000000000 + 000000000000808080005555550080808000000000000000000000000000BAC6 + F40093A2D8008BA4F5007693F30092A9F500A0B4F6009AAFF60098AEF60098AE + F60098AEF60098AEF60097ADF6009FB3F6007E99F4007592F3008CA4F5006571 + 9900869CE0000000000000000000000000004962B9006888F3007D97F0007086 + D000213FA3008D9DD2006A81CF007893F0007894F4007794F4007391F4002146 + BE009BB0F7006C8BF3006A8AF3006888F3006586F3006384F3001D42BE005D7F + F1005C7FF1005478F0005C7EEF004761B70000000000A3B3E8006078C800B4C1 + F2005974CF007D91D600BBC9F800A2B6F800AEBFF800ACBDF800A1B5F7009CB1 + F70097ADF7008BA4F600859FF5007E99F50097ADF700B6C2EE006A80CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D5D5D5008080800000000000000000000000000000000000000000000000 + 0000000000008A8A8A0059595900808080000000000000000000000000000000 + 00007684B5009BA9D90099AFF7009AAFF700A6B9F800A7B9F800A7B9F800A7B9 + F800A7B9F800A7B9F800A7B9F800A6B9F80087A1F50099AFF70092A0D100879C + E100000000000000000000000000000000004B65BC00708EF40089A2F60097AD + F70097ADF70095ACF70093AAF60090A8F6008EA6F6008CA5F60088A2F60087A1 + F500859FF500829CF500809BF5007F9AF5007B97F4007995F4007894F4007491 + F4006F8DF3006283F2006987ED004B65BC000000000000000000000000000000 + 00000000000000000000647EDA0096A8E300C1CEF800C3D0FA00B1C1F900A9BB + F800A5B8F800ABBDF800BAC9F900C1CCF400627BCE00BBC9F500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008080 + 8000D8D8D80084848400C6C6C600000000000000000000000000000000000000 + 0000C6C6C6009898980067676700868686000000000000000000000000000000 + 000000000000BAC6F4007683B400B3C3F900B2C2F900BDCBFA00C0CEFA00C0CE + FA00C0CEFA00C0CEFA00BDCBFA00B2C2F9009DA9D5006A76A000889CE2000000 + 0000000000000000000000000000000000004D66BF007995F400829CF50091A8 + F6009AAFF70099AFF70097ADF70096ACF70094ABF60092A9F6008FA7F6008DA5 + F6008BA4F60088A2F60086A0F500849EF500819BF5007F9AF5007C97F4007592 + F4006D8CF3005E80F2006C86E0004F6AC5000000000000000000000000000000 + 00000000000000000000000000005874CF00657DCD008497DB00B9C7F300C1CD + F600C0CDF600A7B6E700889AD900667FCC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009090 + 9000C3C3C3008E8E8E008A8A8A00000000000000000000000000000000000000 + 00008A8A8A00B5B5B5006E6E6E00969696000000000000000000000000000000 + 00000000000000000000BAC6F400A1AEDA00B2C2F900B6C6F900CBD6FB00CBD6 + FB00CBD6FB00C8D4FB00B8C7F900B2C2F9006C77A100889DE200000000000000 + 0000000000000000000000000000000000007990E200839CF0007E99F5007C97 + F400839EF500839EF500839EF500829CF500819BF5007F9AF5007C97F4007B97 + F4007A96F4007794F4007592F4007491F400718FF4006F8DF3006C8BF3006485 + F3005F81F2006485F3005C73C70091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F0006B85DE005771C8005771 + C8005771C800647EDA0093A8ED00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B0B0 + B000A6A6A600B0B0B0008B8B8B00868686000000000000000000000000008686 + 860092929200ACACAC0078787800BBBBBB000000000000000000000000000000 + 00000000000000000000000000007482B2009EABD900B4C4F900D1DBFB00D5DE + FC00D5DEFC00C5D1FA00B6C6F9009AA8D5008A9DE30000000000000000000000 + 000000000000000000000000000000000000000000007991E300506AC3005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C000506AC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D3D3D300D7D7D700DFDFDF00CECECE00AEAEAE009D9D9D0099999900C0C0 + C000C5C5C500B7B7B700D3D3D300000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC6F4007381B200C1CEFA00C1CE + FA00C1CEFA00A7B2D900717DA7008A9EE3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000080808000B3B3B300E1E1E100F3F3F300EFEFEF00E9E9E900CDCD + CD00A7A7A7008080800000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F300A6B1DA00B3C3 + F900B3C3F900737EA8008B9EE400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B0B0B0008A8A8A008080800080808000808080008A8A + 8A00B0B0B0000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007181B0009DAA + D8009CA9D7008B9FE40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED8F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C2C2 + C2003D4E860029355F0027335E0027335E0027335E0027335E0027335E002733 + 5E0027335E0027335E0027335E0027335E0029355F003D4E860098A7D800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000293973008C99C6008897C9004963B7001F3E + A60003269C001F3EA6004963B7006A7EC2008C99C60029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002C3C + 75003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55 + A4003D55A4003D55A4003D55A4003D55A4003D55A4003D55A40040518F00AFBD + EC00000000000000000000000000000000000000000000000000000000004053 + 93003F64DE002A54DF004368E5007D97ED0099ADF0009EB1F000849BE700768F + E2006984DB00506CCB004360C2003553B700213EA0003E57A900415187000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005871C0003D54A2002C4082005165A9004A65 + BD000328A3004661BC005165A9004A598E002C3C7A005871C000000000000000 + 000000000000000000000000000000000000D6D6D600384A880023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C0023315C0023315C0023315C0023315C0023315C002331 + 5C0023315C0023315C00C0C0C000CECECE000000000000000000465DAD004055 + 99001336AC001034AB001034AB001034AB001034AB001034AB001034AB001034 + AB001034AB001034AB001034AB001034AB001034AB001336AC002C4BB4003D54 + A300000000000000000000000000000000000000000000000000000000002B3D + 79001945D7001F42B5005466A300A7B7ED00A3B5F100AABAF2007781A4009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB3001B3898004A5EA1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000042528C00516B + C200042AAA00506AC40042528C008397DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000026356E005A6CAB00566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB000566AB000566AB000566AB000566AB000566AB000566A + B000566AB000566AB00000000000000000000000000000000000324791003E59 + B400042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC001338B1002D40 + 8100000000000000000000000000000000000000000000000000000000002D3E + 7D000938D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034488D005771 + C600042EB9005771C60034488D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D4289005771CA00173F + C500042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC000042FC000042FC000042F + C000042FC0004F6DD30000000000000000000000000000000000364B95003F5C + BD00042DB800042DB800042DB8001037BB001037BB001037BB001037BB001037 + BB001037BB001037BB001037BB000D35BB00042DB800042DB8001037BB003246 + 8B00000000000000000000000000000000000000000000000000000000003143 + 84000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000374C93005873 + CB00042FC0005873CB00374C9300000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324793005873D0001842 + CF000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC000533CC000533CC000533CC000533CC000533CC000533CC000533 + CC000533CC005171DB0000000000000000000000000000000000384E9900405D + C200042FBF00042FBF00042FBF00405EC200405EC200405EC200405EC200405E + C200405EC200405EC200405EC2003859C800042FBF00042FBF00113AC2003549 + 9000000000000000000000000000000000000000000000000000000000003346 + 87000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A509A005974 + D0000431C7005974D0003A509A00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000364C9D00607CDA002851 + DC001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9001643D9001643D9001643D9001643D9001643D9001643D9001643 + D9001643D9005C7BE400000000000000000000000000000000003A509D00405F + C7000430C4000430C4000430C400374C9700374C9700374C9700374C9700374C + 9700374C9700374C9700374C9700405FC7000430C4000430C400103AC700374C + 9700000000000000000000000000000000000000000000000000000000003447 + 8B000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004057A7005B77 + DA000636D6005B77DA004057A700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003E57AF00748FEA004F74 + F000426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426AEF00426A + EF00426AEF007B97F400000000000000000000000000000000003F57A7004162 + D1000434D1000434D1000434D1003C54A1000000000000000000000000000000 + 000000000000000000003C54A1004162D1000434D1000434D100113ED3003C54 + A10000000000000000000000000000000000000000000000000000000000384D + 94000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000435BAE005F7D + E0000E3EDF005F7DE000435BAE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000405AB1007D97EB006384 + F300587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF200587CF200587CF200587CF200587CF200587CF200587CF200587C + F200587CF20089A2F600000000000000000000000000000000004058AC004567 + D6000E3DD8000E3DD8000C3BD8003F57A8000000000000000000000000000000 + 000000000000000000003F57A8004567D6000E3DD8000E3DD8001946DA003F57 + A800000000000000000000000000000000000000000000000000000000003A4F + 98000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000465FB4006381 + E5001747E7006381E500465FB400000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425BB300869DED007894 + F4006E8DF3006E8DF3006E8DF3006E8DF3006E8DF3006E8DF300637EDB00637E + DB00637EDB00637EDB006C8AF0006E8DF3006E8DF3006E8DF3006E8DF3006E8D + F3006E8DF30097ADF70000000000000000000000000000000000435CAF004B6C + DB001E4BE1001D4AE0001947E000425AAD000000000000000000000000000000 + 00000000000000000000425AAD004A6CDB001E4BE1001E4BE1002853E200425A + AD00000000000000000000000000000000000000000000000000000000003C51 + 9C000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D50013319500495EA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004B65BC006B88 + EB002755EE006B88EB004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B519A00465898003A4D + 9000364A8E00364A8E00364A8E00364A8E00364A8E00364A8E00C7CCDD009BA0 + AF00999EAD005967980035488A00364A8E00364A8E00364A8E00364A8E00364A + 8E00364A8E00465898003D55A5000000000000000000000000004862B9005576 + E5003D66EE003D66EE00325DED004761B9000000000000000000000000000000 + 000000000000000000004761B9005475E5003D66EE003D66EE00436AEE004761 + B900000000000000000000000000000000000000000000000000000000004157 + A3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C66BD006E8B + EB00305CEE006E8BEB004C66BD00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006179CC005A75D1005A75 + D1005A75D1005A75D1005A75D1005A75D1005A75D1005A75D100D0D7ED00D0D6 + E700CED4E5006A7FC7005873CD005A75D1005A75D1005A75D1005A75D1005A75 + D1005A75D1005A75D1004B5FA5000000000000000000000000004A64BB005A7B + E8004D72F1004D72F1004068F0004A64BB000000000000000000000000000000 + 000000000000000000004A64BB00597AE8004D72F1004E73F1005176F1004A64 + BB0000000000000000000000000000000000000000000000000000000000435A + A7000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67BE00728E + EC003862EF00728EEC004D67BE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000738CE000466AE2003B61 + E0003B61E0003B61E0003B61E0003B61E0003B61E0003B61E0004665CE005773 + D3005773D3003557C9003A5FDC003B61E0003B61E0003B61E0003B61E0003B61 + E0003B61E0003B61E000566AB3000000000000000000000000004B65BC005F7F + E8005C7FF2005C7FF2004D72F1004B65BC000000000000000000000000000000 + 000000000000000000004B65BC005D7DE8005C7FF2005D80F2005F81F2004B65 + BC0000000000000000000000000000000000000000000000000000000000455C + AB000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007A92 + E300C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005069C0007B95 + ED004A70F0007B95ED005069C000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B8C6F6009BB0F70093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AAF60093AA + F60093AAF60093AAF6006C80C9000000000000000000000000004D67BE006A87 + E9007C97F4007C97F4006686F3004D67BE0000000000000000005A74CB004D67 + BE004D67BE004D67BE004D67BE00728DEA007D98F5007D98F5007F9AF5004D67 + BE004D67BE004D67BE004D67BE005A74CB000000000000000000000000004961 + B3000535D4001E378A004066E500CED6F000A3B5F100AABAF2008BA1E9007E95 + E200C7CFEB004D6ACB002F4079002D4CB400A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1007D97 + EE005176F1007D97ED00516AC100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D7DFF900D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DEFC00D5DE + FC00D5DEFC00D5DEFC007387CC000000000000000000000000004E68BF006E8A + EA008BA4F6008AA3F6007391F4004E68BF0000000000000000004E68C100607A + D0004E71E7006382E900738EEA0089A2F4008CA5F6008CA5F6008CA5F600738D + EA006483E9005A7BE800607AD0004E68C1000000000000000000000000004C65 + B8000535D4001E378A004864C100CED6F000A3B5F100AABAF2007E8EC40090A0 + D700C7CFEB004D6ACB002F407900384F9D00A9B3D500133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000526BC200809A + EE005A7DF200809AEE00526BC200000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007185CC007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE007589CE007589CE007589CE007589CE007589CE007589 + CE007589CE007589CE005870C6000000000000000000000000004F69C000738E + EB009BB0F7009AAFF700809BF5004F69C0000000000000000000BFCDF600516A + C3005A78E0006384F300819BF50098AEF7009CB1F7009CB1F7009CB1F700829D + F5006686F3006183F200516AC300BFCDF6000000000000000000000000004E66 + BC000535D4001F42B5005466A300A7B7ED00A3B5F100AABAF2007882A5009AA3 + C30096A7E0004D6ACB0038509E004B5A8C00576CB300133195004A5FA5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FAFE9005671CC0000000000000000000000000000000000546EC50088A0 + EF006B8AF30088A0EF00546EC500000000000000000000000000000000005A72 + C600A1B1E900546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000C7C5C500AFADAC00898685007D7A78007D7A + 78007D7A78007D7A78007D7A7800AFADAC008F8D8B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000516BC2007B95 + EC00BAC9FA00B9C8F90097ADF700516BC2000000000000000000000000000000 + 000092A5EC00738EEB0098AEF700B4C4F900BBCAFA00BBCAFA00BAC9FA0097AD + F7007892EC005A73C6000000000000000000000000000000000000000000536D + C4000425940015349B002C469F005B6CA500727FA9007682A9006070A2005666 + 9F004B5D990035498D002A3F86001F357E00091F6A000D226800344374000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008AA1EC006B81CD00AFBEF300000000000000000000000000556FC6008BA2 + F0007290F4008BA2F000556FC600000000000000000000000000000000007589 + D200879FEF00556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000E0DEDE00D7D5D500D3D1D000D3D1D000D3D1 + D000D3D1D000D3D1D000D3D1D000D5D3D2009C9A990000000000000000000000 + 0000000000000000000000000000000000000000000000000000526CC3007A95 + EC00C4D1FA00C3D0FA009CB1F700526CC3000000000000000000000000000000 + 0000000000006179CB00809AEE00ABBDF800C9D5FB00C9D5FB00C1CEFA007B96 + EE006179CB007991E20000000000000000000000000033437C0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D0027376D0027376D0027376D0027376D0027376D0027376D0027376D002737 + 6D00374780000000000000000000000000000000000000000000000000000000 + 00007993EE00748EE5005870C8000000000000000000000000005670C7008FA6 + F1007A96F4008FA6F1005670C70000000000000000000000000093A7ED007791 + E7007C96EE005E79D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000DEDDDC00E4E3E200E4E3E200E4E3E200E4E3 + E200E4E3E200E4E3E200E4E3E200E4E3E2009A97960000000000000000000000 + 0000000000000000000000000000000000000000000000000000536DC600738E + E900AFC0F900B0C0F9008FA7F600536DC4000000000000000000000000000000 + 0000000000006883DC00637BCD00869FF200BAC9FA00BAC9FA00A7B9F8006179 + CC006883DC00000000000000000000000000000000002E3F7B004662BF004F6C + CD005F7DE3006685ED006988F1006382EB005F7FE8005B7BE4005474DD005070 + D9004C6CD5004564CC004463CA004766CC004D6BD100506ED400516FD500536F + CC00364A91000000000000000000000000000000000000000000000000000000 + 0000819AEB006183F2005579F100486DE8004469E8004469E8005174E9006585 + F1007894F4006484F1005074E900466BE8004469E8004A6EE8004E73EF006586 + F3007992E500607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CED8F7005770 + C8006D8AEB006D8AEB006A83DA00C1CDF6000000000000000000000000000000 + 00000000000000000000000000005973CF007390F2007592F2006E86D6000000 + 000000000000000000000000000000000000000000003E539B00566EBF004463 + CA005B7AE2007490EE007E99F3006987EC005D7DE7005273E2003B60D8002F54 + D200244ACB000C35BE000831BA001239BE00254AC6002B50C9003256CD005D77 + CE004458A0000000000000000000000000000000000000000000000000000000 + 000095A8E600A8B9F300AABBF300A5B7F300A4B6F300A4B6F300A9B9F300AFBF + F500B1C1F500AEBEF500A8B9F300A5B7F300A4B6F300A6B8F300AABAF300A8B9 + F30095A8E600607AD70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005670C7005670C700647ED900000000000000000000000000000000000000 + 0000000000000000000000000000000000006580DC006681DD005D77CF000000 + 000000000000000000000000000000000000000000006079C700566CB6005D77 + CB006D87DD00748EE5007892E800708BE3006E88E1006A84DE00637DD8005E79 + D5005B76D200536DCA00516CC9005570CC005B75CE005E78D1005E78D100556B + B2006880D2000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C900879CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005972CA005972CA00C1CDF6000000 + 0000000000000000000000000000000000000000000000000000677FD1005068 + BC005068BC005068BC005068BC005068BC005068BC00485EA900485EA900485E + A900485EA9005068BC005068BC005068BC005068BC005068BC005068BC006E85 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000879BE00044589E004458 + 9E00475A9E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CBCBCB00C7C7C70095A4D9002B3A6A002B3A6A002B3A6A002B3A6A002B3A + 6A002B3A6A002B3A6A002B3A6A002B3A6A003040790095A4D900C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B2BFEE002D407D003758C6003758C6003758C6003758C6003758 + C6003758C6003758C6003758C6003758C6003C53A1002E407C00B1BFED000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DADADA00C7C7C700C0C0 + C000C0C0C000253566002A396E00AFBCE400C8C8C800D5D5D500DEDEDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E003E58AF003358D600042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB3000D34B9003358D6003E58AF00BAC6 + F200000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000032458D00DDE2 + F600DFE4F700DFE4F700E0E5F700E0E6F700E0E6F700E1E7F800E3E8F800E3E8 + F800E4E9F800E4E9F800E5EAF800E5EAF800E6EBF800E7EBF900E7EBF900E8EC + F900E9EDF900E9EDF90032458D00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F1002C3F7D003E58AE003F58AA00425287000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BAC7 + F2004059B200345AD9000D36BE00042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB7000D36BE00345AD9003348 + 9100BAC7F2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000035499400D8DF + F600C9D2F200C9D2F200CAD3F200CCD5F400CDD6F400CED7F400CFD7F400D0D8 + F400D0D8F400D2DAF500D3DBF500D4DBF500D6DDF500D6DDF500D7DEF500D9E0 + F600DAE0F600DBE1F70035499400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F1002E42 + 81004A5D9D000F309D000F2F9A003F58AA003044890000000000000000000000 + 0000000000000000000000000000000000000000000000000000BCC8F300354A + 95003359DA000D37C200042EBC00042EBC00042EBC00042EBC00042EBC00042E + BC00042EBC00042EBC00042EBC00042EBC00042EBC00042EBC000D37C200415B + B500354A9500BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000384E9A00D5DC + F600C3CEF300C4CFF300C4CFF300C5D0F300C5D0F300C6D0F300C8D2F400C9D3 + F400C9D3F400CBD4F400CCD5F400CCD5F400CED7F500CFD8F600D0D9F600D2DA + F600D2DAF600D3DBF600384E9A00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000304285004B5F + A1003F5AB70003269B00032698000F2F9A004453880031458A00000000000000 + 00000000000000000000000000000000000000000000384F9E00435DBA00335A + DE000431C5000431C5000431C5000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C5000431C5000431C5000D39 + CB00335ADE00435DBA00BDC9F400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003F56AA00D7DF + F9000537DD00C6D1F700C6D1F700C6D1F700C5D1F7000537DD00C5D1F700C4D0 + F700C4D0F700C4D0F700C4D0F700C3CFF7000537DD00C3CFF700C3CFF700C4D0 + F7000537DD00C4D0F7003F56AA00000000000000000000000000000000000000 + 000000000000000000000000000000000000BAC7F20035498F003E5BBE000F33 + AB000429A50003279F0003279D0003269B000F2F9A003F58AA00445489000000 + 000000000000000000000000000000000000BDC9F400435FBD00335BE0000D3A + CE000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000D3ACE00335BE0003A52A100BDC9F4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AB000D8E0 + FA000538E500C7D3F900C7D3F900C7D3F900C6D2F9000538E500C6D2F900C6D2 + F900C6D2F900C6D2F900C6D2F900C5D1F9000538E500C5D1F900C4D0F800C4D0 + F8000538E500C4D0F800425AB000000000000000000000000000000000000000 + 0000000000000000000000000000BAC7F200374B93005165AD001035B100042A + AA00A0AEDE000328A20003279F0003279D00032698000F2F9A003F58AA003247 + 8B00000000000000000000000000000000004159AD00345CE3000D3BD3000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000433CF000433CF000433CF000433CF000433CF000433CF000433 + CF000433CF000D3BD3004561C0004159AD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455EB600DAE2 + FC00053AEB00CAD5FB00CAD5FB00C9D5FB00C9D5FB00053AEB00C8D4FB00C8D4 + FB00C8D4FB00C7D3FB00C7D3FB00C7D3FB00053AEB00C7D3FB00C6D2FA00C6D2 + FA00053AEB00C6D2FA00455EB600000000000000000000000000000000000000 + 0000000000000000000000000000394E9700546AB2004A67CA000C32B200052C + AD0099A6D000A0AEDD000328A20003279F0003269B00032698000F2F9A004555 + 890033478C000000000000000000000000004159A9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9000535D9000535D9000535D9000535D9000535D9000535 + D9000535D9000535D9003760E8004159A9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004861B900DEE5 + FC000F42EC00D0DAFB00D0DAFB00CFD9FB00CFD9FB000F42EC00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB000F42EC00CCD7FB00CCD7FB00CCD7 + FB000F42EC00CBD6FB004861B900000000000000000000000000000000000000 + 000000000000BDC9F4003D54A0005C78D500395BCB002B4FC600A7B5E5001439 + B8000C32B200939FC600FFFFFF00A0AEDD0003279F0003279D0003269B000F2F + 9A003F58AA0046568A000000000000000000435BAF000537DD000537DD000434 + D200042CB100042CB100042EB9000537DD000537DD00042CB1000537DD000537 + DD000430C400042CB100042CB1000430C4000537DD00042CB1000537DD000537 + DD000537DD000537DD00365FE900435BAF0000000000364C97002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C76002B3C + 76002B3C76002B3C7600000000000000000000000000000000004963BA00DFE6 + FC001949ED00D3DCFB00D3DCFB00D3DCFB00D3DCFB001A4AED00D2DBFB00D2DB + FB00D2DBFB00D2DBFB00D2DBFB00D1DBFB001A4AED00D1DBFB00D1DBFB00D0DA + FB001A4AED00CFD9FB004963BA00000000000000000000000000000000000000 + 0000BDC9F4003F57A3005F76C0004767D2003A5CCD003255C900FFFFFF00A7B5 + E5001439B80004269800939FC600FFFFFF000328A20003279F0003279D000326 + 98000F2F9A003F58AA0033488D0000000000455EB300093BE300093BE2003B5A + C000FFFFFF00FBFBFB00BCC3DD00093BE200093BE200F2F2F200093BE2000835 + CC007F90CB00FFFFFF00F5F5F5007F90CB00093BE200F2F2F200093BE200093B + E200093BE200093BE2003861EB00455EB300000000003F559E004E6CD000274D + CD002B50CD002B50CD002B50CD002C51CD002C51CD002C51CD002C51CD002C51 + CD002C51CD002C51CD002C51CD002C51CD002C51CD002B50CD002B50CD002A4F + CD00274DCD004E6CD000000000000000000000000000000000004A64BB00E2E8 + FD002251ED00D7DFFC00D6DFFC00D6DFFC00D6DFFC002453EE00D6DFFC00D6DF + FC00D5DEFC00D5DEFC00D5DEFC00D5DEFC002453EE00D4DDFC00D4DDFC00D4DD + FC002352ED00D2DBFB004A64BB00000000000000000000000000000000000000 + 00004259AA006379C4006883DF004A6AD5004364D2003B5DCD00A5B0D300FFFF + FF00A7B5E5000C32B20004269800939FC600A0AEDD000328A20003279F000326 + 9B00032698000F2F9A0046568B003A4F99004A64BB001949ED001B4BED001B4B + ED001B4BED003761EF00C4D0F9001B4BED001B4BED00FFFFFF001B4BED00C2C9 + E2007F9AF5001B4BED001B4BED00708EF4001B4BED00F5F5F5004F6CCE003A5A + C3001741CF001B4BED004068F0004A64BB00000000005A75D1005771C8006472 + A8006A80CA005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8007684 + B4006472A8005771C800000000000000000000000000000000004D66BE00E5EA + FD003761EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003862EF003862EF003862EF003862 + EF003761EF00D8E0FC004D66BE00000000000000000000000000BECCF500465E + B2007590E7006D88E5006985E200BDC7E700FFFFFF00B9C5EE003B5DCD003250 + B600A5B0D300A7B5E5001439B8000C32B200939FC600FFFFFF00A0AEDD000327 + 9F000F31A100405AB000364B9300000000004B65BD002050ED002352ED00315D + EF00E3E9FD00FFFFFF00C8D4FB002352ED002352ED00FFFFFF002352ED00FBFB + FB005A7DF2002352ED002352ED005A7DF2002352ED00FFFFFF00C9D5FB00EDF0 + FA0092A0D0002352ED00446BF0004B65BD000000000000000000000000005A74 + C7002247C100042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF00042FBF004A60 + AA005A74C70000000000000000000000000000000000000000004E68BF00E6EC + FD004169F000E1E7FD00E1E7FD00E1E7FD00E1E7FD00436BF000E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00436BF000DEE5FC00DEE5FC00DEE5 + FC004169F000DBE2FC004E68BF000000000000000000BECCF5004961B7006D84 + D0007892E9007892E800728CE600617BCF00BAC3E100FFFFFF004364D2003B5D + CD003250B600FFFFFF00A7B5E5001439B80004269800939FC60099A5CE000F32 + A700415BB5004B5B950000000000000000004C66BD002957EE002C59EE00BCCA + FA007D98F500486FF0002C59EE002C59EE002C59EE00FFFFFF002C59EE00D8E0 + FC0088A2F6002C59EE002C59EE007B97F4002C59EE00FFFFFF002C59EE00476E + F000F8F8F8002C59EE00486FF0004C66BD000000000000000000000000007D93 + E0003457CD000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA004B61 + AF007D93E00000000000000000000000000000000000000000004F69C000E7EC + FD004B71F100E4E9FD00E4E9FD00E4E9FD00E4E9FD004D72F100E3E9FD00E3E9 + FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD004D72F100E2E8FD00E2E8FD00E1E7 + FD004B71F100DEE5FC004F69C00000000000000000004B67C0006A83D30089A1 + F000889FED00819AEB007993E8006A85E200617BCF00BAC3E100B9C5EE004364 + D2003B5DCD00A5B0D300FFFFFF00A7B5E5000C32B2000426980003259500415C + B9004C5E9A003B519B0000000000000000004E68BF003963EF003E67F0006384 + F300FFFFFF00FFFFFF00CFD9FB00FFFFFF00FFFFFF00FFFFFF00FFFFFF003E67 + F000ACBDF800FFFFFF00FFFFFF00ACBDF8003E67F000FFFFFF00FFFFFF00F2F5 + FE009FB3F7003E67F0004F74F1004E68BF000000000000000000000000000000 + 00005E7BDD00234FE100234FE100234FE100234FE100234FE100234FE100234F + E100234FE100234FE100234FE100234FE100234FE100234FE100224EE0004E64 + B500000000000000000000000000000000000000000000000000526CC300EBF0 + FD005D80F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2006183F2006183F2006183F2006183F2006183F2006183F2006183F2006183 + F2005E80F200E4E9FD00526CC30000000000000000004C66BD00728FF20095AB + F30099AEF20091A7F0008AA1EE007993E800728CE6006A85E200BAC3E100FFFF + FF00B9C5EE003B5DCD003250B600A5B0D3001B40BC001B40B9004562C1003E56 + A200000000000000000000000000000000004F69C0003F68F000476EF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000486FF000486FF000486FF000486FF000486FF000486FF000486F + F000486FF000476EF0005075F1004F69C0000000000000000000000000000000 + 00006984E1003E66EE003862ED003B64ED003B64ED003B64ED003B64ED003B64 + ED003B64ED003B64ED003B64ED003B64ED003B64ED003862ED003E66EE004F68 + C300000000000000000000000000000000000000000000000000536DC400ECF0 + FE00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EBF0FD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E6EBFD00536DC40000000000000000004D67BF007693F300A1B4 + F600A1B4F40099AEF20091A7F000819AEB007993E800728CE600617BCF00BAC3 + E100FFFFFF004364D2003B5DCD003250B600274BC2004A67C7005366A8000000 + 000000000000000000000000000000000000506AC100466DF0004E73F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1004E73F1004F74F100566FC3000000000000000000000000000000 + 00006781DA005378F100496FF0005176F1005176F1005176F1005176F1005176 + F1005176F1005176F1005176F1005176F1005075F100496FF0005378F1005975 + D100000000000000000000000000000000000000000000000000546EC500EDF1 + FE00EDF1FE00EEF2FE00EEF2FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0FE00ECF0 + FE00EAEFFD00E7ECFD00546EC50000000000000000004E68C0007A96F400A9BB + F700A3B4F1006078C7004B63B600506BC6007C95E7007993E8006A85E200617B + CF00BAC3E100B9C5EE004364D2003A5CCD00516DCD00566AAB00445AAA000000 + 000000000000000000000000000000000000BFCDF6008499E0006686F3005A7D + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006283 + F2006283F2006283F2006283F2006283F2006283F2006283F2006283F2006082 + F2005A7DF2006686F300526CC500BFCDF6000000000000000000000000000000 + 0000647AC900728FF100577BF2005C7FF2005E80F2005F81F2006082F2006082 + F2006082F2006082F2005F81F2005E80F200567AF200587CF200728FF1009FB1 + F0000000000000000000000000000000000000000000000000005770C700F0F3 + FE007B97F40087A1F5008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3F60087A1 + F5007A96F400EBF0FD005770C7000000000000000000506AC1007A96F400B1C1 + F900506AC100D2DBF80000000000A9BAF0004B63B6008AA1EE007993E800728C + E6006A85E2005771CB004B6BD7005D79D7004960B30000000000000000000000 + 00000000000000000000000000000000000000000000536DC60090A2E200718F + F4006787F3006B8AF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3005D80 + F200718FF40090A2E200BFCDF600000000000000000000000000000000000000 + 00005A75D1006E84D2007690EA007D97EB007F98EB007F98EB008099EB008099 + EB008099EB008099EB007F98EB007F98EB007A94EA007790EA006E84D2000000 + 00000000000000000000000000000000000000000000000000005871C800F0F3 + FE00F1F4FE00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE00F1F4FE00F0F3 + FE00EEF2FE00EBF0FD005871C8000000000000000000516BC2006F8DF300A9BB + F800516BC200D3DBF90000000000BFCDF5004D66BA007F99ED00819AEB007993 + E800728CE6005776DD00637FDC005F73BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600536EC70091A4 + E2006384F300708EF4007592F4007592F4007592F4007592F4007592F4007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007290F4007491 + F40091A4E200536EC70000000000000000000000000000000000000000000000 + 000000000000647EDB005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C900647EDB000000 + 00000000000000000000000000000000000000000000000000005872C900F1F4 + FD00F4F6FD00F5F7FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F6F8FD00F5F7 + FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F5F7FD00F4F6FD00F4F6 + FD00F3F6FD00F1F4FD005872C9000000000000000000546FCB006680D90099AF + F7006E84D1005E78D100D3DBF900556FCB00647BCA0099AEF2008AA1EE00819A + EB00748FE7006984E0006277BF004D65BA000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60099A9E3008CA5F6007894F40086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F500839EF5007894F40093AAF6005670 + C800C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009EB3F700B6C6F900C3D0FA00B7C6F800B1C1F800A8BAF50092A8F100809A + EE00758FE900526BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C9009AAAE300ABBDF8008AA3F6008EA6F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008EA6F6007E99F500ABBDF8009DACE500C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600748DDD0099AFF700ACBDF800B5C5F900AFBFF800A6B8F600869FF100809A + EE006B81CC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF6005771C9009DACE50090A8F60099AFF7009DB2F7009FB3F7009FB3 + F7009FB3F7009EB3F7009DB2F70098AEF700ABBDF8009DACE5005771C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8006982DC007C96ED0089A0EE00869EEE00839BED00738EE9006C83 + D0005671CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005874CF00C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000DBDBDB00D1D1D100C9C9C900C7C7 + C700C7C7C700C5C5C500C5C5C500C5C5C50029386D0030417800C5C5C500D3D3 + D300000000000000000000000000000000000000000000000000000000000000 + 00007789C8002C375F0033458000C3C3C300C5C5C500D1D1D100DCDCDC000000 + 00000000000000000000DADADA00D5D5D500C3C3C300B1BCE500394B89007587 + C600DADADA000000000000000000000000000000000000000000000000000000 + 000000000000000000006E85CF00273773002534690025346900364D96006E85 + CF00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387100032698000326 + 98004E66B6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007F92D80029396C008494C80025346900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CED7F60031417A00536BBC002D3D7800647BC90000000000000000000000 + 0000000000000000000000000000000000002D3D780041569B004B66BE00B7C5 + F100000000000000000000000000000000000000000000000000000000000000 + 00007287D100293B7900233576000C2A8F000C2A8F000C2A8F00172F82002335 + 7600293B79000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3D79000328A2000328 + A2004F69BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008093D900324273005466A5008393C80027366B00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000354C98003C529C00425DB400384984003D54A200000000000000 + 00000000000000000000000000003D54A200425CB0002245B8003E55A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293B7B00143090000328A1001638A8001638A8001638A8000328A1000328 + A100143090004F67B60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F418200042BAD00042B + AD00506BC6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036457A005568AA00324DAA008494CC00293A7300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007389D500495991001338B2003A59C0004054960094A6E5000000 + 000000000000A5B6EC002F42860040549600163BB400092EA9004B5B95000000 + 0000000000000000000000000000000000000000000000000000788DD9002F44 + 8D002045BD004B68CA00566FBF003E509000374D9A00374D9A004D609F00566F + BF002045BD002648B70044569700788DD9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000364B94005C76CD00183DB800183DB800183DB8000D37C3000D37 + C3000D37C300183DB800183DB800183DB800364B940000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003850 + 9D00455690002042B300042AA900042AA9008496D4002F428100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003B54A200042CB100042CB100042CB100435EBE003E51 + 9500344890004660BD002146C200072EB300042CB1004961AE00384D98000000 + 0000000000000000000000000000000000000000000000000000374D98001E3F + AD00506ED3005C75C60042559800D0D8F70000000000000000006B83D3004255 + 98005C75C6000B35C000546EC1003A509A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A509B005B79DD001540CF001540CF001540CF001540CF001540 + CF001540CF001540CF001540CF001540CF003A509B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3005365 + A400516CC700042CB200042CB200042CB2008497D90033468700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000788ED900163CBB00062FB700062FB700133ABE003C5C + C900465EAF00163DBF00062FB700062FB7001138BA005062A2005E76C9000000 + 000000000000000000000000000000000000000000007B92DD00354EA200113C + CC005F78CF004559A100889DE30000000000000000000000000000000000889D + E3004559A100133ECC003156D3005165AC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E54A5006782DD006A84DD006A84DD006A84DD001D49DA001D49 + DA00617FE5006A84DD006A84DD006A84DD003E54A50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000CED7F6006179C7004258A50033488F005568AA004D6A + CC001239BE00042EBB00042EBB00042EBB008499DD00364A9000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D0D8F7004762C1001139BE001139BE001139BE00143B + C0002E53CD001139BE001139BE001139BE003959C30040539600BCC8F3000000 + 00000000000000000000000000000000000000000000435AB000254DD4003059 + E2004D63B000D1DAF80000000000000000000000000000000000000000000000 + 0000D1DAF800355BDC001E4BE0006682E0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197E500455FB6002D59ED002D59 + ED00587BF1008197E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004C5F9F005971BF004A66C5002447BA001237B4007288D2004F6FDB000432 + CD000432CD000432CD000432CD000432CD00849BE6003D53A0007087D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005669AA003458D0002B50CE002B50CE002B50 + CE002B50CE002B50CE002B50CE002B50CE00596DAF00647CD000000000000000 + 00000000000000000000000000000000000000000000465EB400355BE0003660 + EB004A64BE000000000000000000000000000000000000000000000000000000 + 000000000000355CE1002250E9006986E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A62BC00526AC4004D6DD5003560EF003560 + EF003560EF00526AC4004A62BC008198E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C9001C43C500042FC000042FC000042FC000728ADB005273E2000D3C + D7000E3DD8000E3DD8000E3DD8000E3DD800869DEB004058A800576EB8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000465BA500395BCB00385CD400385CD400385C + D400385CD400385CD400385CD400385CD4004B60A7004D66BC00D1DAF7000000 + 000000000000000000000000000000000000000000004962B9004167E700305C + EE004D68C2000000000000000000000000000000000000000000000000000000 + 0000000000003059E2003661EF006D8AEB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005C76D2005171DE003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF005171DE00526BC1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005071DE000433CF000433CF000433CF000433CF00728DE4005779E9001A48 + E1001C4AE1001C4AE1001C4AE1001C4AE10089A1EF00445DB0004E71E500738C + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000ABBBF0004159AB006580DD004B6DDD004669DC004669DC004669 + DC004669DC004669DC004669DC004669DC006480DE00576EB8004159AB000000 + 000000000000000000000000000000000000000000005772CE006C85DE003C65 + EF006A80CD007990E20000000000000000000000000000000000000000000000 + 00007990E2003F68F0006989F300748CDF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE6006279C7006A88EE004D72F1005879E5005D76CA004E68C3004E68 + C3004F68BD005879E5004D72F1004D72F1006279C700839AE600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006384F300456CF0004C72F1004C72F100466DF00088A1F5005E80F200335E + EF003862EF003862EF003862EF003862EF008EA6F6004A64BC00093DEB00516A + BE0000000000000000000000000000000000000000000000000000000000BFCC + F5005A70BB00728BDF006D8AEA006180E7006180E7006180E7006180E7006180 + E7006180E7006180E7006180E7006180E7006180E700607FE7006B88EA005E73 + BD004A63BA00ABBBF100000000000000000000000000839AE600667DCC00577B + F2005B7BE800576EC10091A4EB000000000000000000000000000000000091A4 + EB00516ABF00597CF2007E99F500677ECC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005169C2008A9FE9005378F100617FE500536CBF007990E200000000000000 + 0000D2DBF800536CBF00617FE5005378F1008A9FE9005169C200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F8DF3006787F3006F8DF3006F8DF3006888F30095ACF7006283F2004068 + F000466DF000466DF000466DF000466DF00091A8F6004B65BD00093DEB004B65 + BD00000000000000000000000000000000000000000000000000768EDF004C64 + B7007D97EB007590ED006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB006D8AEB007C96 + ED006F85D0004C64B70000000000000000000000000000000000526BC3008199 + E8005075F1005475E200526BC000D3DBF80000000000000000007990E300526B + C0005878E3007290F4008AA0E900526BC30000000000000000004E67C1005C74 + C4004E67C1000000000000000000000000000000000000000000000000000000 + 00007288D000718FF4005B7EF200566EC10091A4EB0000000000000000000000 + 00000000000091A4EB00566EC1006684E700718FF4007288D000839AE7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00007995F400839EF50090A8F60090A8F600859FF500A0B4F7006586F3004D72 + F1005378F1005378F1005378F1005378F10094ABF6004C66BE002553EE004F6A + C50000000000000000000000000000000000000000005672CE00586FBE00738C + DE007D97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97 + F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007C97F1007D97 + F1007E99F1007790E200526DC700BFCCF5000000000000000000000000006881 + DA00869FF1006D8CF3005F81F2005679EB004C70E8004D71E7005C7FF2006D8C + F300708EF4006586F300577BF2004E6CD500BFCDF600000000005069C1006384 + F3005069C1000000000000000000000000000000000000000000000000000000 + 00009EB1F2006B8AF300738FEE00D3DBF8000000000000000000000000000000 + 00000000000000000000D3DBF800566EC2006B8AF3009EB1F2004F69C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000089A0EC009FB3F700AFC0F900B8C7F900A6B9F800ACBDF8006C8BF3006485 + F3006F8DF3006F8DF3006F8DF3006F8DF30099AFF7004E68C000667DCB000000 + 00000000000000000000000000000000000000000000516BC200516BC200516B + C200516BC200516BC200516BC200516BC200516BC200516BC20094ABF60095AC + F70095ACF70093AAF600879DE600516BC200516BC200516BC200516BC200516B + C200516BC200516BC200516BC2005671CD000000000000000000000000000000 + 0000657CCC008FA3EA00839EF5006283F2005277F1005C7FF20086A0F50097AD + F700A1B3F1006D8CF3006C8BF3005479F100516BC400BFCDF600516BC2006586 + F300516BC2000000000000000000000000000000000000000000000000000000 + 0000A4B6F3007391F4007C97ED00000000000000000000000000000000000000 + 0000000000000000000000000000526DC8007391F400A4B6F3005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000768CD400B1C0F200B5C5F900B4C4F9009EB3F700A7B9F800718FF4006D8C + F3007C97F4007D98F5007D98F5007D98F5009CB1F7004F69C1007991E3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007189E000A3B6F800A2B6 + F800A2B6F800A0B4F7007A8FD6006882DC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000849AE800576FC7007085D100859DEF00849CEF00849CEF00859AE4007389 + D3005770C500839EF5007592F4006F8DF3005270D600526CC500526CC3006A8A + F300526CC3000000000000000000000000000000000000000000000000000000 + 0000A9BAF300809BF500839CEF00000000000000000000000000000000000000 + 0000000000000000000000000000536EC900809BF500A9BAF300516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006881DB00506AC200657BC9008196DB008FA2E5008EA5F0008FA7F6007794 + F400859FF5008AA3F6008AA3F6008AA3F6009FB3F700506AC200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600AFBFF500B0C0 + F900B0C0F900ACBDF6006078C9009FB1F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC700768EDE0087A1F500829DF5007290F4006A83DB007C97 + F400556EC5000000000000000000000000000000000000000000000000000000 + 0000A5B5EA00A2B6F8008AA3F6007A92E4000000000000000000000000000000 + 000000000000000000007A92E4007D90D600A2B6F800A5B5EA005C77D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005871CF008A9C + DC00A8B9F6009BB0F700A4B7F800A5B8F800A3B6F800536DC400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007F94D800C4D1 + FA00C9D5FB008DA0DF006983DD00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF600566FC7007A91DF008DA5F6008DA5F60086A0F500839E + F500566FC6000000000000000000000000000000000000000000000000000000 + 00008597D800B3C3F90097ADF700637ACA0092A7EC0000000000000000000000 + 00000000000092A7EC00637ACA0096AAEE00B3C3F9008597D800849BE8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + CF00758BD20097ADF70097ADF700A0B4F700A1B5F700546EC500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DCD00BCCA + F700CDD8FB006D84CF009FB1F000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005E79 + D6005771C8005771C8005771C8005771C80095ACF70095ACF70095ACF70086A0 + F5005771C8000000000000000000000000000000000000000000000000000000 + 00005B74C900B9C6F200B2C2F9009FB1EF00657BCB007C92E500000000000000 + 0000D3DBF900657BCB009FB1EF009AAFF700B9C6F2005B74C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006883DC00A7B9F40098AEF700849EF5009EB3F700556FC600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C900A9B8 + EC00CAD5FB005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006E8BED007C96EE007F99EF00859EF00098ADF2009AAEF20097ACF2007C96 + EE005872C9000000000000000000000000000000000000000000000000000000 + 0000000000006B84DE008093D600BCCAFA00ACBDF800A7B9F800AFBFF500AFBF + F500ADBDF600ACBDF800BCCAFA00C5D1F9006B84DE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A7ED00677ECD009DAFEE0094ABF6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009FB1F000667D + CD009AAFF40093A8ED0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005B76D2000000000000000000000000000000000000000000000000000000 + 000000000000000000006B85DE00C2CEF400C2CFFA00B7C7F900A9BBF800A9BB + F800B0C0F900C2CFFA00C2CEF400798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000093A8ED005D76CA008DA5F6005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9008297E1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E76CC008D9EDB00B5C2ED00C6D2F800C6D2 + F800C6D2F8008D9EDB005E76CC00879CE9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6008FA2E5005771C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000647E + DA00667DCD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D6D6D600CDCDCD00C7C7C7007487C6002938 + 6D0025346A00C5C5C500C7C7C700CBCBCB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C70045599A0026336000B2BDE500C7C7C700D2D2D200000000000000 + 0000000000000000000000000000DADADA00C2C2C200475C9D002633620096A6 + DB000000000000000000000000000000000000000000000000005E72B6002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B00687BBC00CFCF + CF0000000000000000000000000000000000000000000000000000000000D3D3 + D300C0C0C00025346D0027315900273159002731590027315900273159002731 + 590027315900273159002731590027315900273159002E3D7300C0C0C000CBCB + CB00DEDEDE000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DFE5F90032406C005261 + 970046568B00455AA500DFE5F900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029387000364FA0008697D0002C3E8000758AD60000000000000000000000 + 0000000000000000000000000000000000002E4286004359A5008596D0002739 + 78007185D000000000000000000000000000000000004C64B4003F59AE002C52 + D2000D35BA000E36BB000E36BB000E36BB000E36BB000E36BB000E36BB000E36 + BB000E36BB000D35BA000C34BA00284ECE00142A74002240A6003C54A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000293973004E67B80003269B0003269B0003269B0003269B000326 + 9B0003269B0003269B0003269B0003269B004E67B80029397300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F100293C7A0045548D0017369D001C3A + 9E00032083003F57A70043528600283873000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000263A7E007082BE00505F92003A53A60033478E0000000000000000000000 + 000000000000000000000000000000000000294091007789C700505F94002942 + 96003B529E0000000000000000000000000000000000354C97004A68CE003358 + D600355AD200365AD200365AD200365AD200365AD200365AD200365AD200365A + D200365AD2003358D2002C52D1004166DF000A2479001335A500425FC0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C77004E68BC0003279F0003279F0003279F0003218700021C + 700003228A0003279F0003279F0003279F004E68BC002B3C7700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334685006F7EB1003F5AB20003269B002946 + A900032288000F2F99003F58A90048599300B6C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000243E92006676A8005169BB007488CD002E459600576EC300000000000000 + 0000000000000000000000000000A4B3EB00526CBF005F6EA4005B72BF003A54 + A9002F407C00000000000000000000000000000000002E407F005271DE004166 + E2005374E3005677E4005777E4005777E4005777E4005777E4005777E4005777 + E4005777E4005072E3004267E0005275EA0003218700092EA9004160CA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002D3E7C004E68BF000328A4000328A4000328A40003238C00FFFF + FF0003238F000328A4000328A4000328A4004E68BF002D3E7C00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007483B4003D59B800072CA4000328A1002947 + AD000321870003269A00072999003751AA003244840000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C6FB200354A9100A3B3EB004258A100657ECF002F4CB000000000000000 + 00000000000000000000708ADA003953A6005668A70098AAE90000000000586D + B800374C9100000000000000000000000000000000003C54A30033468A003346 + 8A0033468A003A4C8B0030438400304384003043840030438400304384003043 + 84003043840030438400304384003043840003249100042DB500365BD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000031448500506BC700042BAE00042BAE00042BAE00042BAE00042B + AE00042BAE00042BAE00042BAE00042BAE00506BC70031448500000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006880D0006170A400173CB7001036B5001237B5000F34B1003D5B + BF0006258B00062BA7000429A3000328A000465FB0003D4D81006179C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006373AC00435BA8005A72C600647ED1004A63B7001F48D1007D93DE000000 + 000000000000D1DAF800455BAC00294EC700445CAD000000000098AAE9007485 + C100485FB2000000000000000000000000000000000000000000000000000000 + 0000364A8F003358D30003279F0003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F00042AA900042EBB00375DDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034468900506CCA00042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300506CCA0034468900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F200455796008496D300153BBC00183EBD00193EBC001F44BC004361 + C60008278E000D32AE000A2FAB00052AA6001F3FAA00485FAA00324279000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B5EA0007A8DCC004157A1004760B3003D5BBD003158DC004A62B800D2DB + F800000000005671CB00425EBF003058DE00465CA9006680D400435DB3006778 + B3008699DF000000000000000000000000000000000000000000000000000000 + 0000384D9500375DDE000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C200375DDE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000036498E004F6CCD00042DB800042DB800042DB800042DB800042D + B800042DB800042DB800042DB800042DB8004F6CCD0036498E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB2008B98C8004968D0001E44C4002147C6002146C500284CC4004866 + CC000B2B94001439B7001035B2000D32AE000429A500324FB2004D5E98000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF8004D64B2008596D3007E98EC00819BEF006D8BEE0098AAEA00536D + C4004F4E4E008699DD00728FF2006D8BF0007994EC008FA4EB008C9EDD008CA0 + E600000000000000000000000000000000000000000000000000000000000000 + 00003D54A000375EE3000433CE00829DF500829DF500829DF500829DF500829D + F500829DF500829DF500829DF500829DF5000433CE000433CE00375EE3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003A4F9700506ED4000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C200506ED4003A4F9700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000091A0D1004769D800234BD1003055D4003055D4002F54D3004062D4005371 + D7001132A0002146C5001D42C100193EBC001035B3000A2FAD002C4BB4003F55 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5005F79CD006E82C900788DD7008297DE00667DCC00BCC5 + E300D7D6D6005F75C3008095DA008A9EE4007689D1006278C300526BC1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004057A600375FE6000636D4000737D4000737D4000737D4000737D4000737 + D4000737D4000737D4000737D4000737D4000737D5000636D400375FE6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003C529C004F6ED7000431C7000431C7000431C7000431C7000431 + C7000431C7000431C7000431C7000431C7004F6ED7003C529C00000000000000 + 000000000000000000000000000000000000000000000000000000000000D1DA + F8008EA2E6002A52D7002F56D800375CDB00375CDB00365BDA004668DA005876 + DC001334A300274CCB002348C7001F44C300163BB9000F34B3001035AF003B4C + 8400CED7F7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF300859BE900788DD900CAD1E900EEEE + ED00EBEAEA00C2C6D6007382B6007289D900AFBEF300D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000435BAD003961E8000D3DDB00103FDB00103FDB00103FDB00103FDB00103F + DB00103FDB00103FDB00103FDB00103FDB000F3EDB000D3DDB003A62E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A0004F6FDB000432CC000432CC000432CC000432CC000432 + CC000432CC000432CC000432CC000432CC004F6FDB003F55A000000000000000 + 000000000000000000000000000000000000000000000000000000000000677F + D4006683E6002E56DD00395FDF003F64E1003E63E0003D62DF005777E2005E7C + E2001638A9002D52D100294ECD00254AC9001B40BF00153AB9000E34B3004A5C + 9D005B74C3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A6A5006E6D6D00DAD9 + D900E8E7E700BFBDBC009A9897009D9D9D000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004962B8003E66EE001B4BE80092A9F60092A9F60092A9F60092A9F60092A9 + F60092A9F60092A9F60092A9F60092A9F6002250E9001C4BE8004169EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000435AAA005576E3001441D8001542D8001542D8001542D8001542 + D8001542D8001542D8001542D8001441D8005576E300435AAA00000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8005C71 + BB00365FE800446AEA004B70EC004C71EC004B70EB004B70EB006785EB006987 + EA001B3EB200395EDC003459D8003055D400264BCA002045C400183EBE004A65 + C0003F508C00CED7F70000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000807E7E00ACABAA00A0A0 + 9F00F1F0F000BCBAB900AEACAB0082807F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004B65BD004068F0002352ED002E5AED002E5AED002E5AED002E5AED002E5A + ED002E5AED002E5AED002E5AED002E5AED002C59ED002352ED00446BF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000465EAF005879E7001E4ADE001F4BDE001F4BDE001F4BDE001F4B + DE001F4BDE001F4BDE001F4BDE001E4ADE005879E700465EAF00000000000000 + 00000000000000000000000000000000000000000000000000008EA3E9007E90 + D1003D65ED004D72F0005277F0005378F0005277F0005176EF00708DF0006E8B + EE001E41B7003F64E1003A5FDD00355AD9002B50CF00254AC9001D43C3003858 + C200495C9E008499DF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009796960094929100BFBDBC00EAEA + E9008A898900C0BEBC00A8A6A400989694000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D67BE00426AF0002A57EE003862EF003862EF003862EF003862EF003862 + EF003862EF003862EF003862EF003862EF003560EF002B58EE00476EF0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004861B4005B7CEA002853E4002954E4002954E4002954E4002954 + E4002954E4002954E4002954E4002853E4005B7CEA004861B400000000000000 + 00000000000000000000000000000000000000000000000000006D87DD0091A3 + DF00476EF000567AF2005A7DF2005B7EF2005A7DF200587CF2007794F4007390 + F2002044BB004469E5004065E2003A5FDD002F54D3002A4FCE002248C8002C4F + C1004D62AB005E76C70000000000000000000000000000000000000000000000 + 00000000000000000000000000008B8A8900ABAAA900BAB9B800CBCAC9008786 + 860000000000D2D2D100E7E6E500B6B5B4008987870000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004F69C000466DF0003963EF00A6B9F800A6B9F800A6B9F800A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A6B9F800496FF0003A64EF004E73F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004D67BE006182F1003C65EE003E66EE003E66EE003E66EE003E66 + EE003E66EE003E66EE003E66EE003B64ED006182F1004D67BE00000000000000 + 0000000000000000000000000000000000000000000000000000516CC700AEBE + F300567AF2006586F3006989F3006989F3006888F3006686F3007D98F5007D98 + F5002549BF004E73ED00486DE9004469E500385DDB003257D6002A50CF002348 + C400506BC3003D539D0000000000000000000000000000000000000000000000 + 00000000000000000000000000009F9E9D00C0BFBE00E5E4E4008F8D8C000000 + 0000000000008F8F8D00E2E2E100E4E3E3009E9C9B00B3B1B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000506AC100486FF0004068F0005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005176F1004169F0005075F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C0006485F300466DF000496FF000496FF000496FF000496F + F000496FF000496FF000496FF000466DF0006485F3005069C000000000000000 + 00000000000000000000000000000000000000000000000000004F69C000AFBF + F4005A7DF2006989F300708EF400718FF4006F8DF3006D8CF3007E99F500829C + F500274ABF005378F0004D72ED00476CE8003B60DE00355AD9002D53D3001940 + C300526CC5003C4F910000000000000000000000000000000000000000000000 + 0000000000000000000000000000C8C8C700DFDFDF00F2F2F100C7C7C6000000 + 000000000000D3D3D300A3A2A100F2F2F200C1C0BF00908E8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000516BC2004A70F000486FF0005F81F2005F81F2005F81F2005F81F2005F81 + F2005F81F2005F81F2005F81F2005F81F2005A7DF200496FF0005378F1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516AC1006888F3005075F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005075F1006888F300516AC100000000000000 + 0000000000000000000000000000000000000000000000000000506AC100AFBF + F400577BF2006787F300708EF4007794F4007693F4007491F4007C97F40086A0 + F500294CBF00577BF2005176EF004B70EB003E63E100355BDB002C53D400163E + C500536DC7003D50940000000000000000000000000000000000000000000000 + 000000000000000000009A989700F8F8F800C9C8C80094949400000000000000 + 000000000000000000000000000098979700F8F8F800E2E2E2009F9E9C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000556FC5004D72F1005378F100B8C7F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F9006C8BF3005579F1005C7EF000536D + C400536DC400536DC40000000000000000000000000000000000000000000000 + 000000000000536CC3006E8DF30092A9F60094ABF60094ABF60094ABF60094AB + F60094ABF60094ABF60094ABF60091A8F6006E8DF300536CC300000000000000 + 0000000000000000000000000000000000000000000000000000526CC300ADBD + F4008BA4F60099AFF7009EB3F7008BA4F6007491F4007290F4007D98F5008DA5 + F6002C4EBF005A7DF2004F74F1004269EE005D7DE9007993E900869DE8007B92 + E0008397D8004054980000000000000000000000000000000000000000000000 + 00000000000095959400C6C5C400E3E3E20092918F0000000000000000000000 + 000000000000000000000000000000000000E9E9E900EEEEEE00C5C5C4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C6005C7DEA005579F1007C97F4007D98F5007D98F5007D98F5007D98 + F5007D98F5007D98F5007D98F5007D98F5007290F4005A7DF2005E80F0003761 + ED003761ED00456AE50000000000000000000000000000000000000000000000 + 000000000000546DC400708EF400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB300708EF400546DC400000000000000 + 0000000000000000000000000000000000000000000000000000536DC400ABBB + ED008295D7006F84CE008599DA00B3C2F300B4C4F90091A8F6006B8AF30089A2 + F6002A4DBF004B71F100466DF0006787F30093A4DD008092CF00677ABC008797 + CD00A7B3DC0041569A0000000000000000000000000000000000000000000000 + 0000C7C7C700A8A7A500DDDDDC009C9A9900D3D3D30000000000000000000000 + 0000000000000000000000000000000000009C9B9900F3F2F200DFDFDE00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000556FC7005B7CEA00587CF2007F9AF500849EF50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F500859FF5007592F4005B7EF2005B7EF2000834 + C5000A36CA004568DA0000000000000000000000000000000000000000000000 + 000000000000556EC5007391F4009EB3F700A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F8009EB3F7007391F400556EC500000000000000 + 00000000000000000000000000000000000000000000000000005873CF00536E + C7009FB1F000AEBEF3009FB1F0005A74C9008E9FDD00B4C3F5006888F3007995 + F4002448BF004E73F1007C97F200889BDC006680D9009CAFEE00ACBCF1006780 + D400445AA6004860B10000000000000000000000000000000000000000000000 + 0000A19F9D00EBEBEA00C0BFBE00000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A6A5A500C4C3C200A2A0 + 9E00000000000000000000000000000000000000000000000000000000000000 + 00006B85DE005B78DB005479F1006283F2006B8AF3006F8DF3007391F4007391 + F4007391F4007391F400718FF4006D8CF3005C7FF2004A70F0004A70F000324B + 9C002648B700506BC20000000000000000000000000000000000000000000000 + 0000000000005770C7007693F400A6B9F800AFC0F900B1C1F900B1C1F900B1C1 + F900B1C1F900B1C1F900AFC0F900A5B8F8007592F4005770C700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859BE900ACBCF1009CB1 + F7002A4FC8005E77CA00859BE900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A2A000D2D1D0009A999800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C9A9900A5A3 + A100000000000000000000000000000000000000000000000000000000000000 + 0000AFBFF3005D76CA005879E5005277F1005579F100577BF200587CF200587C + F200587CF200587CF200587CF200567AF2005075F1004C72F100446BF0006379 + C500526AB9005B72C40000000000000000000000000000000000000000000000 + 0000000000005871C8007491F400042DB5000429A80003269C0003208300031E + 79000320810003269A000429A700042CB3007391F4005871C800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008497D900AEBF + F8007189DA007C93E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A99009D9B9A0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009C9A + 9900000000000000000000000000000000000000000000000000000000000000 + 000000000000859CE9005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C90093A8ED0000000000000000000000000000000000000000000000 + 0000000000005872C9006D8CF3006686F3007391F4007A96F4007E99F5007F9A + F5007E99F5007A96F4007290F4006485F3006D8CF3005872C900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D200A1B0 + E80094A4DA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004E6ACE005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005B76D200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005A76 + D2005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 00000000000000000000000000000000000000000000000000004A60AE003544 + 7900485EA900435BAC00435BAC00435BAB00435BAB00435BAA00435BA900435A + A8004259A7004259A600435AA6004259A500435AA500435AA500435AA5004556 + 910033406D00455BA5000000000000000000000000000000000000000000AEBD + EC007A87B4008E9ED100808EBC00F0EFEF00EFEEEE00EDEDEC00EBEAEA00E9E9 + E800E8E7E700E5E5E400E4E3E3008E99BE008E9AC3008E9AC300808EBC008293 + CC008293CC008293CE0000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F1000000000000000000000000000000000000000000647BCB00364784004761 + B500072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A3004A5FA6003342760000000000000000000000000000000000BAC6F2002E42 + 8700798ED2002446B60003228900031E7B000322890003228900BCBAB900B7B5 + B400B2B0AF00A7A5A400A2A09E00031E7B00032289000322890003228900042A + AB00042AAB008194D50000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000033478A004B61AA002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A8004B5E9E00000000000000000000000000BAC6F20031458C006A79 + B2001B40B8001D41B90003238D00031F7F0003238D0003238D00CAC8C700C5C3 + C200C0BEBD00B6B4B300B1AFAD00031F7F0003238D0003238D0003238D00042C + B100042CB1008195D7000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB100000000000000000000000000314588004361C700042C + B300042CB2003252BF00DEE3F400C0CAEA003353BD00042BAD00042BAC00425F + C000FFFFFF008194D400042AA900042AA900BFC8E800FFFFFF00FFFFFF000328 + A4000328A300435EBB0000000000000000000000000034488F00879BDD00264B + C3001038BD00284CC4000D2D98000C2888000D2D98000D2D9800E0DFDF00DDDB + DB00D9D7D700D1CFCE00CDCBCA000C2888000D2D98000D2D98000D2D98001038 + BD001038BD00869ADE0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100A0AFE100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000034488C004362CA00042D + B800042DB600DEE4F500FFFFFF00FFFFFF00AFBBE200042BAF00042CB100617A + CE00FFFFFF008191CA000429A800042BAD00C0CAEA00FFFFFF00FFFFFF00042A + AA00042AA900425EBD00000000000000000000000000364B9400889DE100183F + C300183FC3002F53CA0013339C00112D8C0013339C0013339C00EBEAE900E7E6 + E600E3E2E200DCDBDA00D8D7D600112D8C0013339C0013339C0013339C00183F + C300183FC300889DE10000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B600042DB60003279F00FFFFFF009FAFE200042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF00FFFFFF00FFFFFF00042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD00000000000000000000000000364A91004363CE000530 + BE00042EBC00FFFFFF00FFFFFF00FFFFFF00FFFFFF000429A700042DB60091A3 + DE00FFFFFF006177BF00042BAC00042CB300EEF1F900FFFFFF00DEE3F100042B + AE00042BAE00425FC100000000000000000000000000394F99008A9FE3002047 + CA002047CA003559CF001938A100173391001733910017339100F4F3F300F1F0 + F000EDEDEC00E6E5E500E3E2E100173391001938A1001938A1001938A1002047 + CA002047CA008A9FE300000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC40012329D00FFFFFF00FFFFFF00A6B6E800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000003A509A004768D700133D + CA00153EC9004062D300E0E5F600C3CCEA001A3CAD000A32B700647ED800FFFF + FF00FFFFFF000429A700042FBE00042FBD00FFFFFF00FFFFFF008F9FD400042D + B800042DB8004362C9000000000000000000000000003E55A30091A6EA003157 + D6003157D6004668D8003350B2002D4BAE002D4BAE002D4BAE002D4BAE002D4B + AE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE002D4BAE003350B2003157 + D6003157D60090A5EA000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB001C3BA300FFFFFF00FFFFFF00FFFFFF00ABBAEB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000003C52A000496BDA001C46 + D1002149D1001F48D0001D44C900173CB600173DBD001640CB00E1E6F800FFFF + FF00FFFFFF000B33B8000A35C4000833C300FFFFFF00FFFFFF00516BBF00042F + BE00042FBD004363CD000000000000000000000000004058A90094A9ED003A5F + DD003A5FDD004669DF004E70E0004E70E0004E70E0004E70E0004E70E0004E70 + E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0004E70E0003A5F + DD003A5FDD0093A8ED000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002B4FC700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D200FFFFFF00FFFF + FF00FFFFFF00FFFFFF002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003F56A5004C6EDF00244D + D7002C53D7002A51D6002951D600254DD400234BD3002F55D500FFFFFF00FFFF + FF00EFF2F900163FCA00153FCB00133DCA00FFFFFF00FFFFFF00193CAE000833 + C4000632C3004364D100000000000000000000000000435CAF0097ACF0004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E3004368E3004368E3004368E3004368E3004368E3004368E3004368 + E3004368E30097ACF0000000000000000000000000004158A600627CD900365C + DC004569DF004569DF003854B200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008BA1 + EB004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A6000000000000000000445CAF005073E700345C + E2004267E3006F8BE9006D89E800DAE1F900FFFFFF00FFFFFF00FFFFFF007A8F + D4002B4FC7002D54D900385DDA00F0F3FC00FFFFFF005771C8002147C8001C46 + D1001540D0004668D9000000000000000000000000004862B9009EB2F600587B + F000587BF0005070D9004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6E + D7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED7004F6ED700587B + F000587BF0009DB2F600000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E300415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000465FB4005275EA003D64 + E7004D71E900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008296D800375A + CD003C62E100385EDF00BFCBF400FFFFFF00BBC6E900284BBE002D55DA002750 + D9001D48D600486BDD000000000000000000000000004A64BB00A1B5F7006183 + F2006183F2005876DA00BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9 + F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F100BDC9F1006183 + F2006183F200A0B4F700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8004963B900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00C2CEF6005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E1E7FB005C7CE8005C7C + E800597AE8005375E700475EB40000000000000000004963B9005478EE00456B + EB00587BED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B9C5EB004567D900486D + E700456AE60094A9F000FFFFFF00FFFFFF004D69C800365BD400395FE0003058 + DE00244EDB004A6DE1000000000000000000000000004B65BC00A4B7F8006A8A + F3006A8AF300607CDA00C4CEF1009DAEE8009DAEE8009DAEE8009DAEE8009DAE + E8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8009DAEE8006A8A + F3006A8AF300A3B6F8000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1005C73C000FFFFFF00FFFFFF00CAD5F9007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F100738FEE00677DC500E0E5F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007D98F2007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000004D67BE00597CF2005579 + F1006E8DF3006B8AF0006785EA006585EE006686F3006384F2006082F1006888 + F100C0CDF800FFFFFF00FFFFFF00AEBBE7005074EA005074EC004D72EA00456A + E900345DE6004E72E9000000000000000000000000004D67BE00AABCF8007C97 + F4007C97F4006F88DC00D1D9F400B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0 + EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC00B2C0EC007C97 + F4007C97F400A9BBF800000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500677CC400FFFFFF00FFFFFF00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5006B82CD007084C700E2E6F400FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E7ECFD00819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F70000000000000000004E68BF005B7EF2005D80 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300A1B5F700EBF0 + FD00FFFFFF00FFFFFF00B4C0E9005370D0005C7EF0005B7EF000597CEF004E73 + ED003B63EB005074EC000000000000000000000000004E68BF00ADBEF800849E + F500849EF500778EDC00D7DEF400BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8 + EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00BCC8EE00849E + F500849EF500ACBDF800000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6006F83C500FFFFFF00D4DDFC008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F60089A2F3007489CD00788AC800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00E9EEFD0092A9F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD000000000000000000000000004F69C0005D80F2006586 + F300849EF500829DF500819BF5007E99F50093AAF600C3D0FA00FFFFFF00FFFF + FF00FFFFFF009BABE1005E78D1006987ED006888F3006686F3006586F300597C + F200436AEF005277F0000000000000000000000000004F69C000B0C0F9008DA5 + F6008DA5F6007F95DD00DDE2F600C6D0F000C6D0F000C6D0F000C6D0F000C6D0 + F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F000C6D0F0008DA5 + F6008DA5F600AFC0F9000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F8008E9FD800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A0B3F4008998C900E7EA + F400FFFFFF00A8BAF800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD700000000000000000000000000516BC2006082F200708E + F4009AAFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5DBF10098A8 + DC00758BD300859FF500839EF500829CF5007F9AF5007D98F5007B97F4006989 + F3004F74F1005579F100000000000000000000000000516BC200B5C5F9009EB3 + F7009EB3F7008EA0DE00E5EAF700D5DCF200D5DCF200D5DCF200D5DCF200D5DC + F200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF200D5DCF2009EB3 + F7009EB3F700B4C4F90000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF80091A0D000929F + CA00DBE0F300AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA0000000000000000000000000000000000526CC3005F81F200718F + F400A2B6F800FFFFFF00FFFFFF00E8EBF600D9DEF000B2BDE3008598D9008CA1 + E60092A9F40090A8F6008EA6F6008CA5F60089A2F60087A1F500859FF5006E8D + F3005075F1005579F100000000000000000000000000526CC300B8C7F900A7B9 + F800A7B9F80096A6DF00E9EDF800DCE1F400DCE1F400DCE1F400DCE1F400DCE1 + F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400DCE1F400A7B9 + F800A7B9F800B6C6F90000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B6C5F600A1AE + D900B6C5F600B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF60000000000000000000000000000000000536DC4006685EC006C8B + F300A3B6F800A4B5EE0092A1D30097A7DD0098A8E1009BACE700A2B6F800A1B5 + F7009FB3F7009BB0F70099AFF70097ADF70094ABF60091A8F6008CA5F6006B8A + F3005075F1005E7EEC00000000000000000000000000536DC400BAC9FA00B0C0 + F900B0C0F9009DADDF00EDF0F900E3E8F600E3E8F600E3E8F600E3E8F600E3E8 + F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600E3E8F600B0C0 + F900B0C0F900B9C8F90000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 000000000000000000000000000000000000000000007A92E5006079CC00728E + EE007794F400829DF5008AA3F6008DA5F6008DA5F6008BA4F60089A2F60088A2 + F60087A1F500839EF500829DF500819BF5007B97F4007693F4006C8BF3005E80 + F2006786ED005F78CC00000000000000000000000000556FC600BECCFA00C0CE + FA00C0CEFA00ADB9E100F4F6FA00EDF0F800EDF0F800EDF0F800EDF0F800EDF0 + F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800EDF0F800C0CE + FA00C0CEFA00BDCBFA0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 00000000000000000000000000000000000000000000000000005974CF00617A + CD005F81F2006586F3006888F3006A8AF3006A8AF3006A8AF3006A8AF3006989 + F3006989F3006888F3006888F3006787F3006586F3006384F3006082F2005E7D + E5006079CD006984DD000000000000000000000000005670C700A6B9F800C1CE + FA00C3D0FA00BCC8EE00F9FAFE00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6 + FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00F4F6FC00C3D0 + FA00C0CEFA00A4B7F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007C93 + E5005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005D76 + CC007C93E500000000000000000000000000000000005771C9005771C8005771 + C8005771C8005771C800ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8 + E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E300ABB8E3005771 + C8005771C8005771C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293462002530 + 5800253058002934620032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE000000000000000000000000000000000000000000DEDE + DE00D3D3D300CECECE00CECECE00C0C0C00097A7D7005769A700293662002531 + 5800253158002633600032427B005769A700C0C0C000C7C7C700CECECE00D6D6 + D600DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004259A70046599700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004659970035457A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D5F9E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002F4284004D609E00415CB7000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC001338B100CFD6 + EE00FFFFFF001338B100042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB1000000000000000000000000000000000000000000475F + B100415DBD00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046599A00475FB10000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100CFD6EF00FFFF + FF00FFFFFF00CFD6EF001439B600042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB1001439B600CFD6 + EF00042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000A8B7ED003E50 + 8E001439B600042CB100042CB100042CB100042CB100042CB100A0AFE100A0AF + E100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600143ABA00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D0D7F100143ABA00042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455BAE004C62 + AD00042DB600042DB600042DB600042DB600042DB600042DB600D0D7F100FFFF + FF00042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD0000000000000000000000000000000000455CAE004C63 + AD00042DB600042DB600042DB600042DB600042DB600042DB600FFFFFF00FFFF + FF009FAFE200042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C63AD00000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED00000000000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00264BC800173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400264BC800D2D9F300FFFFFF00FFFF + FF00173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD7000000000000000000788DD7004F63AA00395B + CD00173FC400173FC400173FC400173FC400A6B6E800FFFFFF00FFFFFF00FFFF + FF00FFFFFF00A6B6E800173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD006C83D40000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35 + BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F5194000000000000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00D4DBF400FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D4DBF4002F54CE00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB002F54CE00D4DBF400FFFFFF00FFFFFF00FFFF + FF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004963B600546DC0003357 + CF00234ACB00234ACB00234ACB00ABBAEB00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00ABBAEB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B60000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53CF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D6DDF5002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200D6DDF500FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002E53 + D2002D53D2003257D3003D54A20000000000000000003D54A2005C76D0003257 + D3002E53D2002E53D2002E53D200FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00AFBEEE002E53D2002E53D2002E53D2002E53 + D2002D53D2003257D3003D54A20000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004158A600627CD900365C + DC004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627CD900365C + DC004569DF004467DC00B6C2EA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569 + DF004468DF003A5FDC004158A60000000000000000004158A600627DD900365C + DC004569DF003C5BC200B4BFE200FFFFFF00FFFFFF00FFFFFF003D5CC3003854 + B200B4BFE200FFFFFF00FFFFFF00FFFFFF00B8C6F2004569DF004569DF004569 + DF004468DF003A5FDC004158A60000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D300000000000000000000000000435BAB006681DE003F64 + E1005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C7004C66BA00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173 + E3004F71E3004368E100435BAB000000000000000000435BAB006681DE003F64 + E1005173E3004764C700415CB600FFFFFF00FFFFFF00BECBF5005173E3004764 + C700415CB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00BCC9F4005173E3005173 + E3004F71E3004368E100435BAB0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D700000000000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7CE800FFFFFF00FFFF + FF00FFFFFF00FFFFFF005C7CE8005C7CE8005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005B7BE5004E69C300DCE1F100FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005C7C + E800597AE8005375E700475EB4000000000000000000475EB4006C86E0005275 + E7005C7CE8005C7CE800526ECB00BCC5E500C2CEF6005C7CE8005C7CE8005C7C + E800526ECB00BCC5E500FFFFFF00FFFFFF00FFFFFF00FFFFFF00C0CCF5005C7C + E800597AE8005375E700475EB40000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF00FFFFFF007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1006078C900677DC500E0E5F300FFFFFF00FFFF + FF007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1006988EF006E8CF0007790E10000000000000000007790E100687FCD006E8C + F0007491F1007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F100657FD3005C73C000C3CBE800FFFFFF00FFFFFF00FFFFFF007491 + F1006988EF006E8CF0007790E10000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC006886EC006886 + EC006886EC006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D500000000000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000BFCDF6005971C3007E98 + F1007E99F500819BF500819BF5007E98F1006B82CD007084C700FFFFFF00FFFF + FF00819BF500819BF500819BF500819BF500819BF500819BF500819BF5007E99 + F5007290F4007E98F100CED8F7000000000000000000CED8F7005971C3007E98 + F1007D98F500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5007088D600677CC400FFFFFF00FFFFFF00CFD9FA007E99 + F5007290F4007E98F100CED8F70000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600FFFFFF00FFFF + FF00FFFFFF00FFFFFF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100768D + DD00829CF5008BA4F6008BA4F6008BA4F60089A2F3007489CD00E3E7F400FFFF + FF008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F600829C + F500809BF500768DDD00000000000000000000000000000000005975D100758C + DD007F9AF5008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4F6008BA4 + F6008BA4F6008BA4F6008BA4F6007A8FD700C9D0E800D4DDFC008BA4F600819B + F500809BF500768DDD00000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC2000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D70095ABF50092A9F600A0B4F700A2B6F800A2B6F800A2B6F8008898CF00A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009FB3F70094AA + F500758AD500607AD7000000000000000000000000000000000000000000607A + D7008CA4F4008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F70092A9 + F400758AD500607AD700000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF70096ACF70096AC + F70096ACF70096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF8008B99C7008B99 + C7008B99C700AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 000090A2E2009CB1F7009CB1F700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A9BBF8009CB1F7008EA1 + E300546FCA000000000000000000000000000000000000000000000000000000 + 00008599E00094ABF60097ADF700AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF7008CA0 + E100546FCA000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005870C70092A5E300A3B6F700ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900ACBDF800A2B6F800A1B5F7005870 + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 0000576FC80090A3E300A0B4F600ACBDF800B5C5F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900A9BBF8009CB1F70098ADF5005870 + C700BFCDF600000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE300A0B3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700879BE300677ECC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900879BE3009FB3F500A3B6F800A4B7F8009FB3 + F7009FB3F700A2B6F800A3B6F800A0B4F700859BE200667DCC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000879DE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D500637BCC007C91DA0092A8F00091A7 + F10092A8F10092A8F000869CE7007B90D9005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000253671003E4D + 8200495991008699DD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002737730027377300B6C5F0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008197DC0044579500405B + B8005B73C4005A679400293D8500B9C6F100000000000000000000000000293D + 8500293D8500B9C6F10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000273770003F519200283B7A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008197DD002A3C7B003755BB003E5B + BD008798D100465BA000465BA0002A3E83000000000000000000BAC6F200465B + A000465BA0002A3E830000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000002A3C7800435EB90040549800B9C6F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000354787004963B7002B4EC0007188D4006273 + B0004B64B500123DCC00123DCC004A6BD80032499A0032499A004B64B500123D + CC00123DCC004A6BD800384FA200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000304486004260C5001E42BA00445AA50032468E00BAC7F2000000 + 0000000000000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005169BE004A64BA002A4EC400042EB9007289D7006677 + B8004F69C0001240DA000535D8001240DA004E69BF004E69BF004B6EE3000535 + D8001240DA004B6EE3003D55AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000034488E004363CC00143BBF003F5FCB00455DAC00354A95000000 + 0000000000000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546CC000384C90002B50C800042FBE00042FBE002B4FC700869A + DC005E74BB004C71ED001344E7000539E600476DED00476DED001344E7001344 + E7004C71ED00536DCA00BECCF5000000000000000000374C9500374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004364D300143DC700103AC6003E60D1004760B300BDC9 + F4000000000000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0026356E0026356E0026356E0026356E0026356E002635 + 6E0026356E0026356E0031458E00000000000000000000000000000000000000 + 0000394E97004D68C5002C52D1000431C7000431C7000431C6000431C6000431 + C5003358D0006478C2005C76D2005378F1001748EC001748EC001748EC005C76 + D200435CB600BECCF5000000000000000000000000004D6DD6001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001441D8001441D8000838D5000535D5000535D500103ED7004C67 + C1003F57AA00BECCF5000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F519400000000000000000000000000435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435FBC00435F + BC00435FBC00435FBC002C3E7B0000000000000000000000000000000000BCC9 + F400536BBD00385DD7000C39CE000E3ACE000E3ACD000E3ACD000E3ACC000E3A + CC003B5FD600667BC4006981D5006787F300315DEF00315DEF00315DEF006981 + D500455FB800BFCCF5000000000000000000000000004F70DD000637DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD004167 + E6004F6AC700435BB1000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A9000000000000000000000000004361C700042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB400042CB400042CB400042CB400042CB400042CB400042C + B400042CB400042CB40032468800000000000000000000000000000000003E55 + AB004266DD001A45D6001944D5001D47D5001C46D4001C46D4001D47D4004669 + DB0092A4E6006F87D6007F9AF500567AF2004C72F1004C72F1004C72F1007F9A + F5006F87D6004761BA000000000000000000000000005677E4001848E7001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8002552 + E9004B70ED00536FCE00BFCCF50000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE000000000000000000000000004568DE000D3BD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3CD5000E3C + D5000E3CD5000C3AD5003F57A5000000000000000000ABBCF100435AA9005B78 + D9002E57E000345CE100385FE200385FE100385FE100385FE0008FA5EE00778B + CE007F93DA0088A2F600819BF50087A1F500899BDD00899BDD00A5B8F800819B + F50088A2F600A5B8F8004E68C30000000000000000006785EA00496FF0005479 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005176 + F1004B71F1005A7DF2004A64BD0000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00395ED800395ED800395ED8003459 + D700224BD4005773D3000000000000000000000000004D72EA002652E6002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56E7002A56 + E7002955E700224FE500465FB40000000000000000004E68C3007B8DCC006383 + EC003E65E6004469E700456AE700466BE700456AE600456AE60096ABF000798C + D0008699DD00A1B5F700A1B5F700B7C7F9006E82CB006E82CB00899CDE00A1B5 + F700A1B5F700B7C7F9004F6AC50000000000000000006E8AEA005E80F200708E + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF4006989 + F3006E8DF300607AD600BFCCF50000000000000000005A77D8003057DA003E63 + DD004569DF004569DF003E5EC800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004569DF004569DF004569DF003E63 + DD002B53DA005975D7000000000000000000000000005579F1003F68F000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0003761EF004C66BD000000000000000000475FB200B8C5EF005175 + ED004E73EB005376EC005376EC005376EC005477EC005376EB006F8CEE00A9B9 + F1006F84CD00C0CEFA00C0CEFA008FA0DF00A9B9F000A9B9F0006F84CD00C0CE + FA00C0CEFA008FA0DF00BFCDF6000000000000000000738EEB006D8CF30087A1 + F5008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008BA4F6007F9A + F500657FD7004C66C0000000000000000000000000005C79DB00375EDF00486C + E3005173E3005173E3004967CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005173E3005173E3005173E300486C + E3003058DE005B78DB000000000000000000000000005D80F2006586F3007491 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97 + F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007B97F4007995 + F4006F8DF300597CF200516BC20000000000000000008095DE00A9BBF800577B + F2006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300708E + F4008AA3F5007F91D3007F91D300B4C3F4006F8DF2006F8DF2008AA3F4007D91 + D2007D8FD300AFBFF3006982D90000000000000000006985E300738EEB007C96 + EC00829BED00829BED00829BED00829BED00829BED00829BED00829BED00829B + ED00839CED0096ABEF00B8C7F900C5D1FA00C1CEFA00ACBDF8008CA5F6004F69 + C200BFCDF600000000000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00FFFFFF00FFFF + FF00FFFFFF006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D5000000000000000000000000005E7DEA00718DEC007792 + ED007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95 + EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007A95EC007993 + ED007590EC006D8AEC00546EC500000000000000000099ACEE00B1C1F9007290 + F400839EF5007F9AF5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500BBCAFA00BBCAFA0097ADF7007F9AF5007D98F5007D98F500B0C0 + F800A5B8F7007995F400536ECA000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC1009BB0F700BDCBFA00B5C5F90096ACF7006882D800BFCD + F60000000000000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F100FFFFFF00FFFF + FF00FFFFFF007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA000000000000000000000000005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005A75D1000000000000000000A4B4EE00D3DCFB0087A1 + F50097ADF70092A9F6008EA6F6008AA3F6008AA3F6008AA3F6008AA3F6008AA3 + F6008AA3F60097ADF70096ACF70094ABF6008FA7F6008DA5F6008BA4F6007F9A + F5006C8BF3005B7EF2004760B900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC20088A2F600A3B6F80098AEF7006F87DA00516BC4000000 + 00000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500FFFFFF00FFFF + FF00FFFFFF00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000096AAEC00DFE6FC00D2DB + FB00B5C5F900B7C7F900B4C4F900ADBEF800AABCF800A6B9F800A0B4F700B3C3 + F800DCE3F900DDE4FC00B6C6F900B3C3F900AFC0F900AEBFF800ACBDF80097AD + F7007F9AF5006787F3004861B800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006A8AF3007693F400536DC600BFCDF600000000000000 + 00000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700798AC500798A + C5007F92D10096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000798FD900DCE3FC00E6EB + FD00BECCFA00C1CEFA00C1CEFA00BBCAFA00B4C4F900ACBDF800A4B7F800A4B4 + EA0093A3DB00E7ECFD00D9E1FC00BBCAFA00BCCAFA00BBCAFA00B6C6F9009DB2 + F700839EF5006F8DF300516AC700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600577BF200657FDB00BFCDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000637AC700B8C7F800E6EB + FD00DDE4FC00C6D2FA00C3D0FA00BBCAFA00B3C3F900A5B8F800A7B8F3006177 + C4005068BE00E6ECFD00E7ECFD00E0E6FC00BCCAFA00BBCAFA00B6C6F9009BB0 + F700819BF5007B97F400657FD800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005670C7005B78DA005670C8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF600516AC3008699 + DD00DBE2FC00E7ECFD00E6ECFD00E4E9FD00D0DAFB00A6B6EB00536ECA000000 + 0000000000005C73C400A3B3EB00CBD6F900E2E8FD00E0E6FC00DEE5FC00C3D0 + FA008AA0EE006177C80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600516B + C7008499DE009CAEEF00A7B8F2008BA0E7007489D100526AC000000000000000 + 000000000000839AE7004F69C2006D82CD0091A7EE009FB2F10094A9EF006C85 + D9005870C3005E79D30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005975D1005069C0004F69C000526CC7006680DA00D3DBF800000000000000 + 0000000000000000000000000000839AE7004F68BF004F68BF004F68BF005E79 + D5009FB0EF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008D8B8B00918F8D00918F8D00918F8D00918F8D00918F + 8D00918F8D00918F8D00918F8D00918F8D00918F8D008D8B8B00000000000000 + 00000000000000000000000000000000000000000000808080007D7D7D009D9D + 9D00C5C5C500C5C5C500C5C5C500C5C5C500C7C7C700C7C7C700C8C8C800CECE + CE00CFCFCF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000082807F00F7F7F700B2B2B200B2B2B200B2B2B200B2B2 + B200B2B2B200B2B2B200B2B2B200B2B2B200F7F7F70082807F00000000000000 + 00000000000000000000000000000000000000000000B0B0B000A6A6A600F9F8 + F800838382009E9E9E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000273465007287CC005971 + C3005971C3005971C3005971C3005971C3005971C3005971C3005971C3005971 + C3005971C3005971C3005971C3005971C3002734650000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030458D0025356E004B494900717170007171700071717000717170007171 + 700071717000717170007171700071717000717170004B49490025356E000000 + 000000000000000000000000000000000000000000000000000086868600DCDC + DC00ACABA9008988870080808000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3A73006B86E1001639 + AC001639AC001639AC001639AC001639AC001639AC001639AC001639AC001639 + AC001639AC001639AC001639AC002446B7002A3A730000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000029386E00283564004D4C4B00767675006261600062616000626160006261 + 600062616000626160006261600062616000767675004D4C4B0028356400768C + CF00000000000000000000000000000000000000000000000000000000008F8F + 8F00DCDCDB00A5A4A2008A898800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002C3E7B006984E1000328 + A4000328A4000328A4000328A4000328A4000328A4000328A4000328A4000328 + A4000328A4000328A4000328A400163AB2002C3E7B0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000344892004358A100425F + BF00425FBF0041528C0076757500ACACAC00ACACAC00ACACAC00ACACAC00ACAC + AC00ACACAC00ACACAC00ACACAC00ACACAC00ACACAC007675750041528C00425F + BF00425FBF004358A10000000000000000000000000000000000000000000000 + 0000CECECE00EBEBEA00C0BFBE008A8988007E7E7E00D3D3D300000000000000 + 0000000000000000000000000000B6C3F0003E55A10000000000000000000000 + 0000000000000000000000000000000000000000000033458900738DE7000A32 + B8000A32B800375BD2006B86E0006480DE00163CBC000A32B8000A32B8000A32 + B8000A32B8000A32B8000A32B8001C42C2003345890000000000000000003449 + 9100334589005E76C90000000000000000000000000037477F00CDD6F6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324588004260C5001036 + B600042CB200021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A + 6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00021A6B00042C + B2001036B6004260C50000000000000000000000000000000000000000000000 + 00007E7E7E00CECECE00EBEBEA00A5A4A2008A8988007E7E7E00000000000000 + 00000000000000000000B6C3F000273872002E417F0000000000000000000000 + 00000000000000000000000000000000000000000000364A91007E95E3002349 + C8002C51CF00607BD80044589B007A8CCE006884E200143CC300113AC200113A + C200113AC200113AC200113AC2001E45C800364A910000000000869BE100627C + D600607CDA004D62A4000000000000000000000000006D789F004B62B1000000 + 000000000000000000000000000000000000000000000000000000000000293C + 7A00283871002838710028387100283871002838710028387100283871002838 + 71002838710028387100293C7A000000000000000000354A8F004362CB00042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB90003269C000325 + 940003269C004362CB0000000000000000000000000000000000000000000000 + 0000D3D3D3007E7E7E00CECECE00C0BFBE00A5A4A2008A898800D3D3D3000000 + 000000000000B6C5F100283873006472A000364E960000000000000000000000 + 000000000000000000000000000000000000000000005068BE00788DD3005B7A + E0005375E400586DB4006D85D6004559A0007F96E1004063D8001841CA001841 + CA001841CA001841CA001841CA001841CA0042579E00000000003D55A8003B60 + DB002F55D600607EE200BDC9F40000000000000000007D89B10035447D00A3B4 + EB00000000000000000000000000000000000000000000000000000000003447 + 8400949DBE00435DB600435DB600435EB6004761B7004963B8004A64B8004E67 + BB004E67BB004C66BA002B3C760000000000000000003C529D004C6CD8002048 + CE00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF00234A + CF00234ACF00234ACF00234ACF00234ACF00234ACF00234ACF002243B2002343 + AC001F41B1004B6BD80000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300CECECE00EBEBEA00C0BFBE00706F6E005C5C + 5C009DADE2006979AE008192CC007E8EC7006077C40000000000000000000000 + 00000000000000000000000000000000000000000000000000005D76CF006073 + BB00798ED200556FC70000000000BDCBF400576CB300859EF0002751DE002751 + DE002751DE002751DE002751DE002751DE00667CCB004058A8006B82D0002751 + DE002751DE003D63E3004E68C0000000000000000000707DAA004B66C0004959 + 9400000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F20094A0C8007A8ED1002647B6002C4CB8003150B9003755BB00415E + BF00435FBF003856BC003143830000000000000000004157A4005373DE00385D + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61D9003C61 + D900365BD8005272DE0000000000000000000000000000000000000000000000 + 00000000000000000000000000007E7E7E00CECECE00EBEBEA00737271006367 + 74003D5093008195D7005871C3007A8CCA00A2B3E90000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000738B + DD004760BA00BECCF5000000000000000000445CB0008AA1EC002F59E6002F59 + E6002F59E6002F59E6002F59E6002F59E6006A88EE00748DE1006A88EE002F59 + E6002F59E6003C63E800516CC700000000000000000054639C006980CC004964 + BF00546CC0000000000000000000000000000000000000000000000000000000 + 0000000000003C5094006E7FBC00516CC9003858C1003E5CC2004462C5004F6B + C800536ECA004764C600344789000000000000000000445BAB005B7BE4005072 + E2005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3005676E3005676E3005676E3005676E3005676E3005676E3005676E3005676 + E3004C6FE1005979E40000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3D3D3007E7E7E00A7A7A70081859400455B + A6007084C7005A75D2004F6AC7008496D300B7C5F10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005570CC008EA4EF00355FED00355F + ED00355FED00355FED00355FED00355FED003E67EF00456CEF003962ED00355F + ED00355FED00436AEF004761BA0000000000000000003D5196008596D0003F5F + C80040539500556EC30000000000000000000000000000000000000000000000 + 000000000000384D9600586FBA00516DCD004563C9004C69CC00516DCD005C76 + D0005F7AD100536FCD00374C8F0000000000000000004C65BA006A89EF007E99 + F100A4B6F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BA + F500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF500A8BAF50090A7 + F3007A95F1006786EF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A2B1E600788ED9008CA4 + F5006B8AF0005071DF003257D000123ABF004E5F9B00465CAC00000000000000 + 00000000000000000000000000000000000000000000000000006D87DD00637A + C7007087D8005D77D30000000000D2DBF8005B72C10089A2F300456CF000456C + F000456CF000456CF000456CF000456CF0007F98EA00647AC40090A3E400456C + F000456CF000587CF2005671CE000000000000000000B3C0EF006475B0007089 + DA002D52CE004E6CCF004F64AF005E77CC009CAEED0000000000000000009CAE + ED004C65BC005E78D1005C78D8005371D700607CD9006681DB006A85DC00758E + DF007A92E0006883DB003E539D000000000000000000506AC1006F8DF30090A7 + F5008C90A3006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A + 6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A006C6A6A00B6C6 + F8008AA3F5006B8AF30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004862BC0095ACF7007C97 + F400718FF4003D63E3000534D1000431C600556EC200475890004F67B7000000 + 00000000000000000000000000000000000000000000AEBEF2005B72C200869F + F0007B95EF00536CBF00D2DBF8007990E2007C8FD4007995F4004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1006C83CD005771CE00687DC7005277 + F1004C72F1006C8BF3007990E2000000000000000000000000004960AE0095A5 + D900113DCE002F55D4004B6CDA004D64B200455BA5004359A6004258A500485E + A6005269B9006480DE005A78DD00627EDE006E88E100728CE1007790E3008299 + E400869CE600718BE1004158A3000000000000000000526CC3006C8BF3009CB1 + F700959392009593920095939200959392009593920095939200959392009593 + 920095939200959392009593920095939200959392009593920095939200C6D2 + FA0092A9F6006787F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BD007E92DA008AA3F600859F + F5007E99F5002250E9000F3FDD000534D1002146C400556FC20042538B000000 + 00000000000000000000000000000000000000000000657FD9008195DD006F8D + F3007794F400738AD5005D78D300556DC10089A0EC006686F3005277F1005277 + F1005277F1005277F1005277F1005277F1005E75C300D2DBF8004F69C5007B97 + F4005E80F200879FEF00D2DBF800000000000000000000000000889CE2008090 + C5001F49D600244DD7003057D9005A79E0005A78DE005976D6005C78D600617F + E2006B86E300617FE2006B87E400708BE5007993E7007F97E800849BE80092A7 + EB0090A5EA007690E500455CAA000000000000000000000000005974CF006782 + DB009C9A9900A09D9C0096939200969392009693920096939200969392009693 + 9200969392009693920096939200969392009693920096939200A09D9C007A94 + ED006681DB005974CF0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF500889BDD00AFC0F900B4C4F900D1DBFB00B6C6 + F9006A8AF300476EF000345FEF002250E9000534D1000431C6003356C900394C + 8E00B9C6F200000000000000000000000000000000004E68BF008FA6F3005B7E + F2006183F2007693F40094A9F300829CF5006485F3006183F2006183F2006183 + F2006183F2006183F2006183F2006A8AF3004E68BF0000000000000000004F68 + C1004E68BF006F89DF00000000000000000000000000000000000000000098AB + EA0098ABED004066E600466BE7005376E900587AE9005D7DEA006987EC006E8B + EC00738FEC007E98EE00839CEF0089A1EF0094A9F10099ADF10098ADF100CCD5 + F400B2C2F5006886EB004C65B900000000000000000000000000000000005A75 + D1006B6968009D9A9900615F5F00BFBFBE00BCBCBB00BAB9B800B4B3B200B1B0 + AE00ADACAB00A6A5A400A2A1A0009F9D9C0097959300615F5F009D9A99005771 + C8005A75D1000000000000000000000000000000000000000000000000000000 + 000000000000000000004F6BC600B9C5EF00ABB9E9008E9FD9006F83CB0096A6 + DD00B2C2F8005579F100466DF000345FEF001040DD000534D1000935C8005B6F + B2003A4D8F00CED7F7000000000000000000000000004F69C0008CA5F6006082 + F2006989F3006989F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006C8BF3004F69C00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A2B0E0007E99F0004E73EC005F80EE006686EF006B89EF007692F0007B96 + F100809AF1008BA3F30091A8F30096ACF400A1B4F500A0B3F500A5B7F500677D + C800ABB9E8009BB0F4005069BF00000000000000000000000000000000000000 + 000074727100A3A09F0067656500E2E1E100DFDFDE00DDDCDC00D7D7D600D5D4 + D300D1D1D000CBCAC900C8C7C600C4C3C200BCBBBA0067656500A3A09F000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546FCB005975D1006580D9007990E300BFCDF600546F + CB008FA0DA007491F4005479F100466DF0002250E9001040DE000534D1004161 + CC00596BAC0037488700314075003C539C0000000000506AC1008AA3F6006A8A + F3007D98F5007E99F5007B97F400708EF400708EF400708EF400708EF400708E + F400708EF4007A96F4007995F4007491F400506AC10000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A74C900B4C1EC00829DF4006C8BF3007391F4007995F400829DF40087A1 + F5008DA5F50098AEF6009DB2F600A3B6F700A1B5F700A5B8F700BECBF600617C + D8005A74C900A4B4E800546EC500000000000000000000000000000000000000 + 000085838200AFADAB0073717000F2F2F200F1F1F000F0EFEF00EDECEC00EBEB + EA00E9E9E900E5E5E500E3E3E200E1E0E000DCDBDB0073717000AFADAB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007488CF00B1BFF000829DF500466DF000345FEF002250E900042D + B600082BA100788AC60040539300B8C5F200000000005B76D300526CC300526C + C300526CC300526CC300526CC3007388CF00A2B2E700B3C3F900A0B4F6008FA1 + E0006D82CC00526CC300526CC300526CC300607BD70000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED006D82CE00B1C1F8008AA3F600829DF5009AAFF700A1B5 + F700A6B9F800ACBDF800A8BAF800AFC0F900B5C4F4007E93D6005A76D2000000 + 000000000000C1CDF6005771C900000000000000000000000000000000000000 + 00008E8C8A00B5B3B10079777600F6F6F600F5F5F500F5F5F400F3F3F300F2F2 + F200F1F0F000EEEEEE00ECECEC00EBEAEA00E7E7E60079777600B5B3B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007991E400687DCA00B3C1F1005277F100466DF000345FEF001035 + B200788CCF009CA8CF00BAC7F300000000000000000000000000000000000000 + 0000000000000000000000000000718AE0006178C900B5C4F500A0B3F300546D + C40092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BBC9F50095A6DE00C2CEF300B9C8F900A8BAF800A4B7 + F800A7B9F800B6C6F900C2CFFA00C1CEF800647CCD00647EDA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000908F8E00959391007F7D7C00F7F7F700F7F7F700F7F7F700F6F6F600F6F6 + F600F5F5F500F4F4F400F3F3F200F2F1F100EFEFEF007F7D7C00959391000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006179CA009CB1F7004F74F100385CD2008196 + DA009FACD6004F67B50000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0006F84CF00A2B2E900A9BBF800AABCF7008C9F + DF00647ACA009FB1F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000007C93E400667FCC008799D900BDC9F100C0CD + F600C1CDF600A5B5EA008497DB00657DCD009DB1EF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000008B898800EBEBEA00EDECEC00EEEEED00F1F1F100F3F2 + F200F4F4F400F6F6F600F7F7F700F7F7F700F7F7F7008B898800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005670C700647ED2008A9DDC005B74 + CA00C1CDF6000000000000000000000000000000000000000000000000000000 + 0000000000005770C800A1B3EF009BB0F7009BB0F7009BB0F7009BB0F7009BB0 + F7009BB0F7008DA2EB005770C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000918F8D00E4E4E300E6E5E400E7E7E600EAEAE900ECEB + EB00EDEDEC00F0EFEF00F1F1F100F3F2F200F5F5F500918F8D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C8008EA0DF00A5B2DD00C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800A5B7F300A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F80095AAF1005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000908F8E00959391009593910095939100959391009593 + 91009593910095939100959391009593910095939100908F8E00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005771C800A3B0DE005C75CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDB008D9FDF00B4C4F900ADBEF800A8BAF800A6B9F800AABC + F800ACBDF800879ADC006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006B85DE005A74CF005872C9005872C9005B76 + D2006B85DE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C200C0C0 + C000263159002631590026315900263159002631590026315900263159002631 + 5900263159002631590026315900263159002631590026315900263159002631 + 59002E3D7100C0C0C000D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9005065A9005065A9005065A9005065A9005065A9005065A9005065A9005065 + A9002736660000000000000000000000000000000000C4C4C4004E63A6003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193003D5193003D5193003D5193003D5193003D5193003D5193003D51 + 93003D5193004E63A600DBDBDB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F448B002E3F7B002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B7800354B970000000000000000000000000000000000000000000000 + 00004F69BF000328A300FFFFFF00E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F6004F69 + BF002C3D7B0000000000000000000000000000000000000000003D57AE00435D + B30007299A0007299A0007299A0007299A0007299A0007299A0007299A000729 + 9A0007299A0007299A0007299A0007299A0007299A0007299A0007299A000628 + 9A00435DB3003D57AE0000000000000000000000000000000000000000000000 + 00005972C900374D9E0034499400425AAE00768DD80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F2004F609F002C3D7B004E66B700506AC400506A + C400506AC400506AC400506AC400506AC400506AC400506AC400506AC400506A + C400506AC4002D3F7F0000000000000000000000000000000000000000000000 + 0000506AC400042AAA00FFFFFF00E6EAF700E6EAF700E6EAF700E6EAF700E6EA + F700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700E6EAF700506A + C4002F40800000000000000000000000000000000000000000003E58AF004660 + B9000F32A4001032A4001032A4001032A4001032A4001032A4001032A4001032 + A4001032A4001032A4001032A4001032A4001032A4001032A4001032A4000D30 + A3004661B9003E58AF0000000000000000000000000000000000000000005C75 + CF00536CC2005B77D4005874D200566EC1004C60A100354A9300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC6F20031458D00526ECE002F4183000328A000042CB200042C + B200042CB200042CB200042CB200042CB200042CB200042CB200042CB200042C + B200506CC9003043850000000000000000000000000000000000000000000000 + 0000506BC800042CB100FFFFFF009397A5009397A5009397A5009397A5009397 + A5009397A5009397A5009397A5009397A5009397A500E6EAF800E6EAF800506B + C8003245860000000000000000000000000000000000000000003F59B0004863 + BF00173AAE0015359F0015349C0015349C0015349C0015349C0015349C001534 + 9C0015349C0015349C0015349C0015349C0015349C0015349C0015359F001538 + AE004A65C0003F59B000000000000000000000000000000000005E79D3005269 + B900345CE4001744DB000434D200254CCF004666D300586DB6008499DF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374D9A002C459A000732C1006582E30035498F00042BAE000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2004F6DD300364B930000000000000000000000000000000000000000000000 + 0000506ED200042FBF00FFFFFF00E6EBF800E6EBF800E6EBF800E6EBF800E6EB + F800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800E6EBF800506E + D200374B92000000000000000000000000000000000000000000415BB2004D6A + CA002649BF002343AC00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DF + DE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE00E0DFDE002343AC002246 + BE00506CCB00415BB200000000000000000000000000607AD1006881D5005176 + F1001344E8000639E3000537DD000434D2000433CE000935C900586EB700374A + 8D00849BE0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F4002E489F000833C5000D3AD0007791EB00374C9700042DB6000432CA000432 + CA000432CA000432CA000432CA000432CA000432CA000432CA000432CA000432 + CA004F6FD9003A4F990000000000000000000000000000000000000000000000 + 00004F6ED6000431C500FFFFFF009398A6009398A6009398A6009398A6009398 + A6009398A6009398A6009398A6009398A6009398A600E6EBF900E6EBF9004F6E + D6003A4F99000000000000000000000000000000000000000000425CB3004F6D + D0002E52C8002949B300DCDBDA00F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F800DCDBDA00DCDBDA002949B300284D + C500526FD100425CB300000000000000000000000000455EB7007C96EA004D72 + F1002856EE001445E8000639E3000535D8000434D2000433CE004162D100596E + B700384A8E000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000425A + AE005271D9005676E1006583E800859EEF003B509D00042EBC000434D1000434 + D1000434D1000434D1000434D1000434D1000434D1000434D1000434D1000434 + D1004F70DF003C53A10000000000000000000000000000000000000000000000 + 00004F6FDB000432CD00FFFFFF00E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9004F6F + DB003D539F000000000000000000000000000000000000000000435DB400516F + D5003559CF003050BA00D8D7D600F3F4F800F3F4F800F3F4F800F3F4F800F3F4 + F800F3F4F800F3F4F800F3F4F800F3F4F700D8D7D600D8D7D6003050BA002F54 + CD005573D700435DB4000000000000000000000000004A62B600859DEE005176 + F1003C65EF002856EE001445E8000537DD000535D8000434D2000935C9004162 + D1005A6FB800859BE00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000445C + AF000432CA000432CA000432CA000432CA000432CA000535D9000537E1000537 + E1000537E1000537E1000537E1000537E1000537E1000537E1000537E1000537 + E1004F73EA00445CAF0000000000000000000000000000000000000000000000 + 00005073E5000536D900FFFFFF009398A8009398A8009398A8009398A8009398 + A8009398A8009398A8009398A8009398A8009398A800E6EBFB00E6EBFB005073 + E500425AAC000000000000000000000000000000000000000000455FB6005676 + E0004367DD003D5DC700DDDDDC00BABED100F3F3F700F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700F2F3F700DDDDDC00DDDDDC003D5DC7003C61 + DB005B7AE100455FB6000000000000000000000000005570CB00859BE6007C97 + F4006384F3005075F1003C65EF001445E8000639E3000537DD000434D2000433 + CE000935C9005A70B9003A4D910096A7E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004760 + B700063AE800073BE900073BE900073BE900073BE900073BE900073BE900073B + E900073BE900073BE900073BE900073BE900073BE900073BE900073BE900063A + E8005075EF004760B70000000000000000000000000000000000000000000000 + 00005174EA00093BE200FFFFFF00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EB + FC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC00E6EBFC005174 + EA00465FB20000000000000000000000000000000000000000004660B7005778 + E5004B6EE3004463CC00E1E1E000858FAF00DBDEE800F2F3F700F2F3F700F2F3 + F700F2F3F700F2F3F700F2F3F700DBDDE700E1E1E000E1E1E0004463CC004368 + E2005D7DE6004660B7000000000000000000000000008197E5007386CE0091A8 + F6007693F4006384F3005075F1002856EE001445E8000639E3000535D8000434 + D2000433CE004162D100979DB700888786000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004963 + BA000E41EC001042EC001143EC001143EC001143EC001143EC001143EC001143 + EC001143EC001143EC001143EC001143EC001143EC001143EC001143EC000E41 + EC005378F1004963BA0000000000000000000000000000000000000000000000 + 00005579EF001344E800FFFFFF00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7EC + FC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC00E7ECFC005579 + EF004962B90000000000000000000000000000000000000000004761B8005A7B + EA005376E9004A69D000E5E4E4007C86A700838BAC00B7BBCF00F5F6F900FEFE + FE00FEFEFE00E2E5EC00B6BACD008089A900E5E4E400E5E4E4004A69D000496E + E7006080EB004761B800000000000000000000000000000000004D66BE0094A5 + E300829DF5007794F4006384F3003C65EF002856EE001445E8000537DD000535 + D8000434D2008794C700C5C5C500B3B3B300B0B0B00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C65 + BC001F4FED002553EE002654EE002654EE002654EE002654EE002654EE002654 + EE002654EE002654EE002654EE002654EE002654EE002654EE002654EE001E4E + ED005A7DF2004C65BC0000000000000000000000000000000000000000000000 + 00005F81F2002856EE00FFFFFF00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD005F81 + F2004D66BD0000000000000000000000000000000000000000004963BA005E80 + F2006283F2005876DA00ECEBEB007780A2007780A1007780A100F1F2F600F1F2 + F600F1F2F600C1C6D500747E9F00737D9F00ECEBEB00ECEBEB005876DA00577B + F2006686F3004963BA00000000000000000000000000000000000000000090A4 + EA009AABE5009FB3F700849EF5006384F3005075F1003C65EF001445E8000639 + E3009BABE100CECECE00C4C4C400BBBBBB00B5B4B3008A898800B1B0B0000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BE002755EE00305CEE00325EEF00325EEF00325EEF00325EEF00325EEF00325E + EF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF00325EEF002755 + EE005E80F2004D66BE0000000000000000000000000000000000000000000000 + 00006485F300325EEF00FFFFFF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD006485 + F3004E67BF0000000000000000000000000000000000000000004A64BB006082 + F2006989F3005F7BDA00EFEFEE00747E9F00747E9F00737D9F00F1F2F600F1F2 + F600F1F2F600E8EAEF00717A9D00717A9D00EFEFEE00EFEFEE005F7BDA005E80 + F2006989F3004A64BB0000000000000000000000000000000000000000000000 + 0000556DC0009BABE5009FB3F7007794F4006384F3005075F1002856EE00A7B7 + ED00E7E7E700D7D7D700CECECE00C4C4C400C5C5C500B5B4B4008B8A89000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF00305CEE003B64EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66 + EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF003D66EF002F5B + EE006183F2004E68BF0000000000000000000000000000000000000000000000 + 00006989F3003D66EF00FFFFFF00989DAA00989DAA00989DAA00989DAA00989D + AA00989DAA00989DAA00989DAA00989DAA00989DAA00EBF0FD00EBF0FD006989 + F3004F68C00000000000000000000000000000000000000000004B65BC006384 + F300718FF4006580DB00F2F1F100717A9D00717A9D00717A9C00F1F2F600F1F2 + F600F1F2F600F1F2F5006F7899006F789900F2F1F100F2F1F1006580DB006485 + F3006C8BF3004B65BC0000000000000000000000000000000000000000000000 + 000091A4EB00566FC1009CADE600849EF5007794F4006384F300B7C6F400F5F5 + F500EFEFEF00E0E0E000D7D7D700CECECE00BBBBBB00C5C5C500B5B5B500B1B1 + B10000000000000000000000000000000000000000000000000000000000516A + C1004169F0005075F1005378F1005378F1005378F1005378F1005378F1005378 + F1005378F1005378F1005378F1005378F1005378F1005378F1005378F1004068 + F0006888F300516AC10000000000000000000000000000000000000000000000 + 00007391F4005277F100FFFFFF00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE007391 + F400516BC20000000000000000000000000000000000000000004D67BE006787 + F300809BF500728BDC00F7F7F6006C7697006B7597006B759600F0F1F500F0F1 + F500F0F1F500CDD1DC006972950069729400F7F7F600F7F7F600728BDC007290 + F400718FF4004D67BE0000000000000000000000000000000000000000000000 + 0000000000000000000091A5EB009DAEE6009FB3F700CCD5F300F8F8F800FAFA + FA00F9F9F900EFEFEF00E7E7E700E0E0E000CECECE00C4C4C400BBBBBB00B6B5 + B5008B8A8900000000000000000000000000000000000000000000000000526C + C3004A70F0005A7DF2005E80F2005E80F2005E80F2005E80F2005E80F2005E80 + F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F2005E80F200496F + F0006B8AF300526CC30000000000000000000000000000000000000000000000 + 00007794F4005C7FF200FFFFFF009DA1AC009DA1AC009DA1AC009DA1AC009DA1 + AC009DA1AC009DA1AC009DA1AC009DA1AC009DA1AC00EFF3FE00EFF3FE007794 + F400526CC30000000000000000000000000000000000000000004D67BF006989 + F30086A0F5007990DC00F9F9F900697295006972940068729400CDD0DC00F0F1 + F500F0F1F5006F77980067709100666F9100F9F9F900F9F9F9007990DC007894 + F4007491F4004D67BF0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C500D0D5E900F7F7F700F7F7F700F8F8 + F800FAFAFA00F5F5F500EFEFEF00E7E7E700D7D7D700CECECE00C4C4C400C7C7 + C700A6A6A500A9A9A9000000000000000000000000000000000000000000536D + C4005075F1006485F3006989F3006989F3006989F3006989F3006989F3006989 + F3006989F3006989F3006989F3006989F3006989F3006989F3006989F3005075 + F1006E8DF300536DC40000000000000000000000000000000000000000000000 + 00007C97F4006787F300FFFFFF00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE007C97 + F400536DC40000000000000000000000000000000000000000004E68C0006B8A + F3008DA5F6007F95DD00FBFAFA0067709100666F9100666F9100656E9100656E + 9100646E9000646E8F00636D8F00636D8F00FBFAFA00FBFAFA007F95DD007F9A + F5007794F4004E68C00000000000000000000000000000000000000000000000 + 0000000000000000000000000000A2B2EC00BAB9B800ECECEC00F6F6F600F7F7 + F700F8F8F800F9F9F900F5F5F500EFEFEF00E0E0E000D7D7D700CECECE00C3C3 + C300BFBFBE00908F8F000000000000000000000000000000000000000000566F + C600597CF2007290F4007D98F500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF5007D98F500587C + F200718FF400566FC60000000000000000000000000000000000000000000000 + 0000849EF5007C97F400FFFFFF00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00849E + F500556FC6000000000000000000000000000000000000000000506AC100708E + F4009CB1F7008D9FDE00FDFDFD00616A8D00606A8C00606A8C005F698B005F69 + 8B005F698A005F688A005E6789005E678900FDFDFD00FDFDFD008D9FDE008BA4 + F6007C97F400506AC10000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7B7B700ECECEC00F7F7 + F700F6F6F600F8F8F800FAFAFA00F9F9F900EFEFEF00E7E7E700E0E0E000CECE + CE00D3D3D3009B9A990000000000000000000000000000000000000000005770 + C700567AF2006D8CF3007B97F400839EF500839EF500849EF500859FF500859F + F500859FF500859FF500849EF500849EF500839EF500819BF5007A96F4005479 + F1006F8DF3005770C70000000000000000000000000000000000000000000000 + 000088A2F600829DF500FFFFFF0058595C0074757A00F3F6FE0058595C007475 + 7A00F3F6FE0058595C0074757A00F3F6FE0058595C0074757A00F3F6FE0088A2 + F6005670C7000000000000000000000000000000000000000000516BC2007290 + F400A4B7F80093A4DE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE00FEFEFE0093A4DE0091A8 + F6007F9AF500516BC20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BEBCBB00EDEC + EC00F7F7F700F7F7F700F8F8F800FAFAFA00F5F5F500EFEFEF00E7E7E700DADA + DA00DADAD9009C9A990000000000000000000000000000000000000000005871 + C8004A70F0005D80F2006989F3007290F4007491F4007491F4007491F4007491 + F4007491F4007491F4007491F4007491F4007290F4006F8DF3006888F300486F + F0006A8AF3005871C80000000000000000000000000000000000000000000000 + 000089A2F60086A0F500FFFFFF00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D + 7100F4F7FE00A5A4A2006C6D7100F4F7FE00A5A4A2006C6D7100F4F7FE0089A2 + F6005871C8000000000000000000000000000000000000000000526CC3007491 + F400ABBDF80099A9DE00E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5 + E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E500E5E5E50099A9DE0097AD + F700819BF500526CC30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B8B8B700BEBD + BC00EDECEC00F6F6F600F7F7F700F8F8F800F9F9F900F5F5F500EFEFEF00E6E6 + E600CFCFCE009F9E9E0000000000000000000000000000000000000000005B76 + D2005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D20000000000000000000000000000000000000000000000 + 00007D97EE0091A7F1009AAEF200191918007F8FC200A1B4F300191918007F8F + C200A1B4F300191918007F8FC200A1B4F300191918007D8DC2009AAEF2007D97 + EE005872C9000000000000000000000000000000000000000000546EC5007491 + F400B7C7F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8 + F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F900B9C8F90099AF + F700819BF500546EC50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8B8B800EBEAEA00F6F6F600F5F5F500F7F7F700F9F9F900F9F9F900CDCC + CB00A4A4A3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005F5F5F004F5E92005872C9005F5F5F004F5E + 92005872C9005F5F5F004F5E92005872C9005F5F5F004F5E92005872C9005872 + C9005B76D2000000000000000000000000000000000000000000556FC6006D8C + F300A6B9F800AFC0F900B1C1F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2 + F900B2C2F900B2C2F900B2C2F900B2C2F900B2C2F900B1C1F900ADBEF800849E + F5007894F400556FC60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000B6B4B300D7D5D500ECECEB00F6F6F600F8F8F700E6E5E500A7A6 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D2D1D0008080800000000000D2D1D0008080 + 800000000000D2D1D0008080800000000000D2D1D00080808000000000000000 + 00000000000000000000000000000000000000000000000000005670C7006382 + EA00849DEE00889FEE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0 + EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE008AA0EE00879FEE007B94 + ED006886EB005670C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000B2B1B100A8A6A600BCBAB900B3B1B000A7A6A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080009090900000000000808080009090 + 9000000000008080800090909000000000008080800090909000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DEDEDE006B80 + C20027335F0026335D002A386D00C3C3C300C3C3C300C4C4C400D1D1D100D5D5 + D500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C64B5004656 + 8A0098A5CE0098A4CD00828FB90031458A00DEE3F80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D1D1D100CFCFCF00C9C9C900C7C7C700C5C5 + C500C5C5C500C5C5C50091A1D70029386D00C5C5C500C8C8C800D3D3D3000000 + 00000000000000000000000000000000000000000000314792009BA8D200526D + C5002647B5002041B0001B3DAE00909ECB00293D7F0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F200364A91004F63 + A5008793BC00A7B0CF00D9DFF300D9DFF400D9DFF400D9DFF400D9DFF400D9DF + F400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400D9DFF400DADF + F200A5AECE003A4D930000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000029396C00526297008494C8000000000000000000000000000000 + 000000000000000000000000000000000000000000002E4285008FA0DB004A66 + C6003C5AC0003655BD003151BA00697FC9002B3E7C0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BAE007182BB005C77 + D3007B90D7006979B200A3ADCF00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CB + EE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C0CBEE00C4CE + EF00CFD7F200A3ADD00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008093D9005466A5004059AA008393C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A008296D9005D77 + D000516DCA004C68C8004764C6006079CC002D3F810000000000000000000000 + 00000000000000000000000000008196DC00293A7500293A740033478C000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E4696001F3376001F3376001F3376001F3376001F33 + 76001F3376001F3376001F3376001F3376001F3376002E469600000000000000 + 00000000000000000000000000000000000000000000354992008699DA004868 + D200607BD8008699DA005C6CA700B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4ED00B7C4 + ED00BCC8EE00CFD6EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B20036457A00324DAA00032597008494CC000000000000000000000000000000 + 000000000000000000000000000000000000000000006D83D4005669A80092A4 + E300788FDC00758DDB00768DDA004B69CD0032468B0000000000000000000000 + 0000000000008398DE00505F9800A4B1DD003E5BBD003957BB005F77C7005160 + 9400647CCB000000000000000000000000008E8C8A00BBB9B700BBB9B700BBB9 + B700BBB9B700BBB9B70029429500042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB7004F6ED70029429500BBB9B700BBB9 + B700BBB9B700BBB9B700BBB9B7008E8C8A00000000003B509D008EA3E9005D7B + E0005D7BE0008EA3E9003B509D00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7EE00A7B7 + EE00A7B7EE00C4CEF00000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000045569000546C + BD004762BF007186CE002B4BB6008496D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAE005468 + A90097A9E50092A5E5008399E1003C5ECD003448900000000000000000000000 + 0000000000003B53A2009EABD5005B75CC003252BE002D4EBB002748B70094A2 + D000364A8D0000000000000000000000000093918F00D8D8D700D8D8D700D8D8 + D700D8D8D700D8D8D7002F4AA4001942CD001D46CE001E46CE001E46CE001E46 + CE001E46CE001E46CE001E46CE001C45CE005474E1002F4AA400D8D8D700D8D8 + D700D8D8D700D8D8D700D8D8D70093918F00000000003D54A40095A9ED006885 + E6006885E60095A9ED003D54A400A5B6F000A5B6F0001442D9001442D9001442 + D9001442D9001442D9001442D9001442D9001442D9001442D9001442D900A5B6 + F000A5B6F000C3CEF10000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003C54A300516CC7004F6B + C8007184C600344581007184C6009BABE0000000000000000000B9C6F1002E42 + 8800B9C6F1000000000000000000000000000000000000000000000000006E86 + D700384E9A00384E99004264D4004062D200374B950000000000000000000000 + 00000000000034488D0094A5DF005470CD004765C8004260C6003C5BC200788C + D0003143840000000000000000000000000098969400F5F5F400F5F5F400F5F5 + F400F5F5F400F5F5F4003652B4003D63E300476BE300486CE400486CE400486C + E400486CE400486CE400486CE400466BE3005D7DEA003652B400F5F5F400F5F5 + F400F5F5F400F5F5F400F5F5F40098969400000000004058AB009EB1F200738E + EB00738EEB009EB1F2004058AB00A9BAF300A9BAF3001443DE001443DE001443 + DE001443DE001443DE001443DE001443DE001443DE001443DE001443DE00A9BA + F300A9BAF300C7D0F30000000000000000000000000000000000000000000000 + 0000CED7F60092A4E3006179C70033488F002D3C71005568AA004161CB007287 + CC00334687004A5EA40033468700A6B2DA0000000000BAC6F2002F4489004A5E + A4002F448900BAC6F20000000000000000000000000000000000000000000000 + 0000000000003D54A400486BDF004669DC003C529F0000000000000000000000 + 0000000000003D55A5008294D3007F95E0006D86DA006882D700647FD6006982 + D60035498E0000000000000000000000000099989600A3A19F00A3A19F00A3A1 + 9F00A3A19F00A3A19F003D5DC6007994ED0088A0EF00A6B7F200B5C4F500B5C4 + F500B5C4F500B3C2F400A2B4F200859EEF006382EB003D5DC600A3A19F00A3A1 + 9F00A3A19F00A3A19F00A3A19F0099989600000000004660B700B2C2F80094AB + F60094ABF600B2C2F8004660B700B0C0F800B0C0F80088A1F50088A1F50088A1 + F50088A1F500B0C0F80088A1F50088A1F50088A1F50088A1F50088A1F500B0C0 + F800B0C0F800CBD5F70000000000000000000000000000000000536BBE004C5F + 9F004A66C5003857C0002447BA007288D200344889004F6FDB004258A4004F67 + B9004A6BD800123DCC004A6BD8004F67B9003950A1004F67B9004A6BD800123D + CC004A6BD8004F67B90000000000000000000000000000000000000000000000 + 0000000000004058A9004B6EE3004A6DE1003E55A50000000000000000000000 + 0000000000006F85D7005A6DB00094A7E6008197E2007E95E0007E95E0005673 + D400384C93000000000000000000000000000000000000000000000000000000 + 000000000000000000004C6BD2003F5EC8003F5EC8003F5EC8003F5EC8003F5E + C8003F5EC8003F5EC8003F5EC8003F5EC8003F5EC8004C6BD200000000000000 + 000000000000000000000000000000000000000000004962B900BFCDFA00ACBD + F800ACBDF800BFCDFA004962B900B4C4F900B4C4F9001647EC001647EC001647 + EC001647EC00B4C4F9001647EC001647EC001647EC001647EC001647EC00B4C4 + F900B4C4F900CED8F800000000000000000000000000000000003A4F96005A74 + C900042FC000042FC000042FC000728ADB003A4F96005273E200485FAF00536E + C4004B6EE3000535D8001240DA004B6EE300536DC4004B6EE3001240DA001240 + DA004B6EE300536EC40000000000000000000000000000000000000000000000 + 000000000000435CAF004F72E8004D70E5004159AA0000000000000000000000 + 00000000000000000000465FB500586CB2009BADE80097A9E8008BA0E5004969 + D5003A5099000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003C59BC00708CEB006683E6005374 + E1004F70DE005070DA004F6ED700314A9A000000000000000000000000000000 + 000000000000000000000000000000000000000000004A63BB00CAD5FB00BFCD + FA00BECCFA00CAD5FB004A63BB00B7C7F900B7C7F9001849EC001849EC001849 + EC001849EC00B7C7F9001849EC001849EC001849EC001849EC001849EC00B7C7 + F900B7C7F900D0D9F800000000000000000000000000000000004056A3005071 + DE000433CF000433CF000433CF00728DE4004056A3005779E9007F96E3004962 + B7005772CF001344E7000539E6001344E700476DED001344E7000539E6004C71 + ED005772CF00455EB70000000000000000000000000000000000000000000000 + 0000000000004862B9005579F0005578EE00465FB50000000000000000000000 + 000000000000000000000000000000000000BFCDF8004159A7005474E1005272 + DF004056A3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000425FC3007893EE004C6EDE00355A + D6001C45CE00042FC0004F6FD900354DA0000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00D6DEF900DCE3 + F900DBE2F900D6DEF9004C66BD00C3D0FA00C5D1FA00305CEE00305CEE00305C + EE00305CEE00C5D1FA00305CEE00305CEE00305CEE00305CEE00305CEE00C5D1 + FA00C3D0FA00D6DEF900000000000000000000000000000000004A64BB006384 + F3004C72F1004C72F1004C72F10088A1F5004A64BB005E80F2003862EF005D80 + F2008CA2EC005E78D5005378F1001748EC001748EC001748EC005378F1004A64 + BE00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000004963BB00597CF200597CF2004963BA0000000000000000000000 + 00000000000000000000000000000000000000000000445CAD005878E5005676 + E3004259A9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004360C5006C88E700738DE4006E88 + E2006781DE005A77D9005976D6003750A3000000000000000000000000000000 + 00000000000000000000000000000000000000000000536ECA004D67BE004D67 + BE004D67BE004D67BE004D67BE00C9D5FB00CBD6FB003E67F0003E67F0003E67 + F0003E67F000CBD6FB003E67F0003E67F0003E67F0003E67F0003E67F000CBD6 + FB00C9D5FB00D9E0F900000000000000000000000000000000004B65BD006F8D + F3006F8DF3006F8DF3006F8DF30095ACF7004B65BD006283F200466DF0006888 + F30092A7EC006780D7006787F300315DEF00315DEF00315DEF006686F3004C66 + C000BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000004A64BC005D80F2005C7FF2004A64BC0000000000000000000000 + 000000000000000000000000000000000000000000004760B3005D7DEA005B7B + E800455DAF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F6DD3004360C500405DBC003F5A + B8003E58B4003B54AC003952A900435EB7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004F68BF00CFD9FB00D2DBFB004B71F1004B71F1004B71 + F1004B71F100D2DBFB00B1C1F900B1C1F900B1C1F900B1C1F900B1C1F900D2DB + FB00CFD9FB00DCE3F900000000000000000000000000000000004C66BE007995 + F40090A8F60090A8F60090A8F600A0B4F7004C66BE006586F3007391F40097AB + ED00536CC3007C97F400567AF2004C72F1004C72F1004C72F100567AF2006D85 + D9004E68C100BFCDF60000000000000000000000000000000000000000000000 + 0000000000004D67BE006485F3006485F3004D67BE0000000000000000000000 + 000000000000000000000000000000000000000000004C66BD006787F2006484 + F0004A63B9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200D9E1FC00DDE4FC006586F3006586F3006586 + F3006586F300DDE4FC006586F3006586F3006586F3006586F3006586F300DDE4 + FC00D9E1FC00E3E8FB00000000000000000000000000000000004E68C00089A0 + EC00AFC0F900B9C8F900B8C7F900ACBDF8004E68C0006C8BF3005E77CA006D86 + DA009CB1F700819BF50087A1F5009EB3F7007D93DE009DB2F70087A1F50088A2 + F60099AFF7006C85DA0000000000000000000000000000000000000000000000 + 0000000000004E68BF006888F3006E8DF3005B73C4004E68C100839AE700BFCD + F60000000000000000000000000000000000000000004E68BF006B8AF3006989 + F3004D67BE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000526CC300DEE5FC00E1E7FD00E2E8FD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E2E8FD00E1E7 + FD00DDE4FC00E4EAFB00000000000000000000000000000000006681DA00768C + D400B5C5F900B9C8F900B4C4F900A7B9F8004F69C100718FF4006179CC007189 + DC00ACBDF800A1B5F700AFC0F9008397DF00536EC7008297DF00AEBFF800A1B5 + F700AABCF8006F89DC0000000000000000000000000000000000000000000000 + 0000000000004F69C0006B8AF300849EF500B9C7F700A8B8ED00768AD1005C74 + C500536CC0007991E300AEBEF30000000000000000004F69C0006F8DF3006D8C + F3004F69C0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400E2E8FD00E6EBFD00CDD8FB00CDD8FB00CDD8 + FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00CDD8FB00E6EB + FD00E2E8FD00E6EBFB0000000000000000000000000000000000000000006881 + DB00657BC9007388D2008196DB008EA5F000506AC2008FA7F600ADBCF0005D76 + CA00879CE000B4C4F900879CE0005D76CA00C1CDF600556FC800869ADF00B3C3 + F900879BE000556FC80000000000000000000000000000000000000000000000 + 000000000000516BC2007290F400829CF500819BF500809BF5007E99F50089A2 + F6009BB0F700B4C4F900B7C7F900AEBEF200788ED600647BC8007C97F4007693 + F400516BC2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600E7ECFD00EBF0FD0096ACF70098AEF70098AE + F70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF70098AEF700EBF0 + FD00E7ECFD00EBEFFD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871CF00A8B9F600AABC + F800B6C3F100677FCE00AEBEF000B3C3F9000000000000000000C1CDF6005874 + CF00C1CDF6000000000000000000000000000000000000000000000000000000 + 000000000000526CC3007391F40087A1F50086A0F500859FF500839EF500829D + F500829CF5007F9AF50086A0F50099AFF700B9C8F900C2CFFA008CA5F6007A96 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005771C800E9EEFD00EDF1FE0095ACF7009EB3F7009FB3 + F7009FB3F700A0B4F700A0B4F7009FB3F7009FB3F7009EB3F7009BB0F700EDF1 + FE00E9EEFD00EDF1FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758BD200ACBC + F500A9BBF800C9D5FB0096ACF700A1B5F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4006384F30093AAF6008FA7F6008BA4F60089A2F60088A2 + F60087A1F500849EF500839EF500829DF500819BF50087A1F500839EF5007F9A + F500536DC4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DFDEDE00EFEE + EE00C9C8C7008C8A880000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C900EAEFFD00ECF0FE00EEF2FE00EFF3FE00EFF3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00ECF0 + FE00EAEFFD00EFF2FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006883DC00768B + D300A7B9F400849EF5007592F4009EB3F7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009FB1F0005D77CF005771C700637CCF007993E90086A0 + F40095ACF70097ADF70092A9F6008FA7F6008DA5F6008BA4F6008AA3F60086A0 + F500556FC6000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009E9C9A009997 + 9500959391008B89870000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005B76D2005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A7ED009DAFEE0086A0F50094ABF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3DBF90093A7ED005874CD005C75 + C900647ED300879EEB008EA6F60099AFF70099AFF70094ABF60090A8F6008AA3 + F6005670C7000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D76CA0096A8E7008DA5F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CED8 + F800859CE9005771C9006179CC006680D60092A8F00097ADF7009EB3F70089A2 + F6005771C8000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005B74CB008FA2E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF3007C93E4005771 + C8005771C9000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C2008FA0D5003A4A + 7A003A4A7A00C0C0C000C1C1C100C7C7C700D5D5D500DCDCDC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C7C7C700C0C0C0006679B80027325B0027325B0027325B0027325B002732 + 5B0027325B0027325B0027325B0027325B0027325B00273462007385C800C7C7 + C700D6D6D6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000003A4B82004B5B + 94004B5A9300B2BFEE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002A3A750003279E0003279E0003279E0003279E000327 + 9E0003279E0003279E0003279E0003279E0003279E00435DB6003F58B0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D4D4D400C5C5C50030428100273567002735670027356700273567002735 + 670027356700273567002735670027356700273567002F428100D1D1D1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8C6F2003D4E8E003F59B2000F30 + 9F000F309F004B5E9F003D4E8E00B8C6F2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D3D7A00092DA5006077C400768ACC00092DA5006077 + C40096A6D800092DA5006077C4008A9BD4000328A300435EBA004059B1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002D4188008895C1008895C1008895C1008895C1008895 + C1008895C1008895C1008895C1008795C1006474A9002D438D00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C8F2003D5091004C5FA1000F31A3000327 + 9F0003279F003F5AB6004C5FA1003D5091000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002E407F00092EAA008C9DD700B5C0E600092EAA008C9D + D700C5CEEB00092EAA008C9DD700BDC7E800042AA900425EBD00415AB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC6F200283C8200283C8200283C8200283C8200283C + 8200283C8200283C8200283C8200283C82002E479500BAC6F200000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DEDEDE00DEDEDE00CECECE00CECECE00C7C7C700C0C0C000C0C0 + C000C0C0C000C0C0C000C0C0C00092A2D700394B8A0093A2D800C0C0C000DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003F5193004C61A500435EBB000328A3000328 + A3000328A3000F32A800435EBB004C61A500BBC8F20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000334688000A31B5006E85D30091A2DD000A31B500607A + CF0098A8E0000A31B500607ACF0091A2DD00042CB4004361C700435CB4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002B408A00283C7E00283C7E00283C + 7E00283C7E00283C7E00283C7E002B408A000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007F92D8003E4C7E0093A5E4000000 + 000000000000BDC9F300374E9D004F68BC004A6FE800657ECF00455FBB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004153940041539400415394001338B100042A + AB00042AAB004360C1004153940041539400465CA90000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000035498E000A33BB0091A3E000B5C1EA000A33BB008C9F + DF00BDC8ED000A33BB008C9FDF00CDD5F100042EB9004362CA00445DB5000000 + 0000000000000000000000000000000000003A53A7002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E002D438E002D438E002D438E002D438E002D43 + 8E002D438E002D438E002D438E003A53A7000000000000000000000000000000 + 0000000000000000000000000000000000002E4185005467A7005068BB000000 + 0000000000003950A000506ABE004A6EE5006C8BF1007389D4004661BC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425596001439B500042B + B000042BB0004361C40042559600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000384B9300042FBF00042FBF00042FBF00042FBF00042F + BF00042FBF00042FBF00042FBF00042FBF00042FBF004363CF00455EB6000000 + 0000000000000000000000000000000000002F44910094A7E90099ABEA009BAD + EA009BADEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA009BAD + EA009AACEA0099ABEA008CA1E7002F4491000000000000000000000000000000 + 00000000000000000000000000008296DB0043528900516BBE00384C95000000 + 0000BDC9F400516BC1004A6EE600204EE800738AD500435DB600BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D64B7004F65B20000000000000000000000000043569900143ABA00042D + B500042DB5004361C700435699000000000000000000000000004960AF00BAC9 + F300000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003C529D000A36CA008CA1E600B5C3EF000A36CA008CA1 + E600B8C5EF000A36CA008CA1E600C1CCF2000432CA004365D7004760B8000000 + 00000000000000000000000000000000000032499900617EE100708AE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400718BE400718BE400718BE400718BE400718BE400718BE400718B + E400718BE400708AE4009CAEEC00324999000000000000000000000000000000 + 0000000000000000000000000000475994004D69C7000932BD00556DBD003E54 + A400556EC700204FEB006C8BF300758BD700BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + B5004665CC004559A0000000000000000000000000004559A0001C42C3000D36 + BF000D36BF004766CF004559A0000000000000000000000000004559A0005067 + B700445AA300BCCAF40000000000000000000000000000000000000000000000 + 000000000000000000003F55A2000735D0000735D0000735D0000735D0000735 + D0000735D0000735D0000735D0000735D0000735D0004467DB004862B9000000 + 000000000000000000000000000000000000334B9D005D7BE1006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3006683E3006683E3006683E3006683E3006683E3006683 + E3006683E3006683E3009BAEED00334B9D000000000000000000000000000000 + 0000000000000000000000000000566AB2003356CB000431C6005D78D7005570 + C9004C71ED006C8BF300758CD7004761BA000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C63B6005B70 + B6004969D300465AA300465AA300465AA300465AA300465AA300284DCA001A42 + C7001A42C7004D6CD300465AA300465AA300465AA300465AA300465AA3004666 + D200536ABB00445CA70000000000000000000000000000000000000000000000 + 000000000000000000004259A800103ED700A0B2EF00A0B2EF00103ED700A0B2 + EF00A0B2EF00103ED700A0B2EF00A0B2EF00103ED700486BE0004963BA000000 + 000000000000000000000000000000000000354DA1005474E1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7AE1005B7A + E1005B7AE1005B7AE10099ACEE00354DA1000000000000000000000000000000 + 00000000000000000000A8B7ED005470CF000E3ACC000434D1004268E800476D + ED002050ED00778CD8004862BC00BFCCF5000000000000000000000000000000 + 000000000000000000000000000000000000000000004D65B8005E72BA00516F + D5005472D8005C77D1005974D1005974D1005A74D1005C77D1002A50CF00274D + CD00274DCD005876D9005D78D1005A74D1005974D1005974D1005B75D100284E + CE004D6DD700556DBE00BDC9F400000000000000000000000000000000000000 + 000000000000000000004760B3005B668B008895BE008996BF008B98C1008C99 + C2008D9AC3008F9CC500909DC600919EC7008B9ACB005073E9004B65BC000000 + 0000000000000000000000000000000000003952A9004065E000466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE100466AE100466AE100466AE100466AE100466AE100466A + E100466AE100466AE10093A8EE003952A9000000000000000000000000000000 + 000000000000AAB9EF004D61A5000D3CD7000537DE000539E600053AEB000C3F + EC005579F1006B85D8005F76C6004B65BE009DB0EE0000000000000000000000 + 0000000000000000000000000000000000004B63B7005574DC003A5FD9003C61 + D9004064DB003F63DB003F63DB003F63DB003F63DB003F63DB004064DB004064 + DB004064DB004064DB004064DB003F63DB003F63DB003F63DB003F63DB003F63 + DB003B60D900395ED900556FC3004B63B7000000000000000000000000000000 + 000000000000000000004A62B70039456E0054659F005566A0005869A300596A + A4005B6CA6005D6EA8005F70AA006071AB00919DC6005477ED004C66BD000000 + 0000000000000000000000000000000000003B55AC00385FE0003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62E1003C62 + E1003C62E1003C62E10091A7EF003B55AC000000000000000000000000000000 + 0000000000005E77CC005971C5000537E1000539E800053AEB001244EC002654 + EE003B64EF007B97F40086A0F500839BEB006A80CB00526DCA00000000000000 + 0000000000000000000000000000000000004D65BA005777E2004266DE00486B + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6EDF004C6E + DF00486BDF004266DE005770C7004D65BA000000000000000000000000000000 + 000000000000000000004C66BD0036426A0051629B0052639C0054659E005667 + A0005768A1005A6BA4005B6CA5005C6DA6008E9AC200597CF1004D67BE000000 + 0000000000000000000000000000000000003C56AE002E56DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE003259DE003259DE003259DE003259DE003259DE003259 + DE003259DE003259DE008EA4EE003C56AE000000000000000000000000000000 + 0000D1DAF8004D62AE005B79DF00053AEA00053AEB00093DEB002E5AEE00426A + F000567AF200809BF50093AAF600AEBFF8007287CE00546ECB00000000000000 + 000000000000000000000000000000000000BFCBF5005C76CB006381E7005274 + E3005778E5005475E4005274E3005274E3005374E3005677E5005979E5005979 + E5005979E5005979E5005677E4005374E3005274E3005274E3005475E4005576 + E4005374E3006381E7004A63B600BFCBF5000000000000000000000000000000 + 000000000000000000004F69C000333E63004A5A8F004B5B90004E5E93005060 + 9500516196005464990055659A0056669B008A95BB006283F2004F69C0000000 + 0000000000000000000000000000000000003D57AF001C47D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49D8001E49 + D8001E49D8001E49D80089A0EB003D57AF000000000000000000000000000000 + 0000546BBC005C7CE8001849EC001446EC002856EE003D66EF006D8CF3009BB0 + F700BDCBF9007487CE00536EC90091A5EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCCF5004D66BC005C77 + D0005F7FEC004C65B8004C65B8004C65B8004C65B8004C65B8007792EE00738F + EE00738FEE007994EF004C65B8004C65B8004C65B8004C65B8004C65B8005E7F + EC005C77D0004D66BC0000000000000000000000000000000000000000000000 + 00000000000000000000506AC100313C5F004857890049588A004C5B8D004D5C + 8E004F5E90005160920053629400546395008994B7006686F300506AC1000000 + 0000000000000000000000000000000000003E58B0001340D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D5001441D5001441D5001441D5001441D5001441D5001441 + D5001441D5001441D500869DE9003E58B0000000000000000000000000000000 + 0000647DD4003D66EF000A3EEB002F5BEE00446BF0006888F300BAC8F800A2B1 + E6006E83CD009FB1EF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCCF5004D66 + BF004F74ED004D66BB000000000000000000000000004D66BB007F9AF1007E99 + F1007E99F1007893F0004D66BB000000000000000000000000004D66BB005A76 + D2004D66BF00BFCCF50000000000000000000000000000000000000000000000 + 00000000000000000000516BC2002F395A004554840046558500485787004A59 + 89004B5A8A004E5D8D004F5E8E00516090008690B2006A8AF300516BC2000000 + 0000000000000000000000000000000000003F59B1000B39D3000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39D2000B39 + D2000B39D2000B39D200839AE8003F59B1000000000000000000000000000000 + 00006280E8002654EE002251ED005C7FF20094ABF600B7C6F6006E84CE005C77 + D400AEBEF3000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005673D5004E68BF000000000000000000000000004E68BF0089A2F5008BA4 + F5008BA4F5007C97F4004E68BF000000000000000000000000004E68BF004E68 + C100BFCDF6000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC4002B3452003F4C7700414E790043507B004451 + 7C0046537E00485580004A5782004B588300838CAB007391F400546DC4000000 + 000000000000000000000000000000000000415BB2000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE000433CE000433CE000433CE000433CE000433CE000433 + CE000433CE000433CE008299E600415BB2000000000000000000000000005972 + CA006183F2008FA7F600AABAF100637BCC006B84DD00D3DBF900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC1009FB3F700A4B7 + F800A4B7F80086A0F500506AC100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC50029314E003C4870003E4A7200404C7400424E + 7600434F770046527A0047537B0049557D008189A6007794F400556EC5000000 + 000000000000000000000000000000000000415BB3000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB000432CB008198E400415BB30000000000000000007C93E6007A8F + D700A2B4EF008699DA005C75CC00D3DBF9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC200516BC200516BC200ADBEF800B1C1 + F900B1C1F90091A8F600516BC200516BC2005973CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600272F49003B466C003B466C003E496F003F4A + 7000414C7200434E740045507600465177007E86A1007B97F400566FC6000000 + 000000000000000000000000000000000000425CB4000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9000432C9000432C9000432C9000432C9000432C9000432 + C9000432C9000432C9008198E300425CB40000000000000000005872CA009BAC + E7005C75CC007C93E60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000627CD2005F7FEA00748FEC00B7C7F900BDCB + FA00BDCBFA00A7B9F8007E98ED006080EA00546FCA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005871C800242B4400343D5C0038426200384262003943 + 63003B4565003D4767003F496900404A6A00787F99007E99F5005871C8000000 + 000000000000000000000000000000000000445EB5000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4000430C4000430C4000430C4000430C4000430C4000430 + C4000430C4000430C4008197E200445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF600536DC6006781DA00AEBFF800C2CF + FA00C3D0FA0094ABF6006E87DB00536DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872C90027304F00262D4400282E4400292F4500292F + 4500292F4500292F4500292F4500292F4500515870007794F4005872C9000000 + 000000000000000000000000000000000000445EB500889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889BDB00889B + DB00889BDB00889BDB00889BDB00445EB5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCDF600536EC70094ABF6009FB3 + F700A0B4F700718ADD00536EC700BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005872CA00879FF0008FA6F00093A9F20095AAF20095AA + F20095AAF20095AAF20094AAF20092A8F200849DF0007A93E7005872CA000000 + 0000000000000000000000000000000000004C67C400445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB500445EB500445EB500445EB500445EB500445E + B500445EB500445EB500445EB5004C67C4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1CDF6006F88DC00829C + F500829CF500556FC700C1CDF600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005874 + CF005874CF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D3D3D300C0C0 + C0004153940034458000344580009FADDD00C0C0C000C0C0C000C0C0C000C0C0 + C000C0C0C000C0C0C000CBCBCB00CECECE00CECECE00DADADA00DEDEDE00DEDE + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B8C5 + F1002338820014309000143090002F407C00A8B8E80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BECCF4003D56AA003A57 + BC008CA2EB008695CC008695CC002650DD003A57BC003D56AA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C400C1C1 + C1003E5194003E5194003E5194003E5194003E5194003E5194003E5194003D50 + 92003B4D8B003647800034447C00324177002C3B6C002A38670029366200B1BC + E500C4C4C400DDDDDD00000000000000000000000000D3D3D3005F5D5E005E5C + 5C0037363800B9B9B90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435BB5004967CD003761 + EE008A9AD4004964C1004964C10095ABF5003761EE004967CD00BECCF5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000637A + CC0091A4E50095A9EC0095A9ED0091A6ED008EA4ED008BA2ED00849CEB008199 + E9007E96E400788FDB00758CD7007187D1006A7FC500687CC0006F7FB700455A + A30000000000000000000000000000000000000000007B7979008D8B8A007D7B + 7A006462620039383900CFCFCF00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC9004068F00097AC + F5004A65C20000000000000000008E9DD6009EB2F600476EF000455DB700BECC + F500000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000405A + B4008CA5F60089A2F60089A2F6007C97F4007391F4006989F300567AF2004C71 + ED004469E6003157D600274DCD001D43C3000A2FAE000328A3003652AF002636 + 6A000000000000000000000000000000000000000000858383009E9B9A00A19F + 9E00676564006462620039383900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A5B6EF006283F200697F + CC00000000000000000000000000000000004C67C30095A4D9006888F3006E86 + D8004861BA000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435D + B500A3B6F800ACBDF800A2B6F8008DA5F600829DF5007894F4006283F2005679 + EE004B6FE700365BD7002C51CE002146C4000B30AE000328A30003269B002838 + 6D00000000000000000000000000000000000000000000000000D3D3D3008583 + 8200A19F9E007D7B7A006765640039383900CFCFCF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000687AB8007084C600566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566EBC00566E + BC00566EBC007084C6002333670000000000000000009AAADC00A6B9F8007591 + F1004D67C4000000000000000000000000009BAFEC004159B200B2C2F8007391 + F4006F85D0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455F + B700A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A39 + 6D0000000000000000000000000000000000000000000000000000000000D3D3 + D3009E9B9A00A19F9E007D7B7A006462620039383900CFCFCF00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004259A600344FA700405C + BB001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3FAF001D3F + AF003956B900344FA70027366E0000000000000000004F67BD00B9C4EA00B1C1 + F9006F85CF004E69C50000000000465EB6006177C1005266B10095A3D300839E + F50099ACEC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004761 + B800A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F4006283F2000000 + 0000829BEF00365BD7002C51CE002146C4000B30AE000328A30003269B002A3A + 6F00000000000000000000000000000000000000000000000000000000000000 + 0000858382009E9B9A00A19F9E00676564006462620039383900000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425CB300032491003550 + AB001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3F + B2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2001C3FB2003251 + BA003550AB000324910029397200000000000000000000000000BFCCF5005169 + BF00C5D1FA00A5B7F6007D91D3007A8DCB00A5B8F7006485F3005872C5004357 + 9F008796CD000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004B65 + BC00A9BBF800ADBEF800A2B6F8008DA5F600829DF5007894F40013192E000000 + 0000171C2C00365BD7002C51CE002146C4000B30AE000328A30003269B002D3D + 7100000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D30085838200A19F9E007D7B7A006765640039383900CFCF + CF00000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000435EBB000429A5000429 + A500324FB0002C4DBC00163BB500163BB500163BB500163BB500163BB5001235 + A8001235A800163BB500163BB500163BB500163BB500163BB5002C4DBC000327 + 9E000429A5000429A5002E3F7D0000000000000000000000000000000000BFCC + F500C4CCEC00C8D4FB00A9BBF700425DB90097A7DD00A4B7F8005E80F1005A73 + C7003B519C000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00A8BAF800ADBEF800A2B6F8008DA5F600829DF5007894F4001F1F1F000C0C + 0C001F1F1F00365BD7002C51CE002146C4000B30AE000328A30003269B002F3E + 7200000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D3009E9B9A00A19F9E007D7B7A00646262003938 + 3900CFCFCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000425FBF00042AAA00042A + AA000328A400304EB200294CBE001338B7001338B7001338B7001136AF000E2F + 9E000E2F9E001338B7001338B7001338B7001338B700294CBE00304EB200042A + AA00042AAA00042AAA0030428200000000000000000000000000000000000000 + 0000536BC100C4CCEC00C8D4FB008E9ED8004F67BA0098A7DE006485F3005E80 + F1005B74C800BCC8F30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F69 + C000A5B8F800ACBDF800A2B6F8008DA5F600829DF5007894F4003C4257003333 + 330041465600365BD7002C51CE002146C4000B30AE000328A30003269B002F3F + 7400000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000858382009E9B9A00A19F9E00676564006462 + 6200393839000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004361C400052CB000062D + B100062DB100052BAC00304FB6001138B9001138B9001138B9000F31A3008598 + D8008598D8000E33B1001138B9001138B900264AC0002F4EB600042AAB00042B + B000042BB000042BB00033468700000000000000000000000000000000000000 + 000000000000BFCCF500556DC300D5DCF600D5DCF6008E9DD6009AA9E000A4B7 + F8006485F3005D76CA0040549E002D44910019379D002D438F00374B90000000 + 000000000000000000000000000000000000000000000000000000000000536D + C60090A8F6009AAFF7009DB2F7008FA7F60086A0F5007E99F5006C8BF3006383 + F000597AE9004769DA003E60D2003457C9002244B6001C3DAC003652AF003141 + 7600000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D30085838200A19F9E007D7B + 7A005A585700373A4600354A9200425BB3000000000000000000A6B6EC002C3F + 820000000000000000000000000000000000000000004967CD001A40C0002045 + C2002247C3002146C3002146C3003F5DC300284CC3001A3DB1007791E5004C6D + DC004B6CDB008C9EDD00183BAF003052C4001C41BF001D43C2001C42C2001C42 + C200193FC000133ABF00384C9200000000000000000000000000000000000000 + 00000000000000000000D2DBF8005873CE005873CE00657FD9004E68C1009AAA + E200A4B7F8005E80F1005E77CB003E55A3006A84D8000D37C2002846AA00BDC9 + F40000000000000000000000000000000000000000000000000000000000718A + E1008CA3EE0093A8F00096ABF00093A8F00091A7F1008FA5F00089A1EF00879F + ED00849BE8007E94DF007B91DA00788DD4007286C9007083C5007283BE004F66 + B400000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D3009E9B9A008D8C + 8A00646262009E9D9D0034343C0052629D00899DE3006B82D2003B4D8D003A49 + 8000CED7F600000000000000000000000000000000004C6BD200254AC8002D52 + CA002F53CB002F53CB002F53CB00294DC5003B57B70091A3E0005878E1005777 + E0005777E0007993E70091A3E0003855B6002B50CA002B50CA002B50CA002A4F + CA00264BC9001C43C6003A509700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600506A + C3009BABE2006485F3005E80F1005F78CC008C9CD100839BE9001543DA00475F + B300BFCCF5000000000000000000000000000000000000000000000000000000 + 00005771C800888C9C0094939200888C9C005771C8005771C8005771C800556E + C400516ABD004B62AE00485EA7006D717D006C6B6B005E616D003A4A83000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000858382008885 + 8500BBBAB900BBB9B7009E9D9D0032343D00485CA6004A5EA500556FC5004354 + 8E00A5B6EB00000000000000000000000000000000004E6DD6002F54CF003B5E + D2003F61D3003F61D3003E61D300274ABC0096A7E200849CEA006482E5006381 + E5006381E5006381E500839BEA0095A7E2003457CD003A5DD200395CD200395C + D2003257D000254CCD003D529D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000006F89 + DF00516DCC009EADE400A4B7F8006485F3006C80C5004E67BF0093A3DD003761 + EF005270D600516AC30000000000000000000000000000000000000000000000 + 00000000000080808000C6C6C600808080000000000000000000000000000000 + 0000000000000000000000000000808080004646460080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C3CE + F20083838700F0F0F000CCCBCA00BBB9B70032343D002347BF000534D400556C + B6003B4D8F004057A8000000000000000000000000005575E0004669DD005877 + E0005D7BE1005373DE003759CA0098ACF0007B95EC007B95EC007B95EC007B95 + EC007B95EC007A95EC007A95EC007A95EC009EAEE7003457C9004E6FDD005777 + E0004B6DDD00375CDA00435AA700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B75 + D2006B87E6005A72C800A0AFE500AEBFF8007F93D7009FB1EF005671CD009FB3 + F600496FF0005E7AD900BFCDF600000000000000000000000000000000000000 + 00000000000080808000CBCBCB00808080000000000000000000000000000000 + 0000000000000000000000000000808080004C4C4C0080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004660 + B9006A7CBD00CFCECE00F0F0F000CCCBCA009E9D9D002B3049000537DE004668 + D7005772CC00576CB300475EAE0000000000000000005878E4005072E2006683 + E6006885E5004162CF00A3B3E900879FEF00879FEF00879FEF00879FEF00869E + EF00869EEF00869EEF00859EEF00869FF0009EB1F200A1B1E8003E5FCE006683 + E6005979E4003F64DF00465DAE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005B76 + D3009AACED006C85D8005770C7008598D9005872CA0000000000000000009AA8 + DF00A8BAF700597CF200526BC400000000000000000000000000000000000000 + 00000000000080808000D0D0D0007F7F7F000000000000000000000000000000 + 0000000000000000000000000000888888005050500080808000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004E69 + C6006A80CE0088888B00CFCECE00F0F0F00093919000383D55000539E8000534 + D4002F54D3005470CE005D74C60000000000000000005A7BE800597AE700728D + EA004D6DD700A4B4EA00ACBDF60093A9F20093A9F20093A9F20092A8F20092A8 + F20092A8F20091A7F20091A7F20091A7F20091A7F2009DB1F300A3B3EB00718D + EA006482E800476CE5004961B300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005972C800A9BBF8007995F2007389D6000000000000000000000000000000 + 00005872CF009AAAE3008FA4EB005C77D4000000000000000000000000000000 + 00000000000080808000D4D4D40082828200C6C6C60000000000000000000000 + 00000000000000000000C6C6C600969696006060600086868600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008FA1E00099AAE300848692004A6AD700305CEE001E4EED004B70 + EE005E77CB004A63BB000000000000000000000000005C7EEE006383F0005273 + E000B4C4F800ADBEF700ACBDF700ACBDF700ACBDF700ABBCF700ABBCF700ABBC + F700ABBCF700AABCF700AABCF700AABCF700A9BBF700A9BBF700A9BBF700A9B9 + EE00486BDF004D72ED004F68BE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C1CDF600BDC8EE00B4C4F90089A2F4005973CF0000000000000000000000 + 00005973CF00899DDE00B1C0F1005D78D5000000000000000000000000000000 + 00000000000090909000C0C0C0008B8B8B008A8A8A0000000000000000000000 + 000000000000000000008A8A8A00B1B1B1006A6A6A0096969600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A1B1EB009AAFF7007995F4005479F100436BF000305CEE003B64 + EF00617CD8004F69C4000000000000000000000000005C7FF200466BE500A6B6 + EF00ADBEF800AFC0F900B0C0F900B0C0F900B0C0F900B0C0F900B0C0F900AFC0 + F900AFC0F900AFC0F900AFC0F900AEBFF800ADBEF800ADBEF800ABBDF800AABC + F800A0B2ED003A61E400526CC300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005D74CA00C4CDEF00BECCFA008297DB005974CF00000000005974 + CF008297DB009CB0F5009DACE100718AE2000000000000000000000000000000 + 000000000000B0B0B000A4A4A400ADADAD008A8A8A0086868600000000000000 + 000000000000868686008F8F8F00A4A4A40076767600BBBBBB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009FB0EF00B0C0F700ACBDF8009BB0F7006787F3005479F1005E80F200486F + F0005A7CED00566EC1000000000000000000000000005578EB0098ACEE0095AC + F7009AAFF7009DB2F7009EB3F7009EB3F7009FB3F7009EB3F7009EB3F7009EB3 + F7009EB3F7009EB3F7009DB2F7009DB2F7009CB1F7009BB0F70099AFF7008EA6 + F6008BA4F60092A7ED00546EC500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF6005F76CC00C8D4FB00A9BBF7009BACE400A9BB + F700C8D4FB00C7D0F000C1CDF600000000000000000000000000000000000000 + 00000000000000000000D3D3D300D6D6D600DFDFDF00CECECE00ADADAD009C9C + 9C0097979700BBBBBB00C0C0C000B4B4B400D3D3D30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000839AE8005B76D3005B76D300536FCA009EB3F70093AAF6007086D1005B76 + D3005B76D3005B76D300000000000000000000000000617ACC005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C7005670C7005670C7005670C7005670C7005670 + C7005670C7005670C7005670C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF600C7D0F000CED8FB00B7C7F900CED8 + FB00C7D0F0005F76CD0000000000000000000000000000000000000000000000 + 000000000000000000000000000080808000B3B3B300E1E1E100F3F3F300EEEE + EE00E8E8E800CBCBCB00A6A6A600808080000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AEBEF30095AAF200889EE600566FC8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005D75CC00A1B0E200CED7F400A1B0 + E2005D75CC00C1CDF60000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B0B0B0008A8A8A00808080008080 + 8000808080008A8A8A00B0B0B000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007289D700637BCE0092A7EC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F00027377300000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7C5F1002B3E7C004E5E9400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0026366D0026366D0026366D0026366D002636 + 6D0026366D0026366D0026366D0031458D0000000000354A88002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D70002E3D + 70002E3D70002E3D7000D2D2D200000000000000000000000000000000000000 + 00000000000000000000000000002E4282004B5D9F004961B100000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000003269B000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A90000D2A + 90000D2A90000D2A90000D2A9000293973000000000030438600E6EAF700E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9F600E5E9 + F600E5E9F600E5E9F60000000000000000000000000000000000000000000000 + 000000000000BAC7F200354990003F5EC4001E42BA004A65BD00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F80000000000000000000429A8002E3F7E000000 + 00004F70DE004F70DE004F70DE004F70DE004F70DE0039509D00354A9100506E + D400506ED400506ED400506ED400506ED400000000003A51A1005475E2005979 + E3005979E3005878E3003A51A1000000000000000000354A9200E5EAF8004364 + D2000430C2000430C2003659CE000430C2000430C2000430C2000430C2000430 + C2000430C2003659CE000430C2000430C2000430C2003659CE000430C2000430 + C2004364D200E5EAF80000000000000000000000000000000000000000000000 + 0000BCC8F300384D97004F66B1001038BF00143BBF004C67C400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF00000000000000000000000000082EAE00314284000000 + 00005073E8000537DE000537DE000537DE005073E8003E55A900394F9B004F6F + DB000432CD000432CD000432CD004F6FDB00000000004058AF005F80EF002A56 + E9002A56E9002855E9004058AF000000000000000000384E9800E5EAF9004162 + D1000432C9000432C900365BD3000432C9000432C9000432C9000432C9000432 + C9000432C900365BD3000432C9000432C9000432C900365BD3000432C9000432 + C9004365D600E5EAF90000000000000000000000000000000000000000000000 + 00003A519D005169B8003E60D1000430C300143DC7004D6AC900374C9500374C + 9500374C9500374C9500374C9500374C9500374C9500374C9500374C9500374C + 9500374C9500374C95004259AC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F8000000000000000000000000001137B800334689000000 + 00004F74EF00053AE900053AE900053AE9004F74EF00425CB2003D55A5005072 + E3000535D8000535D8000535D8005072E30000000000435CB4006A8AF300426A + F000426AF0003F68F000435CB40000000000000000003B519F00DADFED004A64 + B9000937D0000A38D0003B60D9000A38D0000A38D0000A38D0000A38D0000A38 + D0000A38D0003B60D9000A38D0000A38D0000A38D0003A5FD9000A38D0000836 + D0004467DB00E6EBFA0000000000000000000000000000000000BECCF5004159 + AB003E63DE00103ED7000535D5000535D5000838D5001441D8001441D8001441 + D8001441D8001441D8001441D8001441D8001441D8001441D8001441D8001441 + D8001441D8001F4AD9003E55A500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000002248C800384D95000000 + 00005B7EF2001D4DED001D4DED001D4DED005B7EF200455FB600455FB6005075 + F100053AEB00053AEB00053AEB005075F10000000000455FB6007592F4006686 + F3006686F300597CF200455FB60000000000000000004159AB00E5EAFB007E98 + ED003958C0001D48D700496DE5001D49DA001A41C3002F4FBA00B8C4EB003B5B + C6001D49DC00496DE5001E4BDF001E4BDF001E4BDF00496DE5001D4ADF001543 + DE00496DE500E5EAFB00000000000000000000000000BECCF500455EB2005871 + CB001141DF000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DD000738DD000738DD000738DD000738DD000738DD000738DD000738 + DD000738DE001544DF004259AD00000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000002B51D0003C519B000000 + 00006485F300305CEE00315DEF00305CEE006485F3004760B7004760B7005075 + F100053AEB00053AEB00053AEB005075F100000000004760B7007590EC008BA2 + EE008BA2EE00849DEE004760B7000000000000000000445DB100E6EBFC004A6F + EA00C7D1F2004260C6004868D3003656BF008FA1DE00D4DCF90089A1F200B0BD + E8002D52CC005074EB002854E6002854E6002854E6005074EB002854E6001C4A + E5004B70EA00E6EBFC000000000000000000000000004962BA005C77D2004A6F + ED001C4BE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4CE8001D4C + E8001C4BE8002653E900455EB50000000000000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 000000000000000000000000000000000000000000003459D7003E54A1000000 + 00006C8BF300446BF000456CF000446BF0006D8CF3004861B9004861B9005075 + F100053AEB00053AEB00053AEB005075F100000000005069C7004861B9004861 + B9004861B9004861B9005069C70000000000000000004761B700E6ECFD004D72 + EF006D8BF100CAD4F40090A1DA00D5DDFA0099AEF600476DEE00325DED00ADBE + F70092A3DD00577AF000325DED00325DED00325DED00577AF000325DED002351 + EB004E73EF00E6ECFD000000000000000000000000005E79D600577BF200466D + F0005479F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005579F1005579F1005579F1005579F1005579F1005579F1005579F1005579 + F1005479F1005176F1004A64BB0000000000000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000004368E300445CAD000000 + 00007D98F5006989F3006D8CF3006A8AF3007D98F5004A64BB004A64BB005176 + F100083CEB00083CEB00083CEB005176F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004B65BC00E6ECFD007290 + F4006283F2006586F3006586F3006586F3006586F3006586F3006586F3006586 + F3008CA5F600667FD2006586F3006586F300607FE6005874D1005975D400577B + F2007592F400E6ECFD000000000000000000000000004E67C0006681D9006A8A + F3006E8DF300718FF400718FF400718FF400718FF400718FF400718FF400718F + F400718FF400718FF400718FF400718FF400718FF400718FF400718FF400718F + F4006F8DF3006586F3004B65BC000000000000000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000004D71E9004760B3000000 + 0000829DF5007794F400829CF5007894F400829DF5004C65BC004C65BC00587C + F2001647EC001647EC001647EC00587CF2000000000000000000000000000000 + 000000000000000000000000000000000000000000004C66BD00E6ECFD005277 + F1004B71F1005075F1006D8CF3005075F1005075F1005075F1005075F1005075 + F1005075F100C5CEEC004667D600496CDF00657DCE00B5C1E9009EAEE1003862 + EF00567AF200E6ECFD00000000000000000000000000BFCDF6004F68C2006C86 + D9007E99F50089A2F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F600849EF5007391F4004C66BD000000000000000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005579EF004A63B9000000 + 0000829CF5007592F40086A0F5007592F400829CF5004D66BE004D66BE005E80 + F2002453EE002453EE002453EE005E80F2000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF00E6ECFD005479 + F1005479F100597CF2007491F400597CF200597CF200597CF200597CF200597C + F200597CF200CDD7F90099A9DD007E92D500CED8FB00ACBDF800C4D0F900365A + D200587CF200E6ECFD000000000000000000000000000000000000000000BFCD + F6006D86DA0086A0F500A0B4F700C3D0FA00C1CEFA00B4C4F800869EED00839C + ED00829BED00829BED00829BED00829BED00829BED00829BED00829BED008099 + ED007B95EC00728EEB004F69C0000000000088878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006787F3004F68BF000000 + 00004F69C0004F69C0004F69C0004F69C0004F69C000556FCC004F69C0006A8A + F3004068F0004169F0004068F0006B8AF3000000000000000000000000000000 + 00000000000000000000000000000000000000000000506AC100E6ECFD00577B + F2006586F3006D8CF300829CF5006D8CF3006D8CF3006D8CF3006D8CF3006D8C + F3006D8CF300829CF5007491F4006D8CF3006D8CF300829CF5006C8BF300D2DB + FA008094D700DFE5F60000000000000000000000000000000000000000000000 + 0000536CC5006E87DB0088A2F600B9C8F900B2C2F9009DB0F000506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC3000000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006F8DF3005069C1000000 + 0000000000000000000000000000000000000000000000000000516AC100718F + F4004E73F1004F74F1004E73F100718FF4000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC300E6ECFD007995 + F400819BF50088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2 + F60088A2F60088A2F60088A2F60088A2F60088A2F60088A2F60087A1F500839E + F500D8E0FC00E8EDFD0000000000000000000000000000000000000000000000 + 0000BFCDF600536DC6006E88DB0095ACF70092A9F6008AA1EE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F400516BC2000000 + 0000000000000000000000000000000000000000000000000000526CC3007894 + F4005C7FF2005D80F2005C7FF2007894F4000000000000000000000000000000 + 00000000000000000000000000000000000000000000536DC400E6ECFD00597C + F2006F8DF3007C97F4008FA7F600819BF500819BF500819BF500819BF500819B + F500819BF5008FA7F600819BF500819BF500819BF5008EA6F6007A96F4005075 + F1005F81F200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600708ADD006C8BF300708CEC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA00C2C0BE00B6B6 + B500A09E9D00EDEDEC008F8D8D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F600546DC4000000 + 0000000000000000000000000000000000000000000000000000546EC500839E + F5007794F4007A96F4007894F400839EF5000000000000000000000000000000 + 000000000000000000000000000000000000000000005670C700E6ECFD005378 + F100577BF2006384F3007F9AF5006E8DF3006E8DF3006E8DF3006F8DF3006F8D + F3006F8DF300829DF5006E8DF3006E8DF3006C8BF3007E99F5006082F2003F68 + F000587CF200E6ECFD0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C8006B85DD006181EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00C2C2C200AFAD + AC00AAA8A700E2E1E00093929100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000092A9F600556EC5000000 + 0000000000000000000000000000000000000000000000000000566FC60087A1 + F500829CF50087A1F500829DF50087A1F5000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00496F + F0005A7DF2005E80F2007E99F5006183F2006183F2006283F2006283F2006283 + F2006283F2007F9AF5006283F2006183F2006183F2007D98F5005D80F2005378 + F1004B71F100E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005871C9006D86D800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00C3C2C200A09F + 9D00BFBDBC00C4C3C200ACACAC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009AAFF700566FC6000000 + 00000000000000000000000000000000000000000000000000005770C7008AA3 + F60088A2F60096ACF7008AA3F6008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C800E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8BAF8005872C9000000 + 00000000000000000000000000000000000000000000000000005872C9007D97 + EE0090A7F10097ACF20090A7F1007D97EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000AFBFF5005872C9000000 + 00000000000000000000000000000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C9005B76D2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004A60B0002839760026356C00283976004A60B000A3B3EA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000042579E0036457D002E3C + 6D00283868008D9DD300C0C0C000C0C0C000C0C0C000C0C0C000C2C2C200CECE + CE00CECECE00CECECE00DEDEDE00DEDEDE00DEDEDE0000000000000000000000 + 00000000000000000000000000000000000000000000000000003B53A4002840 + 93001A3FBA003453BC003F5CBD003453BC001A3FBA000C31B0003B53A4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002A3B7700DBE0F100DDE2 + F200DEE3F300DFE4F300DFE4F300E0E5F300E0E5F300E2E7F400E3E7F500E3E7 + F500E3E7F500E5E9F600E5E9F600E6EAF600E8ECF700E8ECF700E8ECF700E8EB + F600E9ECF700EAEDF7000000000000000000000000003F59B0005A78DE004D67 + BE00334279002A3C780000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005069C0002E47A2000734 + C8005069BC00475AA20043579D00475AA2005069BC002D52CE002E47A2005069 + C000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002D3F7F00D7DDF100C8D0 + EC00C9D1ED00CAD2ED00CBD3ED00CCD3ED00CDD4ED00CED5EE00D0D7EF00D1D8 + EF00D2D9EF00D3D9EF00D4DAF000D5DBF100D7DDF200D7DDF200D7DDF100D9DE + F200DADFF200E6EAF800000000000000000000000000415BB2006F8DF3002F58 + E2003C57B1002A38700000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F56A9001843D5003059 + E1004059AC008A9FE600000000008A9FE6004059AC005A70BC001843D5003F56 + A900ACBCF1000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448600D6DCF200C3CC + EC003E5DC4003E5DC4003E5DC4003F5EC4003F5EC4003F5EC400C9D2EF00C9D2 + EF00CAD2EF00CBD3EF00CDD5F000CDD5F000CFD6F000D0D7F000D1D8F100D2D9 + F100D3DAF100E0E5F5000000000000000000000000004A65BF00657DCF00899F + E800647ED800536DC1003F57A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003B61DF002A57EE006076 + C20000000000000000000000000000000000000000008FA3E9002A57EE003B61 + DF00445DB6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000384C9700D7DEF500C6D0 + F1003F61D2003F61D2003F61D2003F61D2003F61D2003F61D200C4CEF000C4CE + F100C4CEF100C4CEF100C3CEF100C3CEF100C3CEF100C3CEF100C3CEF100C4CE + F100C4CEF100D7DEF500000000000000000000000000BFCCF5004862BC006A81 + D000556FC5003355C700506CCC004E65B40090A3E20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000486CE8003C65ED00556C + BC000000000000000000000000000000000000000000000000003963EF004A6E + E600445DB4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000032479000304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 8900304589003045890030458900304589003045890030458900304589003045 + 89003045890030458900859AE00000000000000000003B519F00D9E0F700C8D2 + F4003F63DA003F63DA003F63DA003F63DA003F63DA003F63DA00C6D1F400C6D1 + F400C6D1F400C5D0F300C5D0F300C5D0F300C4CFF300C4CFF300C4CFF300C3CE + F300C3CEF300D6DDF70000000000000000000000000000000000BFCCF5004A64 + BD008FA4E8005670C400647DD100425596003645760035498F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006080EB004A6FEE005168 + BB00000000000000000000000000000000000000000000000000476EF0006080 + EB00455EB5000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005C74C5005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0005873D0005873D0005873D0005873D0005873D0005873 + D0005873D0005873D0003D529A0000000000000000003F57A700DBE2F900CAD4 + F6004065E0004065E0004065E0004065E0004065E0004065E000C8D3F600C8D3 + F600C8D3F600C7D2F600C7D2F600C7D2F600C6D1F500C6D1F500C6D1F500C5D0 + F500C5D0F500D7DEF80000000000000000000000000000000000000000000000 + 00004F68C1007087D40095A8E9004462C8005570CA00465AA00032458600B8C5 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008397DB006888F3006F88 + DF0000000000000000000000000000000000C9D4F8004A64BD006886EC007F92 + D100607AD3000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587BED001444E6000E2A + 8A001744DB000F2B8A001744DB000F2B8A000F2B8A000F2B8A000F2B8A001744 + DB000F2B8A000F2B8A000F2B8A001744DB000F2B8A000F2B8A001744DB000F2B + 8A001644DB000D2A8A005268B70000000000000000004761B700DEE5FB00D1DA + FA005176EF005075EF005075EF005075EF005075EF005075EF00D0DAFA00D0DA + FA00D0DAFA00CFD9FA00CFD9FA00CFD9FA00CED8FA00CED8FA00CED8FA00CDD7 + FA00CCD7FA00DAE1FB0000000000000000000000000000000000000000000000 + 0000BFCDF600506AC3007288D500637AC5004563C8003B5BC800394A86003142 + 7D00A4B3EA00293B7B00283871002E4185000000000000000000000000000000 + 000000000000000000000000000000000000000000006076C20096ACF4007391 + F4004C64BE0090A4EA000000000090A4EA004C64BE009DACDE00A0B3F3005E73 + BB004159AB000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006383EE002352ED006886 + EB00335EEF006A88EE00335EEF006985E2006985E2006985E2006986E600335E + EF006A88EE006A88EB006986E600335EEF005F71B0006883DF00335EEF006A88 + EE00325EEF006786EE00566EBE0000000000000000004963BA00E0E6FC00D4DD + FC00597CF200597CF200597CF200597CF200597CF200597CF200D4DDFC00D4DD + FC00D4DDFC00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D3DCFB00D2DBFB00D2DB + FB00D0DAFB00DDE4FC0000000000000000000000000000000000000000000000 + 000000000000BFCDF600536CC50098AAE900637AC6004566D4003954B1003A49 + 7E0035406900576EB900566DBA00556BB400374E9900CED7F700000000000000 + 000000000000000000000000000000000000000000005C76D2008295D6009EB2 + F500859BE400697EC9006076C200697EC900859BE400A9BBF800A0AEDF004362 + CC002D4FC300BDCBF40000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006D8AEB00305CEE002B43 + 9400243D90003D63E300243D9000354C9800486CE400354C9800304896003960 + E300284192002C44940030489600385EDE007692EF005075F1003D66EF002841 + 92003960E300253E92005A70C10000000000000000004A64BB00E2E8FD00D8E0 + FC006283F2006283F2006183F2006183F2006183F2006183F200D8E0FC00D7DF + FC00D7DFFC00D7DFFC00D7DFFC00D7DFFC00D6DFFC00D6DFFC00D6DFFC00D5DE + FC00D4DDFC00DFE6FC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005770C800748BD900879DE8004D5D97004E65 + B4004A6AD3000430C2000430C2000430C2004162D1005971C00046589B000000 + 0000000000000000000000000000000000000000000000000000000000005D77 + D3009CABE200BECBF500BCCAF600BECBF5009CABE200687CC600798FDA0086A0 + F5004B71F1002E50C400435BAE00BDCBF4000000000000000000000000000000 + 000000000000000000000000000000000000000000007691ED00496FF0003D51 + 94006381E700394D91005D7DE6005D7DE600394D91005D7DE6005D7DE600394D + 91005D7DE6007483B3007483B3006583E6007483B3007483B3006280E4003C50 + 93005A7AE600374C93005F76C50000000000000000004D66BE00E6EBFD00DEE5 + FC007290F4007290F4007290F4007290F4007290F4007290F400DEE5FC00DEE5 + FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DDE4FC00DCE3 + FC00DAE2FC00E2E8FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000C1CDF6005872CA006F85D000516BBE004A6C + DC00123ED2000433D0000433D0000433D0000937D2002F56D8005775D700455E + B500BDCBF4000000000000000000000000000000000000000000000000000000 + 0000657FD9004C65BF004C65BC004C65BF00657FD900AEBEF2004C65BF007A90 + DB0086A0F5001848EB002F51C500445CAE000000000000000000000000000000 + 000000000000000000000000000000000000000000007A94EE005378F10092A7 + EE007693F40099AEF2007693F4007693F40099AEF2007693F4007693F40099AE + F2007693F40094A7E60095A8EA007995F40094A7E60095A8EA007995F40099AE + F2007391F4008DA4F1005871C40000000000000000004E68BF00E6ECFD00E1E7 + FD007A96F4007A96F4007A96F4007A96F4007A96F4007A96F400E2E8FD00E1E7 + FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00DFE6 + FC00DDE4FC00E4E9FD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000AEBEF3005E6FAD004B6FE7001242 + E0000537DE000537DE000537DE000537DE000537DE000537DE001B49E1005E76 + CA00455DB2008DA2E80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004D66 + C0007A90DB004B71F1001848EB003052C500BDCBF40000000000000000000000 + 000000000000000000000000000000000000000000007B96EE00597CF2004B5C + 96004E5E93007D96E9004E5E93004E5E93007D96E9004E5E93004E5E93007D96 + E9004E5E93005A699A00576698007A94E8005A699A00576698007A94E8005060 + 9500718CE8003D519300536DC40000000000000000004F69C000E8EDFD00E3E9 + FD00829CF500829CF500829CF500829CF500829CF500829CF500E5EAFD00E5EA + FD009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009DB2F7009BB0 + F700E0E6FC00E6EBFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004963BC006A87E8002553EE002553 + EE002553EE007C97F4007F9AF1007C97F4002553EE002553EE002553EE002553 + EE004A70F0006983DB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCDF6007B91DC0086A0F5004B71F1003153C700475EB100BDCBF4000000 + 000000000000000000000000000000000000000000007B93E700819CF30092A9 + F600A3B6F800A4B7F800A6B9F800A8BAF800A6B9F800A8BAF800A8BAF800A6B9 + F800A8BAF800A9BBF800ABBDF800A6B9F800ADBEF800AABCF800A4B7F8009FB3 + F70094ABF60087A1F5005771C9000000000000000000526CC300EBF0FD00E7EC + FD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7EC + FD00E5EAFD00E8EDFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004A64BB00718DEB003E67F0003E67 + F0006888F300667CC5005A71C100667CC5006888F3003E67F0003E67F0003E67 + F000486FF000718CE90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004F69C3007B92DC0086A0F5001848EB003154C700485FB2000000 + 000000000000000000000000000000000000000000005872CA00495891004A59 + 9100697EC8006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82 + CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006D82CF006C82 + CF006B82CE006980CE0093A8ED000000000000000000536DC400ECF0FE00E9EE + FD007693F4007693F4007693F4007693F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007693F4007693F4007693F400708E + F400E6ECFD00E9EEFD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004F69C4007892E700567AF200567A + F20091A3E4009DB0EE00000000009DB0EE0091A3E400567AF200567AF2005D80 + F2007794F4006B83D40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600506AC4007C92DD004B71F1001848EB003254C800BFCB + F400000000000000000000000000000000000000000000000000000000008380 + 7E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546EC500EDF1FE00EBF0 + FD00809BF500809BF500809BF500809BF500809BF500809BF500809BF500809B + F500809BF500809BF500809BF500809BF500809BF500809BF500809BF5007794 + F400E8EDFD00EBF0FD0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC0096ACF7007995 + F4005971C4000000000000000000000000005D75C500809AF10087A1F500728A + DB004F69C200BFCDF60000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCDF6007D93DD0086A0F5004B71F1003355 + C9004A62B400BFCBF5000000000000000000000000000000000000000000918F + 8F00908D8B00918E8C00928F8D0093908E0094918F0095929000979492009895 + 9300999694009B9896009C9997009D9A98009E9B99009F9C9A009B999800A09F + 9E00B6B4B400D6D6D6000000000000000000000000005770C700F0F3FE00EDF1 + FE00839EF5008AA3F6008CA5F6008EA6F6008FA7F6008FA7F6008FA7F6008FA7 + F6008FA7F6008FA7F6008FA7F6008FA7F6008DA5F6008CA5F6008AA3F6007693 + F400EAEFFD00ECF0FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3DBF9009AACEA008FA7 + F600647BC800000000000000000000000000657BC800859FF5009CB1F700516A + C400BFCDF6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC6007E94DE0086A0F5001848 + EB003456CA004B63B50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005871C800F0F3FE00EDF1 + FE00F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F0F3FE00F0F3 + FE00F0F3FE00F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EEF2FE00ECF0 + FE00EAEFFD00EDF1FE0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006278C900A2B4 + F3008A9EE2009FB1F000000000009FB1F000869BE3009BB0F700788FDD00BFCD + F600000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF600536CC500859AE0004B71 + F1001848EB003457CA00BFCBF500000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900F1F4FD00F1F4 + FD00F2F5FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6FD00F3F6 + FD00F2F5FD00F2F5FD00F2F5FD00F2F5FD00F1F4FD00F1F4FD00F1F4FD00F0F3 + FD00EFF2FD00EEF2FD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005974 + CF0098AAE400B2C2F900B4C4F900ADBEF8007D93DF00566FC700C1CDF6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000566FC8008295D400A1B1E500798F + DD0086A0F5004B71F1005E78D1005169BE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F6005C75CC00C1CEFA00B9C8F900B7C7F9005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005874CF008DA0DF00C4CEF100657B + C5008B9FE30086A0F5006781DB00556DC6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000093A8ED009CAEE900A0B2EF008195DB00C1CDF60000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C1CDF6005874CF00556EC300B0BD + E7007A8CCA008399E1005872CA00C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005770 + CA00BFCCF5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C9C9C900A1ADDA0058648C00545664005456640054566400545664005456 + 6400545664005456640054566400545664005456640053556300525E8800C2C2 + C200D4D4D4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DCDCDC00C4C4C4003847 + 7D0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0027345E0027345E0027345E0027345E0027345E0027345E0027345E002734 + 5E0038477D00C4C4C40000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000C3CEF1005E607000999CA600B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1 + BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00B0B1BA00999BA600BEC9 + EE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002B3C + 78000328A30003208200E8E8E700E5E4E300E0DFDE00DBDAD900032082000328 + A3000328A3000328A3000328A3000328A3000328A3000328A3000328A300435E + BA002B3C78000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3EA002F3E73003F4F840044579700495DA100495D + A100495DA100445797003F4F86002F3F7400A3B3EA0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000060647500A6A9B60025377600253776002537760025377600253776006870 + 92007B819B002537760025377600253776002537760025377600253776006569 + 7A00000000000000000000000000000000000000000000000000000000000000 + 00000000000029386A005469AE005065AC005065AC005065AC005065AC005065 + AC005065AC005065AC005065AC005065AC005065AC005469AE00344686000000 + 0000000000000000000000000000000000000000000000000000000000002C3F + 7E00042AA90003218700E8E8E700EFEEED00EAE9E800E5E4E30003218700042A + A900042AA900042AA900042AA900042AA900042AA900042AA900042AA900425E + BD002C3F7E000000000000000000000000000000000000000000000000000000 + 0000000000004159A70035447A00455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF0035447A004159A700000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000063677800A2A4B400263877002638770026387700263877002C3D77005960 + 7A0059607A002638770026387700263877002638770026387700263877006367 + 7800000000000000000000000000000000000000000000000000000000000000 + 0000000000002B3C7800536CBF000328A0000328A0000328A0000328A0000328 + A0000328A0000328A0000328A0000328A0000328A000536CBF00354994000000 + 0000000000000000000000000000000000000000000000000000000000002F42 + 8300042BAF0003238C00DFDFDD00F3F3F100F3F3F200EFEFEE0003238C00042B + AF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF00042BAF004360 + C3002F4283000000000000000000000000000000000000000000000000000000 + 00002E42880042538E004760B1000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA1004760B10042538E002E4288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000676B7C009FA2B20028397800283978002839780028397800283978003A42 + 63003B425C00283978002839780028397800283978002839780028397800676B + 7C00000000000000000000000000000000000000000000000000000000000000 + 0000000000002E3F7E00536DC3000429A8000429A8000429A80003279E000326 + 99000325970003269A0003279F000429A7000429A800536DC300374D97000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8E00042EBB0003259500CAC9C800E3E2E000E6E6E500EAEAE90003259500042E + BB0003279D00032595000325950003259500032595000325950003279D004262 + CB0034488E000000000000000000000000000000000000000000000000003147 + 8F003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9003147 + 8F00000000000000000000000000000000000000000000000000000000000000 + 00006F738300A7ABBB002B3C7B003963EF00446BF000486FF000496FF000496F + F000496FF000496FF000486FF000476EF000325EEF00466DF0002B3C7B006F73 + 8300000000000000000000000000000000000000000000000000000000000000 + 00000000000034478B005470CD00042DB600042BAC000320800003208000586B + AB00ADB6D50003208000031F7E0003269B00042DB6005470CD003B519F000000 + 000000000000000000000000000000000000000000000000000000000000364B + 94000430C20003269B00C1C0BE00DAD9D800DEDDDC00E2E1E00003269B000430 + C20003269B0002175D0002175D000110410002175D0002175D0003269B004364 + D100364B94000000000000000000000000000000000000000000475FB1004658 + 9A00082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00FFFFFF00FFFF + FF00FFFFFF00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004658 + 9A00475FB1000000000000000000000000000000000000000000000000000000 + 000073778700AAAFBF002C3D7C004068F000486FF000496FF000496FF000496F + F000496FF000496FF000496FF000496FF0003761EF00486FF0002C3D7C007377 + 8700000000000000000000000000000000000000000000000000000000000000 + 000000000000364A91005773D300042DB60003228A0003218700032187000321 + 870003238D00032187000321870003218500042CB4005773D3003C53A3000000 + 000000000000000000000000000000000000000000000000000000000000394F + 9A000633C80004289F00B5B4B200D2D1CF00D6D5D300DAD9D70004289F000633 + C70004289F00031860000318600002114300031860000318600004289F004365 + D500394F9A0000000000000000000000000000000000A8B7ED003E508E004964 + BF00042CB100042CB100042CB100042CB100042CB100042CB100FFFFFF00FFFF + FF00FFFFFF00042CB100042CB100042CB100042CB100042CB100042CB1004964 + BF003E508E00A8B7ED0000000000000000000000000000000000000000000000 + 000075798A00AFB3C3002E3E7E003E67F000456CF000456CF000456CF000456C + F000456CF000456CF000456CF000456CF0003761EF00486FF0002E3E7E007579 + 8A00000000000000000000000000000000000000000000000000000000000000 + 000000000000394D98005875D8000429A5000324920003249200042AA900042C + B200042CB200032493000324920003249200042DB5005875D8003E56A6000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A4001E49D800193BAC00AFADAC00B3B1B000BAB8B600C1BFBD00193BAC00204A + D800193BAC00091743000D1E58000A194900091743000D1E5800193BAD004B6D + DF003E55A400000000000000000000000000000000003F5194004966C8001139 + BF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE00FFFFFF00FFFF + FF00FFFFFF000C35BE000C35BE000C35BE000C35BE000C35BE000C35BE001139 + BF004966C8003F51940000000000000000000000000000000000000000000000 + 00007C819200B7BACA00304180003661EF003B64EF003B64EF003B64EF003B64 + EF003B64EF003B64EF003B64EF003B64EF00305CEE00466DF000304180007C81 + 9200000000000000000000000000000000000000000000000000000000000000 + 0000000000003F55A4005878E1000429A8000429A8000429A8000328A1000328 + A1000328A10003279F000429A8000429A800042FBD005878E100425BAE000000 + 0000000000000000000000000000000000000000000000000000000000004159 + AA002A54DF002649BB002445B3002445B3002445B3002445B3002649BB002D56 + DF002649BB002445B3002445B3002445B3002445B3002445B3002649BB004E71 + E4004159AA00000000000000000000000000000000004D62A9003659CC00123B + C300173FC400173FC400173FC400173FC400173FC400173FC400FFFFFF00FFFF + FF00FFFFFF00173FC400173FC400173FC400173FC400173FC400173FC400123B + C4003558CC004D62A90000000000000000000000000000000000000000000000 + 000080849500BBBFCF0032428100315CED00355FED00355FED00355FED00355F + ED00355FED00355FED00355FED00355FED002B58EC00456CEF00324281008084 + 9500000000000000000000000000000000000000000000000000000000000000 + 0000000000004259AB005879E6002044BC00ADBBE7003C5BC400032699000326 + 99000326990003239000042DB800C9D2EF000431C6005879E600445DB1000000 + 0000000000000000000000000000000000000000000078767600D3D3D300445D + B000365EE5003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62 + E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6003B62E6005376 + E900445DB000D3D3D300807F7F0000000000000000005069BE002E53CE001D45 + CA00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00FFFFFF00FFFF + FF00FFFFFF00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB001D45 + CA002D52CE005069BE0000000000000000000000000000000000000000000000 + 000084889800BDC2D200334482002D59EA00315CEA00315CEA00315CEA00315C + EA00315CEA00315CEA00315CEA00315CEA002855E900446BEC00334482008488 + 9800000000000000000000000000000000000000000000000000000000000000 + 000000000000455EB100597BEB000430C200042FBF00042FBF00032187000323 + 8D0003238D0003249100042FBF00042FBF000434D300597BEB00465FB5000000 + 00000000000000000000000000000000000000000000EBEBEB00AEADAC007979 + 7D00728EEE005D80F200567AF200567AF200567AF200567AF200567AF200567A + F200567AF200567AF200567AF200567AF200567AF200567AF2005C7FF2004F67 + BB0079797D00AEADAC007C7A790000000000000000005774D4002850D5003459 + D700395ED800395ED800395ED800395ED800395ED800395ED800FFFFFF00FFFF + FF00FFFFFF00395ED800395ED800395ED800395ED800395ED800395ED8003459 + D700224BD4005773D30000000000000000000000000000000000000000000000 + 00008B8F9F00C5C9D90035468400234FE2002551E2002551E2002551E2002551 + E2002551E2002551E2002551E2002551E2001F4CE2004066E600354684008B8F + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000004B64BB006082F2001445E9001240D700123FD600123FD600123F + D600123FD600123FD600123FD600113DD1001143EC006082F2004B64BB000000 + 00000000000000000000000000000000000000000000CFCECE00EBEBEB00AFAE + AD005F71B000829CF0006A8AF3006384F3006384F3006384F3005673D4004F6A + C2004F6AC2006283F0006384F3006384F3006384F3006A8AF300829DF5007979 + 7F00AFAEAD00EBEBEB007F7D7C0000000000000000005A77D8003057DA003E63 + DD004569DF004569DF004569DF004569DF004569DF004569DF00FFFFFF00FFFF + FF00FFFFFF004569DF004569DF004569DF004569DF004569DF004569DF003E63 + DD002B53DA005975D70000000000000000000000000000000000000000000000 + 00008E92A300C7CCDD00374785001E4ADE00214DDF00214DDF00214DDF00214D + DF00214DDF00214DDF00214DDF00214DDF001B48DE003E64E400374785008E92 + A300000000000000000000000000000000000000000000000000000000000000 + 0000000000004C65BC006485F3001E4DED001D4CE9001C49DE007691EB00E8ED + FB00E8EDFB001C49DD001C49DE001D4CE9001949ED006586F3004C65BC000000 + 00000000000000000000000000000000000000000000807E7E00D0CFCF00EBEB + EB007E7E81006878B1008DA4F100708EF400708EF400708EF400A4B0D800E4E4 + E300D6D5D400627CD500708EF400708EF4007794F4008FA7F6006D80BF00B0AF + AF00EBEBEB00D0CFCF00D3D3D30000000000000000005C79DB00375EDF00486C + E3005173E3005173E3005173E3005173E3005173E3005173E300FFFFFF00FFFF + FF00FFFFFF005173E3005173E3005173E3005173E3005173E3005173E300486C + E3003058DE005B78DB0000000000000000000000000000000000000000000000 + 00009195A600CBD0E000384987001A47DB001B47DA001B47DA001B47DA001B47 + DA001B47DA001B47DA001B47DA001B47DA001744DB003D62E100384987009195 + A600000000000000000000000000000000000000000000000000000000000000 + 0000000000004D66BD006888F3002856EE002957EE002956EC002854E5002854 + E5002854E5002854E7002956EC002957EE002150ED006888F3004D66BD000000 + 0000000000000000000000000000000000000000000000000000D3D3D3008584 + 8300EBEBEB00B2B1B10084848700A1B4F30090A8F6008AA3F600C9C8C600D4D3 + D100E0DFDD006F83C5008AA3F60090A8F6007E8EC00084848700B2B1B100D2D2 + D10085848300D3D3D3000000000000000000000000005C78D5005074EA005477 + EA006886EC006886EC006886EC006886EC006886EC006886EC00536CBE00536C + BE00536CBE006886EC006886EC006886EC006886EC006886EC006886EC005477 + EA004A6FE9005D78D50000000000000000000000000000000000000000000000 + 0000989CAC00D0D5E6003A4B8900113ED300123FD300123FD300123FD300123F + D300123FD300123FD300123FD300123FD3000F3CD3003A5FDB003A4B8900989C + AC00000000000000000000000000000000000000000000000000000000000000 + 0000000000004F68C0006E8DF3003E67F0004068F0004068F0004068F0004068 + F0004068F0004068F0004068F0004068F000335EEF006E8DF3004F68C0000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300D4D3D200EBEBEB00B3B3B2007C89B400ABBBF4009DB2F7009FA6C200C3C1 + BF00C9C7C5008598D8009DB2F700AEBFF80088878B00B3B3B200EBEBEB008B89 + 8700D3D3D300000000000000000000000000000000005D76C900597CEE005578 + EE007390F0007491F1007491F1007491F1007491F1007491F1007491F1007491 + F1007491F1007491F1007491F1007491F1007491F1007491F1007390F0005679 + EE005377EE005D77CA0000000000000000000000000000000000000000000000 + 00009A9EAF00D3D8E9003B4C8A000D3AD0000E3BD0000E3BD0000E3BD0000E3B + D0000E3BD0000E3BD0000E3BD0000E3BD0000C39D000395ED9003B4C8A009A9E + AF00000000000000000000000000000000000000000000000000000000000000 + 0000000000005069C100718FF400F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00F1F4FE007290F4005069C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008B898800D5D4D400EBEBEB008B8A8E007E8BB400B4C3F40092A2D9008494 + C6008494C600A8BAF500B5C5F9008896C300B4B4B300EBEBEB00D5D4D4008684 + 83000000000000000000000000000000000000000000566FC2006685EE00567A + F1007C97F400809BF500819BF500819BF500819BF500819BF500EDF1FD00FFFF + FF00EDF1FD00819BF500819BF500819BF500819BF500819BF5007D98F500587B + F1006081ED00566FC20000000000000000000000000000000000000000000000 + 00009DA1B200D6DBEC003C4D8B000835CC000936CC000936CC000936CC000936 + CC000936CC000936CC000936CC000936CC000835CC00375CD5003C4D8B009DA1 + B200000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC2007491F400F1E0CB00F1E0CB00F1E0CB00F1E0CB00F1E0 + CB00F1E0CB00F1E0CB00F1E0CB00F1E0CB00F5EADA007592F400516BC2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D3D3D300908E8D00EBEBEB00B7B6B50091919300CBD6FB00C3D0 + FA00C3D0FA00949FC50091909400B7B6B500D7D6D600908E8D0093918F009290 + 8F000000000000000000000000000000000000000000AEBEF3005B73C5006886 + EC007391F40088A2F60093AAF60096ACF70096ACF70096ACF700FFFFFF00FFFF + FF00FFFFFF0096ACF70096ACF70096ACF70095ACF7008AA3F6007693F4006B89 + ED005B72C500AEBEF30000000000000000000000000000000000000000000000 + 0000A3A7B800DBE0F1003F4F8D000431C5000431C5000431C5000431C5000431 + C5000431C5000431C5000431C5000431C5000431C500365AD1003F4F8D00A3A7 + B800000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC4007E99F500F3E2CB00F3E2CB00F3E2CB00F3E2CB00F3E2 + CB00F3E2CB00F3E2CB00F3E2CB00F3E2CB00F5EADA007E99F500536DC4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D3D3D300D8D7D700EBEBEB00B8B7B6009DA6C500CDD8 + FB00CDD8FB0094939600B8B7B600EBEBEB009391900099979500A5A4A200A5A4 + A200939291000000000000000000000000000000000000000000607AD600647D + D0006384F3007F9AF50093AAF600A2B6F800A2B6F800A2B6F800FFFFFF00FFFF + FF00FFFFFF00A2B6F800A2B6F800A2B6F80095ACF700829CF5006686F300657E + D200607AD6000000000000000000000000000000000000000000000000000000 + 0000A6AABA00DDE3F3003F518E000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2003558CD003F518E00A6AA + BA00000000000000000000000000000000000000000000000000000000000000 + 000000000000546EC500819BF500F0F3FE00F1F4FE00F1F4FE00F1F4FE00F1F4 + FE00F1F4FE00F1F4FE00F1F4FE00F1F4FE00F3F6FE00819BF500546EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000096949300D9D9D800EBEBEB0097979900919D + C500919DC500B9B8B800EBEBEB00D9D9D800D3D3D300A09E9C00CCCCCC00CCCC + CC00A09E9C00000000000000000000000000000000000000000000000000536F + CA006989F3006A8AF300849EF500A8BAF800ADBEF800AEBFF800E1E3E800F2F2 + F200E1E3E800AEBFF800ADBEF800A9BBF80087A1F5006D8CF3006B8AF300536F + CA00000000000000000000000000000000000000000000000000000000000000 + 0000A9ADBD00DFE5F60040518F003558CA003558CA003558CA003558CA003558 + CA003558CA003558CA003558CA003558CA003558CA003558CA0040518F00A9AD + BD00000000000000000000000000000000000000000000000000000000000000 + 000000000000556FC600829DF500F4E4CB00F5E4CB00F5E4CB00F5E4CB00F5E4 + CB00F5E4CB00F5E4CB00F5E4CB00F5E4CB00F6EADA00829DF500556FC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D3D3D3009B999800EBEBEB00BBBA + BA00BBBABA00DBDBDA009B999800D3D3D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005570CB006780D400718EEE00819BF50090A8F6009FB3F700AFC0F900B1C1 + F900AFC0F900A1B5F70093AAF600849EF5007490ED006981D4005570CB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AEB2C200E2E8F90042539000425390004253900042539000425390006776 + A6006776A600425390004253900042539000425390004253900042539000AEB2 + C200000000000000000000000000000000000000000000000000000000000000 + 0000000000005871C800829CF500CACCD100CBCDD100CBCDD100CBCDD100CBCD + D100CBCDD100CBCDD100CBCDD100CBCDD100D9DBDF00829CF5005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D5D5D300DDDCDB00EBEB + EB00EBEBEB009D9C9B00D5D5D300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000627DD8006179CA007A95F1007D98F500849EF5008BA4F6008EA6 + F6008BA4F60086A0F5007F9AF5007D97F1006179CA00627DD800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0B4C400E3E9FA0043549100435491004354910043549100435491003543 + 740035437400435491004354910043549100435491004354910043549100B6BA + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C97F400A5A7AC00A5A7AB00A5A7AB00A5A7AB00A5A7 + AB00A5A7AB00A5A7AB00A5A7AB00A5A7AB00BEC0C4007D98F5005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A19F9D00DEDD + DC00DEDDDC00D5D5D50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBFF3005E77CA006881D4006B85E2007691ED007792 + ED007691ED006C86E2006881D4005E77CA00AFBFF30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000094A2D300D8DEEF0094A0C700445492004454920044549200445492004454 + 920044549200445492004454920044549200445492004454920094A0C70094A2 + D300000000000000000000000000000000000000000000000000000000000000 + 0000000000005872C9007C96EE008FA5F00094AAF20095AAF20097ACF20097AC + F20097ACF20096ABF20095AAF20093A9F200889FF0007C96EE005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000C2CEF60096A3D400B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9 + CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA00B5B9CA0096A3D4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1D1D100CBCBCB00C7C7C700C5C5C5007C8FCD005368AF00354785003546 + 8100364783004358A100566CB5007F91D100C7C7C700C7C7C700C9C9C900DADA + DA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000DDDDDD00C9C9C900C7C7C700C2C2C200B1BCE5003446 + 820029376700C0C0C000C0C0C000C5C5C500CDCDCD00DADADA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000ACACAC00A4A4A400A4A4A400A4A4A4008A8A + 8A008A8A8A00A4A4A400B3B3B300C7C7C7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008EA2E10031458B004B64B5004561C1002E4FBE00143AB9002347 + BF00143BBC002449C7002E53CD004566D4004B61AF003D56AA0097A9E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000008297DD00485A9900415C + B9003654B7002E3F7C008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A4A4A40000000000000000002A3B7400354476003F518C004D66B7004F67 + B9004F68BA00485DA50040518D00374677007288CB0000000000C7C7C700A4A4 + A400000000000000000000000000000000000000000000000000000000000000 + 00005068BA00374885004B62AD002345B600082EAD00042AAB00617ACB008295 + D7005974CB00042DB600042EB9000832BF003E61D500506AC4004258A5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008297DE00304381003755BB000F34 + AE00082DAB004B60A4002F4180008297DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009494 + 940000000000B7C3EE0032427D004C61A5004E69C3004B69CE003F62D6004063 + D9004064DA004365D4004B69CF004F6AC6003A497D002C3E7B00AAB9EB00D3D3 + D30096969600D3D3D30000000000000000000000000000000000000000000000 + 0000415393004B65BE002E50BF00042CB300042CB2001B3FB7008194D6008194 + D5006179CA003353BE00042CB100042DB5000832C0002E53CE004C6ACF005B74 + C900000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005169BD00394B89004D65B300082FB000042B + AF00042BAE003655BD004C61A700314483000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000096969600D3D3 + D30095A5DF00959392007D8294004464CE00385DD7004368E3005175EB005275 + EB005174EA004D72EA004469E5003B60DC004963B7007D81940091908F000000 + 0000000000009F9F9F000000000000000000000000000000000093A5E4003E52 + 96003256CD001D44C8002349C900274CCA008B9FE20091A4E4008B9FE100879B + DE008498DC006A82D2002245B800042AAB00042BAF00042CB400042EB9004D6A + CB004258A20095A9E7000000000000000000283870003551AE003552B000455F + B4004964B6004B65B800546EBB005E76BC005F78C000657DC200788DC500788D + C500788DC500788DC5007287C4005F78C0005E76BC005E76BC004B65B8004963 + B5004963B5003A56B1003E59B0002D3E75000000000000000000000000000000 + 00000000000000000000546CC1004C66BC002A4EC400042EB900042DB800042D + B800042DB700042DB7000830B8003657C50035488B00A8B7ED00000000000000 + 000000000000000000000000000000000000000000009A9A9A0000000000B7C4 + EF00C7C6C500E1E1E000F0F0F00094A0C8003D5DC9002D50C400183BAD001739 + A8001738A7001D40B300284BBF003757C300D1D0D000EDECEC00DDDCDB00B1AF + AE00A4B5E80000000000B3B3B3000000000000000000000000003A519D00546D + C1002D52D100365BD3003D60D500496AD8009DAEE9009CADE80096A8E60093A6 + E5008197DF002348C300052EB700042CB200042AAB00042BAD00042CB2002F53 + C9005069BF003D54A30000000000000000002A3C760003279F00032699001032 + A300032699001032A30003279F001032A30003279F000326990003279F000326 + 9C001033A800032699001032A30003279F0003279F0003279F0003279F000327 + 9F0003279F0003279F002947AD002A3C76000000000000000000000000000000 + 000000000000566FC3003F5396002B50C800042FBE00042FBE00042FBD00042F + BD00042EBC00042EBC00042EBB000831BC004F66B100384D9600BCC8F3000000 + 0000000000000000000000000000000000000000000000000000000000003344 + 8000E7E6E600F3F3F300F7F7F700BAB9B8007580A700233F9C00425AAB00425A + AA00455CA700334EA500203B9800747FA500EBEAEA00F9F9F900EFEFEF009EA3 + B7002F3E7300000000009A9A9A0000000000000000006D85D6004F64AD005272 + DB004668DA005070DD005373DE007D95E600A8B8EE00A6B6ED00A1B2EB009EAF + E9006782DC002248C800173EC2000B34BC00042BB000042AAB00042BAC000830 + B8003F60CD004C61A90000000000000000002D3E7C000328A400042695002545 + B000042695002545B0000328A4002545B0000328A400042695000328A4000426 + 95002545B000042695002545B0000328A4000328A4000F32A8003250B5003250 + B5000F32A8000328A4002949B2002D3E7C000000000000000000000000000000 + 00007A8FDC0041559B004E69C4000430C2000430C2000430C2000430C2000430 + C2000430C1000430C100042FC000042FC0003E5FCE004E63A900364D98000000 + 00000000000000000000000000000000000000000000000000007388CB003A49 + 7C00ADB9E100FAFAFA00EBEBEA00CCCAC900A5A3A100797F9800384677003543 + 7500324172003B4B8000797F9800A6A4A300DFDEDD00EEEEEE00FBFBFA004862 + B7003F4E82005D73BE009F9F9F0000000000000000004D63AB005F7DE1004D6F + E100758FE9007691E9007792E900BBC8F400BAC8F400B8C6F300B3C2F200B0BF + F000ACBCEF00496BDA003E61D5003156CF00163DC1000831B900042CB300042A + AB00082FB1004563C70098AAE90000000000324687000D33B3000D2B8F005670 + C9000D2B8F005670C9000E34B3005670C9000E34B3000D2B8F000E34B3000D2B + 8F005670C9000D2B8F005670C9000E34B3000E34B3001B399C00304AA400304A + A4001B399C001439B5002D4EBD0032468700000000000000000000000000BDCB + F400546DC000355AD6000A37CE000D3ACE000E3ACE000E3ACD000E3ACC000E3A + CC000E3ACC000E3ACC000E3ACC000D39CB000A36C9001841CC004C6ACF005871 + C7000000000000000000000000000000000000000000A4B2E5003A4879004C66 + BF005074EA004060CC0098A4CC00C5C3C100D3D2D000A1B3ED00000000000000 + 00000000000000000000A1B3ED00D3D2D000D5D3D20097A2C8003656C2003A5F + DD00506BC8003D4D8200A4A4A4000000000000000000566FC2005E7DE6006180 + E700859DED0088A0EE0088A0EE00C2CEF600C1CDF500C0CCF500BCC9F400B8C6 + F300B5C3F3007892E6004F6FDC004466D800294ECC001940C3000932BA00042B + AC00042BAC006B82D000617ACD000000000035488C002145BD001D378D00788E + D7001D378D00788ED7002549BF00788ED7002549BF001D378D002549BF001D37 + 8D00788ED7001D378D00788ED7002549BF002549BF001C368F006B7CB6006B7C + B6001C368F002549BF003858C50035488C000000000000000000000000004B61 + B4003C61DC001440D4001541D4001B46D5001C46D4001C46D4001D47D4001C46 + D3001C46D3001D47D3001D47D3001C46D2001641D100123ED000284FD300455A + A3008A9EE400000000000000000000000000000000005B71B70042538D004765 + C8005073E8003154CA002541A000D5D4D200A1B3ED0000000000000000000000 + 0000000000000000000000000000A1B3ED009CA3BB001F3A9600274ABE00466B + E7004565D000475A9C009F9F9F0000000000000000005D77CF006684E9007590 + EC0094A9F100A3B5F300B9C7F600CBD5F800C9D4F800C7D2F700C2CEF600C0CC + F500BCC9F400AFBFF1006582E3005575DE00395DD3002A4FCC001A41C300042C + B2003252BB008598D700465FB10000000000384C92003658C8002E4696008398 + DC002E4696008398DC003B5CCA008398DC003B5CCA002E4696003B5CCA002E46 + 96008398DC002E4696008398DC003B5CCA003B5CCA0029408C00828FB900828F + B90029408C003B5CCA004262CB00384C920000000000000000006680D5005067 + B300214CDB001D49DB00234DDB002A53DC002A53DC002A53DC002A53DB002A52 + DA002A52DA002A52DA002A52D9002A52D900244DD7001F49D6001944D500556E + C5003E57A800D1DAF8000000000000000000000000003A4E9000495DA1003D5E + CC004A6DE1002548BE003751AA007382B8000000000000000000000000000000 + 0000000000000000000000000000000000003D4C8100324CA3001B3EB0004D72 + EA004063D5005066B100A4A4A40000000000000000006F89E3007893EF0094AA + F200D6DEFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D5DDFA00D1DAF900CED8 + F900C7D2F800BAC8F50097ABEE00728DE8005776DF005372DB009BADE800133B + C0003354C300425FC200364A8B00000000003E539E005A77D9005A71BD00879C + E3005A71BD00879CE3006983DD00879CE3006983DD005A71BD006983DD005A71 + BD00879CE3005A71BD00879CE3006983DD006983DD006983DD006983DD006983 + DD006983DD006782DC005371D7003E539E0000000000526DC9005B75C800466B + E800345DE6003D64E6004368E700466BE700456AE600456AE600456AE6004469 + E500456AE5004469E4004469E4004469E4004469E4004065E300385FE1002F58 + E0005876DC004B61AF00000000000000000000000000222F59004F67B500385B + D1004063D7001D3FB100425AAB00D4D4D4000000000000000000000000000000 + 00000000000000000000000000000000000038477900425AAA001032A1005174 + E9004266DC00546DBF008A8A8A000000000000000000718BE5007E99F0009EB2 + F400DCE3FB00DDE4FB00DDE4FB00DDE4FB00DCE3FB00DAE1FA00D6DEFA00D4DD + FA00C4D0F800C8D3F800C2CEF60094A9EE006481E4007B94E600A1B2EB003D5F + CE004866CC003354C20036488A00000000004158A3005C7ADD00637CCD00849B + E6006A81CE00859BE600738DE100859BE500738DE1006A81CE00738DE1006A81 + CE00859BE5006A81CE00859BE500738DE100738DE100738DE100738DE100728C + E100718BE1006C86E0005372DB004158A300000000004E67BA006380E500365F + EA00456BEB004D72EB005276EC005376EC005477EC005376EB005376EB005376 + EB005376EA005376EA005376EA005376E9005376E9005073E900496EE7003059 + E300456AE6005972CC00000000000000000000000000232F59004F67B500385B + D1004164D8001E40B200425AAB00D6D6D6000000000000000000000000000000 + 00000000000000000000000000000000000039477900465DA8001133A2005174 + E9004266DC00546DBF008A8A8A000000000000000000728DE400819BF100A5B7 + F500D6DEFB00E2E8FC00E2E8FC00E2E8FC00E1E7FC00E0E6FC00DBE2FA00D8E0 + FA00CBD6F900CED8F900C9D4F800C3CFF600758FE8009CAEED00A8B8EE004062 + D2007C92DD007289D600364A900000000000455CA9003158D900375CDA00395E + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60 + DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003B60DA003A5F + DA00395EDA00365BDA003C61DB00455CA900000000005C75CC005579F100355F + ED005478F0005E80F0006182F1006182F0006182F0006182F0006182F0006182 + EF006182EF006182EF006081EE006181EE006181EE006080ED005A7CEC004268 + E900345DE7005677E400BFCCF5000000000000000000374577004E65B200385B + CE004467DB001E41B600435CAD0093A5DE000000000000000000000000000000 + 0000000000000000000000000000000000003C4B7C00425AAB001537A8005275 + EA003F63D900526BBC00A4A4A4000000000000000000647ED100849EF200A4B7 + F600D3DCFB00D5DEFB00E2E8FC00EAEFFD00E9EEFD00E8EDFD00E5EAFD00E1E7 + FC00DFE5FB00D7DFFA00CDD7F900CDD7F800C0CCF500BAC8F400B2C1F2009FB0 + EA008A9FE3006680D7006079CA0000000000BFCCF5004967CA00335BE3002651 + E100335BE200375EE300385FE3003960E3003960E3003960E3003960E3003960 + E3003960E3003960E3003960E3003960E300385FE300385FE300375EE3002C56 + E1002550E100335BE3004B64B900BFCCF500000000006583E9005A7DF2005C7F + F2007B97F4007E99F5007D98F5007D98F5007D98F5007D98F5007D98F5007D98 + F5007D98F500829DF50086A0F500859FF500809BF5007E99F5007B97F4006384 + F3004C71F000466DEF005773CE0000000000000000005D71B90045558F004664 + C7005275E9003356CB002642A2009C9A990096A8E20000000000000000000000 + 000000000000000000000000000096A8E2007A809800203B98002B4EC000476C + E6004666CF00495C9E00A4A4A40000000000000000005D74C2007E99F10099AE + F600D8E0FB00DCE3FC00DEE5FC00E7ECFD00ECF0FE00EBF0FD00DAE1FB00CBD6 + FA00CED8FA00DAE1FA00D6DEFA00D1DAF900C5D1F700BECBF500B6C4F300A0B1 + EB0094A7E7006983D70097A9E80000000000000000004E68BF00506DD000456A + E9004F73EA005578EB005578EB005578EB005578EB005578EB005578EB005578 + EB005578EB005578EB005578EB005578EB005578EB005578EB005578EB004268 + E800446AE900506DD000BFCCF50000000000000000006D8AEA006C8BF3007491 + F4008FA7F60092A9F6008EA6F6008AA3F6008AA3F6008AA3F60086A0F500849E + F500839EF50097ADF7009BB0F7009AAFF70093AAF6008FA7F6008AA3F600718F + F400587CF200436BF0004E68C10000000000000000009FAFE3003F4D7E004B66 + BD005174E9004464CF007985AD00BEBCBA009E9C9B0096A8E200000000000000 + 0000000000000000000096A8E2009E9C9B00ABA9A8007884AA003B5BC5003A5F + DB004F6BC80042518500ACACAC0000000000000000004D67C100728CE50091A8 + F500D8E0FC00E2E8FD00E3E9FD00E2E8FD00E4E9FD00EEF2FE00E4E9FC00DBE2 + FB00E3E8FC00DEE5FB00D9E0FA00D4DDFA00C9D4F800C1CDF500BAC8F400A0B1 + EC00A0B1EA00788CCF00000000000000000000000000BFCDF600516BC4005774 + D6005E80EF006A89F0006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8C + F1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006E8CF1006B8AF0005679 + EF005774D500516BC400000000000000000000000000718CEA008EA6F6008AA3 + F6009FB3F700A3B6F800A2B6F8009AAFF70097ADF70093AAF600859FF500829D + F5008AA3F600A7B9F800AABCF800ABBDF800A5B8F800A2B6F8009CB1F7007C97 + F4006183F2004A70F0004E68C00000000000000000000000000034467F004F63 + A5004163D20099A5CC00BFBEBE00C8C6C400BCBBB900B7B5B50093A5DE00D4D4 + D400D4D4D4006C7AB000B7B5B500BDBBB900D6D4D300C2C1C10098A4CB004061 + D0005067B20034447700C7C7C700000000000000000000000000536CC500738D + E000C0CEFA00DDE4FC00E8EDFD00EBF0FD00E9EEFD00E6ECFD00E4E9FD00EDF1 + FE00EAEFFD00E3E8FC00DFE5FB00D9E0FA00CED8F900C5D1F700B7C5F400A9B9 + EF007F93D500455DAA000000000000000000000000000000000000000000C1CD + F6005876DA005F7FEA006A87EB006D8AEB006D8AEB006D8AEB006D8AEB006D8A + EB006D8AEB006D8AEB006D8AEB006D8AEB006B88EB006986EB006281EA005771 + C900C1CDF600000000000000000000000000000000006882DA009DB2F700BDCB + FA00AEBFF800B4C4F900B5C5F900ACBDF800A0B4F7008CA5F600718FF400738C + E1006F87D600C8D4FB00BCCAFA00B3C3F900B8C7F900B4C4F900AEBFF8008AA3 + F6006888F3004E73F1005671CD00000000000000000000000000000000003646 + 8200B4B3B200E8E8E700F9F9F900ECEBEB009CA8D0002642A000425BAC00425A + AB00425AAB003550A800233E9B009CA8CE00F5F4F400F8F8F700E4E3E2007D83 + 97003242780000000000000000000000000000000000000000009CAEEE005B73 + C600AEBFF800CAD5FB00E2E8FD00EEF2FE00EDF1FE00EAEFFD00E3E9FD00E9EE + FD00EAEFFD00E6EBFD00E0E6FC00DBE2FA00CED8F900C1CDF600B0C0F300AFBD + ED00596DB20097A9E80000000000000000000000000000000000000000000000 + 00005771C9005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8005771C8005771C8005771C800C1CD + F60000000000000000000000000000000000000000006179CC00809AF300B9C8 + F900BAC9FA00B3C3F900B4C4F900A6B9F80096ACF7007D98F5006D8AED005F77 + C800556EC400BAC9FA00CCD7FB00BECCFA00B4C4F900B2C2F900ABBDF800859F + F5006082F200567AF2006882DB0000000000000000000000000000000000ACBB + ED00C4C3C200D8D7D600EBEAEA00BAC6ED004262CD003255CA001D40B300183B + AD00173AAC002245B9002F52C5003E5EC900F8F8F800E7E6E600D4D3D200ACAB + A900A6B5E8000000000000000000000000000000000000000000000000006883 + DC0096ABF100B3C3F900CCD7FB00EAEFFD00EEF2FE00EDF1FE00E6EBFD00E1E7 + FD00E2E8FD00E6ECFD00E1E7FC00DBE2FA00C9D4F900B9C7F600B0C0F3007485 + C400617AD0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005570CC006F87DA008EA6 + F600CBD6FB00C5D1FA00B5C5F9009EB3F700859FF5007894F400637CCD00617C + D8007993E200859CE800B1C1F900C7D3FB00BAC9FA00B0C0F900A7B9F8007995 + F4006082F2005F7EE700AEBEF3000000000000000000B3B3B300000000000000 + 0000C6C5C300C8C7C600DFDFDE004264D3005174EA005174E8004265D9003E61 + D5003E61D4004669DD004F72E5005376EA00A6B2DB00DDDCDB00C3C2C1008EA0 + D900000000000000000000000000000000000000000000000000000000000000 + 00006883DC005E76C9007992E400A9BBF800B8C7F900C9D5FB00D2DBFB00D0DA + FB00C9D4FA00C6D2F900CED8F900C3CFF800B7C6F700A2B1E5005C72BE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000C1CDF6005772 + CC006E88DC007A94EA007D97ED006E89E5006A83D3005871C700000000000000 + 0000000000008FA4EA00556FC7006980CF007C96EB007A95EC00738EEB00617D + DA005D76C9006B84DA00000000000000000000000000000000009A9A9A000000 + 000000000000A6B6E90038487C005064AC004D68C0004361C7003A5DD1003E61 + D5003E61D5003F60CF004463CA004D68C50049598E0034447900A6B6E9000000 + 0000B3B3B300ACACAC0000000000000000000000000000000000000000000000 + 0000000000009CAFEE005871C9007B95E80091A8F400A1B5F700ABBDF800ABBC + F700A6B8F700BDCBF900C0CDF800BCCAF7008092D300536CC1009BADEC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005E79D6005771C8005670C7005874CD006B84DD00D3DBF900000000000000 + 0000000000000000000000000000859BE9005670C7005670C7005670C700647E + D9009FB1F0000000000000000000000000000000000000000000D3D3D3009696 + 96000000000000000000000000003A497A00445487004A5C9B005068B600526A + B8005169B9005066AF004B5E9D00455588005E74BB000000000000000000B3B3 + B3009A9A9A000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C800677ECD007089DB0096AAEE009DB1 + F200A8B9F30093A6E70091A2DF006F84CD007A91E30000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9F9F00BDBDBD0000000000000000008598D8005065AD00344478002A36 + 60002A3661003E4F87005065AD008598D8000000000000000000BDBDBD00BDBD + BD00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9B9B0092908F0086858500BFBFBF00C0C0C000C0C0C000C5C5C500C7C7 + C700C7C7C700DADADA00DBDBDB00DCDCDC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448A00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000DCDCDC00DADADA00CACACA00C5C5C500C0C0C000C0C0C000213166001521 + 490015214900C0C0C000C1C1C100C7C7C700D2D2D200DADADA00DCDCDC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200C2C0BF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003349920035447C00B9C6 + F100000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CBCBCB0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0025325F0025325F0025325F0025325F0025325F002532 + 5F0025325F0025325F0026346600CBCBCB000000000000000000000000000000 + 0000000000006C82CD001E306E002F3F740038509D004E66B60042548F003751 + AB003751AB001E3377004E66B60038509D003F4F88001E306E006C82CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D54A2006271A7003D54 + A200000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B50026377400000000000000000000000000000000000000 + 000000000000203372005264A0005268B30039497D003F518D005067B4001F3E + A6001F3EA6004C60A2003F518D0039497D004963B7005264A000203372000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D1D0CF00AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000657ECC00647AC5004051 + 8D008397DE000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003753B2000F34AF001337 + AF00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AE00283A7C00000000000000000000000000000000000000 + 00000000000031479600465A9E002948AE004E68BC003C58B5001638A7000328 + A0000328A0002443AC003C58B5004E68BC002948AE00465A9E00314796000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A8B7ED005D78CF004664 + C9004F63A4000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000415EBF001F44BC00274A + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4E + BD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002D4EBD002C4E + BD00284BBD001F44BC002D4186000000000000000000000000006F86D200253C + 85002B429000455793004C66C000042AAA00042AAA00042AAA00042AAA00092E + AC00092EAC00042AAA00042AAA00042AAA001B3EB2004C66C00045579300344C + 9C00253C85007F95DB0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D0D8F700728AD900173E + C1005871C800A8B7EE0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003254C400284CC4002F448D000000000000000000D0D8F700263A8000566A + AE004B5FA1004C67C4001237B400042BAF00042BAF001F42B800506BC800506B + C800516BC2003D5BC1001F42B800042BAF00042BAF001237B4004C67C400485E + A900566AAE00263A800000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007A8FD700123B + C500375ACE004359AD0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004C6ACD003155CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003C5DCC003155CB003147920000000000000000004B64B800465A9C004B68 + C9003D5CC5001B40BB00042CB4000D34B6004160C600546DC000364886003345 + 84002E41810044599F00546DC0004160C600042CB400042CB4001B40BB00294C + BF004B68C900465A9C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006D83CD00355A + D8000433CF005B76D0004259A900D1DAF8000000000000000000000000000000 + 000000000000000000000000000000000000000000005C79DA004668D8005674 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005876DA005876DA005876DA005876DA005876DA005876DA005876DA005876 + DA005674DA00486AD900374E9D00000000000000000000000000435DB2004659 + 99000F38C1001039C2000F38C1005168B3002B428C00A7B6EC00000000000000 + 00000000000000000000A7B6EC002B428C004766CF000F38C1001039C2005673 + D30045589800435DB20000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006E84CC003E63 + DF000737D6004468E0005A72C000556FC8000000000000000000000000000000 + 000000000000000000000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006682E1006682E1006682E1006682E1006682E1006682E1006682E1006682 + E1006380E1005474E0003A51A3000000000000000000000000005A74C7004B61 + AC001A42C8001A42C8003155CD0033488D00A7B7ED0000000000000000000000 + 0000000000000000000000000000A7B7ED005B75CB003055CD001A42C8004E6D + D4004960AB005A74C70000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000667DC700607F + E8001241DE002450E100607EE2005369B4000000000000000000000000000000 + 000000000000000000000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900748FE900748FE900748FE900748FE900748FE900748FE900748FE900748F + E900718CE900607FE7003C55A800000000000000000096A9E80030499C005A72 + C300244BCE00244BCE00506FD800506AC0000000000000000000000000000000 + 0000000000000000000000000000000000004D64AF004F6FD800234ACE003D60 + D4005871C30030499C0000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7004C63B200455EB3005E77CE007189DA005973 + CC004762B90044579B00475DA7004862B6005C77D2005E7CE2006583E7006681 + D8005970C000425BB40000000000000000000000000000000000000000000000 + 00000000000000000000000000004A63BA004A63BA004A63BA005D74C2007995 + F3002855EC002855EC002C58EC006282EF007790E20000000000000000000000 + 000000000000000000000000000000000000000000007C97F400708EF400829D + F4008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6F5008EA6 + F50088A1F5007794F400425CB30000000000000000005D78D5005273E0004669 + DD003A5FDB003A5FDB006481E200000000000000000000000000000000000000 + 0000000000000000000000000000000000003E549D006481E300355BDA00395E + DB004367DD004B6DDE002D459400000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006886EB006D87E0005F7AD500546EC200546F + C8005A74CB004E6DD6003B5DCD002E52CA003E62D8004568DE005778E5007994 + F1007C97F4006881DB0000000000000000000000000000000000000000000000 + 00000000000000000000000000008BA1EA006F8BEB006E8BEB007993ED006C8B + F300325EEF00325EEF00325EEF00486FF000536CBF00D2DBF800000000000000 + 000000000000000000000000000000000000000000007E99F500708EF400829D + F50093AAF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70091A8F6007E99F500445DB40000000000000000005E7AD8005676E3004E70 + E2004368E000466AE1006986E600000000000000000000000000000000000000 + 0000000000000000000000000000000000004157A2006B86E1003E63DF004267 + E0004A6DE1004F71E20030489900000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A7006282EC00839DF3007C97F3006886EA005878 + E4004E6FDE001D45CB000D36C1000F38C200395ED6005071E0006583E700869F + F20087A1F5007791EA0000000000000000000000000000000000000000000000 + 00000000000000000000000000008DA3EE005378F100496FF0004C72F1004169 + F0003D66EF003D66EF003D66EF003D66EF007087D6005873D000000000000000 + 000000000000000000000000000000000000000000007D98F5006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A3B6F800A0B4 + F70096ACF700819BF500455EB6000000000000000000455CA700556EBF00718B + E5004D70E5004A6EE500718DEA00AABAEF000000000000000000000000000000 + 000000000000000000000000000000000000485EA8006F8BEA00496DE5005677 + E6006D88E500546DBF003E58B300000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A700879FF000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009FB3F600839BEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000008498DF007693F4005176F1005176F1005176 + F1005176F10091A7F00099ADF10096ABF1008EA5EF008DA0E100526CC7000000 + 000000000000000000000000000000000000000000005C79DA002E55D6002E55 + D6002E55D6002E55D6006D87E0008DA5F60094ABF60097ADF7009AAFF7009AAF + F7009AAFF7009AAFF7009AAFF7009AAFF7009AAFF70099AFF70097ADF70090A8 + F60086A0F5007794F4004761B800000000000000000000000000667ED5005C75 + C7006081EE006383EF006A88EE00425BAC00ADBCF10000000000000000000000 + 0000000000000000000000000000ADBCF1007690E5006A89EF006383EF007994 + F1005872C600667ED50000000000000000000000000000000000000000000000 + 0000A5A3A200D2D1D000AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000798ED70090A8F6005D80F2005D80F2005D80 + F2005D80F2006B81CF00506AC100506AC100506AC100506AC100566FCD000000 + 000000000000000000000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ACBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B9000000000000000000000000005370CB005D73 + BE006989F2006E8CF2006A89F2006982D6003E59B100ADBCF100000000000000 + 00000000000000000000ADBCF1003E59B2007C97F4006989F2006E8CF200849E + F4005970BC005370CB0000000000000000000000000000000000000000000000 + 0000A7A5A300D2D1D000AEACAB0089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F300A0B4F600849CEC0000000000000000000000000000000000000000000000 + 00000000000000000000000000007489D1009BB0F7006787F3006787F3006787 + F3006787F300859BE900516BC400000000000000000000000000000000000000 + 000000000000000000000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB000000000000000000728BDD005069BA006F8B + EB006E8DF3007894F4007894F4007F9AF5006B84D700465FB300ADBCF1000000 + 0000000000005D79D100465FB3006781D5007491F4007894F4007894F4007290 + F4006A88EB004F68BA0000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A70089A1F000A5B8F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C2003A5ED6005071E0006684E70091A8 + F3009DB2F600839CED0000000000000000000000000000000000000000000000 + 00000000000000000000000000005972C600B1C1F500839EF5007D98F5007D98 + F5007D98F5008BA4F600879EE900536DC6000000000000000000000000000000 + 00000000000000000000000000000000000000000000819BF5005579F1005579 + F1005579F1005579F1005579F1005579F1005D80F2007E99F500819BF500819B + F500819BF500819BF500819BF500819BF500819BF500819BF500819BF500819B + F500819BF500819BF5004C66BD000000000000000000D2DBF800425CB6006983 + D9006A82D100809BF2007E99F5008DA5F60088A2F6008BA4F6008DA5F60086A0 + F50086A0F5008EA6F6008CA5F60088A2F6008BA4F600829CF500849EF200617C + D8006882D900425CB60000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A700849DF000A4B7F70093AAF5006D8AEA005A7A + E400476ADD002047CB000D36C0000F38C200385DD6004D6FDF006280E60089A1 + F20091A8F5007E98EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005973CF00AEBEF30094ABF60086A0F50086A0 + F50086A0F50089A2F60097ADF7006C83D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C1000000000000000000000000008EA2E9004460 + BC004964C100667DCA00849EF20097ADF70097ADF70097ADF70090A8F6008DA5 + F6008EA6F60094ABF60097ADF70097ADF70093AAF60089A2F300687FCA004E6B + C8004460BC008EA2E90000000000000000000000000000000000000000000000 + 0000A5A3A200BFBDBC00AAA7A7007691EE009CB1F50091A8F4006D8AEB005979 + E4004669DD001F46CB00143CC3002147C7004567D8005D7BE1006885E7007994 + F1007B96F3007691EC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D50099AAE800A5B8F80092A9F60092A9 + F60092A9F60092A9F6009AAFF7008EA4EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004965C2006E85D20094ABF6009BB0F7009EB3F700A2B6F800A2B6 + F800A2B6F800A1B5F7009EB3F7009DB2F70095ACF700748AD5004965C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000817F7E00B9B8B600C1C0BE00787F9E007A93E7007994EF006A87EA006984 + E100647ED800576DB9005468A800475DA7006981D600748DDD00778DDF00546E + C800637BCD006C85DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000859CE9008699DD00BAC9FA00A6B9F800A6B9 + F800A6B9F800A6B9F800A6B9F800A2B6F8005771C90000000000000000000000 + 000000000000000000000000000000000000000000008EA6F6008EA6F6008EA6 + F6008EA6F6008EA6F6008EA6F600546DC10091A5EB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004763BF006D87DB007C96ED006A80C8006D84D20099AEF200A0B4 + F7009EB3F7008399E3006D84D2006A7FC7007491F400718ADD00405DBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFBEBC00D9D8D700E3E2E1007A7877005974CF005F77C9005E74C000556B + B800516BC200899EE500C9D4F600000000000000000000000000000000000000 + 000092A7ED005874CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000AFBFF3007D91D600B0C0F900A1B5F700A4B7 + F800A5B8F800A2B6F8009BB0F7008AA3F6006D84D4007C93E600000000000000 + 00000000000000000000000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008197E5004862BC005971C2005974D0006B85DB006B84D6008AA3 + F60087A1F5004965C0006B85DB005974D000627BCF004862BC008197E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CFCDCC00EBEBEA00F8F8F8007A7877000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D3DBF9006F84D000A7B8F300B1C1F500B2C2 + F500B2C2F500B1C1F500B0C0F500AABAF30093A6E8005872CA00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000D2DBF8008197E50000000000000000005871C300728D + EA00708CEA009DAFEE0000000000000000006B85DC00D2DBF800000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C9A9A00959392008C8A8900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D3D3D300C2C2C2003B4E + 91003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E8E003B4E + 8E003B4E9100C2C2C200000000000000000000000000D6D6D600566AB0002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667002836670028366700283667002836670028366700283667002836 + 6700283667005468AB00DEDEDE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000030448900BECAF4000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000283B80004F6CCD00506C + CB00506ABE00506AC000516BC500475CA5002E46920000000000000000000000 + 00000000000000000000000000002E469200516BC500506BC300506ABE00506C + CB004F6CCD004F6CCD0000000000000000000000000000000000000000003850 + A3000536DB000536DB000536DB000536DB000536DB000536DB000536DB000536 + DB000536DB000536DB000536DB000536DB000536DB000536DB000536DB004368 + E4003850A3000000000000000000000000000000000000000000293C8000042D + B6000000000000000000042DB6006780D3006780D3005B75CF005772CE00536F + CC004765C9004765C9003F5EC7003758C5003758C5000931B800000000000000 + 0000042DB600293C800000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000026366A007D94E1004256 + 9C00687FCF000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000293D8400042EBC00042E + BC00042EBC00042EBC00042EBC002A408B00BBC7F20000000000000000000000 + 0000000000000000000000000000BBC7F2001B389800042EBC00042EBC00042E + BC00042EBC00042EBC0000000000000000000000000000000000000000003851 + A1000535D8000535D8000535D8000535D8000535D8000535D8000535D8000535 + D8000535D8000535D8000535D8000535D8000535D8000535D8000535D8004368 + E1003851A10000000000000000000000000000000000000000002A3E8200042D + B7000000000000000000042DB7003052C4003052C4003052C4003052C4003052 + C4003052C4003052C4003052C4003052C4003052C400042DB700000000000000 + 0000042DB7002A3E820000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028387000869FF1007D95 + E6004A5DA0000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3E8600042FBF00042F + BF00042FBF00042FBF001D399C00BBC7F2000000000000000000000000000000 + 0000000000000000000000000000000000002C438E001D399C00042FBF00042F + BF00042FBF00042FBF000000000000000000000000000000000000000000384F + 9F000534D4000534D4000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D4000534D4004367 + DF00384F9F0000000000000000000000000000000000000000002B3F8400042E + B900042EB900042EB900042EB900395AC800395AC800395AC800395AC800395A + C800395AC800395AC800395AC800395AC800395AC800042EB900042EB900042E + B900042EB9002B3F840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002B3B75008BA1EB00829A + EA006A87EB003349900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002E428D000431C5000431 + C5000431C5000431C5002148CC003A4D9300869AE10000000000000000000000 + 0000000000000000000000000000BBC8F300566CB7003358D0000431C5000431 + C5000431C5000431C5000000000000000000000000000000000000000000384E + 9B000634CD000735CD000735CD00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000735CD000735CD004366 + D900384E9B0000000000000000000000000000000000000000002D418700042E + BC00042EBC00042EBC00042EBC004C6ACF004C6ACF004C6ACF004C6ACF004C6A + CF004C6ACF004C6ACF004C6ACF004C6ACF004C6ACF00042EBC00042EBC00042E + BC00042EBC002D41870000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000304180009CAEED007F96 + E1004B67C7004368E40030418000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000002F4590000432C9000432 + C9001F3EA5000432C9000432C9005671C8003B4F9600889CE200000000000000 + 00000000000000000000BDC8F300354B99003358D3000432C9000432C9001F3E + A5000432C9000432C9000000000000000000000000000000000000000000384E + 98000E3ACB000F3ACB000F3ACB000C2FA3000C2FA3000C2FA3000C2FA3000C2F + A3000C2FA3000C2FA3000C2FA3000C2FA3000C2FA3000F3ACB000F3ACB004567 + D600384E980000000000000000000000000000000000000000002F438A00042F + BE000000000000000000042FBE005673D3005673D3005673D3005673D3005673 + D3005673D3005673D3005673D3005673D3005673D300042FBE00000000000000 + 0000042FBE002F438A0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000334486009EB0EE007F96 + E1004B67C7004468E40033448600000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000324893000835CC002341 + A800334A9A002442A9000835CC00254DD2005A74CB003E539A00000000000000 + 000000000000BDC9F300374E9C005B71BD000835CC000835CC002442A900334A + 9A002341A8000835CC000000000000000000000000000000000000000000384D + 9800153FCA001740CA001740CA001740CA001740CA001740CA001740CA001740 + CA001740CA001740CA001740CA001740CA001740CA001740CA001740CA004868 + D500384D9800000000000000000000000000000000000000000030448C00042F + C0000000000000000000042FC0005F7AD7005F7AD7005F7AD7005F7AD7005F7A + D7005F7AD7005F7AD7005F7AD7005F7AD7005F7AD700042FC000000000000000 + 0000042FC00030448C0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000035488B009FB1EE007F96 + E1004B67C7004468E40035488B00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004159B0003B53A900BCC9 + F40000000000BCC9F400384FA0001945D6001945D6003359D9004358A1008A9E + E400BDC9F400647AC5004468DE001945D600324FB400324B9F0091A6EB000000 + 0000BCC9F4003B53A90000000000000000000000000000000000000000003A50 + 9B00254CCF00274ECF00274ECF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00274ECF00274ECF004D6D + D8003A509B000000000000000000000000000000000000000000324790000430 + C3000430C3000430C3000430C300718ADD00718ADD00718ADD00718ADD00718A + DD00718ADD00718ADD00718ADD00718ADD00718ADD000430C3000430C3000430 + C3000430C3003247900000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A4F9700A0B2EE007F96 + E1004B67C7004469E5003A4F9700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BDC9F4003956BA00224CDA00224CDA006B84D600465A + A5003D55A6004B6EE100224CDA00224CDA00354EA10091A6EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9C002D53D2003055D2003055D2002745A9002745A9002745A9002745A9002745 + A9002745A9002745A9002745A9002745A9002745A9003055D2003055D2005070 + D9003B519C000000000000000000000000000000000000000000334893000430 + C4000430C4000430C4000430C4007B92E0007B92E0007B92E0007B92E0007B92 + E0007B92E0007B92E0007B92E0007B92E0007B92E0000430C4000430C4000430 + C4000430C4003348930000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003D539E00A0B2EE007F96 + E1004B67C7004469E5003D539E00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000003C53A700415DBE002B54DE004368E2007189 + D9006E84CD002B54DE002B54DE00415DBE0093A7EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003C53 + 9D003358D400375CD400375CD400375CD400375CD400375CD400375CD400375C + D400375CD400375CD400375CD400375CD400375CD400375CD400375CD4005271 + DA003C539D000000000000000000000000000000000000000000354A95000532 + C70000000000000000000532C700859BE300859BE300859BE300859BE300859B + E300859BE300859BE300859BE300859BE300859BE3000532C700000000000000 + 00000532C700354A950000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004056A300A1B3EE007F96 + E1004B67C7004569E5004056A300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECAF4004059AD003B62E5003B62 + E5003B62E5004B67CA003B55AC0094A8EE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003E55 + A1004366D900486AD900486AD900FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00486AD900486ADA005776 + DC003E55A1000000000000000000000000000000000000000000394F99000D39 + CB000D39CB000D39CB000D39CB009CAEEA009CAEEA009CAEEA009CAEEA009CAE + EA009CAEEA009CAEEA009CAEEA009CAEEA009CAEEA000D39CB000D39CB000D39 + CB000D39CB00394F990000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000004962B9006B82CC00B4C4F900A7B9 + F80098AEF7007692F2006279CA00465EB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BECCF500455DB200446AE900446A + E900446AE9006C85DE005065B3008CA1E8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004056 + A2004A6CDB005171DD005171DD00405AB000405AB000405AB000405AB000405A + B000405AB000405AB000405AB000405AB000405AB0005171DD005070DD005977 + DD004056A20000000000000000000000000000000000000000003B519B00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113DCE00113D + CE00113DCE003B519B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000516AC4006980CD0087A0F3009DB1F3008AA3 + F4007993ED005C7AE0006081EE006078CC00BFCCF50000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BECCF500475FB5008396D9004B70EC004B70 + EC004B70EC006081EF00879CE5005369B6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004157 + A5005272DD005978DE005978DE005978DE005978DE005978DE005978DE005978 + DE005978DE005978DE005978DE005978DE005978DE005978DE005978DE005D7B + E0004157A50000000000000000000000000000000000000000003E539E001641 + D1001641D1001641D1001641D100728CE300728CE3006783E0006480E000607D + E0005574DD005574DD004D6EDC004568DA004568DA001641D1001641D1001641 + D1001641D1003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000677FD0007A95F1008CA1E80096ACF500839D + F100728DEA004F6ED7004667D4005276EC004D65BE00BFCDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCCF5008DA0DF007C97F4005D80F2006A83D700455F + BB004962BB005D80F2005D80F200708EF400586FBD008FA3E900000000000000 + 000000000000000000000000000000000000000000000000000000000000435A + A800617FE2006A86E3006A86E300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006A86E3006985E300617E + E100435AA80000000000000000000000000000000000000000004258A2001E48 + D50000000000000000001E48D5004E6FDE004E6FDE004E6FDE004E6FDE004E6F + DE004E6FDE004E6FDE004E6FDE004E6FDE004E6FDE001E48D500000000000000 + 00001E48D5004258A20000000000000000000000000000000000000000000000 + 000000000000556FCD00637CD1006B85D9008096E1009CAEED0088A1F3007792 + EC006582E4004363CF003354C3002446B5003C63E8005B75CF00506AC3000000 + 000000000000000000000000000000000000000000004E69C5004A65C000BFCC + F50000000000BFCCF5004D66BD00829DF5006686F3006686F3004761BC0098AB + F000BFCCF5007089D9006686F3006686F30098AAEB005970BF0090A3EA000000 + 0000BFCCF5004A65C0000000000000000000000000000000000000000000445B + AA006985E300728CE500728CE5005A6FB7005A6FB7005A6FB7005A6FB7005A6F + B7005A6FB7005A6FB7005A6FB7005A6FB7005A6FB700728CE500718BE5006481 + E300445BAA0000000000000000000000000000000000000000004359A500234C + D700234CD700234CD700234CD7005978E0005978E0005978E0005978E0005978 + E0005978E0005978E0005978E0005978E0005978E000234CD700234CD700234C + D700234CD7004359A50000000000000000000000000000000000000000000000 + 00005671CD00637CD1005C7DEC006E86D7008A9FE500A1B3F000819BF000718C + E9005F7DE1003D5ECB002D4EBD001F41B0001033A500375FE7005C76D000BFCD + F60000000000000000000000000000000000000000004761B8008296DA004862 + BB00BFCCF5004E67BE0096A6E1006E8DF3006E8DF300778DDB0098ABF0000000 + 0000000000004C65BD00778DDB006E8DF3007F9AF5009CAEEC005C73BF00BFCC + F5004862BB008296DA000000000000000000000000000000000000000000465D + AB00708BE5007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94 + E8007A94E8007A94E8007A94E8007A94E8007A94E8007A94E8007892E6006683 + E400465DAB000000000000000000000000000000000000000000455BA8002750 + D9002750D9002750D9002750D9006481E4006481E4006481E4006481E4006481 + E4006481E4006481E4006481E4006481E4006481E4002750D9002750D9002750 + D9002750D900455BA80000000000000000000000000000000000000000000000 + 0000607AD1005375EB004D69C8007990DD0094A8EA00A0B3F3007B96EE006A86 + E6005977DD003758C600284AB9001A3CAB0004248F000C2E9F00375FE700526C + C500BFCDF600000000000000000000000000000000004963BA007F9AF50097AD + F700A0AFE40097ADF7007F9AF5008498DE004B64BF0098ABF000000000000000 + 00000000000000000000BFCCF5004F67BF007F9AF5007F9AF5008DA5F60091A2 + DE0097ADF7007F9AF5000000000000000000000000000000000000000000485F + AF007F98EA008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0 + EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB008AA0EB0089A0EB006A86 + E500485FAF0000000000000000000000000000000000000000004A60AD003058 + DE0000000000000000003058DE007A94EA007A94EA007A94EA007A94EA007A94 + EA007A94EA007A94EA007A94EA007A94EA007A94EA003058DE00000000000000 + 00003058DE004A60AD00000000000000000000000000000000005973CF005F79 + D2003251B7003F5BB8005772C9008DA2E700A1B3F10092A9F4006F8BE8005D7B + E0004C6CD5002C4DBC001E40AF001031A00003238D0003238D0003238D00375F + E7005E78D200536EC7000000000000000000000000004B64BB0087A1F50087A1 + F5009EB3F70087A1F50087A1F5004D66C00098ABF00000000000000000000000 + 0000000000000000000000000000BFCCF5008A9EE00087A1F50087A1F5009EB3 + F70087A1F50087A1F50000000000000000000000000000000000000000004960 + B000879EEB0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8ED0093A8 + ED0093A8ED0093A8ED0093A8ED007D8EC9007D8EC9007D8EC9007B8DC9005A73 + C4004960B00000000000000000000000000000000000000000004C62AF00355C + E0000000000000000000355CE000849CEC00849CEC00849CEC00849CEC00849C + EC00849CEC00849CEC00849CEC00849CEC00849CEC00355CE000000000000000 + 0000355CE0004C62AF000000000000000000000000005973CF005F78D3004068 + EE003B59BF00516DCB006882D8009CAFEE00A3B5F40091A8F400708CE900607E + E3005070DA003255C7002447BC00183BB1001033A6001033A6001033A600193E + B8003B64ED005F78D300C1CDF60000000000000000004C65BC008FA7F6008FA7 + F6008FA7F6008FA7F60090A2E20098ABF0000000000000000000000000000000 + 000000000000000000000000000000000000526AC20090A2E2008FA7F6008FA7 + F6008FA7F6008FA7F60000000000000000000000000000000000000000004B62 + B2008EA4ED009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAEEF009BAE + EF009BAEEF009BAEEF009BAEEF008494CC00485EAB00485EAB00485EAB005167 + B0004B62B20000000000000000000000000000000000000000004F64B1003960 + E2003960E2003960E2003960E2008FA5EF008FA5EF008FA5EF008FA5EF008FA5 + EF008FA5EF008FA5EF008FA5EF008FA5EF008FA5EF003960E2003960E2003960 + E2003960E2004F64B1000000000000000000000000005F79D3003C65EE00426A + F0006183F2007491F40088A2F600B3C3F900ADBEF8009EB3F700829CF5007491 + F4006787F3004F74F100446BF0003B64EF003761EF003761EF003761EF003761 + EF003761EF003B64ED005872CD0000000000000000004E67BE00A1B5F700A1B5 + F700A1B5F700A1B5F700B3C3F8004E68C100BFCDF60000000000000000000000 + 0000000000000000000000000000BFCDF6009BABDE00B3C3F800A1B5F700A1B5 + F700A1B5F700A1B5F70000000000000000000000000000000000000000004D65 + B6009BAEF000ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBBF200ABBB + F200ABBBF200ABBBF200ABBBF20092A0CF00C7D2F600AEBEF200718CE7004C65 + B900BFCCF5000000000000000000000000000000000000000000536AB7004267 + E6004267E6004267E6004267E600A2B4F300A2B4F300A2B4F300A2B4F300A2B4 + F300A2B4F300A2B4F300A2B4F300A2B4F300A2B4F3004267E6004267E6004267 + E6004267E600536AB7000000000000000000000000003761EF000936CC00214A + D4005475E4006E8AE900869EEF0098ADF50088A1F5007B96F0005C7BE2004E6E + DA003F60CF002648B900193BAB000E2F9E000324930003269A000328A000042B + AD00042DB500042EBB005872C90000000000000000004F69C000A9BBF800A9BB + F800A9BBF800A9BBF800A9BBF800A0ADDF00526CC70000000000000000000000 + 0000000000000000000000000000526CC700B9C8F900A9BBF800A9BBF800A9BB + F800A9BBF800A9BBF80000000000000000000000000000000000000000004E66 + B80097ABEF00AEBEF300B1C1F300B2C1F300B2C1F300B2C1F300B2C1F300B2C1 + F300B2C1F300B2C1F300B1C1F30096A3CF00A6B7F100738EE800546DC200BFCC + F500000000000000000000000000000000000000000000000000546BB900466B + E7000000000000000000466BE700AABBF400AABBF400AABBF400AABBF400AABB + F400AABBF400AABBF400AABBF400AABBF400AABBF400466BE700000000000000 + 0000466BE700546BB900000000000000000000000000486CE800496DE8005477 + EA006D8AED007994EE00849DF0008BA2F000849DF0007E98EE00708DED006A88 + ED006483EB005678EA005174EA004C70E800486CE800486CE800486CE800486C + E800486CE800486CE8005872C9000000000000000000556FCC005069C0005069 + C0005069C0005069C0005069C0005069C000556FCC0000000000000000000000 + 0000000000000000000000000000556FCC005069C0005069C0005069C0005069 + C0005069C0005069C00000000000000000000000000000000000000000004F67 + BA00879FEE009DB0F100A5B6F100A8B9F200A8B9F200A8B9F200A8B9F200A8B9 + F200A8B9F200A7B8F100A5B6F1008898CD006986E7005770C4004F67BD000000 + 0000000000000000000000000000000000000000000000000000576DBB00496E + E9000000000000000000496EE900B2C2F500B2C2F500B2C2F500B2C2F500B2C2 + F500B2C2F500B2C2F500B2C2F500B2C2F500B2C2F500496EE900000000000000 + 0000496EE900576DBB000000000000000000000000005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005B76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C000516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516ABD00516A + BD00516ABD00516ABD00516ABD00516ABD00516AC000BFCDF500000000000000 + 00000000000000000000000000000000000000000000000000007790E100546B + BE005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71C1005A71 + C100546BBE007790E10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000455CA5002F3E + 7100475CA400445BA800435AA700435AA600435AA600435AA500435AA500435A + A500445AA5004359A3004359A3004359A2004359A1004359A1004358A0004353 + 8C002D3A660043589F000000000000000000000000003855B5003A56B5003B57 + B5003C57B4003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58 + B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003D58B5003C58 + B5003B57B5003A56B500263774000000000000000000000000007E7E7E003C3C + 3C007B7B7B008A8A8A00D8D8D800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A3B3E90029396C003B4A7E0043549300485C9E00485C + 9E00485C9E00435493003B4B80002A396E00A3B3E90000000000000000000000 + 000000000000000000000000000000000000000000006279C90030427E004660 + B400072BA3000328A1000328A00003279F0003279F0003279F0003279D000326 + 9C0003269C0003269A0003269A00032699000325970003259700032596002643 + A300495EA5002E3D71000000000000000000000000003753B2000F34AF001236 + AE00163AB000173AB000173AB000173AB000173AB000173AB000173AB000173A + B000173AB000173AB000173AB000173AB000173AB000173AB000173AB0001539 + B0001337AF000F34AF00283A7C000000000000000000000000009E9E9E005959 + 5900333333006B6B6B0088888800C6C6C6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003E55A3002F3E7400455EAF002F4BAB001E3DA400032699000326 + 9900032699001E3DA4002F4BAB00455EAF002F3E74003E55A300000000000000 + 00000000000000000000000000000000000000000000283C8000495EA8002748 + B5000429A7000429A7000429A6000429A5000328A4000328A3000328A2000328 + A1000328A00003279F0003279F0003279E0003279D0003269C0003269B000326 + 9A002745A800485B9B000000000000000000000000003C58B800173CB5001D40 + B6002244B6002345B7002345B6002446B7002446B7002446B7002446B7002446 + B7002446B7002446B7002446B7002446B7002345B6002345B6002345B7002144 + B7001E41B700183DB6002A3D8100000000000000000000000000000000007676 + 76003C3C3C00ADACAC00C4C3C2008D8D8D0080808000B0B0B000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000293D85003D4E8900465FB0000B2EA10003279F0003279F0003279F000327 + 9F0003279F0003279F0003279F000B2EA100465FB0003D4E8900293D85000000 + 000000000000000000000000000000000000000000002B3D81004361C700042C + B300042CB200042CB100042BB000042BAF00042BAE00042BAD00042BAC00042A + AB00042AAA00042AAA00042AA9000429A8000429A7000429A6000429A6000328 + A4000328A300435EBB000000000000000000000000004764C600284CC4003254 + C4003556C5003556C5003556C5003556C5003556C5003556C5003556C5003556 + C5003556C5002B4BB5000626910003269B00677FCF004160C8003556C5003556 + C5003254C400284CC4002F448D00000000000000000000000000000000000000 + 0000E0DFDF00CECCCC00C0BEBD00A09E9D00605F5E006F6F6E0027377200B6C3 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002D41 + 8A003654B900082DA9000429A8000429A8000429A8000429A8000429A8000429 + A8000429A8000429A8000429A8000429A8000429A800082DA9003654B9002D41 + 8A0000000000000000000000000000000000000000002D4185004362CA00042D + B800042DB600042DB600FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00042AAA00042A + AA00042AA900425EBD000000000000000000000000004C6ACD003054CB003C5D + CC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5FCC003F5F + CC003F5FCC000728960003279F0003279F002343AD006D85D5004A68CE003F5F + CC003C5DCC003155CB0031479200000000000000000000000000000000000000 + 0000CBCACA00DAD9D900C7C6C500767574007777760071737A003E508B002738 + 7300B6C5F0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000445DAE004154 + 9500082EAE00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00082EAE004154 + 9500445DAE00000000000000000000000000000000002F438A004363CE000530 + BE00042EBC00042EBB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0003259600042B + AE00042BAE00425FC1000000000000000000000000005471D4003C5FD2004969 + D3004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6AD2004B6A + D2003D5BC100072CA400072CA400072CA400072CA4002646B100758CD9004B6A + D2004969D2003C5FD100344A9700000000000000000000000000000000000000 + 00009A999900E3E2E200C8C7C6009291910085888F001F3A95003E57A9003E50 + 8B00283873000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A7B6EC00384987004863 + BE00042CB100042CB100042CB100042CB100042CB100042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1004863 + BE0038498700A7B6EC00000000000000000000000000334993004A6BD800143E + CA00153EC900143DC800123CC8000C30A8000A2FA700092EA700062BA4001437 + A9001437A9000328A1000328A1000328A00003279F0003279F0003279F00042D + B800042DB8004362C9000000000000000000000000006581E1005273E000627F + E1006682E1006682E1006682E1006682E1006682E1006682E1005571CF001435 + A2001035AF001035AF001035AF001035AF001035AF001035AF001035AF00859B + E3006C87E3005373E0003A51A300000000000000000000000000000000000000 + 0000B0B0B00093929200B3B2B2006883E0005070DC003B5CCB00092A99000F2D + 93003E57A900293A7500B6C5F100000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000394B8E004A67C800133A + BF000C35BE000C35BE000C35BE00FFFFFF00FFFFFF00A2B2E5000C35BE000C35 + BE000C35BE00A2B2E500FFFFFF00FFFFFF000C35BE000C35BE000C35BE001239 + BE004A67C800394B8E00000000000000000000000000354B98004E6FDC001D46 + D1002149D1001F48D0001D46CF001A43CD001841CC001640CB002148CC00D1D9 + F400D1D9F4000B36C5000A35C4000833C3000530C1000530C100042FBF00042F + BE00042FBD004363CD000000000000000000000000006D89E8005D7DE7006F8B + E800748FE900748FE900748FE900748FE900748FE900748FE900173496001336 + A9001336A900153AB500153AB500153AB500153AB500153AB5001439B1003250 + B4008B9FE3006885E8003C55A800000000000000000000000000000000000000 + 0000000000006F75900091939D006E8CF2006A88EC005574DD002143B300092A + 99000F2D930040528C002A3B7500B6C5F1000000000000000000000000000000 + 000000000000000000000000000000000000000000004A5DA500395BCD00153D + C400173FC400173FC400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173F + C400173FC400FFFFFF00FFFFFF00FFFFFF00173FC400173FC400173FC400153D + C400395BCD004A5DA500000000000000000000000000384F9D005172E000264F + D8002C53D7002A51D6002951D600254DD400234BD300214AD200D3DBF500FFFF + FF00FFFFFF00254CCF00153FCB00133DCA000F3AC8000E39C7000C37C7000833 + C4000632C3004364D1000000000000000000000000007591EF006887EE007B96 + F000819BF000819BF000819BF000819BF000819BF000819BF000142F8C00142F + 8C00142F8C001A3FBA001A3FBA001A3FBA001A3FBA001A3FBA002949B400142F + 8C00324B9D008DA3EB004058AE00000000000000000000000000000000000000 + 000000000000BECCF500455FB900829DF5007B97F4006C89EC003B5CCB002143 + B300092A99003E57A90040528D002A3C76000000000000000000000000000000 + 000000000000000000000000000000000000000000005169BD003357CF002148 + CB00234ACB00234ACB00234ACB009DA9D000FFFFFF00FFFFFF00ABBAEB00234A + CB00ABBAEB00FFFFFF00FFFFFF009DA9D000234ACB00234ACB00234ACB002148 + CB003357CF005169BD000000000000000000000000003C54A7005879E800375E + E2004267E3004065E2003F64E2003B61E0004569E100D9E0F800FFFFFF00FFFF + FF00FFFFFF00FFFFFF00D6DDF700365BDA00264ED600244DD600224BD4001E47 + D2001742D0004B6CDB000000000000000000000000007E99F500708EF400829D + F50094ABF60097ADF70099AFF70099AFF70099AFF70099AFF70099AFF70099AF + F70099AFF7002448BF002448BF002448BF002448BF002448BF00B7C7F90099AF + F70091A8F6007E99F500445DB400000000000000000000000000000000000000 + 00000000000000000000000000004762BB00627BD4007D98F5006B89EC005574 + DD003B5CCB00092A99000F2D93003E57A9002C3D7800B6C5F100000000000000 + 000000000000000000000000000000000000000000005D78D5002D54D500365B + D700395ED800395ED800395ED800395ED8003353BE00A4AFD400FFFFFF00FFFF + FF00FFFFFF00A4AFD4003353BE00395ED800395ED800395ED800395ED800385D + D8002E54D5005F79D5000000000000000000000000003F58AB005C7DEC003F66 + E7004D71E9004B6FE700496EE7005073E600DBE2F900FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00D8DFF8003158DC002F56DB002D55DA002951 + D900204AD6004E6FDE000000000000000000000000007C97F4006989F3007995 + F40088A2F6008FA7F60098AEF700A3B6F800A3B6F800A3B6F800A3B6F800A3B6 + F800A3B6F8002646B3002646B3002646B3002646B3002646B300BECCFA00A1B5 + F70095ACF700819BF500455EB600000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF5004963BC00627CD5007894F4006D8A + EC005574DD002143B300092A99000F2D930042548E002C3E7900B6C5F1000000 + 00000000000000000000000000000000000000000000607BD800365CDC004266 + DE004569DF004569DF004569DF004569DF004569DF003D5CC300FFFFFF00FFFF + FF00FFFFFF003D5CC3004569DF004569DF004569DF004569DF004569DF004468 + DF003A5FDC006681DB00000000000000000000000000415AB1006081F000486D + EC00587BED005679EC005477EC00DDE4FA00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005F7EE6003A60E000395FE000335A + DE002952DC005173E200000000000000000000000000ADBEF8009AAFF700A0B4 + F700A7B9F800ACBDF800ADBEF8009FB3F700A4B7F800A6B9F800A7B9F800A7B9 + F800A8BAF800223C9000223C9000223C9000223C9000223C9000C0CEFA009FB3 + F70093AAF600809BF5004660B700000000000000000000000000000000000000 + 000000000000000000000000000000000000BFCCF5004A64BD007E99F5007E99 + F5006D8AEC003B5CCB002143B300092A99003E57A90042548F002D3E79000000 + 00000000000000000000000000000000000000000000657FDC003F64E1004D70 + E3005173E3005173E3005173E3005173E3005173E300BCC9F400FFFFFF00FFFF + FF00FFFFFF00BCC9F4005173E3005173E3005173E3005173E3005173E3004F71 + E3004368E1006C85DE00000000000000000000000000455EB6006787F300597C + F2006E8DF3006D8CF3006B8AF3005B77D5005772CF005570CD00FFFFFF00FFFF + FF00FFFFFF004C69CB004A68CB004866CA004563C9004564CA004D71E700486D + E9003A62E700597BEA000000000000000000000000007391F400456CF000456C + F000456CF000456CF0003A60E000A8BAF800ABBDF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ABBD + F800A7B9F800A2B6F8004962B900000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004D67C0006C85 + D80088A2F6006D8AEC005574DD003B5CCB00092A99000F2D93003E57A9002E40 + 7B00B6C5F100000000000000000000000000000000006680D6006080EC006080 + EB006886EC006886EC006886EC00C5D1F800FFFFFF00FFFFFF00B2BBDA005670 + C400B2BBDA00FFFFFF00FFFFFF00C5D1F8006886EC006886EC006886EC006181 + EB006181EC006780D6000000000000000000000000004660B7006B8AF3006183 + F2007A96F4007894F4007693F4007391F400718FF4006F8DF300FFFFFF00FFFF + FF00FFFFFF005671CE006384F3006082F1005C7EF0005B7EF000597CEF005276 + EE004269EB005C7EEE000000000000000000000000007894F4004B71F1004B71 + F1004B71F1004B71F1004B71F100365BD700365BD700365BD700365BD700365B + D700365BD700365BD700365BD700365BD700365BD700365BD700365BD700365B + D700365BD700365BD7004A63BB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006D85D9007E99F5006D8AEC005574DD002143B300092A99000F2D93004354 + 8D004C526E00AFBEEE000000000000000000000000006279C8006E8CF0006887 + EF007491F1007491F1007491F100FFFFFF00FFFFFF00FFFFFF00657FD3007491 + F100657FD300FFFFFF00FFFFFF00FFFFFF007491F1007491F1007491F1006988 + EF006E8CF0006279C8000000000000000000000000004761B8006E8DF3006A8A + F300849EF500829DF500819BF5007E99F5007C97F4007A96F400FFFFFF00FFFF + FF00FFFFFF005E78CF006D8CF3006C8BF3006888F3006686F3006586F3005E80 + F2004B71F0006082F1000000000000000000000000007C97F4005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1005075F1005075F1005075F1005075F1005075F1005075 + F1005075F1005075F1004B65BC00000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6004F69C2007E99F5007894F4006B89EC003B5CCB002143B300092A99007B7E + 8F0068676900555769000000000000000000000000005169BB007E97F0006F8D + F300819BF500819BF500819BF500FFFFFF00FFFFFF00BAC2DC00819BF500819B + F500819BF500BAC2DC00FFFFFF00FFFFFF00819BF500819BF500819BF5007290 + F4007E98F1005169BB000000000000000000000000004963BA007491F4007995 + F4009BB0F70099AFF70097ADF70093AAF60091A8F60090A8F600FFFFFF00FFFF + FF00FFFFFF007187D100839EF500829CF5007F9AF5007D98F5007B97F400718F + F400597CF2006686F300000000000000000000000000849EF5005B7EF2005B7E + F2005B7EF2005B7EF2005B7EF2006384F300829CF5007E91D5004E67BE004E67 + BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67BE004E67 + BE004E67BE004E67BE004E68C100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC4006881D9007D98F5006C89EC005674D700949AAF00F4F4 + F400E3E2E200B1B2B800697CC2000000000000000000AEBDF200586EBF00869E + F0008FA7F60096ACF70096ACF7008497D8008497D80096ACF70096ACF70096AC + F70096ACF70096ACF7008497D8008497D80096ACF70096ACF70091A8F60089A1 + F000586FBF00AEBDF2000000000000000000000000004B64BB007693F4007D98 + F500A6B9F800A4B7F800A2B6F8009FB3F7009DB2F7009BB0F700FFFFFF00FFFF + FF00FFFFFF007B8FD1008EA6F6008CA5F60089A2F60087A1F500859FF5007995 + F4005F81F2006888F30000000000000000000000000088A2F6006183F2006183 + F2006183F2006183F2006183F200839EF5008195D600536CC000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCDF600536DC6006882DA007A95ED00B9BFD400BFBEBC00EEEE + ED00CDCED400898D9C005A6387000000000000000000000000005C76D2006980 + CE008BA4F6009DB2F700A2B6F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6 + F800A2B6F800A2B6F800A2B6F800A2B6F800A2B6F8009CB1F7008FA7F6006F85 + D0005C76D200000000000000000000000000000000004C65BC007C96EF007F9A + F500ADBEF800AFC0F900ADBEF800AABCF800A8BAF800A6B9F800A3B6F800899A + D3008798D2008496D2009AAFF70098AEF70094ABF60092A9F60090A8F6007B97 + F4006283F200718EEE000000000000000000000000008DA5F6006787F3006787 + F3006787F3006787F3006989F3008597D700546DC10091A5EB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFCDF600536EC700ADB2C100EDECEC00EDECEC00BFC0 + C6008F93A2008F93A2006A6E7E00000000000000000000000000000000004E68 + C30094ABF60097ADF700A8BAF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800A5B8F80095ACF70095ACF7004E68 + C30000000000000000000000000000000000000000007990E3005F77C8008AA2 + F1008AA3F60091A8F60094ABF60094ABF60093AAF60093AAF60090A8F6008EA6 + F6008DA5F6008AA3F60088A2F60086A0F500829DF500809BF5007995F4007391 + F4007D97EF005D74C700000000000000000000000000506AC100506AC100506A + C100506AC100506AC100506AC10091A5EB000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000787D9300B5B5B900C9CAD000AFB4 + C300B3B8C800B3B9C8007286CC00000000000000000000000000000000000000 + 00004F6AC500758AD3009EB2F400A8BAF800B2C2F900B7C7F900BCCAFA00BCCA + FA00BBCAFA00B6C6F900B1C1F900A7B9F80098ADF2006F85D1004F6AC5000000 + 0000000000000000000000000000000000000000000000000000546FCB006078 + C9007C97F400809BF500829DF500839EF500829DF500829DF500819BF500819B + F500809BF5007F9AF5007E99F5007E99F5007B97F4007A96F4007794F400718B + E6005E75C8006680D90000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006974A1009095A500BCC1 + D000BCC1D100A3A8B80000000000000000000000000000000000000000000000 + 0000000000005E79D3005F76C5009FB3F500A3B6F800A4B7F8009FB3F7009FB3 + F7009FB3F700A3B6F800A0B4F7009FB3F5005F76C5005E79D300000000000000 + 0000000000000000000000000000000000000000000000000000000000007991 + E3005069C0005069C0005069C0005069C0005069C0005069C0005069C0005069 + C0005069C0005069C0005069C0005069C0005069C0005069C0005069C000506A + C3007991E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000007489C8008E92 + A200828BAF007A8ED40000000000000000000000000000000000000000000000 + 00000000000000000000AEBEF2005C74C500768CD500859AE40090A6F10091A7 + F10090A6F100839AE500758AD5005C73C400AEBEF20000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DADA + DA002F417A002834600028346000283460002834600028346000283460002834 + 600028346000283460002834600028346000283460002834600028346000CACA + CA00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CDD6F6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000092A1D7002635640026356300C3C3C300CACACA00D3D3D300000000000000 + 0000000000000000000000000000D5D5D50090A1D5002532600025326000C8C8 + C800DADADA0000000000000000000000000000000000C2C2C200C0C0C0003345 + 7F0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0034437B0034437B0034437B0034437B0034437B0034437B0034437B003443 + 7B0033457F00C0C0C000D6D6D600000000000000000000000000000000000000 + 00002A3970000525910004208000031D7300031D7300031D7300031D7300031D + 7300031D7300031D7300031D7300031D7300031D7300031D7300031D73000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B6C3F0002939 + 740027366B000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B9C6 + F100405396003F5AB6003F5AB5002A3D7D00B9C6F10000000000000000000000 + 0000000000000000000000000000B7C5F1003F5291003E58AF003E58AF00283A + 7800B7C5F100000000000000000000000000000000000000000000000000364B + 99007E93D7007D92D7007D92D7007C91D7007C91D7007C91D7007B90D7007B90 + D7007B90D7007A8FD700798FD700798FD700788ED700788ED700778DD70099A9 + E100364B99000000000000000000000000000000000000000000000000000000 + 00002D407F00637BCA005771CB006684EA006684EA006684EA006684EA006684 + EA006684EA006684EA006684EA006684EA006584EA008AA1EF00032288000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B7C5F1004A5B99003E59 + B1003E59B1002C3B73008195DB00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BAC6F2002C40 + 83003E5AB9000F32A8000F32A800415599002B3F8000B9C6F100000000000000 + 00000000000000000000B9C6F1002A3E7D003F5AB4000F31A0000F31A0004052 + 94002A3C7B00B7C5F1000000000000000000000000000000000000000000384F + 9D008398DC008398DC008297DC008297DC008297DC008196DC008196DC008196 + DC008196DD008095DC007F94DC007F94DC007E94DC007E94DC007E94DD009EAE + E500384F9D000000000000000000000000000000000000000000000000000000 + 000030438400667ECF00536ECB005D7EEB005D7EEB005D7EEB005D7EEB005D7E + EB005D7EEB005D7EEB005D7EEB005D7EEB005D7EEB00879FF00003238D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B9C6F1002E4281003F5AB6000F31 + A3000F31A3004A5D9E002D3E79008196DC000000000000000000000000000000 + 00000000000000000000000000000000000000000000BAC6F2002E4288004358 + A0000F34AD00042AAA00042AA9003E5BBC0042569D002D418500000000000000 + 000000000000B9C6F1002C41820041569A000F32A7000328A1000328A1003F5A + B700415598002B3F7F0000000000000000000000000000000000000000003A51 + A2008A9EE100899DE100899DE100889DE100879CE100879CE100869BE100869B + E100869BE100859AE100859AE100859AE1008499E1008499E1008499E100A2B2 + E8003A51A2000000000000000000000000000000000000000000000000000000 + 000032478A006780D3004C68C8005477EA005477EA005477EA005477EA005477 + EA005477EA005477EA005477EA005477EA005477EA00829CF000032493000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9C6F100304285004C5FA1000F33A9000328 + A4000328A4003E5AB9004C5FA1002F417E000000000000000000000000000000 + 000000000000000000000000000000000000000000006678B5004261C800183D + BC001036B7001036B7000F35B6000A31B4001338B700405EC40032468E00BAC7 + F200BAC7F2004459A4003F5DC2001035B200042BAD00042BAC00042BAC00042A + AB000F34AE003E5BBD002F428800000000000000000000000000000000003E56 + AA0097AAEC0097AAEC000633C9000633C9000633C9000633C9000633C9000633 + C9000633C90092A7EB0092A7EB0092A7EB0091A6EB0091A6EB0091A6EB00ABBB + F0003E56AA000000000000000000000000000000000000000000000000000000 + 0000374C96006883DB003C5CC6004268E9000434D2004268E9004268E9004268 + E9004268E9004268E9004268E9000434D2004268E9007893F00003279D000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BAC7F2004E62AA003E5CC2001035B400042BB000042B + B000042BB000042BB0001035B4003E5CC200344688008499DF00000000000000 + 000000000000000000000000000000000000000000007D8DC1007D93DC001C42 + C200183EBF001A40C000193FBF00143BBC001037BB00183EBD00465CA900344A + 9200344991003F5EC6001036B700042CB400042CB300042CB200042CB200042B + B0001035B400798ED40032478C00000000000000000000000000000000004159 + AE00A1B3F200A1B3F200A1B3F200A0B3F200A0B3F2009FB2F2009FB2F2009EB1 + F2009EB1F2009DB0F2009DB0F2009CB0F2009BAFF1009BAFF1009BAFF100B1C1 + F4004159AE000000000000000000000000000000000000000000000000000000 + 00003A509A006984DF003455C4003962EA000434D3003962EA003962EA003962 + EA003962EA003962EA003962EA000434D3003962EA00728FEF000328A1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BAC7F200374B94003F5EC7001037B900042DB600042DB600042D + B600042DB600042DB600042DB6001037B9004F65AF0036498C00859AE1000000 + 00000000000000000000000000000000000000000000384E9A007F8FC4007F95 + DF001D44C5002147C7002248C7001E44C4001B42C300163DC1004564CD004860 + AD00485FAD00153CBE000831BA000730B900042DB700042DB700042DB7001037 + B9007A90D8007C8BBE00BAC7F20000000000000000000000000000000000425C + B300A9BBF600A9BBF6001541D3001541D3001541D3001541D3001541D3001541 + D3001541D3001541D3001541D3001541D3001541D3001541D300A3B6F600B8C7 + F800425CB3000000000000000000000000000000000000000000000000000000 + 00003C53A1006985E2002B4EC300305BEA000534D400305BEA00305BEA00305B + EA00305BEA00305BEA00305BEA000534D400305BEA006C8AF0000429A6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BCC8F300394F98005167B200153CC0000932BC000932BC000932BC000932 + BC000932BC000932BC000932BC000932BC004161CC005167B200394C91000000 + 0000000000000000000000000000000000000000000000000000BDC9F4003C53 + A200839AE5002C52D2002A50D1003055D2002E53D1002C52D100264DCE002D52 + CF002B50CF001E46CB001C44CA001A42C900143DC600103AC500173FC700808F + C500394F9B00BCC8F3000000000000000000000000000000000000000000455F + B600B6C6F900B6C6F900244DD600244DD600244DD600244DD600244DD600244D + D600244DD600244DD600244DD600244DD600244DD600244DD600B1C1F900C0CE + FA00455FB6000000000000000000000000000000000000000000000000000000 + 00004259AD006987EA001B41C1001E4DEA000535D6001E4DEA001E4DEA001E4D + EA001E4DEA001E4DEA001E4DEA000535D6001E4DEA006081F000042BB0000000 + 000000000000000000000000000000000000000000000000000000000000BDC9 + F400536BBC00496AD7002C51D000284ECE002A50D0002048CD001C44CC001C44 + CC001C44CC001C44CC001C44CC002A50D000254CCE002C51D000496AD7003D52 + 9C00899EE400000000000000000000000000000000000000000000000000BDCB + F4008393CD00859CE7003056D600375CD800365BD700355AD6003056D5002E54 + D4002C52D300274ED100254CD000234BD0001942CC001E46CE007E95E2003A52 + A000BDC9F4000000000000000000000000000000000000000000000000004660 + B700BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9FA00BAC9FA00B9C8F900B9C8 + F900B9C8F900B9C8F900B8C7F900B8C7F900B7C7F900B7C7F900B7C7F900C4D1 + FA004660B7000000000000000000000000000000000000000000000000000000 + 0000455EB2006987ED00133ABE00153CBF000535D7001546EA001546EA001546 + EA001546EA001546EA001546EA000535D7001546EA005A7DF100042DB6000000 + 0000000000000000000000000000000000000000000000000000000000003D56 + A500506ED2005370D2005673D3005B77D4005A78DC002B52D400254DD300254D + D300254DD300254DD300244CD3005A78DC005974D3005673D3005370D2005D72 + B9004056A000D1DAF80000000000000000000000000000000000000000000000 + 00004059AB008495D000869DEA003A5FDC003F64DD003D62DC003A5FDB00385D + DB00355BDA003157D7002E55D6002C53D600254DD4008097E5008292CB00BDC9 + F400000000000000000000000000000000000000000000000000000000004760 + B800C1CEFA00C2CFFA003358D7003358D7003358D7003358D7003358D7003358 + D7003358D7003358D7003358D7003358D7003358D7003358D700BCCAFA00C8D4 + FB004760B8000000000000000000000000000000000000000000000000000000 + 00004761B8006988F1000B34BD009DB2F6000535D7000C3FEA000C3FEA000C3F + EA000C3FEA000C3FEA000C3FEA000535D7000C3FEA005478F000042EBA000000 + 0000000000000000000000000000000000000000000000000000000000004B62 + AF003F56A5003F56A5003F56A5003F56A5005D79D8002A52D9002F56DA002F56 + DA002F56DA002F56DA002951D9005D79D7003F56A5003F56A5003F56A5003F56 + A5003F58AA000000000000000000000000000000000000000000000000000000 + 000000000000BECCF500455EB5006483EA005275E8004F72E7004B6FE600496D + E500466BE4004267E3004166E3004267E2007C8FD100425BB000BDCBF4000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00CBD6FB00CBD6FB004164D8004164D8004164D8004164D8004164D8004164 + D8004164D8004164D8004164D8004164D8004164D8004164D800C7D3FB00CFD9 + FB004962BA000000000000000000000000000000000000000000000000000000 + 00004A64BC006989F300042DB6009AAFF3002242AE002245BA000538E4000538 + E4000538E4000538E4000538E4000434D2000538E4004F73EB00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000445DB100607DE000375FE5004167E6004167 + E6004167E6004167E600375FE500607DE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000BFCCF5004861BA006887EE00597BEC00597BEC005578EB005275 + EA005074EA004C70E800496EE8004B6FE7005670CB00465EB400BFCCF5000000 + 0000000000000000000000000000000000000000000000000000000000004A63 + BB00D0DAFB00D1DBFB00D0DAFB00CFD9FB00CFD9FB00CFD9FB00CED8FB00CED8 + FB00CED8FB00CDD8FB00CDD8FB00CDD8FB00CCD7FB00CCD7FB00CCD7FB00D2DB + FB004A63BB000000000000000000000000000000000000000000000000000000 + 00004B65BD006989F300042CB4009AAEF2009BADEC009AAEF2000537E1000537 + E1000537E1000537E1000537E1000433D0000537E1004F73EA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004760B5006381E5003E65EA004A6FEB004A6F + EB004A6FEB004A6FEB003E65EA006280E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BFCCF5004B65BE005975D300577AF0005E80F0006384F1005E80EF005C7E + EF00597CEE005477ED005276ED004E73EC00597BEC005973CF004861B9000000 + 0000000000000000000000000000000000000000000000000000000000004B64 + BC00D5DEFC00D5DEFC005070D9005070D9005070D9005070D9005070D9005070 + D9005070D9005070D9005070D9005070D9005070D9005070D900D0DAFB00D5DE + FC004B64BC000000000000000000000000000000000000000000000000000000 + 00004C66BD006989F300042CB2009AAEF1000433CE000537DE000537DE000537 + DE000537DE000537DE000537DE000433CE000537DE004F72E800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004964BB006683E800466DEE005478F0005478 + F0005478F0005478F000456CEE006582E8000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BFCD + F6005B76D5006183F200577BF2007693F4007894F4007592F400718FF4006E8D + F3006B8AF3006888F3006586F3006384F3005277F1004A70F0005C7FF2004D67 + C000BFCDF6000000000000000000000000000000000000000000000000004D66 + BD00DDE4FC00DDE4FC005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7B + DA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA005F7BDA00D9E1FC00DBE2 + FC004D66BD000000000000000000000000000000000000000000000000000000 + 00004E68BF006989F300042BAD000535D9000432CA000535D9000535D9000535 + D9000535D9000535D9000535D9000432CA000535D9004F71E300042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BE006B88EA005479F1006686F3006686 + F3006686F3006686F3005479F1006A87EA000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF6004E68 + C1006384F3005C7FF2006C8BF300829DF500819BF5007F9AF5007290F400718F + F4006F8DF3006F8DF3006F8DF3006C8BF3006485F300577BF2004E73F1005D78 + D6004E68C100BFCDF60000000000000000000000000000000000000000004E67 + BE00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6FC00E0E6FC00E0E6FC00E0E6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DEE5FC00DDE4FC00DDE4FC00DFE6 + FC004E67BE000000000000000000000000000000000000000000000000000000 + 00004F69C0006989F300042AAB000535D6000431C7000535D6000535D6000535 + D6000535D6000535D6000535D6000431C7000535D6005072E200042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004D67BF006D8AEA005C7FF200708EF400708E + F400708EF400708EF4005C7FF2006D8AEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000BFCDF6004F69C2005C77 + D6005F81F2007290F400849EF5008CA5F60089A2F600829DF5006B8AF300A3B6 + F800A3B6F8006A8AF3007391F4007592F400718FF4006989F3005A7DF2005D80 + F2005A76D6004F69C20000000000000000000000000000000000000000004F68 + BF00E5EAFD00E5EAFD006D87DB006D87DB006D87DB006D87DB006D87DB006D87 + DB006D87DB006D87DB006D87DB006D87DB006D87DB006D87DB00E1E7FD00E1E7 + FD004F68BF000000000000000000000000000000000000000000000000000000 + 0000506AC1006989F300042AA9000434D3000431C5000434D3000434D3000434 + D3000434D3000434D3000434D3000431C5000434D3004F70DF00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004E68C000708CEA006485F3007995F4007995 + F4007995F4007995F4006485F300708BEA000000000000000000000000000000 + 00000000000000000000000000000000000000000000778EDB005B7EF2005579 + F10086A0F50098AEF700A0B4F70091A8F6007D98F5006888F3008FA1E000506A + C400506AC40095ACF7005B7EF2006B8AF300829CF500809BF5007995F4005378 + F1003E67F0005075F100506AC40000000000000000000000000000000000516A + C100EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E6EB + FD00516AC1000000000000000000000000000000000000000000000000000000 + 0000526CC3006989F3000328A4000433CE000430C1000433CE000433CE00B2C0 + F000B2C0F0000433CE000433CE000430C1000433CE004F6FDC00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000506AC1007590EC007491F4008CA5F6008CA5 + F6008CA5F6008BA4F6007491F400748FEC000000000000000000000000000000 + 000000000000000000000000000000000000000000008B9FE0008FA7F600577B + F20089A2F60099AFF7009EB3F700829CF5006C8BF3009AAFF700516BC400BFCD + F600BFCDF6008EA1E00095ACF7005D80F2007E99F500819BF5007A96F4005479 + F1003E67F00086A0F500516BC40000000000000000000000000000000000526B + C200EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00ECF0 + FE00ECF0FE00EBF0FD00EBF0FD00C8CCD800C8CBD600C8CBD600C8CCD700C6CA + D700526BC2000000000000000000000000000000000000000000000000000000 + 0000536DC4006989F3000328A2000432CB00042FBF000432CB000432CB000432 + CB000432CB000432CB000432CB00042FBF000432CB004F6FDA00042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516BC2007892EC007B97F40095ACF70095AC + F70095ACF70095ACF7007B97F4007691EC000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC50090A2E1009AAF + F7007F9AF5008EA6F60091A8F6006E8DF3009BB0F7008FA2E100BFCDF6000000 + 000000000000526CC5008FA1E10095ACF7006F8DF3007693F400718FF4005378 + F1008DA5F6008D9FE100BFCDF60000000000000000000000000000000000526C + C300F0F3FE00F0F3FE00F0F3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00EFF3FE00EEF2FE00EEF2FE00CBCED800516BC100526CC300526CC300526C + C300526CC3000000000000000000000000000000000000000000000000000000 + 0000546EC5006989F3000328A0000431C800042EBC000431C8000431C8000431 + C8000431C8000431C8000431C800042EBC000431C800506FD800042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000526CC3007994EC00829CF5009EB3F7009EB3 + F7009EB3F7009EB3F700819BF5007993EC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFCDF600536E + C7009DB2F7006082F2006082F20090A3E100536EC700BFCDF600000000000000 + 00000000000000000000BFCDF600536EC70095ACF7004F74F1004E73F10091A3 + E100536EC700BFCDF6000000000000000000000000000000000000000000546E + C500F4F7FE00F5F7FE00F5F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7FE00F4F7 + FE00F4F7FE00F3F6FE00F3F6FE00CFD1D800FAFBFF00FAFBFF00F5F7FD00536E + C700BFCDF6000000000000000000000000000000000000000000000000000000 + 00005670C7006888F30003269C000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C200506ED400042EBC000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000546EC5007A94ED00829CF500B0C0F900B0C0 + F900B0C0F900A9BBF800829CF5007993ED000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F60092A4E20092A9F60092A9F600556FC700C1CDF60000000000000000000000 + 0000000000000000000000000000C1CDF60090A3E2008DA5F6008CA5F600556F + C700C1CDF600000000000000000000000000000000000000000000000000556F + C600F5F7FE00F7F9FE00F7F9FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F5F7FE00F5F7FE00D0D2D800FAFBFF00F5F7FD00B7C2E800C1CD + F600000000000000000000000000000000000000000000000000000000000000 + 00005771C8006586F30003269900042FC000042FC000042FC000042FC000042F + C000042FC000042FC000042FC000042FC000042FC0004F6DD2000430C2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000556FC600738FEC007693F400A3B6F800A6B9 + F800A6B9F80098AEF7007693F400728EEC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005670C8008DA1E3008DA1E300C1CDF6000000000000000000000000000000 + 0000000000000000000000000000000000005670C8008DA1E3008DA1E300C1CD + F600000000000000000000000000000000000000000000000000000000005670 + C700F5F7FE00F7F9FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F7F9FE00D2D4D800F4F6FD00B7C3E8005670C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005771C8005D80F20003259700032597000325970003259700032597000325 + 970003259700032597000325970003259700032597003F57A6000536D9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005670C7006D88E5007590ED00859DEE00869E + EE00869EEE00829AEE007691ED006C88E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005771 + C9005871C8005871C8005871C8005871C8005871C8005871C8005871C8005871 + C8005871C8005871C8005871C8005871C8005771C900C1CDF600000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005A73C9005A73C9005A73C9005A73C9005A73C9005A73 + C9005A73C9005A73C9005A73C9005A73C9005A73C9005A73C9005771C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9C6F1002A3B78002F448B00B9C6F1000000000000000000000000002F44 + 8B002A3B78002F448B0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C5CEF3006A7FC8002A3A75002433 + 6900243369002A3A7500364D95006A7FC8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6C3F000414F800023316200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000374887006D84CF005B73C7007286C800566EBE000E30A300334FB1008496 + D5006D84CF005D74C10000000000000000000000000000000000000000000000 + 000000000000000000004259A70046589700455EAF002F4BAB001333A0000326 + 9900032699001333A0001E3DA4002F4BAB004658970035447A004259A7000000 + 0000000000000000000000000000000000000000000000000000000000004256 + 9B008E9ED10095A7E2009FB0E900A1B1E9009DADE40099A9DF008E9ED3008999 + CD008595C7007C8BBB007785B5007381AF007180B2007A8ABF008191C3004256 + 9B00000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCD6 + F60022357800435BAA0023336900000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000364C98009EADDD008492C30031448600506CCA00042CB400314486008391 + C3009EADDD008291C30000000000000000000000000000000000000000000000 + 0000B9C6F1002E42880042538E002B49AE000B2EA10003279F0003279F000327 + 9F0003279F0003279F0003279F0003279F002B49AE004760B10042538E00B9C6 + F100000000000000000000000000000000000000000000000000000000002736 + 6E00708ADF007993E70091A7F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC8002736 + 6E00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002F43 + 840043538C00425CB00025356D00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC7F20033478B00374D9C00BAC7F2004F6CCE00042EB90033478B00374D + 9C0033478B00374D9C0000000000000000000000000000000000000000000000 + 0000334686006E7AA6004C65B8000328A3000328A3000328A3000328A3000328 + A3000328A3000328A3000328A3000328A3000328A3001336A900415CB7002F42 + 8400B9C6F1000000000000000000000000000000000000000000000000002A3A + 74006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4002A3A + 7400000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000046589600405B + B8000F33A900435EBA002A3B7700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000384D9600384D9600384D9600384D9600384D + 9600384D9600384D9600384D9600384D96001F46CB000C37C600384D96000000 + 000000000000000000000000000000000000000000000000000000000000475F + B100BCBFC900A6ABBA00808DB6001438AE00042BAC00042BAC00042BAC00042B + AC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00042BAC00415D + BD0046589A00475FB10000000000000000000000000000000000000000003042 + 8200718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4003042 + 820000000000000000000000000000000000000000000000000090A3E3003B51 + A2002F4385002F4284002E4284002E4183002E4183002E408100405DBD000F34 + AF00042AAA00425EBD002C3E7D002B3D7C002B3C7A002B3C7A002B3C79002A3C + 7800344A95008196DC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000617BD4001F44C1002C50C6005F79D3005F79 + D3005F79D3005F79D3005F79D3006079D3005A78DC00133ECD003754BA000000 + 0000000000000000000000000000000000000000000000000000A8B7ED005665 + 9800B2B6C300ADB1BF00A9AEBE004A63B7001439B200042CB100042CB100042C + B100042CB100042CB100042CB100042CB100042CB100042CB100042CB1001439 + B6004964BF003E508E0000000000000000000000000000000000000000003346 + 8800708ADF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE00415FC4003346 + 88000000000000000000000000000000000000000000546CC100405498004D66 + B7004261CA004362CA004362C9004261C7004361C7004361C7001036B600042C + B100042BB0003655BE00425FC1004360C100425FBF00425EBE00435FBE004661 + B9004B60A8003B4C870000000000000000000000000000000000000000000000 + 00000000000000000000000000005E7CE0002C53D7003D52A0003D52A0003D52 + A0003D52A0003D52A0003D52A0003D52A0005670CA00163BB4003D52A0000000 + 0000000000000000000000000000000000000000000000000000455BAE00A2A9 + BF00B1B6C300B1B6C300B1B6C3008794C0004B65BB00153AB700042DB600042D + B600042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6002B4EC2004C62AD000000000000000000000000000000000000000000364A + 8F007790E1007C95E90092A8F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002D4AAC00516CC800364A + 8F000000000000000000000000000000000000000000506AC100294FD0000C38 + CA000D38C8000C37C6000C37C6000934C3000833C2000833C1000631BF00052F + BD00042EBC00042EBA00042EB900042DB800042DB600042DB600042DB500042C + B300042CB2002346BB00354B9600000000000000000000000000374E9B002C3F + 7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F7E002C3F + 7E002C3F7E00374E9B00000000004259AB008099EB005879E7004960AF000000 + 00000000000000000000000000000000000000000000788DD7008D98BA00CACE + D900C1C5D300C1C5D300C1C5D300C1C5D300BDC2D10097A4CE00274CC500173F + C400173FC400173FC400173FC400173FC400173FC400173FC400173FC400173F + C400153DC400395BCD00788DD70000000000000000000000000000000000D1DA + F7003D529D003D529D003D529D003D529D003D529D003D529D003D529D003D52 + 9D003D529D003D529D003D529D003D529D003D529D003D529D003D529D00D1DA + F70000000000000000000000000000000000000000004B6BD7001440D1001641 + D1001943CF001943CF001842CE00153FCB00143ECA00133DC900103AC7000E38 + C5000D37C4000B35C2000933C1000832BF000630BD00052FBC00052FBB00042E + B900042DB8000831B90033468A0000000000000000000000000032468C00506D + CF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506DCF00506D + CF00506DCF0032468C00000000004C66C0008195D8004462C700445DB0000000 + 000000000000000000000000000000000000000000004963B600B6BCD100CBCF + DB00C6CAD800C6CAD800C6CAD800C6CAD800C6CAD800C4C9D8006780D1003256 + CD00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234ACB00234A + CB002148CB003357CF004963B600000000000000000000000000000000005E77 + CD0092A4E00094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC00899A + D5008596CF007C8CC3007787BC007282B6007182BB007A8CC9008697D3005E77 + CD000000000000000000000000000000000000000000496CE1001945D800214B + D800264FD800254ED700234CD500214AD3001F48D1001E47D1001B44CE001A43 + CD001841CC00163FCA00143DC800133DC800103AC5000F39C4000E38C3000A34 + C0000933BF000630BD00364A9000000000000000000000000000384E99004F6F + DA000432CB000432CB000432CB000432CB000432CB000432CB000432CB000432 + CB000432CB00384E9900000000005069C4003D5DC9003156D300466AE2000000 + 000000000000000000000000000000000000000000003D54A200D6D9E200CED2 + DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00CED2DF00A7B3DB007088 + D7003D60D3002E53D2002E53D2002E53D2002E53D2002E53D2002E53D2002E53 + D2002C52D2003257D3003D54A20000000000000000000000000000000000435B + AC006F89DF007892E8008FA6F10096ABF1008AA0EA007E95E200657ED0005972 + C6004E68BC003751A5002B4498001F388C001C3792002D4AAC00506BC800435B + AC0000000000000000000000000000000000000000004E72EA002B56E5003961 + E6003D64E5003B62E3003A61E300375EE100365DE000355CDF003259DD003057 + DC002F56DB002C54D9002B53D8002A52D700274FD500264ED400244CD3002149 + D1001E47D0001640CD003A519B00000000000000000000000000455EB5004F74 + EF0098ABEA005474DD005474DD00445EB400445EB4005474DD005474DD00435D + B100053AE900455EB50000000000516CC9008B9EDE00536FCE004B65BC000000 + 000000000000000000000000000000000000000000004158A600DFE2EB00D8DC + E900DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00DADEEA00D8DD + EA00B6C1E7005373DF004569DF004569DF004569DF004569DF004569DF004569 + DF004468DF003A5FDC004158A600000000000000000000000000000000004A63 + BA00708AE000859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004361C4004A63 + BA0000000000000000000000000000000000000000005176EE00335DEB00436A + EB00486DEB00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002C53 + D8002850D7001E48D4003E54A0000000000000000000000000004761B8005176 + F1009AADEC005575DE005575DE00455FB400455FB4005575DE005575DE00455F + B300073CEB004761B80000000000526DC9004D6BCE004366D9005577E8000000 + 00000000000000000000000000000000000000000000435BAB00E3E6EF00DCE0 + ED00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4EF00E0E4 + EF00DDE1EF008CA1E8005F7EE4005173E3005173E3005173E3005173E3005173 + E3004F71E3004267E000435BAB00000000000000000000000000000000004C66 + BD00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004461C4004C66 + BD0000000000000000000000000000000000000000005378F1003B64EF004D72 + F0005277EF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00385E + DF003259DD00264FDA004157A6000000000000000000000000004A63BA00567A + F200A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC00A0B1EC0094A2 + D2001546EC004A63BA00000000004D67BE0099AEF6007995F4005971C3000000 + 00000000000000000000000000000000000000000000475EB400E6E9F200E2E6 + F200E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8F300E5E8 + F300E5E8F300C3CDF00095A9EC006A87E9005C7CE8005C7CE8005C7CE8005C7C + E800597AE8005375E700475EB400000000000000000000000000000000004D67 + BE00718BDF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C5004D67 + BE000000000000000000000000000000000000000000587CF2004A70F0006283 + F2006989F3006888F3006787F3006485F3006384F3006183F2005F81F2005D80 + F2005C7FF200597CF100587BF100567AF0005478EF005276EE005074EC004E73 + EB00486DEA00365FE700465FB3000000000000000000000000004E67BE006283 + F2009FABD3006174B5006174B5006174B5006174B5006174B5006174B5005F73 + B500325EEF004E67BE0000000000556FCC005B76CE005573D9006382EA000000 + 000000000000000000000000000000000000000000007790E100A7B3DC00EBEE + F900EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0FA00EDF0 + FA00EDF0FA00EDF0FA00EBEFFA00D0D9F8007E99F1007390F0007390F0007390 + F0006988EF006E8CF0007790E100000000000000000000000000000000006680 + DA0096A7E4009EB0EB00A6B7F000A8B8F000A4B4EC00A0B0E80096A6DE0093A2 + D9008E9ED4008595CA008191C4007D8DC0007C8CC3008294CE00899BD8006680 + DA0000000000000000000000000000000000000000005A7DF2005176F1006C8B + F3007592F4007491F4007290F400708EF4006E8DF3006D8CF3006A8AF3006989 + F3006787F3006485F3006384F3006283F2005F81F2005E80F2005C7FF100597C + F0005176EF003D65EC004962B8000000000000000000000000005069C1006787 + F300B2C0ED008399E2008399E2006B7CB7006B7CB7008399E2008399E2006779 + B4004068F0005069C10000000000506AC100A5B8F70088A2F6005F76C6000000 + 00000000000000000000000000000000000000000000BFCDF6006C81CA00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4FD00F1F4 + FD00F1F4FD00F1F4FD00F1F4FD00EFF2FD00AFBFF8008AA3F500819BF5007E99 + F500718FF4007E98F100CED8F70000000000000000000000000000000000D3DB + F900516AC100516AC100516AC100516AC100516AC100516AC100516AC100516A + C100516AC100516AC100516AC100516AC100516AC100516AC100516AC100D3DB + F90000000000000000000000000000000000000000005D80F200587CF2007693 + F400809BF500FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006485 + F3005B7EF200456CF0004C66BD00000000000000000000000000526CC3006B8A + F300B8C5EE0090A3E40091A4E4007585B9007585B90091A4E40090A3E4006E7E + B5004A70F000526CC300000000005671CD009EADDF007086D000516BC2000000 + 00000000000000000000000000000000000000000000000000005975D100CAD1 + ED00F2F5FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DAE2FC00B6C6F90095ACF700829C + F500809BF500768DDD0000000000000000000000000000000000000000006882 + DB0094A6E40094A8EC009EB1F300A1B4F3009CAEED0098AAE8008EA0DC008A9B + D6008697D0007C8CC3007787BC007282B6007182BB007A8CCB008899D8006882 + DB0000000000000000000000000000000000000000006183F2006586F30088A2 + F60096ACF7007F92D2007D90D1007C90D2007A8ED1007A8ED100778CD100758A + D000758AD1007288D1007086D0007086D1006E85D0006C83CF006B82D0007B97 + F4006E8DF3005277F1004F69C0000000000000000000000000005670C7006A8A + F3005A7DF2006586F3006B8AF3006F8DF3006F8DF3006D8CF3006586F300597C + F200476EF0005670C70000000000546DC400B1C1F80098AEF700647BCA000000 + 000000000000000000000000000000000000000000000000000000000000607A + D700F4F6FD00F4F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F5F7FE00F4F7FE00E0E6FC009FB2 + F500758AD500607AD7000000000000000000000000000000000000000000546E + C5006A84DE00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004260C500546E + C50000000000000000000000000000000000000000006183F2006A8AF3008FA7 + F600A2B6F800A0B4F7009FB3F7009CB1F7009BB0F70099AFF70097ADF70095AC + F70094ABF60091A8F60090A8F6008EA6F6008CA5F6008AA3F60089A2F600849E + F5007693F400577BF200506AC1000000000000000000000000005871C8006C8A + ED00809AEF00859EF000889FF00089A1F00089A1F00089A1F000849DF0007F99 + EF007A95EE005871C800000000005973CF00A8B5E0007F92D200556EC5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D6DCF200F4F7FE00F5F7FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8 + FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F6F8FE00F3F6FE00ACBA + E800546FCA00000000000000000000000000000000000000000000000000556F + C6006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004562C500556F + C60000000000000000000000000000000000000000006183F2006989F30091A8 + F600ADBEF800ACBDF800AABCF800A7B9F800A6B9F800A5B8F800A2B6F800A1B5 + F7009FB3F7009CB1F7009BB0F7009AAFF70097ADF70096ACF70094ABF6008CA5 + F6007A96F4005A7DF200516BC2000000000000000000000000005B76D2005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000005974CF007C8FD1007A91DC007D97EE000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005C74C900D8DDF200F4F6FD00F6F8FE00F7F9FE00F8FAFE00F8FAFE00F8FA + FE00F8FAFE00F8FAFE00F8FAFE00F8FAFE00F6F8FE00F5F7FE00F4F6FD005B74 + C900BFCDF6000000000000000000000000000000000000000000000000005670 + C7006D88DF00859CEA0097ACF2009AAEF1008DA3EB008198E3006880D1005C75 + C7005069BC003851A5002C45990020398C001E399300324EAE004663C5005670 + C70000000000000000000000000000000000000000006581E0006183F200708E + F400A2B6F800A9BBF800ACBDF800ABBDF800AABCF800AABCF800A8BAF800A6B9 + F800A5B8F800A2B6F800A1B5F700A0B4F7009CB1F70099AFF70093AAF6007B97 + F4006283F2005D80F2005570CB00000000000000000000000000000000000000 + 0000000000000000000000000000B0C0F9009BB0F7005871C8005871C8005871 + C8005871C8005871C8005871C8005871C800B3C3F900A6B9F8005871C8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000627DD900CDD4EF00F4F6FD00F6F8FE00F5F7FE00F5F7 + FE00F5F7FE00F5F7FE00F6F8FE00F5F7FE00CDD4EF007E91D300627DD9000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9006F89DF007993E70090A6F10098ADF1008CA2EB007F96E200667FD0005A73 + C6004F68BC003751A5002B44980020398C001D3892002F4CAD00556FC9005872 + C90000000000000000000000000000000000000000005C75CB006282EC006686 + F3007995F400829CF500849EF50086A0F500859FF500849EF500839EF500829D + F500829CF500809BF5007F9AF5007E99F5007B97F4007894F4007290F4006586 + F3006183F2006583EC007A92E500000000000000000000000000000000000000 + 0000000000000000000000000000ABBCF400B9C7F600ACBBF000A5B6EF00A5B6 + EF00A5B6EE00A5B6EF00A5B6EF00A7B6EF00BAC9FA00A4B7F8007E97E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005E79D5007489D100AFBBE500F3F6FD00F3F6 + FD00F3F6FD00F3F6FD00D5DCF200AFBBE5005E79D500AFBFF300000000000000 + 0000000000000000000000000000000000000000000000000000000000006B85 + DE0096A7E5009DAFEB00A6B7F000A9B9F100A5B5ED00A1B1E80098A8E00094A3 + DA00909FD5008696CB008191C5007E8EC1007E8EC5008494CF008A9CDA006B85 + DE0000000000000000000000000000000000000000006983DD006079CB00627E + E0006586F3006888F3006A8AF3006B8AF3006B8AF3006B8AF3006B8AF3006B8A + F3006B8AF3006A8AF3006A8AF3006A8AF3006989F3006888F3006586F3006A88 + EC006380E0005D77CC0000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900ABBCF400ABBCF4005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CED8F8007C93E5005771C9005871 + C8005871C8005771C9005E79D6007C93E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA0098A8DC006075BD00455BA3003B4C8B003A4B + 8900394B88003849850042579C005C71B700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B6C5F1006177C500273773002534 + 6A0025346A0027377300364D96006177C5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000009BAFEC004B61AF007787C000A0ABD400BAC5EA00B5C1 + E700B1BDE500ACB9E20092A0CF006E7EB600465EB000A3B4EC00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C7C7C700C0C0C000AEBA + E40028345E0028345E0028345E0028345E0028345E0028345E0028345E002834 + 5E0028345E0028345E0028345E0028345E0028345E0028345E0028345E004053 + 9300AEBAE400C0C0C000D6D6D600000000000000000000000000000000000000 + 00000000000000000000000000002D4085003A4A7D0047589300556AB000556A + B000556AB000556AB0004F62A100475893002D4085008195DB00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000465FB40095A1CD00DCE1F100BBC8F100AABAEE00A7B7ED009CAEE90094A7 + E8008CA1E500889DE4007991E0006882DC00C8D3F800CED7F500929EC90096A9 + E800000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000AFBEED004C5D9500364E9D00364E9D00364E9D00364E + 9D00364E9D00A3B2E50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E42 + 86002445B400042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042A + AA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00042AAA00586F + BA002D3F7F000000000000000000000000000000000000000000000000000000 + 00008297DD00334580005467A7003351B7001134AA002444B1004E68BF004E68 + BF004E68BF004E68BF003C59B9002444B1003351B700506ABE005467A7008297 + DD00000000000000000000000000000000000000000000000000000000008EA2 + E800C5CAE000E9EDFA00D7DEF500C4CEF100BBC7EF00ADBCEC0092A5E500889D + E2007D94DF008096E0008096E0009CAEE900AFBFF400BAC8F600E3E8FA003E51 + 9400859AE1000000000000000000000000000000000000000000000000000000 + 000000000000B9C8F20040529200324FB0000C2FA10003279F0003279F000327 + 9F002947AD00788DD80000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003043 + 8600042CB30003279D0003238F0003238F0003238F0003238F0003238F000323 + 8F0003238F0003238F0003238F0003238F0003238F0003238F0003238F00506C + CA00304386000000000000000000000000000000000000000000000000000000 + 00003A4B8900566DB800415EC100294AB900546FC70093A3DB00E7EBF700E7EB + F700B9BCC600E7EBF700C2CBEA0093A3DB00294AB9001136B100415EC1003A4B + 89005068BB0000000000000000000000000000000000000000009DAFED004860 + B200F2F4F900E2E7F500DBE0F400C4CEEE00B5C1EA00ADBBE9009FAFE50095A7 + E2008C9FE000879BDE007B91DC00ADBDF000BBC9F600D3DCF900D4DCF900B9C1 + DE003D50940096A9E80000000000000000000000000000000000000000000000 + 0000BAC7F300425496004C60A8000C31A9000429A6000429A6000429A6000429 + A600193CAE004C61B00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003448 + 8F00042FBD00E0E6F700DFE4F600DFE4F600DEE3F600DEE3F600DDE2F600DDE2 + F600DCE2F600DAE0F500DAE0F500DAE0F500D9DFF500D9DFF500D8DEF400506E + D10034488F00000000000000000000000000000000000000000000000000859A + E0005971C1003253C2000D34B6008999CC00CACFDF00E6EAF800E6EAF800E6EA + F800C9CDD900E6EAF800E6EAF800E6EAF8008999CC00415FC5000D34B6005971 + C1003D4F8F00859AE000000000000000000000000000506BC80098A5CF00ECEF + FA00F0F1F600F0F1F400E5E8F100D2D8EC00C4CCE800B8C2E500A2B0DF0099A9 + DD0090A1DA00899BD900B4C2EE00C1CDF500DCE3F900D7DFF900BFCAED00A6B5 + E600C8D1F0008492C2000000000000000000000000000000000000000000BAC9 + F3005066B3003153C3000D34B9000A32B9000A32B9000A32B9000A32B9000A32 + B9000A32B9004E61A200889DE300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003B52 + 9F000433D000C5D0F400C4CFF400C2CDF300C1CDF300C0CCF300BECAF200BECA + F200BDC9F200BBC8F200BBC8F200B9C6F100B7C5F100B6C4F100DAE1F7005071 + DE003B529F0000000000000000000000000000000000000000003B53A3005A70 + BB000934C5004B6AD300E1E6F800E5EAF800DADFEC00E5EAF800E5EAF800E5EA + F800E5EAF800E5EAF800E5EAF800E3E8F600E5EAF800E5EAF800E1E6F8000934 + C5004162D1005A70BB000000000000000000000000005B71B900DEE3F200DAE0 + F600E6E9F400EAECF000EBECF000D5DAE900CAD0E600C6CDE700C0C9E700B8C2 + E400B2BDE300AAB7E300CED7F600C6D1F500DDE3F900C1CBEC00AAB8E400A9B8 + E8007B91DA0097A7D90099ABEA00000000000000000000000000BCCAF400455A + A500395BCC00163EC400133BC300133BC300133BC300133BC300133BC300133B + C300133BC3004E66B700556DC200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000003F57 + A8000536D900C6D1F600C6D1F600C4D0F600C4D0F600C3CFF600C1CDF500C0CC + F500BFCCF500BECBF500BDCAF500BCC9F500BAC8F500B9C7F500DCE3F9005073 + E5003F57A800000000000000000000000000000000008A9DE4004E61A8005271 + D8002A50D100CDD6F500E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EA + F900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF900E5EAF9002A50 + D100123DCD005271D8008A9DE4000000000000000000AFBADD00D5DDF700CAD3 + F200D7DCEF00E0E4EF00E6E8EC00DDE0E900D9DDEA00C1C9E600627CD0005B75 + CC005771CA008FA1DC00D3DBF700E2E7F900C4CDED00B3BFE600B3BFE7007288 + D300516DCC007E93D8004C64B500000000000000000000000000445CA9006E82 + C7001E46CD001C45CD001C45CD001C45CD00274DCE006B86DE001E46CD001C45 + CD001C45CD00516DCE004A5FA700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000435B + B0000538E300CAD5F900C9D4F900A4A9BC00A3A8BC00A3A8BC00A2A8BC00C3CF + F800C2CFF800BFCCF700BECBF700BDCBF700BCCAF700BBC9F700DDE4FA004F73 + EB00435BB00000000000000000000000000000000000425AAE005B75CA003359 + D9008497D600D2D7E400E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EA + FA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA00E5EAFA008497 + D6000938D3003359D900425AAE0000000000758BDE00C6D1F500AABAEE00BCC8 + EF00C4CDEB00C8CFE800CFD4E700ADB9E1006880CF00657FD300758CD900738A + D8006F87D6005B76CE004A66C4004C66BF00BCC5E4007A8DCC00697FC9005C76 + CC007189D7005673D5006D7EBA007288D9000000000000000000000000004E67 + BF00708BE700335ADE002D56DE00879DE7006679BE00475FB2006F89E6003159 + DE002D56DE003F64E1005C75CF004B62B9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004861 + B800053AEB00CFD9FB00CED8FB00A6ABBD00A6ABBE00A6ABBE00A4A9BD00A4A9 + BD00A3A9BD00A2A8BD00A2A8BD00A1A7BD00C1CEFA00C0CEFA00DFE6FC005075 + F1004861B800000000000000000000000000000000005871C8004268E7000537 + DF00E5EAFB00DFE4F500E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EAFB00E5EA + FB00809AEE000537DF005871C800738BDD00516CC700B1C0F100A7B7ED00ADBC + EC00B8C3E800BBC5E500C9D0E6006880D0006780D4007B91DB006879B2005C6C + A7005B6BA5006E81C500637CCF004965C3008E9DCF008192CC006E83CB006B84 + D5007089DA006A85DD008E9DD4004E67C0000000000000000000000000000000 + 0000788CCD00738EEB006B89EC00596EBA00627BD400000000008093D6005779 + E900365EE6003860E600597AE800576CB8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004962 + BA00053AEB00D1DBFB00D0DAFB00CFD9FB00CED8FB00CDD8FB00CBD6FB00CAD5 + FB00C9D5FB00C7D3FB00C6D2FA00C6D2FA00C4D1FA00C3D0FA00E1E7FD005075 + F1004962BA00000000000000000000000000000000005C78D8002A56EA000539 + E600E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00E5EBFC00E5EBFC00D5DAE6009C9B9D00E5EBFC00E5EBFC00E5EBFC00E5EB + FC00C2CFF8000539E6005C78D800536ECA00435CB0009BADEC00A2B2EB00A0B0 + E900ABB9E500AFBBE300C5CDE7005E78CE007088D9007E90CE007189D800E0E6 + F900000000005668A2006D81C5005B76CE007085CC0098A7D9007B8FD3007990 + DB00728BDD007B93E200A4B3E4004159A9000000000000000000000000000000 + 00004D67C200798DD1008499DC0090A4EA0000000000000000005A71BF0089A0 + EC004A6FEE003E66ED005276EE006079D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004A64 + BB000E41EC00D5DEFC00D4DDFC00A8ADBD00A8ADBD00A8ADBD00A7ACBD00A6AC + BD00A6ACBD00A6ABBD00A5AABD00A5AABD00C8D4FB00C7D3FB00E3E9FD005479 + F1004A64BB00000000000000000000000000000000005C7CE9001849EC00053A + EB00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00C5CA + D900B8BDCA00C9CCD6009B989800B8B9BF00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E8EDFD00053AEB005C7CE9004862BC00445CAF008098E60092A6E800849A + E20094A5DF0099A9DD00B9C3E4005873D000758BD6005E6EA900000000000000 + 000000000000E0E6F9005C6CA7007088D6005873CB00B1BDE3008FA0DA008DA0 + E1007F96E1008CA1E600B2C0EC00445CAF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004F6A + C5008A9EE1004F74F1004F74F1006586F3005873CE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004C66 + BD002553EE00DDE4FC00DDE4FC00ACB0BE00ACB0BE00ACB0BE00ABB0BD00ABB0 + BE00ABB0BE00A9AEBD00A9AEBD00A9AEBD00D1DBFB00D0DAFB00E7ECFD005E80 + F2004C66BD00000000000000000000000000000000006683E9002C59EE001B4B + ED00CBD0DD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E9EEFD00ADAB + A9009C999700E0E4F100E8EDFD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00CBD0 + DD00BABECB001B4BED006683E9004A63BB00445CAE007690E400899EE5007C93 + DF008A9DDD008FA0DA00B1BDE3005470CE007289D4005D6EA800000000000000 + 000000000000000000005F6EA900738AD8005C76CD00B7C1E40099A9DE0096A8 + E300879CE30095A8E900B7C4ED00455EB1000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AEBE + F2005E75C4006686F300577BF2005D80F2005A72C200AEBEF200000000000000 + 0000000000000000000000000000000000000000000000000000000000004D67 + BE00305CEE00E1E7FD00E0E6FC00DFE6FC00DEE5FC00DDE4FC00DCE3FC00DBE2 + FC00DAE2FC00D8E0FC00D8E0FC00D7DFFC00D6DFFC00D5DEFC00E9EEFD006485 + F3004D67BE00000000000000000000000000000000006A88EB003761EF002755 + EE00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00CACA + CB00C3C1C000E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00D8DDEA002755EE006A88EB004B64BC00445CAD006E88E2008198E300718A + DD007F94DA008497D800A8B5E0004F6BCA006B83D4006677B000000000000000 + 000000000000738ADA006B7BB400758CD900627CD000C0C9E700A4B2E1009FAF + E60092A5E6009EB0EB00BBC7EF00465FB3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F89DF008DA5F4006686F3006082F2006C85D900546FCB00000000000000 + 0000000000000000000000000000000000000000000000000000000000004E68 + BF003C65EF00E4E9FD00E4E9FD00B0B3BE00B0B3BE00AFB3BE00AFB3BE00AFB3 + BF00AEB2BE00ADB1BE00ADB1BE00ACB0BE00DAE2FC00D9E1FC00EBF0FD006989 + F3004E68BF0000000000000000000000000000000000708BEB00426AF000335E + EF00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD008D8A8800EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEFFD00EAEF + FD00D4D8E600335EEF00708BEB004C66BF00516BC3007E95E3006580DB006B84 + D8007086D1006B81C9007F91CC005872C6004A66C400637CCE006878B0005F70 + AA006070AB008091CF007B91DB00647ED300C2CAE700C6CDE700B9C3E600AEBC + EA00AEBDED00A8B8EF00A7B4E0005471CC000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000576FC600A0AFE7008BA4F6007D98F5007F95E300536DC6000000 + 000000000000000000000000000000000000000000000000000000000000516A + C1005378F100EAEFFD00EAEFFD00B4B7BE00B3B6BE00B3B6BE00B2B5BE00B2B5 + BE00B2B5BE00B2B5BF00B2B5BF00B0B3BE00E2E8FD00E1E7FD00EFF3FE007491 + F400516AC100000000000000000000000000000000006D85D8007391F4004C72 + F100EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1 + FE0098959300EDF1FE00EDF1FE00EDF1FE00EDF1FE00EDF1FE00E9EDFA00EDF1 + FE007588C8004C72F1006D85D8007990E300748CDB008FA3E500506ED4006C84 + D5006980CB006B81CB0092A2D600B1BDE4004D68C0004A66C4006B83D4007088 + D600748BD8007088D9006780D4006880CF00DADEEB00CBD1E700C5CDE900B7C3 + EC00BDC9F100AABAEF008494CE007790E1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000009FB1EF00637AC800A4B4ED007A96F40086A0F500758AD5000000 + 000000000000000000000000000000000000000000000000000000000000526B + C2005F81F200ECF0FE00ECF0FE00EBF0FD00EBF0FD00EAEFFD00E9EEFD00E8ED + FD00E7ECFD00E6ECFD00E6ECFD00E6EBFD00E5EAFD00E4E9FD00F1F4FE007995 + F400526BC20000000000000000000000000000000000647AC700819CF3005E80 + F200C1C6D400CCCFDA00E2E6F100EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2 + FE009E9B9900EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00EEF2FE00C1C6 + D4005370D2005E80F2006479C700BFCDF600BDCBF40097A7DD005772CE00617B + CF006B82CF00A3B1E000B1BDE500E3E8F800C5CEEE005D76CA004F6BCA00536F + CD005873D0005E78CF00667FD000ADB9E100DEE1EA00D6DBEA00D2D8ED00C6D0 + F000C4CFF200BDCAF3005D74C100BFCDF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000092A7EC006A7FCB0092A9F60086A0F5008BA3F100849B + E80000000000000000000000000000000000000000000000000000000000536C + C4006B8AF300EFF3FE00EFF3FE00EEF2FE00EDF1FE00EDF1FE00ECF0FE00EBF0 + FD00EBF0FD00EAEFFD00E9EEFD00E8EDFD00E7ECFD00E7ECFD00F3F6FE007E99 + F500536CC40000000000000000000000000000000000526CC8008399E4007D98 + F5007582AE00D7DAE400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3 + FE00A8A5A400EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE00EFF3FE007582 + AE006282EE007E99F500526CC8000000000000000000566AAC009EADDE00A0B0 + E500AEBCE800AAB8E600D2DAF500D5DDF800C3CFF500C4CFF200B1BDE400B1BD + E300BAC4E500C6CEE800C9D0E700D0D5E800E8EAEE00EDEEF200E6E9F200DDE2 + F600D9E0F700DFE4F500AABBF100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000778BD200ABBBEF009DB2F7008298 + E0005871C900C1CDF6000000000000000000000000000000000000000000556F + C600819BF500F2F5FE00F2F5FE00DADDE500D9DCE400D9DCE400D8DBE400D8DB + E400D8DBE400D7DAE400D7DAE400D6D9E400E0E4F000EDF1FE00F6F8FE0087A1 + F500556FC6000000000000000000000000000000000000000000536EC900889D + E4007F9AF5006377B900D1D5E100F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5 + FE00DCDDE200F2F5FE00F2F5FE00F2F5FE00F2F5FE00F2F5FE00D1D5E1007F9A + F50095ACF7008A9FE2000000000000000000000000004F69BE0093A0CC00C5CF + F000B0BEEA00D0D8F500D6DEF900C1CDF500C0CCF500A2B2E7008FA0DB008FA0 + DA0099A9DD00B0BCE400BCC6E600C8CFE900E2E6F100ECEEF200F2F3F600E4E9 + F700EAEEFB00A1AFDA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000007C93E500687FCD00ADBCED008DA5 + F600788EDA005874CD0000000000000000000000000000000000000000005670 + C70088A2F600F3F6FE00E9ECF3008E8C8D008986860089868600898686008986 + 860089868600898686008986860089868600BABBC100E5E8F300F7F9FE008BA4 + F6005670C7000000000000000000000000000000000000000000BFCDF6006178 + C9009DB2F700869FF1006878B100DDE0E700C8CAD100ECEFF700F3F6FE00F3F6 + FE00F3F6FE00F3F6FE00F3F6FE00F3F6FE00DADDE400C0C5D6006878B1009DB2 + F7009EAFEE005C74C700000000000000000000000000D1DAF8004C62AA00B4BE + DE00C5D0F400D7DFF900D8DFF900BAC8F500BDCAF4008599DC00899CDD00899C + DD0094A5DF00ADBBE700BAC5EA00C6CFED00D9DEF100E8EBF600F2F3F800F4F6 + FB00CED3E9005972C70000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000093A8ED005C75CC00A5B7 + F5008EA6F400778DD70000000000000000000000000000000000000000005771 + C8008DA5F600F5F7FE00E1E3EA00EEEEEF00FDFDFD00FDFDFD00FDFDFD00FDFD + FD00FDFDFD00FDFDFD00FDFDFD00FDFDFD00A09FA100DFE2EA00F8FAFE008CA5 + F6005771C80000000000000000000000000000000000000000000000000092A7 + EC00A7B8F300A6B9F80094AAF2008A92AF00C9CCD500F4F7FE00F4F7FE00F4F7 + FE00D4D6DD00F4F7FE00F4F7FE00F4F7FE008A92AF007182BB0094AAF200ABBB + F4006279C90092A7EC000000000000000000000000000000000000000000889D + E400CAD0E800DDE3F900B3C3F500BBC9F600879CE3007C93DF00778FDF007C93 + E000869BE300A0B1EA00AEBDED00BECAF100CCD5F400DCE2F800ECF0FB005C74 + C70092A7EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AFBF + F3006B85DE005A74CF005B76D20000000000000000000000000000000000728C + E20093A8F0009BAFF20099ABE900B3B2B400B5B3B200ABA9A700ABA9A700ABA9 + A700ABA9A700ABA9A700ABA9A700B5B3B200919BBB0099ABE9009AAEF200748A + D8006B85DE000000000000000000000000000000000000000000000000000000 + 000092A7EC005F77CA009AABE600B5C5F900AEBEF40096A5D7007985AD007985 + AD007985AD007985AD008694C00096A5D700B6C6F900B3C3F8009AACE70092A7 + EC00000000000000000000000000000000000000000000000000000000000000 + 00004A61AA0094A2D100D0D9F7009CAEED00637FDC00748DE100849AE500899E + E60093A7E900A3B4ED00A8B8EF00AABAEF00D6DEF800E2E7F600A4B1DC009FB1 + F000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005872C9005872C9005872C900A1A1A700EDECED00F4F4F300E8E8E700E8E8 + E700E8E8E700EBEBEA00F4F4F300EDECED006277BF005872C9005872C9006B85 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000C1CDF6005872CD00A0B0EB00B9C8F900BECCFA00BBCAFA00BCCA + FA00BCCAFA00BBCAFA00BDCBFA00BFCDFA00A1B2EB007489D3005872CD000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D1DAF800526AC0006175B500AEBCEB009CAEEA008BA0E7006E89E3007690 + E4008199E8009CAFEE00B3C2F300C7D2F600B7C2E6006E83CC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B1B1B1009C999800ABABAA00EDECEC00E4E3 + E300E4E3E300D8D7D600ABABAA00959391000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005874CD007287D1008B9FE100ACBCF400ACBC + F500ADBDF500ACBCF4009DAEEA008C9FE1005874CD0093A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BFCCF500778DDF005771CA005068BA005169 + BC00526BBE00546DC1005C77D2007A92E5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009F9E9D009F9C + 9B009F9C9B000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DCDCDC00DADADA00C7C7C7007486C4004659970028345F002835 + 5F0028355F0028345F002F3F770046599700C8C8C800D2D2D200DADADA000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000CED7F7003C54A200475B9D00455FB6003754B6001739AA001336 + A9001336A9001739AA002343AF003754B600475B9D00384881003C54A2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000859AE000344991003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F5190003F5190003F5190003F5190003F5190003F5190003F5190003F51 + 90003F51900030468E00000000000000000000000000000000005B74C7004455 + 94004F64AD005062A1004057A900000000000000000000000000000000000000 + 00006780CF005369B3004F64AD005062A1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BAC6F2002D418600445796003352B8001337AE000429A8000429A8000429 + A8000B30AB000429A8000429A8000429A8003352B8004761B70044579600BAC6 + F20000000000000000000000000000000000000000004D64B6002A3B78002A3B + 7800344B960000000000344B96002A3B78002A3B78002A3B78002A3B78002A3B + 78002A3B78002A3B78002A3B78002A3B78002A3B7800344B9600000000002A3B + 78002A3B78002A3B7800000000000000000000000000344A96005C72BF00506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED300506ED300506ED300506ED300506ED300506ED300506ED300506E + D300506ED3005C72BF0000000000000000000000000000000000374E9E005671 + CE000B206700435FBF0041569C002A3B75002A3B75002A3B75002A3B75002A3B + 7500364C960010266E000B206700435FBF00D1DAF80000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032468C004C61A700405DBE00042BAD00042BAD002245B700617ACC00677F + CD006B81CB00617ACC004360C1002245B700042BAD001B3FB600405DBE003246 + 8C00BAC6F200000000000000000000000000000000006E7CAC00ACB6DC00A8B5 + E0002D3F7F00000000002D3F7F00A5B3E100A4B2E000A4B2E000A4B2E000A3B1 + E000A3B1E000A3B1E000A2B0DF00A2B0E000A2B0E0002D3F7F0000000000A1B0 + E000A0AFDF00A5B1DA005067BA000000000000000000364C9700506FD8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C8000431C8000431C8000431C8000431C8000431C8000431C8000431 + C8000431C800506FD800000000000000000000000000000000003E58AE00274F + D600021C7100153EC700455DAE000E2D9A000E2D9A000E2D9A000E2D9A000E2D + 9A003A54AE00031E7900021C7100153EC7000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000455C + AE004160C6001037BB00042DB7002F52C4005069BA003D509100859AE100A8B7 + ED00C1CCF200859AE1004B61B1003D5091006981D0002E51C300042DB7004160 + C600495DA200455CAE00000000000000000000000000ACBAE800899DDF00A7B6 + E700546CC10000000000546CC100A5B4E600869ADE00869ADE008499DD008499 + DD008499DD008398DD008398DD008297DD006C7BAF00546CC100000000006B7A + AF00A0B0E5007F94DC0033478D0000000000000000003F57A7005072E4000535 + D9000535D9000535D9000535D9000535D9000430C3000430C2000430C2000430 + C2000430C2000430C2000430C2000430C3000535D9000535D9000535D9000535 + D9000535D9005072E40000000000000000000000000000000000000000006983 + DA00435CB300516CCA0000000000000000000000000000000000000000000000 + 000000000000435CB300435CB3003754B7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000869BE1004255 + 96001C42C300042FBD00042FBD001038C0004161CA004D62A700BCC8F3000000 + 0000000000000000000000000000B4C2F0005264A2006B83D100294EC6001C42 + C3004966C70042559600000000000000000000000000AFBDEC008DA1E300AEBC + EC00000000000000000000000000B0BEEA008A9FE3008A9FE300889DE200889D + E200879CE200879CE300869BE200869BE2005667A60000000000000000005869 + A700AAB8E8008399E200374B95000000000000000000435CAF005074EA000638 + E1000638E1000638E1000638E1000E3EE2003C60D6000533CA000533CA000533 + CA000533CA000533CA000533CA003C60D6000638E1000638E1000638E1000638 + E1000638E1005074EA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003F56A6001939A600869BE10000000000000000000000 + 00000000000000000000000000000000000000000000000000003C54A3004F66 + B5000934C300153EC6004162D1000934C300143DC6004363CF00384E9B00BCC8 + F300000000000000000000000000000000005671C4005466A700647ED5000833 + C3003558CE004E66B600000000000000000000000000B2C0F00094A8EA00B0BF + EF005B74CA00000000005B74CA00AFBEEF0090A4E80090A4E8008FA4E8008FA4 + E8008FA4E8008EA3E8008CA1E7008CA1E7007381BA005B74CA00000000007483 + BB00AABAED00899FE7003A509C0000000000000000004760B700567AF0001445 + E9001445E9001445E9001445E9001B4AEA008199E900889EE900889EE900889E + E900889EE900889EE900889EE9008199E9001445E9001445E9001445E9001445 + E9001445E900567AF00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A8FDB002D469B004E66BC0000000000000000000000 + 000000000000000000000000000000000000000000005B74CA005067B2004467 + D9002E54D4006882D700465BA300617DDC00214AD2001842D0004A6AD700556A + B5003D53A40000000000000000000000000000000000B7C5F100465BA3002B52 + D3001742D0004063D8006C83CF000000000000000000BCCAF600A2B4F200A2B4 + F200BBC9F600BCC9F500BAC8F6009FB2F2009FB2F2009FB2F2009EB1F2009DB0 + F2009DB0F2009CB0F2009CB0F2009BAFF100AABBF400B7C6F600B8C6F600A7B8 + F30099ADF10099ADF1004259AD0000000000000000004C65BC006586F300335E + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345FEF00345F + EF00335EEF006586F300000000000000000000000000465EB3006279C300607C + D900617EDE00617EDE00627EDE00637FDF00637FDF00637FDF00637FDF00637F + DF00627EDE00617EDE00607DDE005F7CDE004F64AB008A9EE500000000000000 + 000000000000000000000000000000000000000000004760B700556EC8003A5F + DB004266DD00657AC4004760B6006B7FC0006480E0002750D8002750D8004E6F + DC00566DB800BDCBF40000000000000000000000000000000000556DC1003F63 + DB001F49D600365CDB004E66BA000000000000000000BFCCF800A8BAF500A8BA + F500A7B9F500A7B9F500A6B8F500A5B7F500A5B7F500A5B7F500A5B7F500A4B6 + F500A4B6F500A3B6F500A2B5F500A2B5F500A1B4F500A1B4F500A0B3F500A0B3 + F5009FB3F5009FB3F500455EB40000000000000000004D67BE006C8BF300446B + F000456CF000456CF000456CF000456CF000456CF000456CF000446BF000446B + F000446BF000446BF000456CF000456CF000456CF000456CF000456CF000456C + F000446BF0006C8BF3000000000000000000000000004057A6006B85DC00355B + DA002F54CE003D62DC00365BD3003E63DB00365AD2003357CF00365AD2003256 + CE003E63DC003055CE003A5FDC002B50CD00647CCB00556FC700000000000000 + 000000000000000000000000000000000000000000004058A8005775D900375D + DD005576E3005D71B7008CA1E6004059AC006D81C4006883E300254FDB002D55 + DD004F70DF004159AC00BECCF5000000000000000000000000008CA1E6005374 + E300254FDB00335ADD00445BA8000000000000000000C3D0FA00B0C0F900AFC0 + F900AFC0F900AEBFF800AEBFF800ADBEF800ADBEF800ADBEF800ACBDF800ABBD + F800ABBDF800ABBDF800AABCF800AABCF800AABCF800A9BBF800A9BBF800A8BA + F800A7B9F800A7B9F8004962BA0000000000000000004F69C0007391F4005378 + F1005479F1005479F1005479F100829CF300819BEF007E98EE007E98EE007D97 + EE007D97EE007E98EE007E98EE00819BEF00718FF4005479F1005479F1005479 + F1005378F1007491F4000000000000000000000000005066B100758FE600476B + E300032597004A6AD700082A9C004B6BD700082A9C0003259700082A9C000325 + 97004B6BD700032597004768D600032597007B93E100485FAE00000000000000 + 00000000000000000000000000000000000000000000455EB2006482E6004167 + E7006180E7005168B600C6D1F50000000000BECCF500465FB6006E8BEB003A62 + E700335CE5005577E8005D75C600465FB6000000000000000000C6D1F5005477 + EA003D64E7003B62E700455EB2000000000000000000CBD6FB00BBCAFA00BBCA + FA004068F0004068F0004068F0004068F0004068F0004068F000B8C7F9004068 + F0004068F0004068F0004068F0004068F0004068F000B5C5F900B5C5F900B4C4 + F900B4C4F900B4C4F9004C65BC000000000000000000536DC400809BF500708E + F4007592F4007A96F40096ACF4002750D900053AEB00053AEB007B97F4007A96 + F4007A96F4007995F4007894F4007894F400667DCB0097ACF4007D98F5007592 + F400708EF400809BF500000000000000000000000000657BC5007F9AF1007490 + F0000328A000607DDD000328A000607DDD000328A0000328A0000328A0000328 + A000607DDD000328A000607DDD000328A0007D98F200758BD8005C76D2000000 + 000000000000000000000000000000000000000000004861B7006885E8004B70 + ED005E7FEE00556CBC00AEBDF2000000000000000000BFCCF5007187D0006E8B + EE004067EB003F66EB005D7EEC00627ACB00BFCCF50000000000AEBDF2005A7C + EE003C64EB00446AEB004861B7000000000000000000CED8FB00C1CEFA00C1CE + FA00496FF000496FF000496FF000496FF000496FF000496FF000BECCFA00BECC + FA00BDCBFA00BCCAFA00BCCAFA00BCCAFA00BCCAFA00BBCAFA00BBCAFA00BAC9 + FA00BAC9FA00B9C8F9004D67BE000000000000000000556EC500839EF5007A96 + F400859FF50099AFF700889ADE000D40EC000D40EC000D40EC00A2B6F800A1B5 + F7007D98F5007C97F4007B97F4007B97F400536FD000889BDE0098AEF700859F + F5007A96F400839EF5000000000000000000000000006C83D3008AA3F500859F + F4000328A4006D87E1000328A4006D87E1000328A4000328A4000328A4000328 + A4006D87E1000328A4006D87E1000328A4007A95F00094A9EF00526AC0000000 + 000000000000000000000000000000000000000000004B65BC006F8BEB005075 + F0006384F2005B73C50090A4EB000000000000000000000000004B65BE00748C + DB007290F300426AEF00466DEF006081F0004B65BE00BFCDF50090A4EB006384 + F200466DEF004D72F0004F68BC000000000000000000D1DBFB00C6D2FA00C6D2 + FA005176F1005176F1005176F1005176F1005176F1005176F100C4D1FA005176 + F1005176F1005176F1005176F1005176F1005176F1005176F1005176F1005176 + F100C0CEFA00BFCDFA004E68BF0000000000000000005770C700819BF5007491 + F4008FA7F6009DAFF0006078CB002553EE002553EE002553EE00B1C1F900B0C0 + F9002553EE002553EE002553EE002553EE002C58E9006078CB009EB0F000839E + F5007592F400839DF300000000000000000000000000748AD6008DA5F60095AC + F7000328A4007891E3000328A4007891E3000328A4000328A4000328A4000328 + A4007891E3000328A4007891E3000328A4006E88E20095ACF7006A80CB000000 + 000000000000000000000000000000000000000000006580D9007087D2006A8A + F3005B7EF2006A87EA00536CC00000000000000000000000000000000000BFCD + F6005069C3007995F4005479F1005479F1006685F000667FD000536CC0006384 + F300587CF2006686F300778FDE000000000000000000D8E0FC00D1DBFB00D1DB + FB006384F3006384F3006384F3006384F3006384F3006384F300CED8FB006384 + F3006384F3006384F3006384F3006384F3006384F3006384F3006384F3006384 + F300CBD6FB00CAD5FB00516BC200000000000000000093A8ED005872CA005872 + C9005872C9005A78DB00567AF200567AF200567AF200567AF200CBD6FB00CAD5 + FB00567AF200567AF200567AF200567AF200567AF200567AF2005A78DB005872 + C9005872C9005872CA000000000000000000000000007A91E200839EF50094AB + F6000328A4007D94E2000328A4007D94E2000328A4000328A4000328A4000328 + A4007D94E2000328A4007D94E2000328A4007991E20090A8F60098ACF0000000 + 000000000000000000000000000000000000000000009FB0EF005B74C5007B96 + F100567AF2006A8AF3006881D400000000000000000000000000000000000000 + 0000BFCDF6007D93DE007E99F5005F81F2006485F3007592F2008197E2006686 + F3006888F3007793F000B7C4F2000000000000000000DBE2FC00D6DFFC00D6DF + FC006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF300D3DCFB00D3DC + FB00D3DCFB00D2DBFB00D2DBFB00D2DBFB00D1DBFB00D1DBFB00D1DBFB00D0DA + FB00D0DAFB00CFD9FB00526CC30000000000000000000000000000000000556E + C500C0CEFA006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300D6DFFC00D5DE + FC006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF3006F8DF300C3D0 + FA00556EC50000000000000000000000000000000000829BED007290F400849E + F5003C5BC30095AAF2003454BE008EA4ED00173AAF000328A4000D31A9000328 + A4007D94E2000328A4007D94E2000328A4007891E30088A2F60090A8F60092A7 + EC00000000000000000000000000000000000000000000000000516CC8008196 + DF005D80F2006283F2006C8AEF006681DA000000000000000000000000000000 + 000000000000526BC4007E94DF00849EF5007C97F400809BF5008FA7F6007592 + F4007D98F5007E94DF00000000000000000000000000DEE5FC00DAE2FC00DAE2 + FC007592F4007592F4007592F4007592F4007592F4007592F400D8E0FC007592 + F4007592F4007592F4007592F4007592F4007592F4007592F4007592F4007592 + F400D5DEFC00D4DDFC00546DC400000000000000000000000000000000005770 + C700DCE3FC00DFE6FC00E0E6FC00E1E7FD00E0E6FC00E0E6FC00DFE6FC00DFE6 + FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DCE3FC00DCE3FC00D9E1FC00D7DF + F9005770C700000000000000000000000000000000008098E700859FF5008CA5 + F6009AAFF70092A9F60094ABF6008CA5F600859EF1008099EC006E89E100617C + D8009EB3F7003E5DC30095AAF200294AB9007D97EB007D98F5007D98F500617C + D800000000000000000000000000000000000000000000000000000000005D78 + CF00819CF3006787F3006888F300718EEF006C85D6005770C40092A5EC00AEBE + F300C8D2F60092A5EC005671CE005A73C600A7B9F8009AAFF70095ACF7008FA6 + F400788ED6005D78CF00000000000000000000000000E6EBFD00E2E8FD00E2E8 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E1E7FD00E0E6 + FC00E0E6FC00E0E6FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5 + FC00DEE5FC00DBE2FC005770C7000000000000000000000000000000000093A8 + ED005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + CA0093A8ED000000000000000000000000000000000000000000AFBFF300AFBF + F3007C92E5007C92E5007C92E5005E79D5005E79D500566FC700687ECD006A80 + CD006A80CD00768BD9007B91DB007F97E4008098E600809AEF007893EE006077 + CA0093A7ED00000000000000000000000000000000000000000000000000D3DB + F900859AE100859FF5006D8CF3007491F4007A96F4007892EC00647CCC006078 + C8006078C800647CCC006D85D9007F99EC00A3B6F8009DB2F7008EA6F600899E + E200526CC50000000000000000000000000000000000E7ECFB00E5EAFD00E4E9 + FD00E5EAFD00E6EBFD00E5EAFD00E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9 + FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8FD00E2E8FD00E1E7 + FD00DFE6FC00DEE5FC005871C800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C1CD + F600AFBFF300859BE9007C93E5007C93E5005E79D6005E79D6005770C8004D6A + CC00647EDA000000000000000000000000000000000000000000000000000000 + 00005871C800869AE2008AA3F4007995F4007A96F400819BF500829DF5007F9A + F5007F9AF500859FF50088A2F6008FA7F60099AFF70095ACF70099AEF5005871 + C800BFCDF600000000000000000000000000000000009FAFE100E7ECFB00E8ED + FB00E8EDFB00E8EDFB00E8EDFB00E7ECFB00E7ECFB00E7ECFB00E7ECFB00E7EC + FB00E7ECFB00E6EBFB00E6EBFB00E6EBFB00E6EBFB00E5EAFB00E5EAFB00E5EA + FB00E4EAFB00E3E8FB006B85DE00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000006B85DE002C57 + E700647CCD00647CCD005A72CB00000000000000000000000000000000000000 + 000000000000D3DBF9006179D1008A9EE2009AAFF40099AFF70097ADF70097AD + F7009AAFF7009AAFF7009DB2F700A0B4F7008B9FE200687FCC005D78D5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005872 + C9005872C9005872C9005872CA00000000000000000000000000000000000000 + 00000000000000000000000000005772CD00637BCC007A8FD90092A8F00098AD + F0009AAEF10092A8F000879DE6007A8FD9005772CD0092A7ED00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009FB1F000728BE0005771C8005771 + C8005771C8005771C8005A75D100728BE0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000DBDBDB002E3F79002632 + 5B0026325B0026325B0026325B0026325B0026325B0026325B0026325B002632 + 5B0026325B0026325B002E3E7700C5C5C500C5C5C500C5C5C500C7C7C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000027366E004F65 + AE004F64AC00485B9B004F64AC004F64AC00485B9B004F64AC004F64AC00485B + 9B004F64AC004F64AC002736680026335C0026335B0026335B0026335B002632 + 5D002E3F7900CBCBCB0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C4C4C400B9B9B9004558 + 9700253159002531590025315900253159002531590025315900253159002531 + 5900253159002531590025315900253159002531590025315900253159004558 + 9700BDBDBD00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002C3D7A004F69 + BE000328A200032082001D3EAC000328A200032082001D3EAC000328A2000320 + 82001D3EAC004F69BE002C3D7A001D3EAC000328A200032082001D3EAC004F69 + BE002C3D7A0000000000000000000000000000000000A6A4A400E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2E200E2E2 + E200E2E2E200E2E2E200E2E2E200E2E2E200A6A4A400B6B5B500A09E9E000000 + 00000000000000000000000000000000000000000000000000002C3B75004B62 + AC0003279D0003279D0003279D0003279D0003279D0003279D0003279D000327 + 9D0003279D0003279D0003279D0003279D0003279D0003279D0003279D004B62 + AC002C3B75000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000002E407E004F69 + C200042AA900032187001D3FB100052AA900042288001E40B100052AA9000321 + 87001D3FB1004F69C2002E407E001D40B300062CAB00052389001F42B400506A + C4002F41800000000000000000000000000000000000A7A6A500E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A7A6A500D8D8D800B7B6B600D5D5 + D5000000000000000000000000000000000000000000000000002B3D7900435E + BB00546393005A6792005A6792000328A300546393005A679200546393000328 + A300546393005A679200546393000328A3005A6792005A67920054639300435E + BB002B3D790000000000000000000000000000000000B1BCE500465792003441 + 6E00333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 6800333F6800333F6800333F6800333F6800333F6800333F6800333F6800333F + 680034416E00485C9B0000000000000000000000000000000000304385004760 + B30005248C0006258D000E2C910009278D0009278D000F2D900009278D000827 + 8D000D2B90004760B300304385002346BC000E34B5000B2A91002548BD00516C + C9003144870000000000000000000000000000000000A8A7A600E2E2E200D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6D600D6D6 + D600D6D6D600D6D6D600D6D6D600D6D6D600A8A7A600ECECEC00D8D8D800A1A1 + A000D5D5D50000000000000000000000000000000000000000002D407F00435F + BF008190C2008194D4008194D400092EAC008190C2008194D4008392C300042A + AA007080B8008194D4007080B800092EAC008194D4008194D4008392C300435F + BF002D407F00000000000000000000000000000000002D3F7F0043548D004B60 + A8004A60A9004A60A9004A60A9004A60A9004A60A9004A60A9004A60A900495F + A700465BA000425698004256980042569800465BA000495FA7004A60A9004A60 + A9004B60A80044559000DBE2F80000000000000000000000000035498F00516E + CF001239BE00102F98002D50C600183EBF00133299002F52C600183EBF001231 + 99002B4FC600526FCF0035498F003256CE001F46C8001938A1003357CE005472 + D500384D950000000000000000000000000000000000AEACAB00E6E6E600DCDC + DC00DCDCDC00DCDCDC00DCDCDC00718BE400DCDCDC00DCDCDC00DCDCDC00718B + E400DCDCDC00DCDCDC00DCDCDC00718BE400AEACAB00EFEEEE00ECECEC00CDCD + CD00B6B5B400A3A1A1000000000000000000000000000000000032478A004261 + C800042DB600042DB600042DB600042DB600042DB600042DB600042DB600042D + B6008196DA008196DA008196DA00042DB600042DB600042DB600042DB6004261 + C80032478A00000000000000000000000000000000003E58B5001544DF000537 + E0001229760026387700042AAB00042AAB00042AAB00042AAB00182F7F004142 + 4A0079777700ADACAC00ADACAC00ADACAC007977770041424A00182F7F00042A + AB00042AAB001B3EB4003F519200000000000000000000000000374D94005371 + D4001840C50015359E003256CC001E45C70018379F003558CC001E45C6001736 + 9F003054CC005371D400374D94003A5ED600274ED100203FA8003A5ED6005574 + DB003B519D0000000000000000000000000000000000B3B1B100ECECEC00E4E4 + E400E4E4E400E4E4E400E4E4E400758FE800E4E4E400E4E4E400E4E4E400758F + E800E4E4E400E4E4E400E4E4E400758FE800BCBBBA00B3B1B100B3B1B100B3B1 + B100B3B1B100B3B1B10000000000000000000000000000000000354890004262 + CD0055659D005A699B005A699B00042FBD0055659D005A699B0055659D00042F + BD008196DE008196DE008196DE00042FBD005A699B005A699B0055659D004262 + CD0035489000000000000000000000000000000000003555BE000839DD000537 + E000032187002A3B7500042CB200042CB200042CB200042AAA004D4B4C009493 + 92009492920043414200454344004341420094929200949392004D4B4C004C66 + C0004B67C7001439B70041548F0000000000000000000000000039509A004B66 + C2001838A4001B3BA5002241A7001D3CA4001D3CA4002341A7001D3CA4001C3B + A4001F3EA6004B66C20039509A004064DC002F56DA002645AE004064DC005777 + E1003F56A40000000000000000000000000000000000B8B6B600F1F1F100EBEB + EB007892EB007892EB007892EB007892EB007892EB007892EB007892EB007892 + EB007892EB007892EB007892EB007892EB007B95EE007B95EE007B95EE00F1F1 + F100F1F1F100B8B6B60000000000000000000000000000000000384D96004364 + D3008192CB008197E1008197E1000934C5008192CB008197E1008494CD000934 + C50090A3E5008197E10092A5E5000934C5008197E1008197E1008494CD004364 + D300384D9600000000000000000000000000000000003555BE000537DE000537 + E000032187002C3C7600042DB700042DB700042DB600072AA0008F8E8D008483 + 82004342450024283900202537001E23360041404400848382008F8E8D004760 + B2004F6BCA00143BBC00455794000000000000000000000000003F56A5005676 + E1002951D9002545AF004468DE003259DA002847AF004669DE003259DA002645 + AE003F64DC005676E1003F56A5004F73EB003F66E8003352BA004E72EA00597B + EB00455FB30000000000000000000000000000000000C0BEBD00F9F9F900F6F6 + F600F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F6007E98 + F100F6F6F600F6F6F600F6F6F6007E98F100F6F6F600F6F6F600F6F6F600F6F6 + F600F9F9F900C0BEBD00000000000000000000000000000000003C54A1004266 + DC000433D0000433D0000433D0000433D0000433D0000433D0000433D0000433 + D0000433D0000433D0000433D0000433D0000433D0000433D0000433D0004266 + DC003C54A100000000000000000000000000000000003555BE000537DE000537 + E000032187002F3F79000E38C6000E38C6000D34B500434757006D6B6B004242 + 4900333540002D2F3C00292C3B00262A3800313648002C303D006D6B6B004347 + 57000D34B5001B43C9004B5FA000000000000000000000000000425AAA005778 + E5003058DF002A4AB300496DE300385FE0002D4CB3004D70E300385EDF002B4A + B200456AE2005778E500425AAA005579F000476DEE003A59BF005478F0005A7D + F1004963BB0000000000000000000000000000000000C2C1C000FBFBFB00F9F9 + F9007F99F2007F99F2007F99F2004E73EF004E73EF004E73EF004E73EF004E73 + EF007F99F2007F99F2007F99F2007F99F2007F99F2007F99F2007F99F200F9F9 + F900FBFBFB00C2C1C000000000000000000000000000000000003F58A8004368 + E1005669A8005B6CA5005B6CA5000535D8005669A8005B6CA5005669A8000535 + D8005669A8005B6CA5005669A8000535D8005B6CA5005B6CA5005669A8004368 + E1003F58A800000000000000000000000000000000003555BE000537DE000537 + E0000321870030417A001B44CE001B44CE00193EBA004E4C4C004D4B4C004243 + 4A00393B42003537400032333F002E313E0025293800222839004D4B4C004E4C + 4C00193EBA00264DD0004E62A400000000000000000000000000445DB100506E + D2002A4AB7002F4FB8003553B9003251B8003251B7003856BA003251B8003150 + B8003150B9004F6DD200445DB1005D80F2005075F100405EC1005B7EF2005C7F + F2004C66BD0000000000000000000000000000000000C5C3C300FDFDFD00FCFC + FC00FCFCFC00FCFCFC00FCFCFC004F74F00099AEF50099AEF50099AEF5004F74 + F000FCFCFC00FCFCFC00FCFCFC00819BF400FCFCFC00FCFCFC00FCFCFC00FCFC + FC00FDFDFD00C5C3C30000000000000000000000000000000000425AAD004469 + E6008295D600819AEE00819AEE000A3ADE008295D600819AEE008598D7000A3A + DE008295D600819AEE008598D7000A3ADE00819AEE00819AEE008598D7004469 + E600425AAD00000000000000000000000000000000003555BE000537DE000537 + E0000321870032427C002951D6002951D6002448C0004F4D4E004F4D4E004545 + 4A006060650072737A0053555D00353741002B2F3D00272B3A004F4D4E005856 + 56002448C0003056D7005166AA000000000000000000000000004A64BB005A7D + F1004169EF003857BF005B7EF1004C71F0003D5BC0005E80F1004C71F0003B59 + BF005478F000597CF1004A64BB006684E8005F81F2004D68C2006482E8005E80 + F2004E68BF0000000000000000000000000000000000C8C7C600FFFFFF00FFFF + FF00829CF500829CF500829CF5005075F1005075F1005075F1005075F1005075 + F100829CF500829CF500829CF500829CF500829CF500829CF500829CF500FFFF + FF00FFFFFF00C8C7C600000000000000000000000000000000004862B9004A70 + F0001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4C + EC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC001C4CEC004C71 + F0004862B900000000000000000000000000000000003555BE000537DE000537 + E0000321870035457F004368E4004368E4003E60D1004F526000686666004E4C + 4D00959495008C8C8E008283880044444A00373944003A3C4400686666004F52 + 60003D5FD1004469E400586DB6000000000000000000000000004B65BD005C7F + F200466DF0003E5CC1006183F2005176F100425FC1006586F3005176F100405E + C100597CF2005B7EF2004B65BD006D89E9006787F300536DC2006986E8005F81 + F2004F69C10000000000000000000000000000000000CAC8C700FEFEFE00FEFE + FE00FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00829C + F500FEFEFE00FEFEFE00FEFEFE00829CF500FEFEFE00FEFEFE00FEFEFE00FEFE + FE00FEFEFE00CAC8C700000000000000000000000000000000004A64BB004E73 + F1006777AC006777AC006777AC006777AC006777AC006777AC006777AC006777 + AC006777AC006777AC006777AC006777AC006777AC006777AC006777AC005075 + F1004A64BB00000000000000000000000000000000003555BE000537DE000537 + E00003218700324176005275EB005275EB004D6FDE004F5C8B008F8D8D005452 + 530071707000969496006F6E710049494E003A3B4300514F51008F8D8D004F5C + 8B004D6FDE004E72EA005C72BB000000000000000000000000004C66BD005473 + D9003D5BC100425FC1004965C2004763C1004864C1004C67C3004763C1004561 + C100425FC2005372D9004C66BD00728DE9006F8DF3005871C3006E8AE8006082 + F200516BC20000000000000000000000000000000000C9C7C600FCFCFC00FBFB + FB00FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00809A + F300FBFBFB00FBFBFB00FBFBFB00809AF300FBFBFB00FBFBFB00FBFBFB00FBFB + FB00FCFCFC00C9C7C600000000000000000000000000000000004B65BC005075 + F10090A4E80099AFF70090A4E80090A4E80099AFF70090A4E80090A4E80099AF + F70090A4E80090A4E80099AFF70090A4E80090A4E80099AFF70090A4E8005479 + F1004B65BC0000000000000000000000000000000000465EB2001743D5001844 + D60019307D0039497A00809AF300657AC2006D84D1005D77D100908E8E007F7D + 7D00575555004F4D4D004D4B4D0047474A00545254007F7D7D00908E8E003E52 + 94004158A5004059AC005F75C1000000000000000000000000004E68BF005F81 + F200567AF2004C67C200718FF4006586F300516BC2007693F4006586F3004F69 + C2006888F3005D80F2004E68BF00829DF5007C97F4005D75C3007491F4005F81 + F200536DC40000000000000000000000000000000000BDBBBA00E8E8E800DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE + DE00E8E8E800BDBBBA00000000000000000000000000000000004D67BE00587C + F2004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72 + F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1004C72F1005E80 + F2004D67BE00000000000000000000000000000000005E79D0006B86E2006179 + CA005669AB005669AB007B97F4006279C4006B84D6007B97F4006879B2005959 + 5F00757373008F8E8D008F8E8D008F8E8D007573730059595F006879B2005669 + AB004D62AA004B62AE00617AD3000000000000000000000000004F69C0006082 + F2005B7EF2004F6AC2007794F4006B8AF300566FC3007C97F4006B8AF300536D + C2006D8CF3005E80F2004F69C00086A0F5007995F400566FC3006989F3005C7F + F200556FC60000000000000000000000000000000000AEADAC00D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2D200D2D2 + D200D2D2D200AEADAC00000000000000000000000000000000004D67BF005B7E + F2004D5B8B005563930055639300556393005563930055639300556393005563 + 9300556393005563930055639300556393005563930055639300556599006283 + F2004D67BF0000000000000000000000000000000000627ACE007592F4003E4E + 8000343D5D006071AB0089A2F60089A2F60089A2F60089A2F600829AEA007A8E + D5006A7191005A585800646262005A5858006A7191007A8ED500829AEA00829C + F5006D8CF3006F8CF1008EA3E900000000000000000000000000506AC1005775 + DA004D68C200546EC2005B73C4005A72C3005B73C3006077C4005B73C3005871 + C300526CC3005674DA00506AC1009CB1F70096ACF7007A91DC00819BEF006483 + EB005670C700000000000000000000000000000000005263A1005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6FA8005F6F + A8005F6FA8005263A100000000000000000000000000000000004E68C0005F81 + F2002C3B6C003242790032427900324279003242790032427900324279003242 + 7900324279003242790032427900324279003242790039497E005B6894006787 + F3004E68C000000000000000000000000000000000005C75CC00728ADD00404F + 8100404C72006575AC0091A8F60092A9F60092A9F60093AAF60097ADF70099AE + F30095A9EB008C9EDD008C9EDD008C9EDD0095A9EB0098ADF30094ABF600819B + F5007390F2006983D80000000000000000000000000000000000526CC3006283 + F2006989F3005D75C300859FF5007E99F500657BC3008DA5F6007F9AF5006279 + C4007A96F4006082F200526CC300375EE5003159E4002551E3005771C8000000 + 00000000000000000000000000000000000000000000556CBD005A79DF000536 + D900042EBB00042BAE00042EBB000536D9000536D9000536D9000536D9000536 + D9000536D9000536D9000536D9000536D900042EBB00042BAE00042EBB000536 + D9005A79DF00556CBD0000000000000000000000000000000000506AC1006686 + F30038446D003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C7A003E4C + 7A007982A2005C688F00737D9E004A5782003E4C7A003E4C7A00646F9400708E + F400506AC1000000000000000000000000000000000000000000000000008DA2 + E800536DC400536DC4004E66B8004B62B0004E66B800536DC400546DC0005870 + BF007D8DC6008D9BC7008E9BC7008D9BC7007789C5004F69BE00556EC100637A + CE008DA2E8000000000000000000000000000000000000000000536DC4006283 + F2006C8BF3006077C3008AA3F600839EF5006B80C40092A9F600849EF500657B + C3007C97F4006183F200536DC4005771C8005771C8005771C8005A76D2000000 + 00000000000000000000000000000000000000000000566FC6006A89F200053A + EA005574DB006886EB005574DB00053AEA00053AEA00053AEA00053AEA00053A + EA00053AEA00053AEA00053AEA00053AEA004D6CD3006482E7004D6CD300053A + EA006A89F200566FC60000000000000000000000000000000000516BC2006A8A + F3003D486E0044517A0044517A0044517A0044517A0044517A0044517A004451 + 7A009097B0007881A000848CA8007881A00044517A0044517A00687294007491 + F400516BC2000000000000000000000000000000000000000000000000000000 + 000000000000DAE1F900637BCE00556FC600637BCE00DAE1F9006C84D800607B + D9007D98F500AABCF800ADBEF800AABCF8007491F4005775D9006C84D8000000 + 0000000000000000000000000000000000000000000000000000546EC5005876 + DA00566FC3006379C4006C81C5006E82C4007083C5007587C6006E82C400687D + C4005B73C4005775DA00546EC500000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005771C8007794F4001C4C + ED0090A7F4007995F40090A7F4001E4EED001E4EED001E4EED001E4EED001E4E + ED001E4EED001E4EED001E4EED001E4EED0090A7F4007995F40090A7F4001C4C + ED007794F4005771C80000000000000000000000000000000000526CC3006D8C + F300434D6E00485378004A557B004A557B004A557B004A557B004A557B004A55 + 7B004A557B004A557B004A557B004A557B004A557B004A557B006F7896007995 + F400526CC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A8B8F0005570 + CB00466BE300CFD8F800CFD8F800CFD8F8004165E300546ECA00A8B8F0000000 + 00000000000000000000000000000000000000000000000000005670C7005D80 + F200587CF2005972C3008EA6F60093AAF600798AC500A3B6F80087A1F5005B73 + C3006989F3005B7EF2005670C700000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C900889FEB0091A6 + EC0097ABED0098ABED0098ABED0099ACED0099ACED0099ACED0099ACED0099AC + ED0099ACED0099ACED0099ACED0099ACED0099ACED0098ABED0097ABED0091A6 + EC00889FEB005872C900000000000000000000000000000000005670C6007794 + F400AABCF800ADBEF800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800AEBF + F800AEBFF800AEBFF800AEBFF800AEBFF800AEBFF800ADBEF800A9BBF800829C + F500546EC5000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005771C8006583 + EB00809AEE007B92DD009BB0F700AEBFF8009FAEDF00B2C2F9009EB3F7007C92 + DD00809AEE006382EB005771C800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005B76D2005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005B76D200000000000000000000000000000000005A74C7008CA3 + ED009BB0F700A6B9F800A9BBF800AABCF800AABCF800AABCF800AABCF800AABC + F800AABCF800AABCF800AABCF800AABCF800A9BBF800A5B8F80098AEF70092A7 + EF005972C6000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005A76D2005771 + C8005771C8002A4DBF00425FC100566FC3005B73C3005A72C3004360C100294C + BF005771C8005771C8005A76D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000728BDF007289 + D7009BAFF1009FB2F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3 + F200A0B3F200A0B3F200A0B3F200A0B3F200A0B3F2009EB1F2009AAEF1007389 + D700728BDF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005A76D2005771C8005771C8005771C8005771C8005771C8005771C8005771 + C8005A76D2000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003044890030448900000000000000000000000000000000000000 + 0000000000003044890000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000263569004F5E9400000000000000000000000000000000000000 + 0000536BBA002635690000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000004D66 + BC007D94DF007B94E7007F97E7008098E7008199E7008199E7008199E7008199 + E7008199E7008199E7008199E7008199E7008098E7007F97E7007C94E5006377 + BB004D66BC000000000000000000000000000000000000000000000000000000 + 00000000000029397200627DD900334992000000000000000000000000003349 + 92005E71B3002939720000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F58AD003D59B9003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003857BF003857BF003857BF003857BF003857BF003857 + BF003857BF003857BF003A5097005169BF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D2DBF8004E66 + B7006686F3006888F3006F8DF3007592F4007693F4007693F4007693F4007693 + F4007693F4007693F4007693F4007693F4007391F4006F8DF3006888F3007F99 + F0004E66B700D2DBF80000000000000000000000000000000000000000000000 + 0000000000002C3C7700617DDA00445591007389D300000000007389D300495A + 9300526FD2002C3C770000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000283C82000730BA00042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB9003453B900283C820000000000364C9A002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E7D002C3E + 7D002C3E7D002C3E7D0000000000000000000000000000000000AEBDF100556C + BB00617FE30040508500576AAB00819BF500819BF500435180005D70B000829C + F500829CF5005A6CAB005C6FAF00819BF500425080005669AA005469AF007B97 + F400556CBB00AEBDF10000000000000000000000000000000000000000000000 + 0000000000002E3F7C00617DDB005872C70032478800CED7F70033478800647B + CB002447BB002E3F7C0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027387A00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042BAD00042B + AD00042BAD00042BAD001035B10027387A00000000002F4284005872CB004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6BC8004F6B + C8004F6BC8005872CB00000000000000000000000000000000008FA3E900627A + CD004862BC0036488600445BA9006283F2006283F20031417700445BA9006283 + F2006283F200445BA900445BA9006283F20031417700445BA900445BA9007290 + F400627ACD008FA3E90000000000000000000000000000000000000000000000 + 00000000000032458600617EDF00173CBA005472D800435492005D7ADA001238 + B700042BAF003245860000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002A3C7E00042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB000042BB000042BB000042BB000042BB000042B + B000042BB000042BB000042BB0002A3C7E0000000000354A92005875D600BBC2 + DA00D0D8F400D0D8F400D0D8F400CED6F300CED6F300CED6F300CED6F300CCD5 + F200CDD6F300CED6F300CED6F300D0D8F400D1D9F400D1D9F300D3DAF400D5DC + F400E9EDFA005875D60000000000000000000000000000000000768EE1006079 + CD003955B3002F458F003751A8005075F1005075F100273975003751A8005075 + F1005075F1003751A8003751A8005075F100273975003751A8003751A8006183 + F2006079CD00768EE10000000000000000000000000000000000000000000000 + 00000000000034478B00627FE100042CB4002E53CB005B73C7002E53CB00042C + B400042CB40034478B0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002C408400042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB900042EB900042EB900042EB900042EB900042E + B900042EB900042EB900042EB9002C40840000000000384E99005876DB00BDC4 + DC00D2DAF500D1D9F500D1D9F500D1D9F500D1D9F500D1D9F500CFD7F400CFD7 + F400CED7F400CED7F400CED7F400CED7F500CED7F500CED7F500CED7F500CED7 + F500E6EBF9005876DB00000000000000000000000000000000007790E100657E + D3002844A200243D8E002C48A7003E67F0003E67F0001E3274002C48A7003E67 + F0003E67F0002C48A7002C48A7003E67F0001E3274002C48A7002C48A7005075 + F100657ED3007790E10000000000000000000000000000000000000000000000 + 000000000000374B8F006280E300042EB9000932BC004164D8000932BC00042E + B900042EB900374B8F0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000002F448C000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2000430C2000430C2000430C2000430C2000430 + C2000430C2000430C2000430C2002F448C00000000003C53A0005A79E000C0C7 + DE00D5DDF700D3DBF600D3DBF600D3DBF700D2DAF600D2DAF600D2DAF700D1D9 + F600D2DAF700D1D9F600D0D9F600D0D9F600D0D9F600CFD8F600CFD8F600CFD8 + F600E6EBFA005A79E00000000000000000000000000000000000516AC2005E7A + D8000D257600112D8A00123095001A45D6001A45D6000C216800123095001A45 + D6001A45D60012309500123095001A45D6000C2168001230950012309500335B + E1005E7AD800516AC20000000000000000000000000000000000000000000000 + 0000000000003B509A00617FE5000430C4000430C4000430C4000430C4000430 + C4000430C4003B509A0000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000354B9B000534D4000534D4000534 + D4000534D4000534D4000534D4000534D4000534D4000534D400042AAA00042A + AA00042AAA00042EB9000534D4000534D4000534D4000534D4000534D4000534 + D4000534D4000534D4000534D400354B9B0000000000435CAF006181EC00C2C9 + E000D8E0FA00D8E0FA00D7DFFA00D7DFFA00D7DFFA00D7DFFA00D6DEFA00D6DE + FA00D6DEFA00D6DEFA00D6DEFA00D5DDFA00D5DDFA00D4DDFA00D4DDFA00D4DD + FA00E9EEFC006181EC00000000000000000000000000000000004D66BA005E7A + D80003185F0005207B00062489000833C3000832BD0004195F00062489000833 + C3000832BD0005218000062489000833C30004195F0005218000062489001A43 + CE005E7AD8004D66BA0000000000000000000000000000000000000000000000 + 0000000000003E539E006180E7000432C9000432C9000432C9000432C9000432 + C9000432C9003E539E0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003850A3000537DD000537DD000537 + DD000537DD000537DD000537DD000537DD000537DD000537DD00C5C3C200C3C1 + BF00C0BEBC00042EBC000537DD000537DD000537DD000537DD000537DD000537 + DD000537DD000537DD000537DD003850A300000000004660B6006182F100C5CB + E100DAE1FB00DAE1FB00DAE1FB00D9E1FB00D9E1FB00D9E1FB00D8E0FB00D8E0 + FB00D8E0FB00D7DFFB00D7DFFB00D7DFFB00D6DEFB00D6DEFB00D6DEFB00D6DE + FB00EBF0FD006182F100000000000000000000000000000000004960B2005D7D + EA0002175D000216580002165800042CB300042BAC0002175D0002175D00042C + B300042BAC000216580002175D00042CB30002175D000216580002165800173E + C2005D7DEA004960B20000000000000000000000000000000000000000000000 + 0000000000004056A3006180E9000433CE000433CE000433CE000433CE000433 + CE000433CE004056A30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003B54AA000539E5000537E0000434 + D1000433CE000433CE000433CE000433CE000433CE000433CE00D9D8D700D7D5 + D400D4D2D100042BB0000433CE000433CE000433CE000433CE000433CE000433 + CE000434D3000538E2000539E5003B54AA00000000004962BA006283F200C7CD + E300DEE5FC00DDE4FC00DDE4FC00DCE3FC00DCE3FC00DCE3FC00DBE2FC00DBE2 + FC00DBE2FC00DAE2FC00DAE2FC00DAE2FC00D9E1FC00D9E1FC00D8E0FC00D8E0 + FC00EBF0FD006283F2000000000000000000000000003C4E9300405190000D26 + 7800031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F7D00031F + 7D000D2678003C4E8C00879DE200000000000000000000000000000000000000 + 000000000000455DAE006887ED001543DC001543DC001543DC001543DC001543 + DC001543DC00455DAE0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003F59B000193BAD004565CF005D7D + EA006082F2006082F2006082F2006082F2006082F2006082F200D9D7D600D3D1 + D000CDCBCA00516DCD006082F2006082F2006082F2006082F2006082F2006082 + F2005B7BE5003959C2001646E9003F59B000000000004C65BC006B8AF300CCD1 + E300E3E9FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00E0E6FC00DFE6FC00DFE6FC00DFE6FC00DEE5FC00DEE5FC00DEE5FC00DDE4 + FC00EDF1FE006B8AF3000000000000000000000000007A93E4003F64E0004569 + E0004A6DE0004C6EE0004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6F + E1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004D6FE1004C6EE000486B + E0004569E0004266DD004C64B700000000000000000000000000000000000000 + 0000000000004760B3006D8BF0001F4CE1001F4CE1001F4CE1001F4CE1001F4C + E1001F4CE1004760B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000415AB1005E7CE2005579F100486F + F000466DF000466DF000466DF000466DF000466DF000466DF000F1F0F000EFED + ED00ECEBEA003B5DCC00466DF000466DF000466DF000466DF000466DF000466D + F000486FF000587CF2002247C400415AB100000000004D67BE006B8AF300CED3 + E300E5EAFD00E5EAFD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9 + FD00E2E8FD00E2E8FD00E2E8FD00E1E7FD00E1E7FD00E1E7FD00E0E6FC00E0E6 + FC00EFF3FE006B8AF3000000000000000000000000007290F4006A8AF3006888 + F300708EF4007290F4007290F4007391F4007391F4007391F4005771CE00354A + 940032458D007391F4007391F4007391F4007290F4007290F4007290F4006E8D + F3006888F3006A8AF3005771C800000000000000000000000000000000000000 + 0000000000004A63B8006F8DF1002854E7002854E7002854E7002854E7002854 + E7002854E7004A63B8004A63B8004A63B8004A63B8004A63B800516BC7000000 + 000000000000000000000000000000000000425BB200597CF2005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1004766CD004766 + CD004766CD004B6CDA005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1004D68C400425BB200000000004E68BF006B8AF300CFD4 + E300E7ECFD00E6ECFD00E6ECFD00E6ECFD00E6EBFD00E6EBFD00E5EAFD00E5EA + FD00E5EAFD00E4E9FD00E4E9FD00E4E9FD00E3E9FD00E3E9FD00E3E9FD00E2E8 + FD00F0F3FE006B8AF3000000000000000000000000005872CA005872C9005872 + C9005872C9005872C9005872C9005872C9005872C9005872C9003C53A3005072 + E2000535D7005872C9005872C9005872C9005872C9005872C9005872C9005872 + C9005872C9005872C90093A8ED00000000000000000000000000000000000000 + 0000000000004F69C0007894F4003D66EF003D66EF003D66EF003D66EF003D66 + EF003C65EF004F69C0003656C2005579F1005378F1007592F4004F69C0000000 + 000000000000000000000000000000000000445DB5006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8BF3006C8B + F3006C8BF3006C8BF3007491F400445DB50000000000516BC2006D8CF300D3D7 + E400EBF0FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EE + FD00E8EDFD00E8EDFD00E8EDFD00E8EDFD00E7ECFD00E7ECFD00E7ECFD00E6EC + FD00F2F5FE006D8CF30000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000425AAF004F73 + EB000538E3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000506AC1007C97F400476EF000476EF000476EF000476EF000476E + F000466DF000506AC1003555C2005176F1005075F1007290F400506AC1000000 + 000000000000000000000000000000000000455EB6007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96F4007A96 + F4007A96F4007A96F4007A96F400455EB60000000000526CC3007491F400D6D9 + E400EDF1FE00EDF1FE00EDF1FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0 + FD00EAEFFD00EAEFFD00EAEFFD00E9EEFD00E9EEFD00E9EEFD00E9EEFD00E8ED + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004760B8005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000516BC200819BF5005075F1005075F1005075F1005075F1005075 + F1005075F100516BC2002A4DBF004169F0004068F0006B8AF300516BC2000000 + 0000000000000000000000000000000000004660B70086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0F50086A0 + F50086A0F50086A0F50086A0F5004660B70000000000546DC4007491F400D8DB + E400F0F3FE00EFF3FE00EFF3FE00EFF3FE00EEF2FE00EEF2FE00EDF1FE00EDF1 + FE00EDF1FE00ECF0FE00ECF0FE00ECF0FE00EBF0FD00EBF0FD00EBF0FD00EAEF + FD00F4F7FE007491F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004C65BD005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000536DC40088A2F6006485F3006485F3006485F3006485F3006485 + F3006384F300536DC4000F35B6001546EC001546EC00577BF200536DC4000000 + 0000000000000000000000000000000000005570CD00A3B6F500A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4F700A0B4 + F700A0B4F700A0B4F7008798D6005570CD00000000005770C7007B97F4001B46 + D500254ED600274FD600274FD6002850D6002850D6002850D6002850D6002850 + D6002850D6002850D6002850D6002850D6002850D600274FD600274FD600214A + D5001B46D5007B97F40000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004E68BF005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000546DC4008BA4F6006F8DF3006F8DF3006F8DF3006F8DF3006F8D + F3006E8DF300546DC400042BB0000538E5000538E5005075EF00546DC4000000 + 000000000000000000000000000000000000000000004963BA004963BA004963 + BA004963BA004963BA004963BA003D5BC300042EBC003B57B9004963BA004963 + BA004963BA004963BA003B57B900042EBC004963BA004963BA004963BA004963 + BA004963BA004963BA005670CE0000000000000000005871C800829CF5003E67 + F0005176F1005579F100577BF200597CF200597CF200597CF200597CF200597C + F200597CF200597CF200597CF200597CF200587CF200577BF2005579F1004A70 + F0003E67F000829CF50000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000516AC1005075 + F100053AEB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000556EC6008FA7F6007995F4007995F4007995F4007995F4007995 + F4007995F400556EC600042AA9000434D3000434D3005073E900556EC6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004A64BB000430C4004760B300000000000000 + 000000000000000000004760B3000430C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005872C90089A1F00093A9 + F2009DB0F2009FB2F400A0B3F400A1B4F400A1B4F400A1B4F400A1B4F400A1B4 + F400A1B4F400A1B4F400A1B4F400A1B4F400A0B3F400A0B3F4009FB2F40098AD + F20093A9F20089A1F00000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005971C7005075 + F1001345EC000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005770C8009DB1F3008CA5F6008CA5F6008CA5F6008CA5F6008CA5 + F6008CA5F600697ECB0003269B00042AAA000930B3005D78D6005770C7000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000516ABE002049D4004862BD004D66BD004D66 + BD004D66BD004D66BD004862BD002049D3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000005972CB006A86 + E4006A86E4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000647EDA0095A8E80097ADF70096ACF70096ACF70096ACF70096AC + F70096ACF700758AD4001A36940003269B002042B3005E78CF005874CF000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000536CC0006481E4000B39D4000434D3000434 + D3000434D3000434D3000B39D4006D88E3000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000093A8ED005872 + CA005872CA000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000093A8ED007086D2009DB2F70098AEF7009CB1F7009DB2F7009AAF + F70095ACF70096A9EB005E74BF0016349A004D6ACB00657BC5007C93E6000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006680D9007489D400879FF200829DF500829D + F500829DF500829DF500879FF2007489D4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005872C9005872C9005872C9005872C9005872 + C9005872C9005872C9005872C9005872C900647EDB0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031458E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E3E + 79002A396C0090A1D600C8C8C800B6C3EC00667CC4003D559D0025356A002535 + 6A00243468003C5198006277BD00ABB9E500C3C3C30090A1D6002A396C002E3E + 7900000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000008196DC002F42 + 820056659A002F4282008196DC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000DADADA00CECECE00C0C0C000C0C0C0009EACDC00273360002631 + 590026315900384987008D9DD300C0C0C000C0C0C000CECECE00D3D3D3000000 + 0000000000000000000000000000000000000000000000000000000000003B51 + 9F0003279F0022377D002F3F79003C56AA002F4CAF001F3FA9000F31A3000F31 + A3000F31A3001F3FA9002F4CAF003C56AA002F3F790022377D0003279F003B51 + 9F00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000859AE000364C98004C5D99005F79CD003D5C + C4002447BD003D5CC4005F79CD00697CBD00364C9800859AE000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002B3F800030458B0000000000000000000000 + 00000000000000000000000000004055A3007085D00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000CED7F6002A3D7D0056669F004B5989002A3A + 73002A3A73007381AE005264A4002A3A73000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005871 + C1001C368C00374986003F57A9001639AD001034AB002344B1003553B7003553 + B7003553B7002344B1001034AB001639AD003F57A900374986001C368C005871 + C100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A9B9EE005062A1006E81C300627CD300294EC600294E + C600294EC600294EC600294EC6004161CD006E81C3005062A10039509E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008196DB002E4187005366A6003F4E84007287D200000000000000 + 0000000000000000000090A3E30039487D003F4E84002E4187008196DB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000004F65B600213783007181B600A3B4EB000000 + 000000000000354B97007281B300213783000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000008297 + DE003C4E8D003C58B6002244B6002849B8005C73C1009EA8C800CCCCCC006C6C + 6C00CCCCCC009EA8C8005D74C200294AB9002244B6003C58B6003C4E8D008297 + DE00000000000000000000000000000000000000000000000000000000000000 + 000000000000627ACE00465A9E006882DB004A6AD6003E61D3003E61D3002E53 + CF002E53CF002E53CF002E53CF003257D0005674D900748CDD006E82C600627A + CE00000000000000000000000000000000000000000000000000000000000000 + 0000364C980047578E005568AB003C58B800576CAF0030428500000000000000 + 0000000000000000000030468D005568AB004B65BB005568AB0047578E000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002F428600324CA4004F5E9300000000000000 + 000000000000A5B6EC004F5E9300324CA4000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000D0D8F7003C4E + 91002348C300163DBE004B66C100DFDEDE00F5F5F500F8F8F800F9F9F900FAFA + FA00FAFAFA00FBFBFB00F8F8F800E2E2E2004D68C300163DBE002348C3003D50 + 9300D0D8F7000000000000000000000000000000000000000000000000000000 + 00005469B1008BA0E8005E7CE2005A6DB400445AA9004D67C0006F83C8007590 + EA004469E3003A60E1004E67BE00445DB200445AA9005A6DB4007388CF009FB0 + EA005469B100ABBBF00000000000000000000000000000000000000000000000 + 0000A8B7ED00495A96006A81CF00042DB6001C41BD005771C500BAC7F2000000 + 000000000000374B9400576FBE002045BE000E35B8006880CF004D5E9B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000334689002440A30033468900000000000000 + 00000000000000000000334689001C399F000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000566FC400455C + A900113AC3004765CB00B1B4BB00E2E2E200F5F5F500F6F6F600F7F7F700F8F7 + F700F8F8F800F9F9F900F9F9F900FAFAFA00B7BAC1004967CD00113AC300455C + A900566FC40000000000000000000000000000000000000000004B66BF00435C + B4008F9FDA005878E0005B71BD009DAFED0000000000000000004860B5008299 + E7005B7DEC004E6EDD00455EB40000000000000000009DAFED00516AC600859C + E60092A3DB004761BA004B66BF00000000000000000000000000000000000000 + 000000000000455EB2006B7DB900042FBF00042FBF003C5DCC00465EB2000000 + 0000000000005267AE004161CE00042FBF004363CE007081BD00455EB2000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000465EB100364A8F002B49AB00364A8F00000000000000 + 000000000000364A8F00364A8F001D3CA5000000000000000000000000000000 + 00000000000000000000000000000000000000000000D1DAF7003F539C004463 + CA003156CF00A2AAC700E1E1E100EEEDED00D6D6D600F3F3F300F4F4F400F5F5 + F500F6F5F500F7F6F600F7F7F700F8F7F700E9E9E900A8B1CE003055D0004463 + CA003F539C00D1DAF70000000000000000000000000000000000455FB600A4B4 + E900708CE9006076C4005169BB00000000000000000000000000627CD500798F + DC006A89F2005471D500627CD5000000000000000000000000004E67C5006076 + C400708CE9006E82CB00455FB600000000000000000000000000000000000000 + 000000000000D1DAF70044589E002048CD000431C7000E39CA00485CA000899D + E300A9B9EF005772D1001740CB000431C7007189D70044589E00BDC9F3000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000394D9500394D95003350B300394D9500000000000000 + 0000000000003953AE00394D95001E3EAC000000000000000000000000000000 + 00000000000000000000000000000000000000000000556EC7004B68C700385E + DD009CA5C800E5E4E400E9E8E800EAEAEA00EBEAEA00E1E0E000EEEDED00EBEB + EB00EFEFEF00F1F0F000F1F1F100F2F1F100F3F3F300F1F0F000A5AED100385E + DD004B67C700556EC700000000000000000000000000000000004861B8008CA3 + EF004F74F100607EE0004A63BC00000000000000000000000000AEBDF200657A + C400839EF500586FBF00AEBDF200000000000000000000000000BFCCF5008DA1 + E800839EF500587CF2004861B800000000000000000000000000000000000000 + 0000000000000000000000000000778DD7002C55DE000536D9004D6FE100576D + BA005369B4000D3DDA000536D9002751DE00455DB00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000003E53A1003E53A1004260C2003E53A100000000000000 + 0000000000004260C2003E53A1002143B8000000000000000000000000000000 + 000000000000000000000000000000000000000000004960B3004C6DDB003A61 + E300C8C9D000E7E6E600E6E6E600E6E5E500E7E6E600E8E7E700BEBEBE00D2D2 + D200D5D4D400EDECEC00EEEDED00EEEEEE00F0EFEF00F1F0F000CFD1D8003960 + E2005473D9004660B700000000000000000000000000000000004962B9008FA4 + EF005E7DE500516ABD0090A4EA00000000000000000000000000D2DBF8006076 + C20087A1F500576FBF00D2DBF800000000000000000000000000000000005970 + C0008CA1EC00849EF5004962B900000000000000000000000000000000000000 + 00000000000000000000000000005C71BD006886EA000E3FE200204EE5005A78 + DE00607BDA000538E2000A3CE3005E7EEA00758CDE0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004157A7004157A7004A66C9004157A700000000000000 + 0000000000004A66C9004157A7002246BD000000000000000000000000000000 + 00000000000000000000000000000000000000000000455EB2005474E0004369 + E900E0E0E000EFEEEE00EDECEC00EAE9E900E9E8E800E7E6E6007B7979006A68 + 68007F7D7D00E9E8E800EAE9E900EBEAEA00ECECEC00EDECEC00DEDDDD004268 + E8005878E100455EB200000000000000000000000000000000004A63BA0092A8 + F0005971C4007790E2000000000000000000000000000000000000000000546C + BF0091A7F2005068BD0000000000000000000000000000000000000000007790 + E200697EC90091A7F2004A63BA00000000000000000000000000000000000000 + 00000000000000000000000000005570CC00768DD9004068EF00073BEA003560 + EE003A63EE00073BEA003963EE00778EDD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000445CAD00445CAD00516ED000445CAD00000000000000 + 000000000000516ED000445CAD002449C4000000000000000000000000000000 + 000000000000000000000000000000000000000000004A64BB006E8BEE005A7D + F200E9E9E900F9F8F800F8F8F800F6F6F600F5F5F500F4F4F4009F9E9C009290 + 8E009F9D9B00EDECEC00EBEBEB00EAE9E900E7E6E600E6E5E500D7D6D600587C + F2007490EE004A64BB00000000000000000000000000000000004C65BC007A8D + D000000000000000000000000000000000000000000000000000000000004C65 + BC009AAEF1004C65BC0000000000000000000000000000000000000000000000 + 000000000000526CC9004C65BC0000000000000000005F7FE9006381E9006382 + E9006483E9006483E9006483E9006784EA006A87EA006484EE001A4AED001A4A + ED001A4AED002654EE006484EE006986EA006583E9006483E9006483E9006483 + E9006382E9006381E9004A64BB00000000000000000000000000000000000000 + 000000000000000000004963B9004963B900607CDC004963B900000000000000 + 000000000000607CDC004963B9003458D2000000000000000000000000000000 + 00000000000000000000000000000000000000000000526CC100819BEF006384 + F300DBDDE200FCFCFC00FBFBFB00FAFAFA00F9F9F900F9F8F800E0DFDF005856 + 5500DEDDDD00F3F3F300F2F1F100F1F0F000EEEDED00EDECEC00CCCDD2006183 + F20089A1F100526CC10000000000000000000000000000000000536ECA004F6A + C50000000000000000000000000000000000000000000000000000000000536E + CA009DB0F200536ECA0000000000000000000000000000000000000000000000 + 00000000000000000000536ECA000000000000000000587CF2001949ED001D4D + ED002050ED002150ED002150ED002352ED002352ED002352ED002352ED002352 + ED002352ED002352ED002352ED002352ED002251ED002150ED002150ED001F4F + ED001D4DED001949ED004B65BC00000000000000000000000000000000000000 + 000000000000000000004C66BD004C66BD006782E0004C66BD00000000000000 + 0000000000006782E0004C66BD003C60D7000000000000000000000000000000 + 000000000000000000000000000000000000000000005F79D2008DA1E6006D8C + F300BEC5DE00FAFAFA00FDFDFD00FDFCFC00FCFCFC00FCFBFB00FBFAFA007674 + 7300F9F9F900F8F7F700F7F7F700F6F6F600F4F4F400F0EFEF00B7BDD6006B8A + F30092A5E7005F79D20000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000546ECB006177C5006177 + C5007893ED006177C5006177C5005C73C4000000000000000000000000000000 + 000000000000000000000000000000000000000000005B7EF2001F4FED002453 + EE002957EE002A57EE002B58EE002D5AEE002D5AEE002D5AEE002D5AEE002D5A + EE002D5AEE002D5AEE002D5AEE002D5AEE002C59EE002B58EE002A57EE002755 + EE002453EE001F4FED004C66BD00000000000000000000000000000000000000 + 000000000000000000004D67BE004D67BE006E88E2004D67BE00000000000000 + 0000000000006E88E2004D67BE004365DA000000000000000000000000000000 + 00000000000000000000000000000000000000000000919FD0005C74C500A6B8 + F3009FB3F700C5CADA00EFEFEF00FFFFFF00FFFFFF00FFFEFE00FEFEFE008785 + 8400FEFEFE00FDFDFD00FDFDFD00FCFCFC00ECECEC00C4C9D9009DB2F600A3B5 + F3005D75C5008A97C60000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000556FCC005069C0005069 + C000A9BAF3005069C0005069C0005069C0000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF005870C300829AEB00426AF000426A + F000426AF0004D72F100849CEE005870C3004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF00546FCB00000000000000000000000000000000000000 + 000000000000000000004F69C0004F69C000879EE9004F69C000000000000000 + 000000000000879EE9004F69C0005171DE000000000000000000000000000000 + 000000000000000000000000000000000000000000007F7E7D008390C10092A3 + DD0091A8F600B2C1F300C2C3C700FFFFFF00FFFFFF00FFFFFF00FFFFFF009D9B + 9A00FFFFFF00FEFEFE00FEFEFE00EBEBEB00C0C1C500B1C1F3008DA5F50091A2 + DD00818FBE008785840000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000516A + C100B0C0F600516AC10000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005975D1007B90DA007592F4004D72F1007794 + F4007995F4004D72F1007592F4007D92DD000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000506AC100506AC1009AAEF0005D75C600000000000000 + 0000D3DBF9009AAEF000506AC1005977DF000000000000000000000000000000 + 00000000000000000000000000000000000000000000B2B0AF009A9CA6005E76 + C70096ACF700A3B6F800B8C4EC00E5E5E500FBFBFB00FFFFFF00FFFFFF00D7D6 + D600FFFFFF00FFFFFF00FBFBFB00E5E5E500B7C3EC00A0B4F70092A9F6005E76 + C7009498A100B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000092A7EC00526B + C200A0B3F400526BC20092A7EC00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006278C800869EF2005F81F2006989F300A1B3 + EE00A3B3ED00567AF2005C7FF200859EF20092A5EC0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000516BC200516BC200A3B2E7008396D900000000000000 + 0000607BD700A3B2E700516BC200607DE1000000000000000000000000000000 + 00000000000000000000000000000000000000000000BDBCBB00A3A1A0007978 + 77007B90D300BAC8F600A9BBF800C9D5FB00D1D8F200D0D3DE00CECECE006D6D + 6D00CECECE00D0D3DE00D1D8F200C8D4FB00A5B8F800B8C6F6007B90D3007372 + 71009B999800B5B4B30000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB1F000BDCAF6009FAE + E3007287CF00A6B4E400CAD5F800798DD2000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000007A92E4008CA4F4006D8CF3006A8AF30099ABEA00556F + CB00556FCB00859FF5006A8AF3006D8CF3007389D3007A92E400000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000546DC400546DC400718AE0007388CF00C9D3F500C9D3 + F500B2C0EC00718AE000546DC4006E89E4000000000000000000000000000000 + 00000000000000000000000000000000000000000000B4B3B200908E8D007D7B + 7A006C7BAA00758AD200B8C6F200B8C7F900C1CEFA00CED8FB00D5DEFC00D5DE + FC00D5DEFC00CDD8FB00BFCDFA00B6C6F900B6C4F200748AD200707DAE007371 + 700089888700B1B0AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000627DD8009AAAE1005973 + CF00D3DBF9005973CF00A4B2E300C0CBF1000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000005971C80086A0F5007592F4007C97F4006B81CC009FB1 + F000AEBEF300A7B9F5007F9AF5007592F40092A7EE005D75C800D3DBF9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000556EC500556EC500000000009FB1F000556EC500556E + C5005D78D50000000000556EC5007892E6000000000000000000000000000000 + 00000000000000000000000000000000000000000000A9A8A600898887006E6C + 6B008C8B8B00919BBC00637BCB00C6D1F700C0CEFA00BECCFA00BAC9FA00BAC9 + FA00B7C7F900BCCAFA00BECCFA00C4D0F700627ACB0097A1C200989796006F6E + 6D00817F7E00ADABAA0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000566FC7007085CF00D3DB + F90000000000D3DBF9007488D100C7D1F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000006983DD007E92DA007F9AF5007F9AF5009AAFF7005D78D5000000 + 0000000000008DA0DF009CB1F7007F9AF50094ABF6008195DC00627DD9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000566FC600566FC6000000000000000000000000000000 + 00000000000000000000566FC6008AA0EB000000000000000000000000000000 + 00000000000000000000000000000000000000000000B3B3B300A19F9D00CBCA + CA00F2F1F100DEDEDE00B9B9B9007D808B008891B2006B81D3005771C8005771 + C8005771C8006681D8008A93B4007D808B00A8A8A800D1D1D100F2F2F200D6D5 + D500A9A8A6009F9F9F0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000647EDA00B1BEE8005B76 + D200D3DBF9005B76D200AAB8E800A5B5ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000647EDA0090A3E4009DB2F70093AAF600AABCF7008497D900000000000000 + 0000000000007C93E5008497D900A9BBF7008BA4F60097ADF70093A6E8000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000647EDA008B9FE2005B76D200AFBFF300000000000000 + 0000000000005B76D2008C9EDF00A2B2E7000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B4B4B400AAA9 + A700E4E4E400D2D1D100BAB9B900A09F9D00A0A09F0000000000000000009896 + 94000000000000000000B4B4B400A09E9D00B1B0B000C9C9C900E1E0E000B1AF + AE00A0A09F000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000009FB2F000D3DCF900B2BF + E9007B8FD400AEBCE700CDD7F800798ED5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00005B76D2008195D900AEBDF100A0B4F700A3B4ED005A74CF00000000000000 + 000000000000000000005A74CF00A1B1EC00ACBDF700A2B2EC00778CD5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000C1CDF600BFCBF200A2B1E600778BD3005872C9005872 + C9005872C900A0AFE300BCC9F2006F84D0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F9D9B00A9A7A500A1A09E00C8C8C800000000000000000092918F009896 + 940092918F000000000000000000D5D5D5009F9D9B00A9A7A5009F9D9B00C8C8 + C800000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000758AD300BFCA + EF00D7DFF900C1CBEF00758AD3006B85DE000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000007C93E6005C75CC00A5B6EF006F84D0009FB2F000000000000000 + 000000000000000000009FB2F0006F84D0008296DA005872CA00879CE9000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000677ECE00A0B0E400C8D3F600CAD4F500CAD4 + F500CAD4F500A6B5E8006F85D00093A8ED000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DCDC + DC00DADADA00C9C9C900C7C7C700C7C7C700C0C0C000C0C0C000A4B1DD00333F + 6900303A62004656900000000000000000000000000000000000000000000000 + 00000000000000000000DADADA00C1C1C1002C3C720025315900253159002531 + 590025315900253159002531590025315900C1C1C100C8C8C800DADADA000000 + 0000000000000000000000000000000000000000000000000000798CD2001926 + 54001F2E65002233700024367500243675002436750024367500243675002436 + 7500243675002436750024367500243675002436750024367500243675000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D5DCF600384C8A00445698002D49 + A7004D67C1006780D300627ACA00000000000000000000000000000000000000 + 00000000000000000000000000000000000027387100425CB10013339E001333 + 9E0013339E0013339E001F3DA300425CB1000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001A2755002231 + 6A003655BD001C41BA00042CB300042CB300042CB300042CB300042CB300042C + B300042CB300042CB300042CB300042CB300072FB400193EB9003656C200273A + 7D00667DCD00000000000000000000000000031D3D85093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C7BFF093C + 7BFF093C7BFF093C7BFF010D1D3A000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000394D8C0043569800435CB0004E69 + C1006982D500768FE2004962B200000000000000000000000000000000000000 + 000000000000000000000000000000000000293A7500435DB60003279E000327 + 9E0003279E0003279E001334A300435DB6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001B2957002333 + 6D003555BF00042DB700042DB700042DB700042DB700042DB700042DB700042D + B700042DB700042DB700042DB700042DB700042DB700042DB7003556C500AAAF + BE00293D80000000000000000000000000000C458BFF1D54ABFF1E54A9FF1E54 + A9FF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54AAFF1E54 + AAFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1E54ABFF1D54ABFF1D54 + ABFF1D54ABFF1C54AEFF0D468CFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000D5DCF60044579900425BAF00324DAA008196 + DB0097AAE900889FED004961B200000000000000000000000000000000000000 + 0000000000000000000000000000000000002C3D7B00435EBB000328A4000328 + A4000328A4000328A4001336AA00435EBB000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001D2A5A002435 + 70003656C300042EBB00042EBB00042EBB00042EBB00042EBB00042EBB00042E + BB00042EBB00042EBB00042EBB00042EBB00042EBB00042EBB003658C800B6BB + C8002A3E84000000000000000000000000000F4791FF14439DFF14439DFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF15449EFF1544 + 9EFF15449EFF3E8AD8FF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000D5DCF6003E508F0046589A00314CA9005670C4008297DB00AFBF + F3008DA5F400607ACD00D8E0F800000000000000000000000000000000000000 + 000000000000000000000000000000000000314486004361C500042CB100042C + B100042CB100042CB1001439B6004361C5000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001F2D5F002839 + 77003658C9000430C3000430C3000430C3000430C3000430C3000430C3000430 + C3000430C3000430C3000430C3000430C3000430C3000430C3003559CF00BEC3 + D1002E438D000000000000000000000000000F4792FF15459FFF1546A0FF1546 + A0FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647A1FF1647 + A1FF1647A1FF1D55AFFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000003F519100475A9C00435CAF005771C5008297DB00A6B6EB00849E + F2005C76CE004C63AF0000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000033478C004362C900042DB700042D + B700042DB700042DB700143BBC004362C9000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000203063002A3B + 7B00375ACD000633C8000633C8000633C7000633C7000633C7000633C7000633 + C7000633C7000633C7000633C7000633C7000633C8000633C800375BD300C3C8 + D600314691000000000000000000000000000F4892FF1749A3FF184CA6FF194D + A7FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1B4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1B51ABFF448EDAFF0C458BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D5DCF700475A9C00425BAF00324DAA008297DB00A8B8EC00A8B9F2005E79 + CF004F65B000D8E0F80000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000364A91004363CF00042FBE00042F + BE00042FBE00042FBE00143CC3004363CF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000213164002B3D + 7E003D5FD1000F3BCD00103CCE00123ECF00123ECF00123ECF00123ECF00123E + CF00123ECF00123ECF00123ECF00123ECF00103CCE000F3BCE003D61D700C6CB + DA00324894000000000000000000000000000F4893FF1A4EA8FF1B51ABFF1C54 + AEFF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57B1FF1E57 + B1FF1E57B1FF4C92DCFF0B448AFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000D3D3 + D300485584004B63B4004A65C000758CD800ABBBF2008FA6F400607BD100D8E0 + F80000000000000000000000000000000000000000003B519C003B519C003B51 + 9C003B519C003B519C003B519C003B519C003B519C004366D8000432CB000432 + CB000432CB000432CB00143FCE004366D8003B519C003B519C003B519C003B51 + 9C003B519C003B519C003B519C004B63BA00000000000000000025356A002E41 + 8400496BDA00214BD900244ED9002750D9002750D9002750D9006985E5006985 + E5006985E5002750D9002750D9002750D900244ED900204AD800486BDF00CFD4 + E400364D9C00000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF0B448AFF000000000000000000000000000000000000 + 0000A2A2A2007A7978006B6969006A6867006B6969007A797800C5C5C5007371 + 710072737D005366A8007088D7007F96E30089A2F400667FD300526AB5000000 + 000000000000000000000000000000000000000000004F6ED500516FD5005270 + D6005270D6005270D6005270D6005270D6005370D600496CDE000E3CD4000E3C + D4000E3CD4000E3CD400113ED4004A6DDF005270D6005270D6005270D6005270 + D6005270D6005270D600506ED4003E55A300000000000000000027366E003044 + 88004E6FDE002A53DE002E57DF00325ADF00325ADF005878E500112B8400112B + 8400112B8400325ADF00325ADF00325ADF002E57DF002A53DE004F72E400D3D8 + E8003951A000000000000000000000000000104894FF1A4EA8FF1B52ACFF1C55 + AFFF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF1E58 + B2FF1E58B2FF1E58B2FF1E58B2FF1E58B2FF053D82FF053D82FF0D4187FF053D + 82FF053D82FF053D82FF053D82FF03254F9B000000000000000000000000A3A2 + A200AAA9A900DAD9D900EDEDEC00E7E7E700EBEBEB00D8D7D60078767500706E + 6D007D7B7A005567A300637AC4007B95EB00647ED400546CB700D8E0F8000000 + 00000000000000000000000000000000000000000000476BE300244FDD002852 + DE002953DE002953DE002953DE002953DE002A53DE00224DDD001C48DC001C48 + DC001C48DC001C48DC001C48DC00224DDD002953DE002953DE002953DE002953 + DE002953DE002852DE00496DE3004058AA000000000000000000283870003246 + 8C005475E200335BE300385FE3003C62E3003C62E3005268B000607FE8007792 + EC007792EC00607FE8003C62E3003C62E300385FE300325BE3005476E700D6DB + EC003B52A500000000000000000000000000114995FF1A4EA8FF1C53ADFF1D56 + B0FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1F59 + B3FF1F59B3FF1F59B3FF1F59B3FF1F59B3FF1C54AEFF3D5978FF6C715CFF3458 + 88FF1C54AEFF1C54AEFF1A4FA9FF053D82FF000000008C8B8B00A7A5A500ECEB + EB00BFBDBC00AAA8A700A09E9D009A9897009F9D9C00A8A6A500CFCECD00E6E5 + E500A4A3A200BABABA009C9EAD006C80C200D8E0F80000000000000000000000 + 000000000000000000000000000000000000000000005175ED00325CEA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA003760EA003760EA003760EA003760EA003760EA003760 + EA003760EA003760EA00577AEE00465FB50000000000000000002B3B7500354A + 9400607FE800446AEA004A6FEB004F73EB004F73EB0042548F0042548F004F73 + EB0042548F0042548F004F73EB004F73EB004A6FEB004369EA006081EE00DFE4 + F5003F58AD00000000000000000000000000114A96FF194FA9FF1C53ADFF1D57 + B1FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5A + B4FF1F5AB4FF1F5AB4FF1F5AB4FF1F5AB4FF1C54AEFF3F463CFF32372CFF3B45 + 42FF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000A2A1A000EDECEC00D1CF + CF00A09E9D00B1B1B000BEBDBC00C3C2C200C2C2C200B6B5B400AFADAC00CAC8 + C800E6E5E50087858400A19F9D00D5D5D3000000000000000000000000000000 + 000000000000000000000000000000000000000000005579F1003E67EF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446BEF00446B + EF00446BEF00446BEF005C7FF2004963BA0000000000000000002D3E7800384D + 97006685EC004C71EF005377EF00597CF000597CF00044569100364B90008BA3 + F400364B900044569100597CF000597CF0005377EF004B70EF006686F100E3E9 + FA00415BB100000000000000000000000000114A97FF1A4FA9FF1D54AEFF1E58 + B2FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205BB5FF205B + B5FF205BB5FF205BB5FF205BB5FF205BB5FF1C54AEFF43586CFFD3D6B6FF3956 + 7BFF1A4FA9FF1A4FA9FF1A4FA9FF053D82FF00000000EDEDED00D7D6D500B4B2 + B100B9B8B700B9B8B700B7B6B500B7B7B600BCBABA00C1C0C000A19F9E00AEAC + AB00CFCECD0088868500C8C8C800000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000597CF2004B71F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1005277F1005277F1005277F1005277F1005277F1005277 + F1005277F1005277F1006183F2004A64BB0000000000000000002E407A003A50 + 9A006B89EE005277F1005B7EF2006384F3006384F300394D91003B57B400223C + 90003B57B400394D91006384F3006384F3005B7EF2005277F1006C8BF300E6EC + FD00445DB400000000000000000000000000114B97FF1A50AAFF1D55AFFF1E59 + B3FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205CB6FF205C + B6FF205CB6FF205CB6FF205CB6FF205CB6FF5495DEFF3786D5FF327DCEFF327D + CEFF327DCEFF327DCFFF2D77C4FF032F65C788878700D9D7D700ADABAA00B2B1 + B100C1C0BF00C3C3C200C3C2C200C0C0BF00BFBFBF00BBBABA00BCBCBB00B4B3 + B200A8A6A500DCDBDB0088878700000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000587CF2005479F1006183 + F2006888F3006888F3006888F3006A8AF3006E8DF3006D8CF3006D8CF3006D8C + F3006D8CF3006D8CF3006D8CF3006E8DF3006A8AF3006989F3006888F3006888 + F3006686F3006183F2006082F2004C66BD00000000000000000030417B003C51 + 9C007792EF006283F2006C8BF3007592F4007592F4007592F400294190002941 + 9000294190007592F4007592F4007592F4006B8AF3006183F2007693F400E6EC + FD00465FB700000000000000000000000000124B98FF1A4FA9FF1D55AFFF1F59 + B3FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215CB6FF215C + B6FF215CB6FF6EA7E8FF0B4489FF0000000085848300D0CECD00A3A1A000C4C3 + C300CECDCD00D0D0D000D1D0CF00CAC9C900C7C6C600C2C2C000B6B4B400BCBC + BC009F9D9C00EBEBEB0085848300000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A7BE9006987EA006E8A + EA00728EEA00738EEB00738EEB00748EEB007994EB00849EF5007B97F4007B97 + F4007B97F4007B97F4007C97F4008CA5F600748EEB00738EEB00738EEB00728E + EA00718DEA006E8AEA005E7EE9004D67BE00000000000000000031427C003D53 + 9C007C96F0006A8AF3007491F4007E99F5007E99F5007E99F5007E99F5007E99 + F5007E99F5007E99F5007E99F5007E99F5007491F4006888F3007C97F400E6EC + FD004761B800000000000000000000000000124C99FF1A50AAFF1D56B0FF1F59 + B3FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215DB7FF215D + B7FF215DB7FF70A9EAFF0B4489FF000000008C8A8800CBCAC9009E9D9C00CBCA + CA00D8D7D700DBDBDB00DDDDDD00D7D7D600CFCFCE00C7C6C600B9B7B600B8B8 + B8009A989700E7E7E6008C8A8800000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF004E68BF004E68BF007391F40087A1F50087A1 + F50087A1F50087A1F5008BA4F600829DF5004E68BF004E68BF004E68BF004E68 + BF004E68BF004E68BF004E68BF00546FCB00000000000000000032437D003E53 + 9E007F99F000708EF4007B97F400849EF500849EF500849EF500849EF500849E + F500849EF500849EF500849EF500849EF5007A96F4006F8DF300819BF500E6EC + FD004862B900000000000000000000000000134C99FF2661B5FF3071C2FF3479 + C9FF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377D + CDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377DCDFF377C + CDFF387ECEFF2360B9FF0B448AFF000000008F8D8D00D1D0CF00A4A2A100D2D2 + D100E7E7E700EDEDED00F0F0F000ECEBEB00E4E4E400DADADA004863C0004D68 + C1004D68C2004D68C2004D68C2004D68C2004D68C2004C66C1004964C1000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000506AC1007290F400A2B6F800A3B6 + F800A3B6F800A3B6F8009FB3F700859FF5000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034447F004056 + A00088A0F1007B97F40086A0F50091A8F60094ABF60095ACF70095ACF70095AC + F70095ACF70095ACF70094ABF60091A8F600849EF5007A96F40089A2F600E6EC + FD004A64BB00000000000000000000000000134C9AFF2D6ABCFF377ACBFF3B81 + CFFF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84D2FF3D84 + D2FF3D84D2FF74ABEBFF0B448AFF0000000093929100DCDADA00AFADAD00C5C5 + C400EBEBEB00F0F0F000F6F6F600F2F2F200E8E8E800DFDEDE00607EE4005D7C + E2005E7DE3005E7DE3005E7DE3005E7DE3005E7DE3005D7CE2006B87E5000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000516BC2007693F400B0C0F900B1C1 + F900B1C1F900B1C1F900ABBDF8008AA3F6000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000034457F004156 + A1008DA4F2007F9AF50088A2F60094ABF60097ADF70098AEF7009AAFF7009AAF + F70099AFF70098AEF70097ADF70094ABF60087A1F5007E99F5008DA5F600E6EC + FD004C65BC00000000000000000000000000134D9BFF1E57B1FF6AA0E3FF70A6 + E7FF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74AB + EBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225FB9FF74ABEBFF74ABEBFF225F + B9FF74ABEBFF74ABEBFF0C458AFF00000000ACACAC00EAE9E900C6C4C400A7A5 + A400EBEBEB00F0F0F000F6F6F600F3F3F300E9E9E900DFDFDF00728DEA0094A9 + ED0096AAEC0096AAEC0096AAEC0096AAEC0096AAEC0093A8ED007B95EB000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000526CC3007A96F400BDCBFA00BDCB + FA00BDCBFA00BDCBFA00B5C5F9008FA7F6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000354681004157 + A2008FA6F100819BF50089A2F60093AAF60096ACF70097ADF70098AEF70098AE + F70098AEF70097ADF70095ACF70093AAF60087A1F5007F9AF5008FA7F600E6EC + FD004D66BD000000000000000000000000001A529AFF7FB5F2FF337ECFFF3481 + D1FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786D5FF3786 + D5FF3786D5FF7FB5F2FF0C458BFF0000000000000000BFBEBD00F2F2F200D7D6 + D600A8A7A600CDCCCC00E6E6E600E9E9E900DDDDDD00C3C2C100B3B1B000D1CF + CF00ECEBEB00ADACAC0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000536DC5007C97F400CBD6FB00CDD8 + FB00CDD8FB00CDD8FB00C0CEFA0093AAF6000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000364882004156 + 9D006984E30097ADF7009AAFF7009DB2F7009EB3F7009FB3F7009FB3F7009FB3 + F7009FB3F7009EB3F7009EB3F7009DB2F70099AFF7009CB0F3007B8FD500E6EC + FD004F69C0000000000000000000000000000D468BFF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4FA9FF1A4F + A9FF1A4FA9FF0C458BFF010D1C3800000000000000009F9E9D00C7C6C500F2F2 + F200C6C4C400AFADAD00A4A2A1009E9C9C00A3A1A000ADABAA00D7D6D500EDEC + EC00C6C5C4000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000546EC5007995F400C7D3FB00CCD7 + FB00CDD8FB00CAD5FB00B7C7F9008EA6F6000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000004459A7003D4F + 91005366A900506AC100506AC100506AC100506AC100506AC100506AC100506A + C100506AC100506AC100506AC100506AC100506AC100506AC1006E82CB00E6EC + FD005069C000000000000000000000000000031C3B730D468BFF0D468BFF0D46 + 8BFF0D468BFF0D468BFF0D468CFF0D468CFF0D468CFF0D468CFF0D478CFF0D46 + 8CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D468CFF0D46 + 8CFF0D468CFF0D468CFF00000000000000000000000000000000A09F9F00C5C3 + C200EAE9E900DCDADA00D1D0CF00CBCAC900D0CECD00D9D7D700F0F0F000C4C3 + C100A09F9F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000556FC6006F8DF300B2C2F900BECC + FA00C0CEFA00B6C6F900A2B6F800829CF5000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9C6F2003B4F + 950097A0C200C9D0E900E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6EC + FD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00E6ECFD00CCD3 + F000506AC3000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B0AFAF00A19F9F00A9A7A500B0AEAC00A9A7A500A19F9F00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000005A76D2005771C8005771C8005771 + C8005771C8005771C8005771C8005771C8000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000110000001C0000002E0000002E0000002E0000002E0000002E0000 + 002E0000002E0000002E0000002E0000002E0000002E0000002E0000001C0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000101020000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000005000000090000000C0000 + 000F00000016000000190000001D00000024000000260000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A00000024000000200000001D0000 + 0016000000130000000F00000009000000060000000000000000000000000000 + 00000000000000000000339F70FF339F70FF339F70FF339F70FF339F70FF339F + 70FF339F70FF339F70FF339F70FF339F70FF339F70FF339F70FF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000003B2A9C75FF2A9C75FF2A9C75FF0000003E0000 + 003B000000330000002800000017000000140000000E0000000B000000080000 + 000300000002000000000000000000000000000000060000000D000000120000 + 001800000024A5A5A5E6CECECEFFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7 + E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFE7E7E7FFCCCCCCFF2525 + 254D0000001D000000180000000D000000090000000000000000000000000000 + 0000000000000000000032A072FF12BC8EFF12BC8EFF12BC8EFF12BC8EFF12BC + 8EFF12BC8DFF12BC8EFF12BC8DFF12BC8EFF3CD7A7FF32A172FF000E0B120000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000320000001E0000000000000000000000000000 + 000000000000040F0B190000000035CD98FF15B081FF38D19BFF0D34276F0000 + 0024000000200000001800000014000000100000000900000006000000040000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000F0F0F17B3B3B3EFCECECEFFE4E4E4FFE4E4E4FFE4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFF2F2F2FFD4DDD9FFE2E2E2FFE1E1E1FFEFEFEFFFCCCCCCFF5B5B + 5B76000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000031A172FF12BD8EFF12BC8EFF12BD8EFF12BC8EFF12BD + 8EFF12BC8EFF12BD8EFF12BD8EFF12BD8EFF3CD7A7FF31A172FF000E0B120000 + 0000000000000000000000000000000000000000001E131313EF121212EF1111 + 11EF111111EF111111EF111111EF111111EF111111EF111111EF111111EF1111 + 11FD111111FD111111EF111111EF111111EF111111EF111111EF121212EF1212 + 12EF131313EF141414EF111111B6000000000000000000000000000000000000 + 00000209060F000000002A9C75FF13B082FF13B082FF17B687FF259771F1030C + 0914000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000033333349C2C2C2FCD5D5D5FFE4E4E4FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3 + F3FFE3E3E3FF5DB591FFBFD7CDFFF3F3F3FFF2F2F2FFEDEDEDFFD5D5D5FF8383 + 83AE000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000030A273FF11C090FF0DCB95FF0CCA94FF0DCB94FF0CCB + 95FF0CCB94FF0CCB95FF0CCA95FF0CCB95FF3CD7A7FF30A273FF000E0B120000 + 000000000000000000000000000000000000000000003B3B3BFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF1B1B1BF6000000000000000000000000000000000000 + 00002A9C75FF32D59FFF14B183FF10CF9EFF10CF9DFF12C191FF31D39DFF23A0 + 78F60D3225520000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00008C8C8CC1CFCFCFFFE8E8E8FF6CC0A0FF38B284FF39B083FF3BB083FF3AAE + 82FF78C0A4FF3EAC80FF3BAC81FF3DAB7FFF3DAA7DFFD1DFD8FFE9E9E9FFACAC + ACE6000000000000000000000000000000000000000000000000000000000000 + 000000000000000000002DA575FF11C291FF0CCD97FF0DCD97FF0CCC96FF0CCC + 96FF0CCC97FF0DCC96FF0DCC96FF0DCC97FF3BD7A7FF2EA574FF000E0B120000 + 000000000000000000000000000000000000000000002A2A2AFF2E2E2EFF3939 + 39FF393939FF393939FF393939FF393939FF393939FF393939FF3A3A3AFF3A3A + 3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3A3A + 3AFF3B3B3BFF323232FF1F1F1FC6000000000000000000000000000000000223 + 1A2C2BD19CFF14B284FF13B284FF16D2A1FF11D09EFF10D09EFF16B687FF27CB + 99FF259670F00000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D9D9DD6D0D0D0FFEFEFEFFF39B285FF39B184FF5DBC98FF64BC9BFF58B8 + 94FFDEE3E1FF3CAB80FF92CAB3FF84C4AAFF3EAA7EFF96C9B3FFEEEEEEFFB9B9 + B9F5020202040000000000000000000000000000000000000000000000000000 + 000000000000000000002CA676FF11C392FF0DCE98FF0DCE98FF0DCD97FF0DCE + 97FF0DCD98FF0DCE98FF0DCD97FF0CCE97FF3BD7A7FF2CA676FF011C14220000 + 00000000000000000000000000000000000000000000323232FE343434FF3C3C + 3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3C3C3CFF3D3D3DFF3D3D + 3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3D3D + 3DFF3E3E3EFF383838FF1212127100000000000000000000000001150F1A2AA0 + 75FF15B384FF13B283FF0FCE9BFF80EFD0FF6EE5BFFF0FD19EFF13B788FF24C9 + 96FF1FB78AFC0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000ACACACE8D0D0D0FFF1F1F1FF44B98EFF38B285FF41B288FFCFDFD9FFE6E6 + E6FFE6E6E6FF58B691FFA5D0BEFFB9D7CCFF3BAA7DFFAED1C2FFF0F0F0FFC4C4 + C4FE252525340000000000000000000000000000000000000000000000000000 + 000000000000000000002BA776FF10C492FF0DCE98FF0DCF99FF0DCF99FF0DCE + 98FF0DCF99FF0DCE99FF0DCE99FF0DCF99FF3AD7A6FF2BA877FF000E0B120000 + 00000000000000000000000000000000000000000000272727F04E4E4EFF4040 + 40FF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF3F3F3FFF404040FF4040 + 40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040 + 40FF424242FF4B4B4BFF0505052200000000000000002AA078FF1BD09DFF1DD2 + 9FFF0FD09EFF16D4A3FF5DE7BFFF40AC89FF33A37EF255DCB3FF0FD29FFF11C0 + 90FF1ACC99FF259871EF02090710000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000CACACAFEDADADAFFF2F2F2FFE0E7E4FF45B98FFF35B486FF8DCDB5FFE8E8 + E8FFE8E8E8FFE6E6E6FF6FC0A1FF3BAE82FFD7E1DCFFE5E5E5FFEEEEEEFFCDCD + CDFF838383B20000000000000000000000000000000000000000000000000000 + 0000000000000000000028AA79FF10C794FF0DD19BFF0DD19BFF0ED19BFF0DD1 + 9BFF0ED19BFF0DD19BFF0ED19BFF0DD19AFF38D7A6FF28AA79FF000E0B120000 + 0000000000000000000000000000000000000000000000000000121212612C2C + 2CE7686868FF616161FF555555FF464646FF464646FF464646FF464646FF4646 + 46FF464646FF464646FF464646FF474747FF494949FF535353FF5E5E5EFF4A4A + 4AFD303030F01313136500000000000000000001010218CF9CFF1CD4A0FF10D3 + A0FF16D5A3FF5CE8C0FF46CFA8E600000000071E162F269F77F147E4B9FF0FD3 + A0FF0FD3A0FF1DB78AFB1B7255B2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D0D0D0FFE5E5E5FFEFEFEFFF59C09CFF39B88BFF35B587FFE7E9E8FFE6E8 + E7FFE8E8E8FFE8E8E8FFE5E6E6FF80C7ACFFE6E6E6FFE6E6E6FFEBEBEBFFCFCF + CFFF9A9A9ACF0000000000000000000000000000000000000000000000000000 + 0000000000000000000027AC7AFF10C795FF0DD29CFF0ED29CFF0ED29CFF0ED2 + 9CFF0ED29CFF0DD29DFF0DD29DFF0DD29CFF37D6A6FF26AB7AFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000202 + 020B2F2F2FE83C3C3CEE525252FD6A6A6AFF4F4F4FFF494949FF4A4A4AFF4A4A + 4AFF4A4A4AFF4A4A4AFF4A4A4AFF515151FF6D6D6DFF585858FF434343F81C1C + 1C850202020B0000000000000000000000002AA379FF1AD5A1FF10D4A1FF0FD4 + A1FF5BEAC1FF4CD7B1EE2CAA7FFF0000000000000000071E162F51DCB3FF44E4 + B8FF0FD3A1FF1DD3A1FF23A178F40C2F234B0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000D2D2D2FFEDEDEDFFEDEDEDFFEAEAEAFFEAEAEAFFDCE6E2FF3EB88CFF81CB + AFFFE5E8E7FF48B78EFF37AF82FF7FC5AAFFE7E7E7FFE6E6E6FFE8E8E8FFCFCF + CFFFA8A8A8E10000000000000000000000000000000000000000000000000000 + 0000000000000000000025AD7BFF11C996FF0ED39DFF0DD39DFF0ED39EFF0DD3 + 9EFF0ED39DFF0DD39EFF0ED39DFF0DD49DFF36D6A6FF25AD7BFF000E0B120000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000202020A0F0F0F481E1E1E8E3A3A3AF4656565FF585858FF4D4D4DFF4D4D + 4DFF4D4D4DFF4D4D4DFF606060FF6A6A6AFF333333E1202020950F0F0F480000 + 00000000000000000000000000000000000006140F1D3BCDA1FD3EE2B6FF56E9 + C0FF2EAF83FF00020103000000000000000000000000000000000820183127A4 + 7AF14DDCB2FF0FD5A1FF15D5A1FF1CB88BF90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000B0B + 0B10D3D3D3FFF4F4F4FFEBEBEBFFEBEBEBFFEBEBEBFFEBEBEBFF31B686FF35B5 + 87FF94D1BAFF36B385FF3DB388FF2EAE80FFE9E9E9FFE8E8E8FFE8E8E8FFD0D0 + D0FFC6C6C6FC2C2C2C3F00000000000000000000000000000000000000000000 + 0000000000000000000022B17EFF10CB98FF0ED6A0FF0ED69FFF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF33D7A6FF22B07DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000001010105313131C3545454FF5454 + 54FF545454FF464646F9262626A0010101050000000000000000000000000000 + 00000000000000000000000000000000000000000000259E76E587EBCDFFFFFF + FFFF010504080000000000000000000000000000000000000000000000000821 + 183127A67AF136E0B3FF10D5A2FF13D4A1FF0C2E234800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002C2C + 2C40D6D6D6FFF5F5F5FFECECECFFEBEBEBFFEBEBEBFFEBEBEBFF7CCCAFFF34B6 + 88FF35B587FF38B587FFCEE2DAFF96D0B8FFE9E9E9FFE9E9E9FFE9E9E9FFD6D6 + D6FFCDCDCDFF5C5C5C80000000000000000020B27FFF21B27FFF21B27FFF21B2 + 7FFF20B27FFF21B27FFF21B27FFF10CC99FF0ED7A2FF0ED7A1FF0FD7A1FF0ED7 + A1FF0ED8A1FF0ED7A1FF0ED7A1FF0ED7A1FF31D7A6FF21B27FFF20B27FFF21B2 + 7FFF20B27FFF20B27FFF21B27FFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000028282899595959FF5959 + 59FF595959FF444444F41B1B1B75000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000004100C1828A179E528A2 + 7AE3000000000000000000000000000000000000000000000000000000000000 + 00000822193249DCB1FF33E0B2FF0FD6A3FF259C74EC0209060E000000000000 + 0000000000000000000000000000000000000000000000000000000000005B5B + 5B8FD1D1D1FFE4E4E4FFDDDDDDFFDCDCDCFFDCDCDCFFDCDCDCFFD9DBDAFF30AB + 80FF30AA7FFF2AA77BFFDADBDAFFDBDBDBFFDADADAFFD9D9D9FFD9D9D9FFD1D1 + D1FFC2C2C2FF797979B8000000000000000005291D3842E6B8FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE9BFF0ED9A3FF0ED8A2FF0ED8A3FF0ED8 + A3FF0ED8A2FF0ED8A2FF0ED8A3FF0FD9A2FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF38E3B4FF05291D38000000000000000000000000000000000000 + 000000000000000000000000000000000000040404113F3F3FF85D5D5DFF5D5D + 5DFF5D5D5DFF5A5A5AFF3B3B3BEE0303030E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008231A3427A77EF146DDB1FF10D6A3FF26A97EF30C2E22450000 + 0000000000000000000000000000000000000000000000000000000000007171 + 71DEA4A4A4FF949494FF929292FF929292FF929292FF929292FF929292FF9191 + 91FF919191FF909090FF909090FF909090FF909090FF909090FF909090FFA3A3 + A3FF8B8B8BFF767676E500000000000000000000000005291D381CB783FF52EB + C0FF0FDAA5FF0EDBA5FF0EDAA4FF0FDBA5FF0EDBA5FF0FDAA5FF0EDBA5FF0FDB + A5FF0FDBA5FF0EDBA5FF0FDBA5FF0FDBA5FF0FDBA4FF0EDBA5FF0EDBA5FF49E9 + BCFF1CB783FF05291D3800000000000000000000000000000000000000000000 + 000000000000000000000000000000000000434343DD5F5F5FFF636363FF6363 + 63FF636363FF636363FF606060FF333333B30000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000009241B3428AA7FF12BDFAFFF14D09EFF27A177EB0000 + 000000000000000000000000000000000000000000000E7C5AAA21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B17FFF21B1 + 7FFF21B17FFF21B17FFF0E7C5AAA00000000000000000000000005291D381AB8 + 84FF0FDCA6FF0FDCA6FF0FDCA6FF0EDCA7FF0EDCA6FF0FDCA6FF0FDCA6FF0FDC + A6FF0EDCA6FF0FDCA6FF0EDDA6FF0FDCA6FF0FDCA6FF0FDCA6FF0FDCA6FF1AB8 + 84FF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000020202064E4E4EFC656565FF666666FF6666 + 66FF666666FF666666FF666666FF414141DD0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000009241B3444DDB1FF28DFAFFF1DBC8EF80000 + 0000000000000000000000000000000000000000000021B17FFF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC995FF1AC9 + 95FF1AC995FF1AC995FF21B17FFF000000000000000000000000000000000529 + 1D3860F0C7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDDA7FF0EDDA7FF0FDEA7FF0FDD + A7FF0FDDA7FF0EDDA8FF0FDEA7FF0FDDA7FF0FDDA7FF0EDDA8FF5AEEC4FF0529 + 1D38000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001313132F515151FF686868FF696969FF6969 + 69FF696969FF696969FF696969FF4A4A4AED0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A261C372AAC7FF140DCB0FF29A4 + 7AEA0208060C0000000000000000000000000000000021B17FFF12C28EFF12C2 + 8EFF13C28DFF13C38EFF12C28EFF12C28EFF12C28DFF13C28EFF12C28EFF12C2 + 8EFF12C38DFF13C28EFF12C38EFF12C38EFF12C38EFF12C28EFF13C28EFF13C2 + 8EFF12C38EFF13C38EFF21B17FFF000000000000000000000000000000000000 + 000005291D3817BD87FF6FF3CDFF0FE0AAFF0FDFAAFF0FE0AAFF0FDFA9FF10DF + AAFF0FDFAAFF0FDFA9FF0FE0A9FF0FE0A9FF6AF2CBFF17BD88FF05291D380000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002222224F5B5B5BFF6F6F6FFF707070FF7070 + 70FF707070FF707070FF707070FF585858F60000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000A271D372BAC80F126C1 + 94F81B7256A20000000000000000000000000000000021B17FFF12C490FF11C4 + 8FFF12C48FFF12C48FFF11C48FFF11C48FFF11C48FFF12C48FFF12C48FFF12C4 + 8FFF11C48FFF12C48FFF12C48FFF12C48FFF11C48FFF11C38FFF12C48FFF12C4 + 8FFF11C48FFF11C48FFF21B17FFF000000000000000000000000000000000000 + 00000000000005291D3815BE88FF10E0AAFF0FE0AAFF0FE1ABFF0FE0AAFF0FE1 + ABFF0FE0AAFF10E1ABFF0FE1AAFF0FE1ABFF15BE88FF05291D38000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001D1D1D3F5A5A5AFF727272FF737373FF7373 + 73FF737373FF737373FF737373FF555555F00000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000000A271D373ADB + ADFF2BB285F40B2C213F00000000000000000000000021B17FFF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C590FF11C5 + 90FF11C590FF11C590FF21B17FFF000000000000000000000000000000000000 + 0000000000000000000005291D387BF6D2FF0FE1ACFF10E1ABFF0FE1ACFF0FE1 + ABFF0FE2ABFF0FE1ABFF0FE2ACFF78F5D1FF05291D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000D0D0D1B5E5E5EFF757575FF767676FF7676 + 76FF767676FF767676FF767676FF565656E90000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000A29 + 1E392CAF84F232C093FC00000000000000000000000016BD88FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8B4FF17E8 + B4FF17E8B4FF17E8B4FF16BD88FF010604070000000000000000000000000000 + 000000000000000000000000000005291D3813C28BFF86F8D6FF10E4ADFF0FE3 + ADFF0FE4AEFF84F7D5FF12C18BFF05291D380000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000003939398E696969FF7C7C7CFF7C7C + 7CFF7C7C7CFF818181FF676767FC191919500000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000B291F3A2CB185F413392C4B00000000000000000E382C4216BD88FF17E8 + B4FF299065FF289266FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF0CBE + 89FF46E7B5FF17E8B4FF0E372A40000000000000000000000000000000000000 + 00000000000000000000000000000000000005291D3812C38CFF10E4AEFF10E4 + AEFF10E4AEFF11C38CFF05291D38000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000002020207494949D58F8F8FFF8A8A + 8AFF898989FF707070FE444444CA020202070000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000B2B203C2FAE84EF0208060B00000000000000010F3C2E4616BD + 88FF48E6B5FF299065FF25A171FF25A171FF25A171FF25A171FF25A171FF25A1 + 71FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF25A171FF4DEC + BAFF17E8B4FF16BD88FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000005291D388DF9D8FF10E4 + AFFF8DF9D8FF05291D3800000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000007070718525252EB5D5D + 5DF85D5D5DF8353535A307070718000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000B2B203C2EAE83F40000000000000000000000000001 + 010217DCA7FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D1 + 97FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF10D197FF16CE + 99FF0F3A2D440001010200000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000005291D380FC5 + 8EFF05291D380000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C000000240000 + 0027339F70FF0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000001E00000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000270000001E0000001E319F70FF32A071FF319F + 70FF31A070FF319F71FF32A071FF32A070FF31A071FF32A070FFD58F6AFFD58F + 6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFFD58F6AFF000000001560BCFF1560 + BDFF1560BDFF1660BDFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000FED6AEFFFED6AEFFFED6AEFFFED7B0FFFED7 + B0FFFED8B1FFFED9B4FFFEDAB6FFFEDAB6FFFEDCB9FFFEDCB9FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000032A071FF32A071FF0F342452000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000252422FF262624FF2625 + 23FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86F2FF0E86 + F2FF262524FF262524FF0000000000000000000000000DC992FF13B98CFF13B9 + 8CFF13B98CFF13B98CFF13B98CFF13B98CFF0EC992FF2FA171FFD58F6AFFEBA5 + 7DFFE19D79FFE19D79FFE19D79FFE19D79FFD58F6AFF000000001661BEFF076E + E6FF076EE6FF0578EAFF00000000000000000000000E00000013000000140000 + 0016000000191111113114141431FED4AAFFFED4AAFFFED4AAFFFED5ACFFFED5 + AEFFFED6AFFFFED8B2FFFED8B2FFFED9B4FFFEDAB7FFFFDBB9FF111111310000 + 00180000001600000014000000100000000E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000031A172FF3BD7A7FF30A271FF0F3424520000000000000000000000000000 + 00000000000000000000000000000000000000000000262523FF282724FF2727 + 24FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF272625FF000000000000000000000000000000000DCA93FF13B98CFF0DCA + 93FF0DCA93FF0DCA94FF0DCA93FF13B98CFF0DCA93FF2FA272FFD58F6AFFECA5 + 7DFFE29E79FFECA57DFFECA57CFFE29E79FFD58F6BFF000000001662C0FF057A + EBFF0388F0FF057BEAFF000000000000000000000017000000343F3F3F7FACAC + ACFFACACACFFACACACFF636262FFFFCD9DFFFFCD9DFFFFCE9FFFFFD0A3FFFFD2 + A6FFFFD4AAFFFFD7AFFFFFD8B1FFFFD9B5FFFFDDBCFFFFDDBCFF636363FFACAC + ACFFACACACFF4B4B4B8C00000030000000170000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000030A373FF10BF8EFF39D6A6FF30A373FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000272624FF292826FF2929 + 26FF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037FEEFF037F + EEFF2A2927FF292826FF0000000000000000000000000DCB95FF13BA8DFF0DCB + 95FF0DCC94FF0DCB94FF0DCB94FF13B98CFF0ECB94FF2EA273FFD68F6AFFECA5 + 7EFFE39E7AFFECA67DFFECA67DFFE39E7AFFD5906BFF000000001764C3FF057C + EBFF0389F0FF057CEBFF000000000000000000000000ACACACFFD1D1D1FFD1D1 + D1FFD1D1D1FFD1D1D1FF323232FFC49F7BFFC4A07EFFC4A17FFFC4A383FFC4A5 + 87FFC4A688FFC4A78BFFC4A88EFFC4A991FFC4AC96FFC4AC96FF323232FFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000003020400040306000403060004 + 030600040306000403060009060C000403060004030600040306000403060000 + 00002DA575FF10BF8EFF10BF8EFF10BF8EFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000292927FF2E2D2AFF2E2D + 2AFFFBE7D0FFFBE6D0FFFBE7CFFFFCE6CFFFFBE7D0FFFBE7D0FFFBE6D0FFFCE7 + D0FFFBE6CFFFFBE6CFFFFBE7D0FFFCE7CFFFFBE6D0FFFBE6CFFFFBE7CFFFFBE6 + CFFF2D2C2AFF2D2C2AFF0000000000000000000000000DCD97FF13BD8FFF0ECE + 97FF0ECE97FF0DCE97FF0ECE98FF13BC8EFF0ECD97FF2CA575FFD6906BFFEDA7 + 7FFFE5A17BFFECA77EFFECA77EFFE6A17BFFD6906BFF000000001A66C7FF0581 + EDFF038DF1FF0581EDFF000000000000000000000000ACACACFFD4D4D4FFD4D4 + D4FFD4D4D4FFD4D4D4FF333131FF9E8373FF9E8373FF9E8373FF9E8474FF9E84 + 74FF9E8475FF9E8576FF9E8576FF9E8577FF9E8577FF9E8577FF333131FFC8CC + CAFFCECECEFFCECECEFF00000000000000002CA676FF2CA776FF2CA676FF2CA6 + 75FF2CA675FF2BA676FF2BA675FF2CA675FF2BA676FF2CA676FF2CA676FF2CA6 + 76FF2BA776FF10BF8EFF0DCA94FF10C08EFF31D4A3FF2CA675FF0F3424520000 + 000000000000000000000000000000000000000000002B2927FF302E2CFF302E + 2DFFFBE7D0FFFCE7D0FFFCE7D0FFFBE7D1FFFBE7D1FFFCE7D0FFFBE7D1FFFBE7 + D1FFFBE7D0FFFBE7D1FFFBE7D0FFFBE7D0FFFCE7D1FFFBE7D1FFFCE7D0FFFBE7 + D0FF302E2CFF302F2CFF0000000000000000000000000ECF99FF12C090FF0ECF + 98FF0ECF99FF0ECF99FF0ECF99FF12BF8FFF0ECF99FF2BA675FFD6906CFFEDA8 + 7FFFE7A27CFFECA87FFFECA87FFFE7A27CFFD6906BFF000000001A68CBFF0482 + EDFF038EF1FF0483EEFF000000000000000000000000ACACACFFD7D7D7FFD7D7 + D7FFD7D7D7FFD7D7D7FFD6D6D6FFD6D6D6FFD5D5D5FFD5D5D5FFD5D5D5FFD4D4 + D4FFD4D4D4FFD4D4D4FFD3D3D3FFD3D3D3FFD3D3D3FFD2D2D2FFD2D2D2FF39A4 + 76FFC4CDCAFFD1D1D1FF00000000000000002AA777FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF10BF8EFF0DCB95FF0DCC95FF0FC18FFF2ED4A2FF2BA777FF0000 + 000000000000000000000000000000000000000000002C2A29FF33312EFF3231 + 2FFFC4D1D7FFC4D0D7FFC4D0D7FFC4D0D7FFC4D0D8FFC4D0D7FFC4D1D7FFC4D1 + D8FFC4D1D7FFC4D1D7FFC4D1D8FFC4D0D8FFC4D0D8FFC4D1D7FFC4D0D8FFC4D0 + D7FF33302FFF33302FFF0000000000000000000000000ED09AFF11C392FF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF11C191FF0FD09AFF2AA677FFD7906CFFEDA9 + 80FFE8A47DFFEDA980FFEDA980FFE8A47DFFD7906BFF000000001B6ACDFF0486 + EFFF038FF2FF0486EEFF000000000000000000000000ACACACFFDCDCDCFFEDED + EDFF269B6AFF279B6AFF279B6AFF279B69FF279A69FF289A69FF289A68FF289A + 68FF289A68FF289968FF289968FF289968FF289968FF289968FF289968FFCBE8 + DCFFEAEAEAFFD7D7D7FF000000000000000028AA7AFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF0FC793FF0ECE98FF0DCE98FF0DCE98FF0DCE98FF0FC492FF27AA + 7AFF0F342452000604080000000000000000000000002F2E2BFF373534FF3735 + 34FFFBE8D4FFFBE9D3FFFCE9D4FFFBE8D4FFFCE9D3FFFCE8D4FFFBE8D3FFFCE9 + D4FFFBE9D4FFFBE8D3FFFBE9D3FFFBE8D3FFFCE9D3FFFBE9D4FFFCE8D4FFFCE8 + D4FF383634FF373633FF00000000000000000000000013D59FFF10CB97FF0ED3 + 9CFF0FD39DFF0ED39DFF0ED39DFF10C996FF14D5A0FF27AA78FFD7916DFFEDAB + 81FFEBA880FFEDAA82FFEEAA82FFECA880FFD8926CFF000000001E6ED2FF048C + F1FF0391F3FF048BF1FF000000000000000000000000A3A3A3ECE0E0E0FFF9FC + FBFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC + 9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF4ACC9FFF2899 + 68FFFFFFFFFFDADADAFF000000000000000026AB7BFF0FC390FF10C18FFF0EC9 + 95FF0ECF99FF0DD099FF0DD09AFF0DD099FF0DCF9AFF0DD09AFF0DD099FF0DD0 + 99FF0ED099FF0DCF9AFF0ED09AFF0ED099FF0ED09AFF0ECF9AFF0DCF99FF19C9 + 97FF26AC7BFF0F342452000000000000000000000000302E2CFF3A3836FF3A38 + 36FFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2 + DAFFC4D2DAFFC4D3DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2DAFFC4D2 + DAFF3A3836FF3A3836FF00000000000000000000000016D7A2FF10CE9AFF0FD4 + 9EFF0ED59EFF0FD59EFF0ED49EFF10CC99FF17D7A2FF26AA79FFD8926DFFEDAB + 83FFEDAC82FFEEAC82FFEEAB83FFEEAC82FFD8926DFF000000001F6FD4FF038E + F1FF0393F2FF038EF1FF000000000000000000000000A1A1A1E6EAEAEAFFF4FA + F7FF47CA9DFF23A674FF23A674FF24A472FF24A472FF24A472FF24A472FF24A4 + 72FF24A472FF24A472FF24A472FF24A472FF24A472FF24A472FF23A674FF279B + 6BFFFFFFFFFFE5E5E5FF000000000000000024AD7CFF0FC492FF0ECA96FF0DD1 + 9BFF0DD29BFF0ED29BFF0DD19BFF0ED19AFF0DD19BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD29BFF0ED19BFF0DD19AFF0DD19BFF0DD19BFF0ED19BFF0ED19BFF0FC9 + 95FF19CB99FF24AD7CFF000403060000000000000000312F2EFF3D3B38FF3C3A + 39FFFCE9D5FFFCEAD5FFFCE9D5FFFBEAD6FFFCEAD5FFFCE9D5FFFCE9D6FFFCEA + D5FFFCEAD6FFFCEAD5FFFCEAD5FFFCEAD6FFFBEAD6FFFCE9D5FFFCEAD6FFFBE9 + D5FF3D3B39FF3D3B39FF0000000000000000000000001AD9A5FF0FD29DFF0ED5 + A0FF0FD5A0FF0FD6A0FF0FD69FFF10D19CFF1BD9A6FF25AC7AFFD9936DFFEEAE + 84FFEDAC83FFEEAC83FFEEAC83FFEEAC83FFD9926DFF000000002071D7FF0393 + F3FF0393F3FF0393F3FF000000000000000000000000A7A7A7E3FFFFFFFFEEFA + F5FF5AE0B6FF26C18FFF26C895FF26C895FF26C895FF26C895FF26C895FF26C8 + 95FF26C895FF26C895FF26C895FF26C895FF26C895FF26C895FF26C08EFF23A2 + 70FFFFFFFFFFFFFFFFFF000000000000000021B17FFF0FC995FF0ED49EFF0ED4 + 9EFF0DD49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED4 + 9DFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED49EFF0ED5 + 9EFF0ED49EFF0FCF9AFF22B07FFF0F34245200000000353331FF43403EFF4240 + 3EFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D4DBFFC4D3DCFFC4D4DCFFC4D4 + DCFFC4D4DCFFC4D3DCFFC4D3DCFFC4D4DCFFC4D4DCFFC4D4DCFFC4D3DBFFC4D3 + DCFF42403EFF43403EFF00000000000000000000000022DDABFF0ED9A3FF0FD9 + A3FF0FD9A3FF0ED8A3FF0ED9A2FF0FD8A3FF25DFACFF22B07EFFD9946EFFF0B2 + 8AFFEFAE85FFEEAE85FFEFAE84FFEFAE84FFD9946EFF000000001584EAFF5DC7 + FBFF5DC7FBFF5DC7FBFF000000000000000000000000A8A8A8E0FFFFFFFFE6F8 + F2FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF21A7 + 74FFFFFFFFFFFFFFFFFF000000000000000020B280FF0FCC98FF0ED5A0FF0ED6 + A0FF0ED69FFF0ED5A0FF0ED59FFF0ED6A0FF0ED69FFF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED5A0FF0ED69FFF0ED69FFF0ED69FFF0ED69FFF0ED59FFF0ED6A0FF0ED5 + A0FF0ED69FFF0ED5A0FF2ADEACFF20B27FFF00000000363432FF454341FF4643 + 40FFFBEAD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD7FFFCEB + D7FFFCEBD7FFFCEBD7FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEAD8FFFCEB + D8FF454341FF454341FF00000000000000000000000027E0AEFF0EDAA4FF0EDA + A5FF0FDBA4FF0FDAA4FF0FDAA5FF0FDAA4FF29E0AEFF22B17FFFD9946EFFEFB4 + 8CFFEFAF86FFEEAF85FFEFAF85FFEFAF86FFDA936EFF00000000000000001584 + EAFF1584EAFF1584EAFF000000000000000000000000A0A0A0D5FFFFFFFFDDF7 + EFFF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEE + C8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF6CEEC8FF1EAB + 78FFFFFFFFFFFFFFFFFF00000000000000001FB381FF0FCF9AFF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0FD7A1FF1EB381FF063C2C5200000000383634FF484643FF4846 + 43FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEB + D8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFFCEBD8FFB2A6 + 9AFF484543FF484543FF0000000000000000000000002CE2B1FF0FDBA6FF0FDC + A5FF0FDBA6FF0FDBA6FF0FDCA6FF0FDCA6FF2EE3B1FF21B381FFDA946EFFF0B7 + 8FFFEFAF86FFEFB086FFEFB086FFEFB086FFDA946FFF00000000000000000000 + 000000000000000000000000000000000000000000007B7B7BA8EFEFEFFFF6FC + FAFF5CE7BDFF23C08DFFECBD96FFECBE97FFECBE97FFECBE97FFECBE97FFECBE + 97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FFECBE97FF24BD8BFF19B3 + 7FFFFFFFFFFFF3F3F3FF00000000000000001BB783FF0FD5A1FF0FDAA4FF0EDA + A4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDA + A4FF0EDAA4FF0FD9A4FF0ED9A4FF0EDAA5FF0FDAA4FF0EDAA4FF0FDAA4FF0EDA + A4FF46E7BAFF1BB684FF0000000000000000000000003B3836FF4E4B49FF4E4A + 49FF4E4B49FF4E4B49FF4E4B48FF3D3A39FF3C3A39FF3C3A39FF3C3A38FF3D3A + 39FF3C3A39FF3D3A38FF3C3A39FF3C3A39FF3D3A38FF3D3A39FF3C3A39FF4E4B + 49FF4E4A48FF4D4A49FF00000000000000000000000037E6B5FF0FDEA9FF0FDE + A8FF0FDEA9FF0FDEA9FF10DEA9FF0FDEA9FF39E6B6FF20B885FFDB956FFFF1BD + 94FFF0B188FFEFB188FFEFB187FFEFB187FFDB956FFF00000000000000000000 + 000000000000000000000000000000000000000000000D0D0D13959595C6C3CE + CAFD54BF9EFF48B48FFEF1C9A0FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CC + A3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CCA3FFF3CBA2FF46B28CFE18B7 + 83FFBDBDBDE99B9B9BCE000000000000000019B884FF0ED8A3FF0EDBA6FF0FDB + A6FF0EDBA6FF0FDBA6FF0EDBA5FF0FDCA6FF0EDCA6FF0EDBA5FF0FDBA5FF0FDC + A5FF0EDBA6FF0EDBA6FF0FDCA6FF0FDCA5FF0FDBA6FF0FDBA6FF0FDBA6FF4FEA + BFFF1AB885FF063C2C520000000000000000000000003C3938FF504D4BFF504E + 4BFF6D6B6AFF5F5B58FF5F5B58FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8 + C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FFE8E8C2FF3E3C3AFF504D + 4BFF504D4BFF504D4BFF0000000000000000000000003DE8B8FF0FE0A9FF0FDF + AAFF0FDFAAFF10E0A9FF0FE0AAFF0FDFA9FF3EE8B9FF1FB986FFDB9570FFF2C0 + 97FFF0B188FFF0B187FFEFB288FFF0B188FFDB956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002222 + 22321616162000000000F5D1ABFFF9D8B2FFF8D8B2FFF9D8B2FFF8D8B1FFF9D8 + B2FFF9D8B2FFF8D8B1FFF9D8B1FFF9D8B2FFF9D8B1FFF7D5AFFF161817231616 + 16201010101800000000000000000000000018B985FF0FDCA6FF0FDDA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDDA7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDD + A7FF0EDDA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF0FDDA7FF0FDCA7FF18BA + 85FF063C2C52000000000000000000000000000000003D3A39FF534F4DFF5350 + 4DFF5F5B58FF4A4645FF4A4645FFE9E8C4FFE9E9C4FFE9E9C4FFE9E9C5FFE8E9 + C4FFE8E9C4FFE9E8C4FF2F2E2CFF474341FFE9E9C5FFE9E9C5FF413D3CFF534F + 4DFF53504DFF53504EFF00000000000000000000000041E9BAFF0FE1ABFF0FE1 + ACFF0FE0ABFF10E0ABFF10E1ABFF0FE1ABFF43EABBFF1EBB88FFDC956FFFF2C2 + 99FFF0B288FFEFB389FFEFB288FFF0B288FFDC956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F3CEA9FFFADBB7FFFADBB7FFF9DAB7FFFADBB7FFF9DB + B7FFF9DBB7FFF9DBB7FFF9DAB7FFFADBB7FFF9DBB7FFF5D2AEFF000000000000 + 00000000000000000000000000000000000013C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF16BC89FF0FE0AAFF0FDFAAFF0FE0AAFF0FE0A9FF6BF2CCFF16BC88FF0000 + 00000000000000000000000000000000000000000000403E3CFF575452FF5754 + 52FF5F5B58FF4A4645FF575452FFEBEBCDFFEBEBCCFFEBEBCCFFEBEBCCFFEBEC + CCFFEBEBCCFFEBEBCCFF2F2E2CFF474341FFEBEBCCFFEBEBCCFF444140FF5754 + 52FF575452FF575452FF0000000000000000000000004CECBEFF10E3AEFF0FE3 + ADFF10E2AEFF0FE2ADFF0FE3AEFF10E3ADFF4EECBFFF1DBE8BFFDC9670FFF5F9 + F7FFF7E1BAFFF7E1BAFFF7E1BAFFF7E1BAFFDC9670FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F2CCA8FFFADDBAFFFADCBAFFFADCBAFFFADDBAFFF9DC + BAFFFADDBAFFFADCBAFFF9DCBAFFFADCBAFFFADCB9FFF4D0ADFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000014BD89FF0FE1ABFF10E0ABFF10E1ABFF73F4CFFF14BD89FF063C2C520000 + 00000000000000000000000000000000000000000000413E3DFF5A5654FF5A56 + 54FF5F5B58FF4A4645FF5A5654FFEDECD0FFEDEDD1FFEDEDD0FFEDEDD1FFECEC + D0FFEDEDD0FFECEDD0FF2F2E2CFF474341FFECEDD0FFECECD1FF464341FF5A56 + 54FF5A5654FF595554FF00000000000000000000000051EDC0FF0FE3AFFF10E4 + AFFF10E4AEFF10E4AFFF10E3AFFF10E4AEFF53EDC1FF1DC18DFF54392B58D796 + 70E3F2AF85FFF3AE85FFF2AE85FFF2AE85FF35261D3800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000F1CBA6FFFADEBCFFFADEBDFFFADDBCFFFADDBCFFFADE + BDFFFADEBDFFFADDBDFFFADEBCFFFADEBDFFFADDBDFFF3CFACFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000013BE8BFF0FE2ACFF10E1ADFF0FE2ACFF13BF8AFF063C2C52000000000000 + 0000000000000000000000000000000000000000000042403EFF5B5855FF5B57 + 56FF5F5B58FF4A4645FF5C5855FFEEEED5FFEEEED5FFEEEED5FFEEEED5FFEEEE + D5FFEEEED5FFEEEED5FF2F2E2CFF474341FFEEEED5FFEEEED5FF484442FF5B57 + 56FF5C5856FF5B5856FF00000000000000000000000056EEC2FF10E5AFFF0FE5 + B0FF10E5B0FF10E4AFFF10E5B0FF10E5B0FF58EEC2FF1CC28FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC8A4FFFAE0C1FFFBE0C2FFFAE0C1FFFBE0C2FFFAE0 + C2FFFAE0C2FFFAE0C2FFFAE0C1FFFBE0C1FFFAE0C2FFF1CBA8FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000012C18CFF10E3AFFF89F8D7FF11C18CFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000444140FF5F5A58FF5F5B + 58FF5F5B58FF4A4645FF5E5B59FFF0F1DEFFF1F1DDFFF1F1DEFFF1F1DEFFF0F1 + DEFFF1F1DEFFF0F1DEFF2F2E2CFF2F2E2CFFF1F1DDFFF0F1DEFF494645FF5F5A + 59FF5F5B59FF6D6B6AFF0000000000000000000000005FEFC4FF10E7B1FF10E7 + B1FF10E6B1FF10E7B1FF10E6B1FF10E6B1FF61EFC5FF1CC591FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EEC7A4FFFBE2C3FFFAE1C4FFFBE1C3FFFAE2C3FFFBE1 + C4FFFAE1C4FFFBE1C4FFFBE1C3FFFBE1C3FFFBE1C4FFEFC8A6FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000011C28DFF8EF9D8FF10C28DFF063C2C520000000000000000000000000000 + 00000000000000000000000000000000000000000000454241FF8D8C8BFF6D6B + 6AFF5F5B58FF4A4645FF6D6B6AFFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFB + F5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FFFBFBF5FF555353FF6D6B + 6AFF8D8C8BFF454240FF00000000000000000000000063F0C5FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF65F0C5FF1CC792FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000EFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7 + A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A4FFEFC7A5FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000010C28DFF0FC28DFF063C2C52000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003A37369B454241FF4542 + 40FF5F5B58FF4A4645FF454241FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3 + B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFC3C3B5FFF4F3E4FF363333FF4542 + 41FF454240FF1F1D1D5A00000000000000000000000068F0C7FF10E7B2FF10E7 + B2FF10E7B2FF10E7B2FF10E7B2FF10E7B2FF68F0C7FF1DC894FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000EC48FFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000001BCB97F420CA97F421CB + 98F421CB98F421CB98F421CB98F41FCB97F418C390EC00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000020202220A0A0938000000380000003800000038000000380000 + 0038000000380000003800000038000000380A0A093C02020222000000000000 + 0000000000000000000000000000000000000000000000000002000000040000 + 0002000000000000000B000000180000002A0000002900000029000000290000 + 00290000002900000028000000260000001A0000000900000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000008E8F82FF8E8F82FF8E8F82FF8E8F82FF8E8F + 82FF8E8F82FF8E8F82FF8E8F82FF8E8F82FF1313122002020205000000000000 + 0000000000000000000000000000000000000000000000000004000000060000 + 00090000000C0000001000000025349E6FFF349E6FFF349E6FFF349E6FFF349E + 6FFF349E6FFF349E6FFF349E6FFF349E6FFF0000002400000021000000150000 + 000B000000090000000900000003000000020000001E00000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 00520000005200000052000000520000003200000000BD8B6BFBD39E7AFFD39E + 7BFFD39E7AFFD39E7AFFD39E7AFFD49E7AFFD49E7AFFD49E7AFFD49E7AFFD49E + 7AFFD49E7AFFD49F7AFFD49F7AFFD49F7AFFD49F7AFFD59F7AFFD59F7AFFD59F + 7AFFD59F7AFFD59F7AFF73513D9F000000000000000000000000000000000000 + 0000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFA5A69BFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000033A070FF3CD7A7FF13B98CFF13B98CFF13B9 + 8CFF13B98CFF13B98CFF3CD7A7FF329F70FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFF1361DFFF1361 + DFFF1361DFFF1361DFFF0F3EB0FFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFCC8865FF0000000000000000C29372FFF5C49CFFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD94FFF3BD + 94FFF3BD94FFF5C49CFFD09775FF020101030000000000000000000000000000 + 0000000000000000000000000000C2C3B4FFF0F0ECFFF0F0ECFFF0F0ECFFF0F0 + ECFFF0F0ECFFF0F0ECFFF0F0ECFFC2C3B4FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000031A171FF39D7A6FF0CC78FFF0CC78FFF0CC7 + 8FFF0CC78FFF0CC78FFF39D7A6FF32A171FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CC8865FFEEA97AFFE59E + 75FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDC936FFF0353DCFF0353 + DCFF0352DBFF0353DBFF0F3FB1FFDD946FFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFE59E75FFCC8865FF0000000000000000DDAB86FFC59674FFF5C9 + A3FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B690FFE8B6 + 90FFE8B690FFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B68FFFE8B6 + 8FFFF5C9A3FFCF9D7AFFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000A5A69BFFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFA5A69BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000030A272FF34D5A4FF0CC790FF0CC790FF0CC7 + 90FF0CC790FF0CC790FF34D6A5FF31A272FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CD8965FFEEA97AFFDF97 + 72FFDF9772FFDF9772FFDF9772FFDF9772FFDF9772FFDB916EFF0455DCFF0455 + DCFF0454DCFF0454DCFF0E40B3FFDC926EFFDF9772FFDF9772FFDF9772FFDF97 + 72FFDF9772FFDF9772FFCD8965FF0000000000000000F4C49BFFF0C198FFE7B8 + 91FFF7D3B4FFEBBD96FFF5C89FFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C7 + 9EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFF5C79EFFEBBC96FFD8A6 + 82FFECB890FFF2BD94FFD09775FF020201040000000000000000000000000000 + 000000000000000000000000000000000000818277FF818277FF818277FF8182 + 77FF818277FF818277FF818277FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000002DA474FF29D3A1FF0DCA92FF0DCA92FF0DCA + 92FF0DCA92FF0DCA92FF29D3A1FF2EA473FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CE8A66FFEEA97BFFE19A + 74FFECA77FFFECA77EFFECA77EFFECA87FFFECA87EFFE09873FF0657DEFF0657 + DEFF0657DFFF0657DFFF0E42B7FFE29974FFECA77FFFECA77FFFECA77FFFECA7 + 7FFFECA87FFFE19974FFCE8A66FF0000000000000000F5C89EFFF5C89EFFF4C7 + 9DFFD3A582FFF8D9BCFFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CA + A1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF5CAA1FFF8D9BCFFF1BE + 96FFF4C198FFF4C198FFD09775FF02020104A5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFFA5A6 + 9BFFA5A69BFFA5A69BFFA5A69BFFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002CA675FF23D29FFF0DCB93FF0DCB93FF0DCB + 93FF0DCB93FF0DCB93FF23D19FFF2DA574FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000CF8A67FFEEA97CFFE39C + 76FFEDA981FFECA980FFECA980FFECA980FFECA980FFDE9671FF0759E0FF0759 + E0FF0759DFFF0759E0FF0D44BAFFE09772FFECA880FFEDA980FFECA980FFEDA9 + 80FFEDA980FFE39C76FFCF8B67FF0000000000000000F5C89EFFF5C89EFFF5C8 + 9EFFF3C59CFFDBAD88FFF9DFC5FFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C5 + 9DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF2C59DFFF9DFC7FFE2B38DFFF4C4 + 9BFFF4C49BFFF4C49BFFD09775FF03020104A5A69BFFC3C4B5FFC2C3B5FFC2C4 + B5FFC3C4B4FFC2C4B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C3 + B5FFC3C3B5FFC3C4B5FFC3C3B5FFC2C4B5FFC3C4B5FFC3C3B4FFC3C4B4FFC3C4 + B5FFC3C3B4FFC2C4B5FFC3C3B5FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000002BA676FF1DD09DFF0DCC94FF0DCC94FF0DCC + 94FF0DCC94FF0DCC94FF1DD19CFF2BA676FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000D08B68FFEEA97DFFE49F + 78FFEEAA81FFEEAB82FFEDAA82FFEDAB82FFEDAA82FFDC936FFF095AE1FF095A + E1FF085AE1FF095AE1FF0D45BDFFDD9470FFEEAB81FFEDAA82FFEEAA81FFEDAB + 82FFEEAA81FFE49F78FFCF8B67FF0000000000000000F6CDA4FFF6CDA4FFF6CD + A4FFF5CCA3FFF5CCA3FFF5CCA3FFFBE8D4FFE9B790FFE9B790FFE9B790FFE9B7 + 90FFE9B790FFE9B790FFE9B790FFE9B790FFECBF97FFF5C89FFFF5C89FFFF5C8 + 9EFFF5C89EFFF5C89EFFD09775FF03020104A5A69BFFE4E3DBFFE4E3DBFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6DFFFE5E6 + DFFFE5E6DFFFE5E6DFFFC7C7B8FFA5A69BFF28AA7AFF28AA7AFF27AA79FF28AA + 79FF28AA79FF28AA79FF28AA79FF27AA79FF14CE99FF0DCF98FF0DCF98FF0DCF + 98FF0DCF98FF0DCF98FF13CF99FF28A979FF29A978FF28A979FF28A978FF29A9 + 78FF28A978FF29A978FF29A978FF0000000000000000D28E69FFEFAE82FFECA9 + 81FFF0B086FFF0B086FFF0B086FFF0AF86FFF0AF86FFD68A68FF0D60E4FF0D60 + E4FF0D60E4FF0D60E5FF0E4DC8FFD78B69FFF0B086FFF0B086FFF0B086FFF0AF + 86FFF0AF86FFECAA81FFD28D69FF0000000000000000F6D0A7FFF6D0A7FFF6D0 + A7FFF6CFA6FFF6CFA6FFF6CFA6FFFDF2E6FFFDF4EAFFFBEBD9FFFBEBD9FFFBEB + D9FFFBEBD9FFFBEBD9FFFDF4EAFFFDF4EAFFF5CBA2FFF5CBA2FFF5CBA2FFF5CA + A1FFF5CAA1FFF5CAA1FFD09775FF03020104A5A69BFFD69773FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD79774FFD797 + 74FFD79774FFD79774FFC7C9B9FFA5A69BFF26AC7BFF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF11CE98FF0DD099FF0DD099FF0DD0 + 99FF0DD099FF0DD099FF11CE98FF3EDCB0FF3EDCB0FF3EDCB0FF3EDCB0FF3EDC + B0FF3EDCB0FF3EDCB0FF27AA79FF0000000000000000D38E69FFEAA77DFFE8A5 + 7EFFEBA880FFEBA880FFEBA880FFEBA880FFEBA880FFD38564FF0E62E6FF0E62 + E6FF0E61E5FF0E62E6FF0E50CCFFD38665FFEBA881FFEAA981FFEBA880FFEBA8 + 80FFEBA880FFE8A57DFFD38E6AFF0000000000000000F7D3AAFFF7D3AAFFF7D3 + AAFFF6D2A9FFF6D2A9FFF6D3AAFF3786A9FF0685C4FF0685C5FF0299E8FF0299 + ECFF0299EFFF038FE3FF038FE3FF4FA4D4FFF6D0A8FFF6CEA5FFF6CEA5FFF6CD + A4FFF6CDA4FFF6CDA4FFD09775FF03020104A5A69BFFE6A47EFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFC9CABBFFA5A69BFF24AE7CFF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF11C996FF11C996FF11C996FF0DD29BFF0DD29BFF0DD2 + 9BFF0DD29BFF0DD29BFF0DD29BFF11C996FF11C996FF11C996FF11C996FF11C9 + 96FF11C996FF11C996FF26AC7BFF0000000000000000D48F6AFFDB926EFFDA90 + 6EFFDB926EFFDB926EFFDB926EFFDB926EFFDB926EFFCE7F5FFF1064E7FF1064 + E7FF1064E7FF1064E7FF1054D0FFCE8060FFDB916EFFDB926EFFDB926EFFDB92 + 6EFFDB916EFFDB926EFFD48F6BFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF7D7B1FFF9E2CAFF0C8ABAFF069AD6FF04AFF2FF03AFF5FF03ACF6FF02AA + F6FF02A8F6FF02A3F6FF01A2F7FF01A0F7FF019DF7FFF9E2CAFFF2D7B6FFF7D3 + AAFFF7D3AAFFF7D3AAFFD09775FF03020104A5A69BFFE6A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCDBEFFA5A69BFF21B17FFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED59EFF0ED5 + 9EFF0ED59EFF0ED59EFF22AF7DFF0000000000000000D6916CFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFF1368E9FF1368 + E9FF1367EAFF1367EAFF125BD9FFCC7C5DFFCC7C5DFFCC7C5DFFCC7C5DFFCC7C + 5DFFCC7C5DFFCC7C5DFFD6906CFF0000000000000000F7D5ADFFF7D5ADFFF7D5 + ADFFF8DFC3FF0997CAFF0999CEFF05B5F4FF05B5F5FF04B4F5FF04B1F5FF03AE + F5FF03ACF6FF02A8F6FF02A7F6FF02A5F6FF01A0F7FF019FF7FFF8DFC3FFF7D8 + B2FFF7D5ADFFF7D5ADFFD09775FF03020104A5A69BFFE5A37DFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A57FFFE8A5 + 7FFFE8A57FFFE8A57FFFCCCEBFFFA5A69BFF1FB280FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6A0FF0ED6 + A0FF0ED6A0FF0ED6A0FF20B17FFF0000000000000000F4B78DFFF5B88DFFF4B8 + 8DFFF4B78DFFF4B78DFFF4B88DFFF4B88DFFF4B88DFFF0AF86FF1469EBFF1469 + EBFF166BEBFF1369EBFF135EDDFFF2B289FFF4B78DFFF4B78DFFF4B88DFFF4B8 + 8DFFF4B88DFFF5B78DFFF5BC93FFD7916CFF00000000F7D5ADFFF7D5ADFFEED2 + B0FB0B9BCAFF0AA5D6FF09AFE4FF06B9F5FF06B8F5FF05B6F5FF05B5F5FF04B2 + F5FF04B1F5FF03ACF5FF02ABF6FF02AAF6FF02A5F6FF02A3F6FF01A2F7FFF5D7 + B5FFF4D6B4FCF7D5ADFFD09775FF03020104A5A69BFFE5A37EFFE9A680FFE8A6 + 80FFE9A680FFE8A680FFE8A680FFE9A680FFE9A680FFE9A680FFE8A680FFE8A6 + 80FFE8A780FFE8A680FFE8A780FFE9A680FFE9A780FFE9A680FFE9A681FFE8A6 + 80FFE8A780FFE8A680FFCECFC0FFA5A69BFF1EB482FF10D8A1FF10D8A1FF10D8 + A1FF10D8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0FD8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8A1FF0ED8 + A1FF0ED8A1FF0ED8A1FF20B280FF0000000000000000F5B98FFFEFB087FFEFB0 + 87FFEFB087FFEFB087FFEFB087FFEFAF87FFEFB087FFE8A57EFF146BECFF146B + ECFF2073EEFF156AECFF1462E0FFEAA780FFEFB087FFEFB087FFEFB087FFEFB0 + 87FFEFB087FFEFB087FFF5BD94FFD8926DFF00000000F1D3B3FBF5D8B7FFC9A5 + 8AFF35C4E7FF0BC3F4FF0BC3F4FF0AC1F4FF09C0F4FF08BEF4FF07BCF5FF06B9 + F5FF06B8F5FF05B5F5FF04B4F5FF04B2F5FF36AAD7FFA89D90FFC3A289FFE1B5 + 93FFF5D8B7FFF5D8B7FFDFB090FF03020104A5A69BFFE6A681FFEAAA84FFEAA9 + 84FFEBA983FFEBA983FFEBA984FFEAAA83FFEAAA83FFEBA983FFEAAA83FFEBAA + 83FFEAAA84FFEAAA83FFEBA983FFEAA983FFEAAA84FFEBAA83FFEBA983FFEAAA + 83FFEAAA84FFEAAA83FFD1D2C3FFA5A69BFF1AB784FF16DBA6FF16DBA6FF16DB + A6FF16DBA6FF15DBA6FF15DBA6FF15DBA6FF14DBA6FF14DBA6FF14DBA6FF14DB + A6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DBA6FF13DB + A5FF13DBA5FF12DBA5FF1CB683FF0000000000000000F7C79FFFF2B58CFFF6BB + 90FFF6BC90FFF6BB90FFF6BB91FFF6BB90FFF6BB90FFEAA780FF176DEEFF176D + EEFF5196F4FF176EEDFF1568E7FFEAA780FFF6BB90FFF7BB91FFF6BB91FFF6BB + 91FFF6BB90FFF6BB90FFF7C7A0FFD9936EFF00000000E8C2A2FDE6BA96FFE0B2 + 90FF9EA598FF55D2EAFF0CC5F3FF0BC3F4FF0BC3F4FF0AC2F4FF09C0F4FF08BD + F4FF07BCF5FF06B8F5FF05B6F5FF0AB6F3FFBE9F88FFCDA88CFFDEB593FFE8BB + 97FFE8BC97FFE8BC97FFC39071EA00000000A5A69BFFE6A881FFECAB85FFECAC + 86FFEBAC85FFEBAB85FFEBAB85FFECAB85FFEBAC85FFECAC85FFEBAC85FFEBAC + 85FFECAB85FFEBAC85FFEBAC85FFECAC85FFEBAB85FFECAC85FFECAB85FFECAC + 85FFECAC85FFEBAC85FFD3D4C5FFA5A69BFF18B885FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF90F9D9FFF5F9F7FF1FDDA9FF19DCA7FF19DCA7FF19DC + A7FF18DCA7FF18DCA7FF1DDDA9FFF5F9F7FF90F9D9FF90F9D9FF90F9D9FF90F9 + D9FF90F9D9FF90F9D9FF1AB784FF0000000000000000F8CCA6FFF3B78DFFF6BC + 91FFF7BC91FFF7BC91FFF7BC91FFF6BC91FFF6BD91FFEAA881FF176EEEFF1970 + EEFF69A8F7FF176FEEFF166BEAFFE6A27CFFF7BC91FFF7BD91FFF7BC91FFF6BC + 91FFF6BC92FFF6BC91FFF8CCA6FFDA946EFF00000000DAA886FFECCAACFEE7BB + 98FFD7AE90FFB3A793FF74D9EAFF0CC5F3FF0BC3F3FF0BC3F4FF0BC3F4FF0AC1 + F4FF09C0F4FF07BCF4FF21B7E6FF97A49DFFD8B292FFE4B996FFE9BD99FFE9BE + 99FFE9BE9AFFEECFB1FD5642356500000000A5A69BFFE8A983FFECAE87FFECAE + 87FFEDAE87FFEDAE87FFECAE87FFECAD87FFECAE87FFEDAE87FFEDAE88FFEDAE + 87FFECAE88FFEDAE87FFEDAE87FFECAD87FFEDAE87FFECAE87FFECAE87FFECAE + 87FFECAE88FFECAE87FFD4D5C8FFA5A69BFF17BA87FF17BB87FF17BA86FF17BA + 86FF18BA87FF17B986FF17BA87FF17BA86FF2AE0ADFF1DDDA9FF1DDDA9FF1DDD + A9FF1CDDA9FF1CDDA9FF28E0ADFF18B986FF18B986FF18B986FF18B986FF18B9 + 86FF18B986FF19B985FF19B985FF0000000000000000F9DFC7FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFF7BE93FFE7A47EFF186FEFFF277A + F1FF7AB4F9FF186FEFFF186EEEFFE7A47EFFF7BE93FFF7BE93FFF7BE93FFF7BE + 93FFF7BE93FFF7BE93FFFAE8D8FFDA946FFF000000000000000055413464DAA8 + 86FFEAC09BFFE9BE99FFE5BB98FF9CE8F3FF11CDF2FF0FCAF3FF0DC8F3FF0CC5 + F3FF0EC9F4FFC1A78FFFDAB595FFE8BF9CFFECC29DFFECC29DFFECC39DFFF2D6 + B9FDDEAE8DFF564235650000000000000000A5A69BFFE8AC86FFEFB38CFFEFB3 + 8CFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB28CFFEFB38BFFEFB28CFFEFB3 + 8CFFEFB28BFFEFB28CFFEFB28CFFEFB28CFFEFB38CFFEFB38BFFEFB28CFFEFB3 + 8BFFEFB38BFFEFB28CFFD7D7CBFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000014BC88FF3FE4B3FF26DEABFF25DEABFF25DE + ABFF25DEABFF24DEABFF3CE3B2FF15BC88FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000DA9570FFAE8989FF3648 + 99FF1E3592FF454C91FF615178FFB67E62FFBF8260FF95654AC7146BECFF146B + ECFF146BECFF146BECFFBF8260FF95654AC7B67E63FF8C6B70FF7F708EFF203E + 9AFF1A3B9BFF374E9DFFDA9570FF8D654A8F0000000000000000000000005541 + 3464F2D8BDFDECC19EFFEBC19CFFCBB99EFFAFEEF8FF12CEF2FF10CCF3FF13CE + F3FF5CBFC8FFE3BD9AFFECC39EFFEEC59FFFEEC59FFFEEC59FFFEEC5A0FFDFB0 + 8EFF57433566000000000000000000000000A5A69BFFE9AD87FFF1B58EFFF1B5 + 8EFFF1B58EFFF0B58EFFF0B58DFFF0B58EFFF0B58EFFF1B58EFFF1B58EFFF0B5 + 8EFFF1B58EFFF1B58DFFF1B58EFFF1B58EFFF0B58DFFF1B58DFFF0B58DFFF0B5 + 8DFFF0B58EFFF1B58EFFD7D8CCFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BE8AFF46E5B5FF2ADEABFF29DEABFF29DE + ABFF29DEABFF29DEABFF45E5B5FF14BE89FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000017234F7C0E33A0FF1F5D + CEFF0D46BBFF0B4ECBFF0A44BBFF0C2890FF1C3796FF5B5684FF062E9EFF062E + 9EFF062E9EFF062E9EFF947272FF5C5984FF0F379EFF0D3FADFF0C4CC4FF0E48 + BEFF1662DFFF2063D4FF615A75C6000000010000000000000000000000000000 + 0000DCAA88FFF5DBC1FEEDC59FFFECC39DFFCDC2A6FFBFF1FAFF15D3F2FF5AC7 + CEFFDCB998FFEEC7A1FFEEC7A1FFEFC8A2FFEFC8A2FFEFC8A2FFF4DBC0FD5844 + 366800000000000000000000000000000000A5A69BFFEAAF89FFF1B78FFFF1B7 + 90FFF1B890FFF1B790FFF2B790FFF2B890FFF1B790FFF1B790FFF1B890FFF1B8 + 90FFF2B890FFF2B890FFF2B790FFF1B790FFF2B790FFF2B890FFF2B78FFFF2B7 + 8FFFF2B790FFF1B790FFD8DACEFFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000013BF8BFF4CE6B7FF2EDEABFF2EDEABFF2DDE + ABFF2DDEABFF2DDEACFF4BE6B7FF13BF8BFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000C317FB61653C5FF3880 + EDFF0E50CCFF0C5FE3FF0448CEFF0E35A5FF0E34A4FF0D35A6FF103CADFF4990 + F1FF4990F1FF103CADFF1345B2FF0E36A3FF0E35A5FF0E35A5FF0D40B5FF0E50 + CCFF387BECFF3880EDFF0C317FB6000000000000000000000000000000000000 + 00000000000058443668DDAD8BFFF0CAA3FFF1CBA4FFF1CBA4FFF0CBA4FFF1CC + A4FFF2CCA5FFF2CDA5FFF2CDA5FFF3CEA6FFF5DDC3FDE1B593FF5B46376B0000 + 000000000000000000000000000000000000A5A69BFFEBB18BFFF4BB93FFF3BB + 94FFF3BB94FFF3BB94FFF4BB93FFF4BB94FFF4BB93FFF4BB94FFF3BB94FFF3BB + 94FFF3BC94FFF4BB94FFF3BB94FFF3BB93FFF4BC93FFF3BB94FFF4BB93FFF4BB + 94FFF4BB94FFF4BB94FFDBDBD0FFA5A69BFF0000000000000000000000000000 + 000000000000000000000000000011C28CFF53E8B9FF35DDABFF34DDABFF34DD + ABFF34DEABFF34DEABFF53E8B9FF11C18CFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000B317FB7215BCAFF5195 + F8FF0C5BDDFF0C5FE3FF0E60E3FF2672E6FF2A6CDDFF124FCBFF123AA3F4173F + A5EF1241AEFF1241ABF80E45B6FD0D4CCBFF206CE4FF2270E7FF0E60E3FF0C5B + DDFF5091F6FF5195F8FF0B317FB7000000000000000000000000000000000000 + 000000000000000000005A45376AF7DFC6FEF7DEC2FFF7DEC2FFF7DEC2FFF7DE + C2FFF7DFC2FFF7DFC3FFF7DFC3FFF8DFC3FFE2B695FF5D47386D000000000000 + 000000000000000000000000000000000000A5A69BFFEBB28CFFF4BD94FFF4BC + 95FFF4BC95FFF4BC95FFF5BD95FFF4BD95FFF4BC95FFF4BD95FFF4BD95FFF5BD + 95FFF4BC95FFF4BD95FFF4BD95FFF5BD95FFF5BD95FFF4BD95FFF4BD95FFF4BD + 95FFF4BD94FFF5BD94FFDBDCD0FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000FC38DFF54E9BAFF37DDABFF37DDABFF37DD + ABFF37DDABFF37DDABFF54E9BAFF10C28DFF0000000000000000000000000000 + 000000000000000000000000000000000000000000000928699A2158C7FF579B + FDFF1C6CE6FF3781ECFF478AEBFF0D48C8FF0D40B8FE0D34A0F2000001030000 + 00000000000000000203061B486C0F3EA5F20D49C8FF2464D8FF478AEBFF1C6C + E6FF5698FCFF579BFDFF0928699A000000000000000000000000000000000000 + 0000000000000000000000000000B28B6FCDE8BC98FFE8BC98FFE8BC98FFE8BD + 98FFE8BD99FFE8BE99FFE8BE99FFE9BE99FF5E48386E00000000000000000000 + 000000000000000000000000000000000000A5A69BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C6BFFC98C + 6BFFC98C6BFFC98C6BFFDCDDD1FFA5A69BFF0000000000000000000000000000 + 00000000000000000000000000000EC38EFF79EDC8FF3ADCABFF39DCABFF39DC + ABFF39DCABFF39DDABFF79EDC8FF0FC38EFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000061C4A6F1B50BEFF599C + FDFF97C3FAFF1859D4FF0D47C7FF0D36A4F70820629500030B11000000000000 + 000000000000000000000000000001040B110F40A9F70E46BCFF0D48C7FF97C3 + FAFF9BC8FDFF599CFDFF061C4A6F000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3 + B4FFC2C3B4FFC2C3B4FFC2C3B4FFC2C3B4FF0000000000000000000000000000 + 00000000000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000092963791143 + B8FF0C3296DC071C578501030C13000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000001040C130C3A + 9ADC0E42B0FB1249BBFF00000203000000000000000000000000000000000000 + 000000000001000000020000000300000006000000090000000C000000100000 + 001100000014000000100000000D0000000C0000000600000005000000030000 + 0001000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00010000000300000005000000060000000C0000000E00000010000000140000 + 0011000000100000000C00000009000000060000000300000002000000010000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000200000004000000070000000C000000120000001C0E33246A339F + 70FF0E33247F0000002E00000029000000210000000D0000000A000000060000 + 0002000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000001E000000320000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000003200000000000000000000000000000000000000000000 + 0002000000070000000A0000000C0000001C00000021000000240F34247F339F + 70FF0000002E00000021000000110000000D0000000600000003000000020000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523AD6A6FF13BA + 8CFF3AD6A6FF0F34245200000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF3569DCFF3569DCFF3569DCFF3569DCFF173BB6FF063384FF093889FF0938 + 89FF093889FF0C3C8FFF063384FF173BB6FF3568DCFF3568DCFF3568DCFF3568 + DCFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000F3424523CD7A7FF32A0 + 71FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245232A171FF13BA8CFF13BA + 8CFF13BA8CFF31A071FF0F342452000402050000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002E54 + D4FF366DDDFF366DDDFF366DDDFF366CDDFF173BB6FF063384FF13469DFF1346 + 9DFF13469DFF0E3E92FF063384FF173BB6FF366CDDFF366CDDFF366CDDFF366C + DDFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000F34245230A271FF17CA95FF31A1 + 72FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A172FF35D5A5FF11BE8EFF12BD + 8EFF13BB8DFF35D5A5FF30A172FF0F3424520000000000000000000000000000 + 0000000000000000000000000000000000000000001800000021000000210000 + 00250000002A0000002A0000002A0000002A0000002A0000002A0000002A0000 + 002A0000002A0000002A0000002A0000002A0000002A0000002A000000280000 + 0021000000210000001B00000000000000000000000000000000000000002E54 + D4FF5799EBFF5799EBFF5799EBFF72B7FFFF173BB6FF063384FF1548A0FF1448 + A0FF14489FFF114297FF063384FF173BB6FF5799EBFF5799EBFF5799EBFF5799 + EBFF2E54D4FF0000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000F34245230A373FF39D6A6FF1FCE9AFF30A3 + 73FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245230D4A3FF12BD8EFF12BD8EFF0DCB95FF0DCB + 96FF0DCB95FF12BD8EFF12BD8EFF30D4A3FF0F34245200040205000000000000 + 00000000000000000000000000000000000000000010BD8462F1E8A97FFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA9 + 7AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFEEA97AFFD595 + 70FF140E0B4A0000002700000000000000000000000000000000000000000000 + 0000D4D4D4FFBFBFBFFFBFBFBFFFBFBFBFFF9C9C9CFF063384FF194FA7FF184E + A7FF184EA7FF184EA5FF063384FF9C9C9CFFBFBFBFFFBFBFBFFFC3C3C3FFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000F34245234D5A4FF10BF8EFF10BF8EFF30D4A2FF2DA5 + 75FF00000000000403060004030600040306000403060009060C000403060004 + 0306000403060004030600040306000302040000000000000000000000000000 + 0000000000000F3424522DA575FF12BE8FFF12BE8FFF0ECC97FF0ECC96FF0DCC + 96FF0ECC96FF0ECD97FF12BE8EFF12BF8FFF2DA575FF0F342452000000000000 + 00000000000000000000000000000000000000000000B57D5BEFF6BB91FFE09B + 73FFD5916AFFD6926BFFD8946CFFD8956DFFD9956DFFDA966FFFDB976FFFDB97 + 6FFFDB976FFFDD9971FFDE9971FFDE9971FFE09A72FFE09A72FFE09B73FFE09C + 74FFB07C5ECD0000000000000000000000000000000000000000000000000000 + 0000D4D5D5FFBFBFBFFFCBCBCBFFCDCDCDFF9C9C9CFF063384FF093889FF0938 + 89FF093889FF1951AAFF063384FF9C9C9CFFCBCBCBFFCBCBCBFFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000008050A0F3424522CA675FF10C08FFF10C08EFF0DCA94FF37D6A5FF2BA7 + 76FF2CA676FF2CA676FF2CA676FF2BA676FF2BA676FF2BA675FF2BA676FF2CA6 + 76FF2CA675FF2CA676FF2BA675FF2CA676FF0000000000000000000000000000 + 00000F3424522CA676FF2AD3A2FF11C090FF0ECD98FF0ECD98FF0ECE97FF0ECD + 98FF0DCE97FF0ECE98FF0ECD98FF11C190FF2AD4A1FF2CA676FF0F3424520000 + 00000000000000000000000000000000000000000000B67E5CEEFDEFE2FFEDAC + 83FFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A37AFFE9A3 + 7AFFE9A47AFFE9A47AFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE9A47BFFE19C + 74FFD3946FFB0000000000000000000000000000000000000000000000000000 + 0000D6D6D6FFC3C3C3FFD3D3D3FFD6D6D6FF9C9C9CFF063384FF1D58B0FF1D57 + B0FF1D57AFFF114498FF063384FF9C9C9CFFD6D6D6FFD3D3D3FFBFBFBFFFB3B3 + B3FF000000000000000000000000000000000000000000000000000000000000 + 00000F3424522BA777FF2ED4A2FF10C18FFF0DCC95FF0DCB95FF0DCB95FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7A7FF3CD7 + A7FF3CD7A7FF3CD7A7FF3CD7A7FF2AA777FF0000000000000000000000000F34 + 245224D4A1FF10C995FF10C995FF0ED09BFF0ED09AFF0ED09AFF0ED09BFF0ED0 + 9AFF0ED09AFF0ED09AFF0ED09AFF0ED09AFF10C996FF10C995FF24D4A1FF0F34 + 24520000000000000000000000000000000000000000B67E5DECF4C196FFEDB1 + 87FFE19C74FFEAA57CFFEAA57CFFEAA67DFFEAA67DFFEAA67DFFEAA67DFFEAA6 + 7DFFEAA67DFFEBA77DFFEBA77EFFEBA77EFFEBA87EFFEBA87EFFEBA87EFFEAA7 + 7EFFE6A57BFFC88D6BEE00000000000000000000000000000000000000000000 + 0000D9D9D9FFD0CFCFFFD8D8D9FFD8D9D9FF9C9C9CFF063384FF215EB8FF205D + B7FF205EB7FF1952A9FF063384FF9C9C9CFFD9D8D8FFD9D8D8FFC4C4C4FFB3B3 + B3FF000000000000000000000000000000000000000000000000000604080F34 + 245219C895FF0FC492FF0DCE98FF0DCF98FF0DCE98FF0ECE98FF10C18FFF10C1 + 8FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C18FFF10C1 + 8FFF10C18FFF10C18FFF19D29FFF28AA7AFF00000000000000000F34245227AB + 7AFF0FCC98FF0FCC97FF0ED19CFF0ED19CFF0ED19CFF0ED19BFF0FD19CFF0ED2 + 9CFF0ED19CFF0ED29BFF0ED19CFF0ED29CFF0ED19BFF0FCB97FF0FCC98FF27AA + 7AFF0F34245200000000000000000000000000000000B7805EEBF3C297FFCC8F + 69FFE19E76FFEAA67DFFEBA87EFFEBA87EFFEBA87EFFEBA87FFFECA97FFFECA9 + 7FFFECA97FFFECA97FFFECAA80FFECAA80FFECAA80FFECAA80FFEDAA80FFEDAB + 81FFE9A77EFFDB9C76FE00000000000000000000000000000000000000000000 + 0000DADADAFFD6D6D6FFDADADAFFDADADBFF9C9C9CFF063384FF3786D5FF3786 + D5FF3786D5FF1E5AB2FF063384FF9C9C9CFFDADADAFFDADADAFFCCCCCCFFB3B3 + B3FF0000000000000000000000000000000000000000000000000F34245226AC + 7BFF0FC793FF0DCF99FF0ECF9AFF0DD099FF0ED099FF0ED09AFF0DD099FF0ED0 + 99FF0DD099FF0ED099FF0DD09AFF0DCF9AFF0DCF9AFF0DD09AFF0DD099FF0DD0 + 9AFF0EC995FF10C18FFF20D6A2FF26AB7BFF000000000F34245226AC7BFF1ED4 + A1FF0FCF9AFF0ED39DFF0ED39DFF0ED29DFF0ED39DFF0ED29DFF0FD39DFF0ED3 + 9DFF0ED29DFF0ED39DFF0ED39DFF0ED39DFF0FD29DFF0ED39CFF10CE99FF1ED4 + A1FF26AC7AFF0F342452000000000000000000000000B77F5EE9F3C397FFC286 + 61FFE8AB82FFE5A47AFFECAA80FFEDAA80FFEDAB81FFEDAB81FFEDAB81FFEDAB + 81FFEDAC82FFEDAC82FFEDAC82FFEEAC83FFEEAD83FFEEAD83FFEEAD84FFEEAD + 84FFEDAD83FFE9AA80FF00000000000000000000000000000000000000000606 + 060BDCDBDBFFDCDCDBFFDBDCDBFFDBDBDCFF9C9C9CFF063384FF2260BAFF2260 + BAFF2260BAFF2260BAFF063384FF9C9C9CFFDBDBDBFFDBDBDCFFD3D3D3FFADAD + ADFF2C2C2C4B000000000000000000000000000000000F34245224AD7CFF19CB + 99FF0DD19BFF0ED19BFF0ED19BFF0ED19BFF0DD19BFF0DD19AFF0DD19BFF0DD2 + 9BFF0ED19BFF0ED19BFF0DD19BFF0DD19BFF0DD29BFF0DD19BFF0ED29BFF0ED1 + 9BFF0DD19BFF0ECA96FF27D9A6FF24AD7CFF0F342452D0F5EBFF57E7BEFF57E7 + BEFF56E9BFFF57EABFFFCEF5EBFF0ED59FFF0ED5A0FF0ED5A0FF0ED5A0FF0ED6 + A0FF0ED5A0FF0FD6A0FF0ED59FFF0ED59FFF23DBA9FFCEF5EBFF56EABFFF57E7 + BEFF57E7BEFFD0F5EBFF0F3424520000000000000000B78060E7F2C499FFCC90 + 6AFFEEC499FFEBAC83FFEDAD84FFF0B086FFF0B187FFF0B187FFF1B188FFF1B1 + 88FFF1B288FFF1B388FFF1B389FFF1B389FFF1B489FFF1B489FFF2B48AFFF2B4 + 8BFFF2B48BFFF3B58BFF936A50AD000000000000000000000000000000001935 + BFFF9F9F9FFFD4D4D5FFDEDFDEFFDFDEDEFF9C9C9CFF3786D5FF3786D5FF3786 + D5FF3786D5FF3786D5FF3786D5FF9C9C9CFFDEDEDFFFDEDEDFFFD1D0D0FFA3A3 + A3FE1226ADFF0000000000000000000000000F34245217D09CFF0FCF9AFF0ED4 + 9EFF0DD49EFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0ED49EFF0ED4 + 9EFF0ED49DFF0ED49EFF0DD49EFF0ED49EFF0ED49EFF0ED49EFF0DD49EFF0ED4 + 9EFF0ED49EFF0ED49EFF34DFB0FF21B17FFF21B17EFF21B17FFF21B17FFF20B1 + 7FFF21B17FFF21B17FFF19B885FF0FD7A2FF0ED7A1FF0ED7A1FF0FD7A1FF0FD6 + A1FF0FD7A2FF0FD6A1FF0FD7A1FF0ED7A1FF27DEACFF18B985FF21B07EFF21B1 + 7FFF21B17EFF21B17EFF21B17FFF0000000000000000B88160E5F2C79AFFD195 + 6EFFE5B287FFEFC094FFECAF85FFF2B48AFFF2B48AFFF2B48BFFF3B58BFFF3B6 + 8BFFF3B68BFFF3B68BFFF3B68CFFF3B68CFFF4B78DFFF4B78DFFF4B78DFFF4B8 + 8EFFF4B88EFFF4B88EFFCA926FEE000000000000000000000000000000001935 + BFFFA1A1A1FF9F9F9FFFD5D5D5FFE0DFDFFFDFE0E0FFE0DFE0FF2A8F60FF0CC7 + 90FF2A8F60FFE0E0E0FFE0DFE0FFE0E0DFFFDFE0E0FFD2D2D2FF9C9C9CFF4275 + DBFF1226ADFF00000000000000000000000020B27FFF0ED6A0FF0ED5A0FF0ED6 + 9FFF0ED69FFF0ED6A0FF0ED59FFF0ED69FFF0ED69FFF0ED69FFF0ED5A0FF0ED5 + A0FF0ED69FFF0ED59FFF0ED59FFF0ED69FFF0ED5A0FF0ED59FFF0ED5A0FF0ED6 + 9FFF0ED6A0FF0ED5A0FF3CE2B4FF20B280FF0000000000000000000000000000 + 0000000000000000000017BB87FF0FD8A3FF0FD8A3FF0FD8A3FF0FD8A2FF0FD9 + A3FF0FD8A2FF0FD8A2FF0ED9A3FF0ED8A3FF2CE0AEFF17BA87FF000000000000 + 00000000000000000000000000000000000000000000B88261E4F1C89BFFD69A + 72FFD79B73FFF0C99CFFF2B58BFFF4B78DFFF4B88DFFF4B88EFFF4B88EFFF4B9 + 8EFFF4B98EFFF5B98FFFF5B98FFFF5BA8FFFF6BA90FFF6BB90FFF6BB90FFF6BB + 90FFF6BB90FFF6BB90FFE8AD85FF624836730000000000000000000000001935 + BFFF4275DBFFA2A2A2FF9F9F9FFFE1E1E1FFE1E1E1FFE1E1E1FF0CC790FF2A8F + 60FF2E54D4FF2A8F60FFE1E1E1FFE1E1E1FFD2D2D2FF9D9D9DFFA4A5A5FF4A8D + EBFF1226ADFF000000000000000000000000063C2C5233E1B1FF0FD7A1FF0ED7 + A1FF0FD7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED6A1FF0ED7A1FF0ED7 + A1FF0ED7A1FF0ED7A1FF0ED7A1FF0ED7A2FF0ED7A1FF0ED7A1FF0ED7A1FF0FD6 + A1FF0ED7A1FF0ED7A1FF42E5B7FF1FB381FF0000000000000000000000000000 + 0000000000000000000014BD8AFF0FDBA5FF0FDBA6FF0FDBA6FF0FDBA6FF0FDA + A5FF0FDBA6FF0FDBA5FF0FDAA6FF0FDBA5FF35E4B4FF14BD8AFF000000000000 + 00000000000000000000000000000000000000000000B88362E1EFC99CFFDFA3 + 7BFFDFA37BFFE2A77FFFFFFAF1FFFDF1DFFFFDEFDBFFFDEDD9FFFCEAD2FFFBE9 + CFFFFAE7CCFFF9E2C4FFF9E1C1FFF8DFBEFFF8DDBAFFF7DCB8FFF7DCB8FFF6DB + B7FFF6DAB6FFF6DAB6FFF5D9B5FFD7A481FA0000000000000000000000001935 + BFFF3562DAFF5092EFFF4275DBFFA0A0A0FFD8D9D9FFE4E3E3FF154BA3FFF1B1 + 87FFF1B187FFE4E4E3FFE3E3E3FFD5D5D5FFA4A4A5FF4275DBFF4B8EECFF1934 + BFFF1226ADFF00000000000000000000000000000000063C2C521BB684FF46E7 + BAFF0FDAA4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA5FF0ED9A4FF0FDAA4FF0EDA + A4FF0FDAA4FF0EDAA4FF0EDAA4FF0EDAA4FF0FDAA4FF0FDAA4FF0FDAA4FF0FDA + A4FF0EDAA4FF0FDAA4FF4EE9BEFF1BB783FF0000000000000000000000000000 + 0000000000000000000013BF8BFF0FDCA7FF0FDCA7FF0FDCA7FF0FDCA7FF0FDC + A6FF0FDCA6FF10DCA7FF0FDCA6FF0FDCA7FF39E6B7FF13BF8BFF000000000000 + 00000000000000000000000000000000000000000000B98363E0EFCA9CFFE3A8 + 7FFFE3A87FFFE3A87FFFE7AE87FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF + 85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFE9AF85FFDBA0 + 79FF91674EB18A624AA7886149A43D2C21490000000000000000000000000C17 + 3A462E54D4FF3563DAFF5699F1FFA1A1A3FFA0A0A0FFDADAD9FF154BA3FFF1B1 + 87FFF1B187FFE5E5E5FFD5D5D6FF9D9D9DFF4275DBFF4B8EECFF2447CAFF1226 + ADFF060E34460000000000000000000000000000000000000000063C2C521AB8 + 85FF0EDBA5FF0FDBA6FF0FDBA6FF0FDBA5FF0FDCA5FF0FDCA6FF0EDBA5FF0EDB + A6FF0FDCA5FF0FDBA6FF0EDBA5FF0EDCA6FF0FDCA6FF0EDBA5FF0FDBA6FF0FDB + A6FF0FDBA6FF0EDBA6FF53EBC1FF19B884FF0000000000000000000000000000 + 0000000000000000000012C08CFF0FDDA8FF0FDDA8FF10DDA8FF0FDDA8FF0FDD + A8FF0FDDA8FF0FDEA8FF0FDEA8FF0FDDA8FF3DE7BAFF12C08CFF000000000000 + 00000000000000000000000000000000000000000000B88463DEEFCA9DFFE8AD + 84FFEFB58AFFEFB58BFFEFB58BFFEFB48AFFEEB48AFFEEB48AFFEDB389FFEDB3 + 89FFEDB389FFECB288FFECB188FFECB187FFEBB086FFEAB086FFEAAF86FFDCA0 + 79FF17100B1E0000000000000000000000000000000000000000000000000000 + 00001935BFFF2E54D4FF3664DAFF4275DBFFA1A1A3FFA0A0A0FF063384FF0633 + 84FF063384FFD6D6D6FF9D9D9DFFA4A5A5FF5093EFFF244ACBFF1934BFFF060E + 334500000000000000000000000000000000000000000000000000000000063C + 2C5258EDC3FF0FDCA7FF0FDDA7FF0FDDA7FF0FDDA7FF0FDCA7FF0EDCA7FF0EDD + A7FF0FDDA7FF0EDDA7FF0FDDA7FF0EDDA7FF0FDCA7FF0FDCA7FF0EDDA7FF0FDD + A7FF0EDDA7FF0FDDA7FF56EDC2FF18B985FF0000000000000000000000000000 + 0000000000000000000010C28DFF10E0ABFF10E0ABFF0FE0ABFF0FE0AAFF10E0 + AAFF10E0AAFF0FDFAAFF0FE0ABFF0FDFAAFF45EBBDFF10C28DFF000000000000 + 00000000000000000000000000000000000000000000BA8665DCEECC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFE2A7 + 7FFF140E0A1A0000000000000000000000000000000000000000000000000000 + 0000000000000B1535401935BFFF3664DBFF579BF2FF4275DBFFA0A0A0FFDBDC + DBFFD8D7D8FFA3A4A7FF4275DBFF579AF1FF878CA6FF1226ADFF060D2F400000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000063C2C5216BC88FF6BF2CCFF0FDFA9FF0FE0AAFF0FDFAAFF21E3B1FF16BC + 89FF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C08AFF13C0 + 8AFF13C08AFF13C08AFF13C08AFF13C08AFF0000000000000000000000000000 + 000000000000000000000FC38EFF0FE1ACFF0FE1ABFF0FE1ACFF10E1ACFF0FE1 + ACFF0FE1ACFF0FE1ABFF10E1ABFF0FE1ACFF4AECC0FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BC8867DCEDCC9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFFADDB8FFFADD + B8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFFADDB8FFD198 + 73F4050302070000000000000000000000000000000000000000000000000000 + 000000000000000000000B14323D2E54D4FF3664DBFF589BF2FFA0A1A4FFA0A0 + A0FF9D9D9DFF4275DBFF579BF2FF061D94FFABABABFF050C2D3D000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000063C2C5214BD89FF10E0ABFF10E1ABFF10E0ABFF2DE6B6FF14BD + 89FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000FC38EFF0FE2ADFF10E2ADFF0FE2ADFF0FE2ADFF0FE2 + ADFF10E2ADFF10E2ADFF10E2ADFF10E2ADFF4DEDC1FF0FC38EFF000000000000 + 00000000000000000000000000000000000000000000BF8A69E0EDCD9FFFF6BC + 91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF6BC91FFF3D2AEFFDDAC8EFFDDAC + 8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFFDDAC8EFF3B2B + 2045000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000001935BFFF2E54D4FF3664DBFF4275DBFF9FA1 + A5FF9D9FA7FF589CF2FF061D94FFA0A5BFFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000063C2C527CF5D2FF0FE2ACFF10E1ADFF3AEABBFF13BE + 8BFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E4AFFF10E4AFFF10E4AFFF10E4AFFF10E4 + AEFF10E4AFFF10E4AFFF10E4AFFF0FE4AFFF53EFC5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000087634C99D9A686FAD89D + 78FAD69C77F8D69B77F7D69B77F7D49A75F5C18B69E4271C1531000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000A122E381935BFFF3563DAFF72B7 + FFFF72B7FFFF1934BFFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000063C2C5211C18CFF89F8D7FF50EEC4FF12C1 + 8CFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF10E5B0FF10E5B0FF10E5B0FF10E5B0FF10E5 + B0FF10E5B0FF10E5B0FF0FE5B0FF0FE4B0FF55F0C5FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000009112C352E54D4FF3F82 + E6FF3F82E6FF1226ADFFABABABFFCCCCCCFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000063C2C5210C28DFF57F0C7FF11C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0FE5B1FF10E6B0FF10E6B0FF10E5B0FF0FE5 + B1FF10E6B1FF10E5B0FF10E6B1FF10E6B1FF57F0C8FF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001935BFFF3F82 + E6FF3F82E6FF050A2634ABABABFFE4EBEBFFABABABFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000063C2C52F5F9F7FF10C2 + 8DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC4 + 8FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF0EC48FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000509 + 181E0206161E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000EC4 + 8FFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000003200000040000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000052000000520000005200000052000000520000 + 0052000000520000005200000032000000320000000000000017000000270000 + 0032000000400000004000000040000000400000004100000047000000400000 + 0040000000400000004500000047000000400000004000000040000000400000 + 0040000000250000001A00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000343433FF232323FF2222 + 22FF222222FF212121FF212121FF202020FF202020FF1F1F1FFF1F1F1FFF1E1E + 1EFF1E1E1EFF1D1D1DFF1D1D1DFF1D1D1DFF1C1C1CFF1C1C1CFF1B1B1BFF1B1B + 1BFF1B1B1BFF1A1A1AFF343433FF000000000000000000000000000000000534 + 6AFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF12589FFF1258 + 9FFF05346AFF000000000000000000000000000000179D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E9EFF9D9E + 9EFF9D9E9EFF9D9E9EFF00000017000000000000000000000000000000150000 + 001BE2B798FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B696FFE1B6 + 96FFE1B696FFE1B696FF000000110000000000000000363635FFF4E0BDFFF7E2 + BFFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFFF7E0 + BAFFF7E0BAFFF7E0BAFFF7E0BAFFF7E0BAFFFAEFCCFFF9EED0FFF7EBCFFFF5E5 + C9FFF2DFC0FFF2DAB6FF343433FF000000000000000000000000000000000534 + 6AFF0F5094FF073B75FF073A74FF073973FF073972FF073871FF063770FF0637 + 6FFF06376FFF06366EFF06356DFF05356DFF05356CFF05346BFF05346BFF0E50 + 94FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5C4FFF9E5 + C4FFF9E5C4FFE2B797FF000000000000000000000000393937FFF7E3C1FFF7E3 + C1FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF7E2BEFFF7E1BDFFF7E1BCFFF7E0 + BBFFF7E0BBFFF7E0BAFFF7E0BAFFF7E0BAFFF8E3BCFFFCF3CEFFFDF7D8FFFEF9 + E4FFFEF9E7FFF3DEBBFF343433FF000000000000000000000000000000000534 + 6AFF0F5195FFF6DDB6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DCB3FFF6DCB3FFF6DC + B3FFF6DCB2FFF6DCB2FFF6DCB2FFF9E9C1FFFAEDD2FFF9E9CDFFF7E1BDFF0F51 + 95FF05346AFF00000000000000000000000000000000CCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCCCCFFCCCC + CCFFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E2BBFFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6B1FFF3D6 + B1FFF8E0BAFFE2B898FF0000000000000000000000003E3D3BFFF8E4C4FFF8E4 + C4FFF7E4C3FFF7E4C3FFF7E3C2FFF7E3C1FFD8C7A9FF8C8171FFF7E2BFFFF7E2 + BEFFF7E2BEFFB4A48CFF756C5DFF736A5CFFF5DEBAFFF7E0BBFFF7E0BBFFFCF5 + D3FFFDF7DBFFF8EBD0FF343433FF000000000000000000000000000000000534 + 6AFF115499FFF6DFB9FFF6DFB8FFF6DEB7FFF6DEB7FFF6DDB5FFF6DDB4FFF6DD + B4FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF8E5BBFFFCF5D3FFFDF6DDFF1154 + 99FF05346AFF00000000000000000000000000000000CDCDCDFFCCCCCCFFDF98 + 71FFEBA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFEAA279FFFCC8 + A5FFEAA279FFEAA279FFEBA279FFEAA279FFEAA279FFEAA279FFEAA279FFDF98 + 71FFCCCCCCFFCCCCCCFF00000000000000000000000000000000000000000000 + 0000F8E1BEFFF3D6B1FFF5DAB5FFF8E1BBFFF8E0BBFFF8E1BBFFF8E1BBFFF8E1 + BBFFF8E1BBFFF8E1BCFFF8E1BBFFF8E1BBFFF9E1BCFFF8E1BBFFF8E1BBFFF4D7 + B2FFF8E1BBFFE3B99AFF00000000000000000000000040403CFFF8E5C7FFF8E5 + C7FFF8E4C5FFF8E4C4FFF7E4C3FFF7E4C3FFB7AA94FF262626FFF7E3C1FFF7E2 + C0FFF7E2C0FF1D1D1DFF1C1C1CFF1F1F1EFF615A4EFFF5DFBBFFF7E1BCFFF7E1 + BCFFFBEFCCFFFAF1D2FF343433FF000000000000000000000000000000000535 + 6BFF11559BFFF6E0BBFFF6DFB9FFF6DFB8FFF6DEB8FFF6DEB7FFF6DDB6FFF6DD + B6FFF6DDB5FFF6DDB4FFF6DDB4FFF6DDB4FFF6DDB4FFF7DFB7FFFBF1CCFF1155 + 9AFF05356BFF00000000000000000000000000000000CECECEFFCDCDCDFFDE97 + 71FFEBA37AFFEBA27AFFEAA37AFFE9A178FFEAA179FFEBA37AFFEAA27AFFFCC8 + A5FFEAA27AFFEAA279FFEBA379FFEBA27AFFEAA37AFFEBA37AFFEBA27AFFDF98 + 71FFCDCDCDFFCDCDCDFF00000000000000000000000000000000000000000000 + 0000F8E2BFFFF3D7B2FFF8E2BCFFF8E1BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1 + BCFFF8E1BCFFF8E1BCFFF8E2BCFFF8E1BCFFF8E1BCFFF9E1BCFFF8E1BCFFF5DA + B5FFF8E1BCFFE3BA9BFF00000000000000000000000042423EFFF8E6C9FFF8E6 + C9FFF8E5C8FFF8E5C7FFF8E4C5FFF8E4C4FFB9AB95FF292929FFF7E4C3FFF7E3 + C2FFE2D0B2FF252524FFC9B79DFFEDD9B7FF1B1B1BFFAA9C85FFF7E2BEFFF7E1 + BDFFF7E1BCFFF9E9C3FF343433FF000000000000000000000000000000000535 + 6CFF12569DFFF6E0BCFFF6E0BBFFF6E0BAFFF6E0BAFFF6DFB9FFF6DEB7FFF6DE + B7FFF6DEB7FFF6DDB6FFF6DDB5FFF6DDB5FFF6DDB5FFF6DDB5FFF6DEB5FF1256 + 9DFF06356CFF00000000000000000000000000000000CFCFCFFFCECECEFFDB94 + 6EFFEBA37AFFEAA37AFFE8A178FFDC9770FFE09971FFE8A079FFEAA37AFFFCC8 + A5FFEBA47AFFEBA37AFFEBA37BFFEBA37AFFEBA37AFFEBA37AFFEAA47BFFDF98 + 71FFCECECEFFCECECEFF00000000000000000000000000000000000000000000 + 0000F8E3BFFFF4D8B3FFF8E2BDFFF8E2BDFFF8E2BDFFF8E1BDFFF9E2BCFFF8E2 + BDFFF8E2BDFFF8E2BDFFF8E2BDFFF8E2BCFFF8E1BDFFF8E1BCFFF8E2BDFFF5DB + B6FFF8E1BDFFE3BC9CFF000000000000000000000000474742FFF8E7CCFFF8E7 + CCFFF8E7CBFFF8E7CBFFF8E6CAFFF8E6C9FFBBAF9AFF303030FFF8E5C7FFF8E4 + C5FFF8E4C5FFF7E4C3FFF7E4C3FFF7E4C3FF222222FF766E61FFF7E3C1FFF7E2 + C0FFF7E2BFFFF7E2BFFF343433FF000000000000000000000000000000000637 + 6FFF1359A0FFF7E2C0FFF7E2BFFFF7E2BEFFF7E2BEFFF6E0BDFFF6E0BBFFF6E0 + BBFFF6E0BBFFF6DFBAFFF6DFB9FFF6DFB9FFF6DFB9FFF6DEB8FFF6DEB8FF1359 + A1FF06366FFF00000000000000000000000000000000D1D1D1FFD0D0D0FFCC87 + 63FFD18C68FFCF8965FFCA8562FFCE9B81FFC7825FFFD18C68FFEBA47BFFFCC8 + A5FFECA57CFFECA57CFFE8A37BFFE9A27AFFEBA57CFFEBA57CFFECA57CFFDF9A + 73FFD0D0D0FFD0D0D0FF00000000000000000000000000000000000000000000 + 0000F9E4C3FFF4DAB5FFF8E2BFFFF8E3BFFFF8E3BFFFF9E3BFFFF8E2BEFFF8E3 + BEFFF9E3BFFFF8E2BFFFF8E2BFFFF8E3BFFFF8E2BFFFF8E2BEFFF8E3BEFFF5DC + B8FFF8E2BFFFE5BE9FFF0000000000000000000000004A4944FFF8E8CEFFF8E8 + CEFFF8E7CDFFF8E7CCFFF8E7CBFFF8E7CBFFBCB09DFF333333FFF8E6C9FFF8E5 + C8FFF6E3C5FF56524CFFBDAF99FFC9B9A1FF262626FFAB9F8BFFF7E4C3FFF7E3 + C2FFF7E3C1FFF7E3C1FF343433FF000000000000000000000000000000000737 + 70FF135AA3FFF7E3C1FFF7E2C0FFF7E2C0FFF7E2C0FFF7E2BFFFF7E1BEFFF7DF + BCFFF7E0BAFFF7E1BBFFF7E0BAFFF7E0BAFFF7E0BBFFF7E0BAFFF7E0BAFF135B + A3FF073771FF00000000000000000000000000000000D2D2D2FFD1D1D1FFD7A7 + 8EFFC78360FFCD8E6FFFDBBCACFFE4E2E1FFD49E81FFC98461FFE59F78FFFBC7 + A4FFEBA67DFFE6A279FFDE9A73FFDC9770FFEAA57DFFECA67DFFECA67DFFDF9A + 73FFD1D1D1FFD1D1D1FF00000000000000000000000000000000000000000000 + 0000F8E4C5FFF6DEBAFFF9E3BFFFF8E2BFFFF8E3C0FFF8E3C0FFF8E3C0FFF9E3 + C0FFF8E2C0FFF8E3C0FFF8E3BFFFF8E3C0FFF9E3C0FFF7E2BEFFF9E1BEFFF6DD + B9FFF7E1BDFFE5BFA0FF0000000000000000000000004C4C46FFF9E9CFFFF9E9 + CFFFF8E8CEFFF8E8CEFFF8E7CDFFF6E5CAFFBDB19FFF373737FFF8E7CBFFF8E6 + CAFFF8E6CAFF2E2E2EFF2D2D2DFF2C2C2CFF6E685EFFF7E3C3FFF8E4C4FFF7E4 + C3FFF7E4C3FFF7E4C3FF343433FF000000000000000000000000000000000738 + 72FF145BA4FFF8E3C3FFF7E3C2FFF7E3C1FFF7E3C1FFF7E2C0FFF7E2BFFFF7E1 + BDFFF6DFBAFFF7DFBAFFF7E1BBFFF7E1BCFFF7E1BCFFF7E0BBFFF7E0BBFF145C + A5FF073872FF00000000000000000000000000000000D3D3D3FFD2D2D2FFE6E4 + E3FFDFC4B5FFE6E4E3FFE6D6CCFFE8BBA1FFE5DED9FFCE906FFFDA956FFFF5BF + 9DFFEAA57DFFD9946DFFCB8763FFCA8663FFE8A37AFFEBA77EFFECA77EFFE09B + 74FFD2D2D2FFD2D2D2FF00000000000000000000000000000000000000000000 + 0000F9E5C5FFF7DFBDFFF8E3C0FFF9E3C0FFF9E3C1FFF8E3C0FFF8E3C0FFF9E3 + C0FFF9E3C0FFF8E2C0FFF9E3C1FFF9E4C1FFF7E2C0FFF8E3BFFFF7E2BFFFF5DD + BAFFF7E0BEFFE6C0A3FF000000000000000000000000515149FFF9EAD2FFF9EA + D2FFF9E9D1FFF9E9D1FFF9E9D0FF464544FF3E3E3EFF3D3D3DFFF8E8CEFFF8E7 + CDFFF8E7CDFF353535FF9E9485FFE2D3B9FFE2D2B8FFF3E2C4FFF8E6C9FFF8E5 + C8FFF8E5C7FFF8E5C7FF363634FF00000000000000000000000000000000073A + 76FF155EA9FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4C3FFF8E4C3FFF7E3C2FFF7E2 + C1FFF6E1BEFFF5DAB4FFF5DCB3FFF6DEB9FFF7E3C0FFF7E2BFFFF7E2BEFF155F + A9FF083A76FF00000000000000000000000000000000D5D5D5FFD4D4D4FFE19C + 75FFECA980FFECA980FFEDA980FFEDA980FFECAA82FFE9DAD1FFCA8662FFCE8D + 6BFFCB8764FFE4D5CEFFE9E5E3FFDFBFAEFFD08D68FFE29F77FFECA87FFFE09C + 75FFD4D4D4FFD4D4D4FF00000000000000000000000000000000000000000000 + 0000F9E6C9FFF7E1BFFFF9E4C2FFF8E4C3FFF8E4C2FFF9E4C2FFF8E4C2FFF9E4 + C2FFF7E3C2FFF7E1BFFFF5DEBDFFF5DFBDFFF5DFBEFFF5DEBEFFF5DEBDFFF3DC + BAFFF3DCBCFFE8C3A5FF00000000000000000000000053534BFFF9EBD4FFF9EB + D4FFF9EAD3FFF9EAD2FFF9E9D1FFE1D3BDFF5D5B57FF414141FFF9E9CFFFF8E8 + CEFFF8E8CEFF393939FF383838FF363636FF333333FFCBBDA7FFF8E7CBFFF8E6 + CAFFF8E6C9FFF8E6C9FF363635FF00000000000000000000000000000000083B + 78FF1660ABFFF8E5C7FFF8E5C5FFF8E5C4FFF8E5C4FFF8E4C3FFF8E4C3FFF8E4 + C3FFF8E3C2FFF5DFB7FFF5DBB2FFF5DCB4FFF7E1BEFFF7E3C0FFF7E3C0FF1660 + ABFF083C78FF00000000000000000000000000000000D7D7D7FFD6D6D6FFEBB1 + 8FFFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFFCC9A6FFF9CAABFFDEB49DFFC887 + 65FFD6A991FFEBCDBAFFF4C4A6FFECE7E4FFCC8B69FFDCA07EFFF3BD9BFFEBB1 + 8FFFD5D5D5FFD5D5D5FF00000000000000000000000000000000000000000000 + 0000F9E7CAFFF7E2C0FFF9E5C4FFF8E4C3FFF9E5C4FFF8E5C4FFF9E5C3FFF9E4 + C4FFF8E3C1FFF4DEBEFFF2DCBCFFF3DDBDFFF4DDBEFFF5DEBEFFF4DEBDFFF4DD + BAFFF4DEBDFFE8C5A7FF00000000000000000000000053534BFFF9ECD5FFF9EC + D5FFF9EBD4FFF9EBD4FFF9EAD3FFF9EAD2FFDACEB9FF504F4DFFF9E9D1FFF9E9 + D0FFF9E9D0FF6B6760FF6A6660FF69655FFF67635CFFD7C9B1FFF8E7CCFFF8E7 + CBFFF8E7CBFFF8E7CBFF383836FF00000000000000000000000000000000093C + 7AFF1662ADFFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF8E5C5FFF8E4C4FFF8E4 + C3FFF8E4C3FFF8E1BFFFF5DFB8FFF4DAB0FFF5DFBAFFF7E1BFFFF7E3C2FF1661 + ADFF093D7AFF00000000000000000000000000000000D8D8D8FFD7D7D7FFE19E + 77FFEDAB82FFEEAB82FFEEAB82FFEDAB82FFEDAB82FFEDAB82FFEEE9E7FFE7D1 + C3FFECE3DEFFEBA981FFEDAB82FFEBB99AFFD29B7EFFCA8663FFDB9772FFE19E + 77FFD7D7D7FFD7D7D7FF00000000000000000000000000000000000000000000 + 0000F9E8CCFFF8E5C4FFF9E5C5FFF9E5C5FFF9E5C5FFF9E5C4FFF8E5C4FFF8E4 + C4FFF8E3C2FFF2DCBDFFF3DCBDFFF2DBBAFFF2DBBBFFF2DCBCFFF3DCBCFFF3DD + BCFFF3DCBDFFE9C7A9FF00000000000000000000000058584FFF0C5DDDFF0B5C + DCFF0A5ADAFF0959D9FF0958D8FF0855D6FF0754D5FF0653D4FF0551D2FF0550 + D1FF044FD1FF034DCFFF034DCEFF024CCEFF024BCDFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3A3A38FF000000000000000000000000000000000A3F + 7EFF1864B2FFF8E7CBFFF8E7CAFFF8E7CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5 + C8FFF8E5C8FFF8E5C5FFF8E4C4FFF8E2C1FFF6DBB4FFF5DBB3FFF7E0BDFF1864 + B1FF0A3F7EFF00000000000000000000000000000000DADADAFFD9D9D9FFE19F + 78FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFEEAD84FFFCC8 + A5FFEEAD85FFEEAD84FFEEAD84FFEEAD84FFEFD7C8FFECD9CFFFCA8663FFDA98 + 72FFD9D9D9FFD9D9D9FF00000000000000000000000000000000000000000000 + 0000F9E8CDFFF8E6C7FFF9E6C8FFF9E5C8FFF8E6C8FFF9E5C7FFF9E6C8FFF7E4 + C5FFF6E1C3FFEDD5B7FFEACFB1FFE8CCAFFFE7CBACFFE6CBADFFE7CBACFFE8CC + AFFFDEBEA3FFE7C3A8FF0101010200000000000000005A5A50FF0C5EDEFF0C5D + DEFF0B5BDCFF0A5ADBFF0A59DAFF0957D8FF0856D7FF0755D6FF0653D4FF0652 + D3FF0551D2FF044FD0FF044ED0FF034DCFFF024CCEFF024BCDFF024BCDFF024B + CDFF024BCDFF024BCDFF3C3C39FF000000000000000000000000000000000A41 + 81FF1965B3FFF8E8CCFFF8E7CBFFF8E7CBFFF8E7CBFFF8E7CAFFF8E6C9FFF8E6 + C9FFF8E6C9FFF8E5C8FFF8E5C7FFF8E5C7FFF6E0BBFFF5DAB3FFF6DCB6FF1865 + B3FF0A4081FF00000000000000000000000000000000DBDBDBFFDADADAFFE2A0 + 79FFEFAE85FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFEFAE85FFEEAE85FFFCC9 + A6FFEEAE85FFEFAE85FFEEAE85FFEFAE85FFECAE87FFF2E4DCFFE5C7B5FFD28E + 6AFFDADADAFFDADADAFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E6C8FFF9E7C8FFF9E6C8FFF9E6C8FFF8E6C9FFF9E7C9FFF8E5 + C7FFF5E1C3FFEACFB3FFE4C5AAFFE2C0A5FFDBB89CFFDBB89CFFD9B69BFFD9B7 + 9BFFE8CDAEFFE7C3A8FF0000000000000000000000005D5C52FF0D5FE0FF0D5F + DFFF0C5DDDFF0B5CDDFF0B5BDCFF0A59DAFF0958D9FF0857D8FF0754D6FF0753 + D5FF0652D4FF0550D2FF044FD1FF044ED0FF034DCEFF034CCEFF024BCDFF024B + CDFF024BCDFF024BCDFF3E3E3BFF000000000000000000000000000000000B41 + 82FF1966B5FFF8E8CEFFF8E8CDFFF8E8CCFFF8E8CCFFF8E7CBFFF8E7CAFFF8E7 + CAFFF8E7CAFFF8E6C9FFF8E5C8FFF8E5C8FFF8E2C3FFF6E0BCFFF5DDB5FF1967 + B5FF0B4282FF00000000000000000000000000000000DCDCDCFFDBDBDBFFE2A1 + 79FFEFAF86FFEEAF86FFEEAE85FFEFAF86FFEFAF86FFEFAF86FFEFAF86FFFCC9 + A6FFEEAE86FFEEAF86FFEFAF86FFEFAF86FFEFAF86FFECB58FFFF5EFEBFFCC88 + 64FFDBDBDBFFDBDBDBFF00000000000000000000000000000000000000000000 + 0000F9E9CFFFF8E7C9FFF8E7C9FFF9E7C9FFF8E6C9FFF9E7CAFFF9E6C9FFF8E5 + C8FFF4E0C1FFE8CBAFFFE2C2A7FFE4C7AEFFDFBFA6FFE1C3A8FFEAD2B6FFF5DF + BCFFE8C5AAFF483B3252000000000000000000000000626156FF0E61E1FF0E61 + E1FF0D60E0FF2A70E4FF3D79E6FF3270E0FF0B5BDCFF0A5ADBFF0958D9FF0857 + D8FF0856D7FF0753D5FF0652D4FF2769DFFF3B77E5FF306CDDFF044ECFFF034C + CEFF024BCDFF024BCDFF43433FFF000000000000000000000000000000000C44 + 87FF1B69B9FFF9E9D0FFF8E9CFFF9B9280FF9B9280FF9B927FFF9B927FFF9B92 + 7FFF9B927EFF9B917EFF9B917DFF9B917DFF9B917DFFBFB299FFF8E5C7FF1B69 + B8FF0C4487FF00000000000000000000000000000000DEDEDEFFDDDDDDFFE3A1 + 7AFFEFB187FFEFB188FFEFB087FFEFB088FFEFB187FFEFB187FFEFB188FFFCCA + A7FFEFB187FFEFB187FFEFB188FFF0B188FFEFB188FFEFB088FFEFB088FFF5EA + E3FFDDDDDDFFDDDDDDFF00000000000000000000000000000000000000000000 + 0000F9EAD1FFF9E7CBFFF9E8CBFFF9E8CBFFF9E7CCFFF9E8CBFFF9E8CBFFF6E6 + C9FFF1DDC0FFFCF9F7FFF8F2ECFFFDF7EEFFFAECD5FFF8E3C3FFF7E0BBFF483D + 33520000000000000000000000000000000000000000646458FF0E61E1FF0E61 + E1FF1F6BE4FF2E65D0FF133896FF133896FF2A5CBFFF0B5CDCFF0A5ADAFF0959 + D9FF0957D8FF0855D6FF1B62DCFF2D63CEFF173271FF133896FF2A5EC5FF034D + CFFF034CCEFF024CCEFF454540FF000000000000000000000000000000000D45 + 8AFF1B6AB9FFF9EAD1FFF9E9D0FF565544FF575545FF575544FF575644FF5755 + 44FF565544FF575545FF575544FF575644FF86806CFF9B917DFFF8E7CAFF1B69 + BAFF0D4589FF00000000000000000000000000000000DFDFDFFFDEDEDEFFE3A3 + 7BFFEFB288FFF0B188FFEFB288FFF0B188FFEFB188FFEFB188FFF0B288FFFCCA + A7FFEFB288FFF0B188FFEFB288FFEFB289FFF0B188FFEFB188FFF0B188FFEFD1 + BDFFDEDEDEFFDEDEDEFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CCFFF8E7CCFFF9E8CCFFF9E7CCFFF9E8CCFFF8E7CBFFF7E4 + C8FFF2DDC0FFFEFAF5FFFCF6ECFFFBF0DDFFF8E3C2FFF7DFBAFFEDD0B4FF0000 + 0000000000000000000000000000000000000000000067665AFF0E61E1FF0E61 + E1FF1565E2FF133CA0FF526D97FF506C97FF163A8BFF0C59D5FF0B5BDCFF0A5A + DBFF0A59DAFF0957D8FF115BD9FF123BA0FF4774C5FF506C97FF1742A4FF044E + D0FF034ECFFF034DCFFF484842FF000000000000000000000000000000000D47 + 8CFF1C6BBBFFF9EAD2FFF9EAD1FF908974FF908974FF908974FF908974FF9089 + 74FF908974FF908974FF908974FF908974FF5A5A48FF9B917EFFF8E7CBFF1C6A + BBFF0D468CFF00000000000000000000000000000000E1E1E1FFE0E0E0FFE2A3 + 7BFFEFB289FFF0B289FFF0B289FFF0B289FFF0B288FFF0B289FFEFB289FFFCCA + A7FFF0B289FFEFB289FFEFB289FFEFB289FFEFB289FFEFB289FFF0B289FFE9B7 + 98FFDFDFDFFFDFDFDFFF00000000000000000000000000000000000000000000 + 0000F9EBD2FFF9E8CDFFF9E8CDFFF9E8CCFFF9E8CDFFF8E8CDFFF9E7CBFFF6E4 + C9FFF1DCBFFFFCF4E7FFFBEFDCFFF9E8CEFFF7DFB9FFEFD3B7FF493E35520000 + 000000000000000000000000000000000000000000006B6B5DFF579BF0FF579B + F0FF579BF0FF579BF0FF46453DFF48473FFF345E98FF4C89D6FF579BF0FF579B + F0FF579BF0FF579BF0FF579BF0FF579BF0FF3D3C36FF48473FFF345E98FF579B + F0FF579BF0FF579BF0FF4B4B45FF000000000000000000000000000000000E49 + 90FF3786D5FF3786D5FF3786D5FFF5F6EFFFE3E5D2FFD3D6B6FFD3D6B6FFD3D6 + B6FFD3D6B6FFD3D6B6FFD3D6B6FFDDDFC7FF64634FFF2F5B83FF3786D5FF3786 + D5FF0E4990FF00000000000000000000000000000000E3E3E3FFE2E2E2FFE3A3 + 7CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFEBB2 + 90FFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A37CFFE3A3 + 7CFFE2E2E2FFE2E2E2FF00000000000000000000000000000000000000000000 + 0000F9EBD4FFF9E8CEFFF9E8CEFFF9E8CEFFF9E9CEFFF9E9CEFFF7E6CDFFF5E1 + C8FFF0DABEFFF7E2C0FFF7E1BEFFF7DFB9FF51463C5900000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF4078AFFF2380 + E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF1F6EC5FF2380E4FF2380 + E4FF2380E4FF2380E4FF2380E4FF2380E4FF3D3C36FF3D3C36FF164883FF2380 + E4FF2380E4FF3770A9FF4F4E47FF000000000000000000000000000000000B39 + 71C70E4A93FF0E4B92FF0F4A92FF686754FF686754FF686754FF72725EFF7272 + 5EFF72725EFF72725EFF686854FF686754FF455C6DFF183A5EFF0E4B92FF0F4A + 92FF0B3971C700000000000000000000000000000000E4E4E4FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3E3FFE3E3 + E3FFE3E3E3FFE3E3E3FF00000000000000000000000000000000000000000000 + 0000FAECD4FFF9E8CEFFF9E9CFFFF9E9CEFFF9E9CFFFF9E8CDFFF7E5CCFFF4E2 + C7FFF0DABFFFF7DFB9FFF7DFB9FFF1D8BCFF0000000000000000000000000000 + 000000000000000000000000000000000000000000006E6D5FFF6C6C5EFF6B6B + 5DFF6A695CFF69685BFFA9A98AFFB8B998FF32363FFF52544FFF636257FF6261 + 56FF626156FF5F5F54FF5E5E53FF5E5D53FFD4D4ABFFB8B998FF2C313BFF5858 + 4FFF58584FFF57564EFF79786DFF000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006C6B57FF646351FF6463 + 51FF646351FF646351FF6D6C58FF000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000 + 0000FAECD5FFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CFFFF9E9CEFFF7E6CCFFF6E3 + C9FFF1DDC2FFF4DCB8FFF1D8BCFF6A5E50720000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000515044C7515044C70000000000000000000000000000 + 000000000000000000000000000000000000686758FF515044C7000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004545389B73725DFF7372 + 5DFF73725DFF73725DFF4545389B000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000F1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8BCFFF1D8 + BCFFF1D8BCFF7266587900000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000060000000A00500000100010000000000804300000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFE003FF + E003FFE003FFE003FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01FFFF01 + FFFE01FFFE01FFFE01FFFE01FFF801FFF801FFF801FFF801FFF803FFF803FFF8 + 03FFF803FFF003FFF003FFF003FFF003FFE00FFFE00FFFE00FFFE00FF0001FF0 + 001FF0001FF0001FE0001FE0001FE0001FE0001F80007F80007F80007F80007F + 8000FF8000FF8000FF8000FF8001FF8001FF8001FF8001FF0000FF0000FF0000 + FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00001F00 + 001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F + 8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FFC000FFC000FFC000 + FFC000FFF03FFFF03FFFF03FFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000FFFFFF8007FFE00007000000FFFFFF80FFFFC00007000000010101807FFF + E00007000000010101803FFFE00007800001010101801FFFE000078000030101 + 01800FFFE00007C000030101018007FFE00007E00007010101E003FFE00007E0 + 0007010101F001FFF0000FF0000FEFEFEFF000FFF8001FF0001FEFEFEFFC007F + FE00FFF0001FE0000FFE0007FF00FFF8001FFFEFFFFE0003FE00FFFC003FFE00 + FFFF8001FE007FFE007FFE00FFFFC000FE007FFE007FFE00FFFFC000FE007FFE + 00FFFE00FFFFF020FE007FFF00FFFE00FFFFF070FE007FFF00FFFE00FFFFF038 + FE00FFFFC1FFFE00FFFFF01CFE00FFFFC3FFFE00FFFFF81FFF00FFFFC7FFFE00 + FFFFF80FFFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFE00FF800001FFFFFF00003FFE00FF000000FFFFFF8000FFFE00FF + 000000FFFFFF8000FFFE00FF0000008007F98000FFFE00FF0000008007F18000 + FFFE00FF0000008007F18000FFFE00FF000000801FE18000FFFE00FF00000080 + 3FC38000FFFE00FF000000801F038000FFFE00FF0000008000038000F8FE00FF + 0000008000038000F8FE00FF0000008000078000F8FE00FF00000080000FFFE3 + F8E0000300000080000FFFE3F8E0000700000080001FFFE3F8F0000F000000FC + 003FFFE1F0F8001F000000FE00FFFFE1F0FC003F000000FF01FFFFE0E0FE007F + 800003FFFFFFFFF001FF00FFFFFFFFFFFFFFFFF803FF81FFFFFFFFFFFFFFFFFC + 07FFC3FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFC00007FE003FFFFFFFC0000FE0001FFE003F000000C0000FE0001F + FFC0FF800003C0000FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C000 + 0FE0001FFFC1FF800003C0000FE0001FFFC1FF800003C0FC0FE0001FFFC1FF80 + 0003C0FC0FE0001FFFC1FF800003C0FC0FE0001FFFC1FF800001C0FC0FE0001F + FFC1FF800001C0FC0FE0001FFFC1FF800001C0FC0FE0001FFFC1FF800001C0C0 + 00E0001FFFC1FF800001C0C000E0001FFFC1FF800001C0C000E0001FF3C1E3FE + 007FC0F003E0001FF1C1E3FE007FC0F803800007F1C1C3FE007FC0F807800007 + F00003FFFFFFC0FE1F800007F00003FFFFFFE1FF1F800007F00003FFFFFFFFFF + 1FC0000FFFFFFFFFFFFFFFFFFFFF87FFF0000FFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFF801FF0000FFFFFFFC00001FFE0FFE00007FFFFFFC00001FFC07F + C00003FFFFFFC00001FFC03F800001FFFFFFC00001FF001F000000FFFFFFC000 + 01FE000F000000FFFFFFC00001FE0007000000FFFFFFC00001F8000300000080 + 0003C00001F00001000000800003C00001F00000000000800003C00001C00001 + 000000E00007C00001800003000000E00007C00001800003000000F0000FC000 + 0180000F000000F0000FC0000180001F000000F0000FC0000180001F000000F0 + 000FC0000182007F800001F0001FC000018200FF800003F8001FC000018000FF + E00007FFFFFFFFFFFFC003FFF0000FFFFFFFFFFFFFE007FFF0001FFFFFFFFFFF + FFF007FFFC003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000FF01C07FC0FFFFF87FFFFFC3FF07F0FF007FFFF87FFFFF83FF83E1F + F003FFFF87FFFFF83FF8181FC000FFF8007FFFE03FFC001FC0C0FFF8007FFFC0 + 3FFC001F81E0FFF8007FFC003FFC001F83F0FFFF03FFF0001FFE003F87F8FFFE + 00FFF0001FFE001F87F8FFFC00FFF0000FF8001F83F0FFF0003FF0000FE00003 + 81E0FFF0303FF0000FC00003C0C0C7F0781FF0000F800000E00047F0FC1FF000 + 1F800000F00007F1FE1FF0001FFF80FFF00007F1FE1FF0003FFF80FFFFF807F0 + FC1FFFC03FFFC1FFFFF807F0781FFFE03FFFC1FFFFE007F0303FFFF03FFFC3FF + FFE007F8007FFFF83FFFC3FFFFE007FC00FFFFFC3FFFE7FFFFFFFFFE00FFFFFE + 3FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00FFF03E0FC0 + 000FE00007FF81FFF07F0780001FF8003FFE00FFF07F0780001FF8003FFE007F + F03E0780001FF8003FFE007FF03C2780001FF8003FF8001FF01847F0001FF800 + 3FF0001FF00807F0001FF8003FF0001FF0000FF0001FF8003FF0000FF8001FF0 + 001FF8003FE00007FE003FF0001FF8003FE00007FF80FFF0001FF8003FC00003 + FF80FFF0001FF8003FC00003FF00FFF0001FF8003FC00003FE087FF0001FF800 + 3FC00003FE183FF0001FF8003FC00003FE183FF0001FF8003FC00003FC3E1FF0 + 0003F8003FC00003F87F1FF00003F8003FC00003F07F0FF00003F8003FC00003 + F1FF8FF00003F8003FFF81FFF1FFCFF00003F8003FFFC3FFF3FFEFF80003F800 + 3FFFC7FFFFFFFFFFFFFFF8003FFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003FFFFFFFFFFFFFC001FFC001FC00003E00003F0000FF0000F800003C00003 + F00007F00007800003800003E00003E00003800003800003C00003C000038000 + 03800003C00003C0000380000380000380000180000180000380000380000180 + 0001800003800003800001800001800003800003800001800001800003800003 + 8000018000018000038000038000018000018000038000038000018000018000 + 03800003800001800001800003800003C00003C00003800003800003E00003E0 + 0003800003800003F00007F00007800003800003F00007F00007800003800003 + FC001FFC001F800003800003FE003FFE003FC00003800003FF00FFFF00FFE000 + 07800003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00003E0 + 0003E00003FFFFFFFC001FFC001FFC001FFC007FF0000FF0000FF0000FF8003F + F00007F00007F00007F0001FE00003E00003E00003E0000FC00003C00003C000 + 03C00007C00003C00003C0000380000380000180000180000180000380000180 + 0001800001800003800001800001800001800003800001800001800001800003 + 8000018000018000018000038000018000018000018000038000018000018000 + 01800003800001800001800001800003C00003C00003C00003800003E00003E0 + 0003E00003800003F00007F00007F00007C00007F00007F00007F00007E0000F + FC001FFC001FFC001FF0001FFE003FFE003FFE003FF8003FFF00FFFF00FFFF00 + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFC3FFFFF8FFFC007FFFFFFFFF80E3FFF8FFF8003F + FFFFFFFF00C3FFF87FF0001FFFFFFFFE0001FFF81FE0000FFFFFFFFC0001FFF8 + 1FC00007FFFFFFF8000180000F800003800001F00003800003800003800001E0 + 0003800003800003800001E00003800001800003800001800001800001800003 + 8000018000018000018000038000018000018000038000038000018000018000 + 0780000380000180000180000F800003800001800001FFF81F800003FFFFFF80 + 0001FFF83F800003FFFFFF800001FFF87FC00007FFFFFF800001FFF8FFE0000F + FFFFFF801803FFFFFFF0001FFFFFFFC03803FFFFFFF8003FFFFFFFF03E07FFFF + FFFC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003F80 + 07FFFFFFFFFFFFFFFC003F83FFFF80007FFFFFFFF0001FC1FFFF80007FFFFFFF + F0000FE0FFFF80007FFFFFFF800003F03E7F8000639FFFFF800003F03C7F8000 + 439FE001800003F0187F8000418FE001800003FC007FC200018FF001800003FE + 007FE3000187F801800003FE007FFF000183F801800003FF803FC20001806001 + 800003FF001F800001C00001800003FE001F800001C00001C00003FC00078000 + 63E00001E00007FC000380007FF00001F0001FFC000080007FF00001F0001FFF + F80080007FF80019F0001FFFF801FE07FFFC003FF0001FFFFC03FC03FFFE007F + FC003FFFFF07F801FFFFFFFFFC003FFFFF0FF801FFFFFFFFFC003FFFFF1FF801 + FFFFFFFFFFFFFFFFFFFFFE07FFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF0 + 0007800001FFFFFFFE0003F00007C00003F07FFFFC0003F00007C00003E03FFF + F80003F00007C00003C01FFFF00003F00007C000038007FFE00003F00007C000 + 038007FFE00003F00007C000038003FFE00003F00007C000038000FFE00003F0 + 0007C000038000FFE00003F00007C00003C0007FE00003F00007C00003E0001F + E00003F00007C00003F0001FE00003F00007C00003F0000FE00003F00007C000 + 03FC0007E00003F00007C00003FE0003E00003F00007C00003FE0003E00003F0 + 0007C00003FF8003E00003F00007C00003FFC003E00003F00007C00003FFC003 + E00003F00007C00003FFF007FFFFFFF00007C00003FFF80FFFFFFFFE493FC000 + 03FFFC1FFFFFFFFE493FFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFFFFFC07FFFFF + FFFFFFFFFFFE001F807FFFFFFFFF800003FFF8FF807FFFFFFFFF800003FFF0FF + 807E1FFC003F800003FFE0FF807807000000800003FFC0FFC078070000008000 + 03FF80C7E07807000000800003F00083F87807000000800003C00003F87807FC + 003F800003C00003F87C07FF00FF800003C00003F87F07FF00FF800003C00007 + F87F87FF00FF800003C00007F87F87FF00FFFC0003C00003F87F87FFC3FFFC00 + 03C00003F80F87FFC3FFFC0003C00003F80187FFC3FFFC0003E00003F80007FF + C3FFFC0003FF80C7F80007FFC3FFFC0003FFC0FFF80007FFC3FFFC0003FFC0FF + FC0007FFC3FFFC0003FFF0FFFF0007FFFFFFFFFFFFFFF8FFFFE007FFFFFFFFFF + FFFFF8FFFFFF87FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC003FF00007FF + FFFFFFFFFFFFC3FFFC001FF0001FFFFFFFFF00FFFC001FFC003FFFFFFFFE00FF + FC001FFC003FF8000FFE007FFC001FFF00FFFF181FFE007FFC001F000000FF18 + 1FFF81FFFC001F000000FE101FF381CFFC001F000000FE007FE381C3FC001F00 + 0000FE00FFC00003FC001F000000FC00FF800001FC001F000000F8007F000000 + FC001F000000F8003F000000FC001F000000F0003F000000FC001F000000F000 + FF800003FC001F000000F003FFC381C3FC001F000000F007FFE381C7FC001F00 + 0000E03FFFFF81FFFC001F000000C0FFFFFE007FFC001F000000C3FFFFFE007F + FC001F000000FFFFFFFE00FFFC001F000000FFFFFFFF00FFFC001F000000FFFF + FFFF81FFFFFFFFFFFFFFFFFFFFFFC7FFC0000FFFFFFFFFFFFFFFFFFFE07FFFFF + FFFFFFFFFFFFFFFF803FFF80000383FFFFFFFFFF801FFFE0000F81FFFFFFFFFF + 860FFFE0000F81FFFFFFFFFF8F07FFE0000FC07FFF8000018707FFE0000FE03F + FF8000018207FFE0000FF03FFF800001C007FFE0000FF80FFF800001E007FFE0 + 000FFC07FF800001F003FFE0000FFE07FF800001F8001FE0000FFF00CF800001 + FC000FE0000FFF8007800001FFC007F0001FFFC007800001FFE003F8FE3FFFE0 + 03800001FFE001F8FE3FFFE001800001FFE061F8FE3FFFE001800001FFF0F0F8 + 7C3FFFF803800001FFF070F87C3FFFF803800001FFF820F8383FFFF003800001 + FFFC01FC007FFFF003800001FFFE03FE00FFFFFE1FFFFFFFFFFF03FF01FFFFFF + 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FFFFFFFFFFFFFF3FFFFFFF01FFFFFFFFFFFFFE3FFFFFFF01800000800001 + FE3FFFFFFE01800000800003F83FFFFFF801900081800003F03FFFFFF8039000 + 81800003F00001FFF003900081800003C00001FFE00F900081800003800001F0 + 001F900081800003800001E0001F90008180000380000180007F9000FF800003 + 8000018000FF9000FF8000038000018001FF9000FF800003E000010001FF9000 + FF800003F000010001FF9FC0FF800003F03FFF0001FF9FC0FF800003FC3FFF00 + 01FF9FC0FF800003FE3FFF0001FF9FC0FF800003FE3FFF0001FF9FC0FF800003 + FFFFFF8003FF9FC0FFFFFFFFFFFFFF8007FF9FC0FFFFFFFFFFFFFFC007FF9FFF + FFFFFFFFFFFFFFF03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 + 3FFFFFFFFFFFFFFF80007FC01FFFFFFFFF80000383FFFF800FFFFFFFFF800003 + 83FFFF8207FFFFFFFF80000381FFFF8F87FFFFFFFF800003807FFF8FC7FF8000 + 01800003C03FFF8FC7FF800001800003F00FFF8F07FF800001800003F000FF82 + 07FF800001800003F8003F8003FF800001800003FE001FE000FF800001800003 + FE0007F000FF800001800003FF0003FFC07F800001800003FF0003FFF01F8000 + 01800003FF0003FFF81F800001800003FF0203FFF80FEFFFFF800003FF8703FF + FE03E00003800003FF8707FFFF03FFFFFF800003FFC20FFFFF01FFFFFF800003 + FFE01FFFFF00FFFFFFFFFFFFFFE03FFFFF00FFFFFFFFFFFFFFF07FFFFF00FFFF + FFFFFFFFFFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFF00007FFFFFF800003FF + FFFFF0000FFFFFFFE00007FC007FF0000FF8001FE00007F8003FF0000FF8001F + E00007F0001FF0000FF8001FE00007E0000FF0000FF8001FE00007C00007F000 + 0FF8001FE00007800003F0000FF8001FE00007800003F0000FF8001FE0000780 + 0003F0000FF8001F800001800003F0000FF8001F800001800003F0000FF8001F + 800001800003F0000FF8001F800001800003F0000FF8001FC00003800003F000 + 0FF8001FE00007800003F0000FF8001FF0000F800003F0000FF8001FF8000F80 + 0003F0000FF8001FFC0007C00007F0000FF8001FFE0007E0000FF0000FF8001F + FF00FFF0001FF0000FF8001FFF81FFF8003FF0000FF8001FFFC3FFFC007FF000 + 0FF8001FFFFFFFFFFFFFF8001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFF + FFFFFC003FFE00FFF8001FFFFFFFFF81FFF6004FF0001FFFFFFFFF00FFE80003 + F0000FFFFFFFFE00FFC0001BC00003000000FC003FA00005C00003000000F800 + 1FE00005800003000000F0001FC00001800001000000E0000F803C0180000100 + 0000E00007807E01800001000000C0000380FF0180000100000080000380FF01 + 80000100000080000380FF0180000100000080000180FF018000010000008000 + 01807E01800001800001800001803C01800003800003800001C00001C00003E0 + 0007800001E00007C00003F0000F800001E00007E00007FFFFFF800001B0000F + F0001FFFFFFFC03803D80013F8001FFFFFFFF03E07CE0067FE007FFFFFFFFFFF + FFF300CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FFFF + BFFFFFFFFFF0001FF1FFFFFF8FFF000000F8001FF1FFFFFF8FFF800001F8001F + F1FFFFFF87FF800001F8001FF1FFFFFF87FF800001C00003F1FFFFFF83FF8000 + 01800003F1FFFFFFC3FF800001800003F1FFFFFFC0FF800001C03C03F1FFFFFF + C0FF800001C07E03F1FFFFFFC0FF80000180FF03F00003FE007F80000181FF01 + F00003FE003F80000181FF01F00003FE003F80000180FF01F00003FE001F8000 + 01C07E03F00003FE001F800001C03C03F00003FE01FF800001801803F00003FE + 00FF800001800003F00003FE00FF800001C00003F00003FE00FF803FFFF8001F + F00003FE007F807FFFF8001FF001F3FE003F80FFFFF8001FF0FFFFFE003FFFFF + FFFCC33FF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0003800001FF9FFF807E03E00007CC0033FF87FF807E03E00007CC0033FF87FF + 80FF03E00007C00003FF83FF807E03E00007C00003FF81FF803C03E00007CC00 + 33FF81FF803803E00007CC0033FF81FF880013E00007C00003FF81FFFC003FE0 + 0007C00003FF81FFFE007FE00007CC0033FF81FFFF00FFE00007C00003FF00FF + FF00FFE00007C00003FE007FFE00FFE00007C00003FE003FFC003FE00007CC00 + 33F8001F880013E00007C00003F0000F801803E00007C00003F00007803C03E0 + 0007CC0033C00003807E03E00007CC003380000180FF03E00007C00003800001 + 807E03E00007C00003800001807E03E0000FCC0033800001807E03E0001FCC00 + 33800001FFFFFFE0003FC00003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFC00003800001C1FFFFFC007F800003800001C0FFFFF8003F + 800003800001E03FFFF0001F800003800001F00FFFE0000F800003800001F007 + FFC00007800003800001F007FF800003800003800001F001FF80000380000380 + 0001F800FF800003800003800001F800FF800003800003800001FE003F800003 + 800003800001FE001F800003800003800001FF001F800003800003800001FFC0 + 07800003800003800001FFC003800003800003800001FFE00380000380000380 + 0001FFF801800003800003803FFFFFF801C00007800003803FFFFFFC01E0000F + 80000380FFFFFFFF01F0001FC00003FFFFFFFFFF83F8003FE00007FFFFFFFFFF + C3FC007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0000FFFF7FFF03E0780 + 0001F0001FFFC7FFE07E07E00007F0001FFF81FFC03C03E00007F0001FFF00FF + 803803E00007F0001FFE00FF800001E00007F0001FFC003F800001E00007F000 + 1FF8001F800001E00007F0001FF0001FC00003E00007F0001FE00007E00007E0 + 0007F0001FE00003F0000FE00007F0001FE00007F8001FE00007F0001FFE00FF + F8001FE00007F0001FFE00FFF0001FE00007F0001FFE00FFE00007E00007F000 + 1FFE00FFC00003E00007F0001FFE00FF800003E00007F0001FFE00FF800001E0 + 0007F0001FFE00FF800001E00007F0001FFE00FF801801E00007F0001FFE00FF + C03C03E00007F0001FFE00FFE07E07E0000FF0001FFE00FFF0FF0FE0001FF000 + 1FFE00FFFFFFFFE0003FF0001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + F0E3FF00FFFFFFFFFFF1FFFFF003FC001FE0000FFFE1FFFFF003F0000FE0000F + FFE1FFFFF003F00007E0000FFFC1FFFE001FE00003E0000FC00003FE001FC000 + 03E0000F800003FE001FC00003E0000F800001C0021F800001E0000F800001C0 + 021F800001E0000F800001C0021F800001E0000F800001C0021F800001E0000F + 800001C0021F800001E0000F800001C0021F800001E0000F800001C0021F8000 + 01E0000F800001C0021F800001E0000F800001C0021FC00003E0000F800001C0 + 021FE00003E0000F800001C0021FF00007E0000F800001C0021FF00007E0000F + 800001FE001FFC001FE0000F800001FE001FFE003FE0000F800003FE001FFF00 + FFF0001FFFFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFF00FFFC003FFF + FFFF800001FE003FF0000FFC03FFE00007F0000FE00007F803FFE00007F00007 + C00003F003FFE00007E00003800003E001FFE00007C00003800001C001FFE000 + 07800001800001C001FFE00007800001000000E000FFE00007800000000000F0 + 40FFE00007800000000800F0C0FFE00007800000003800FFE07FE00007800000 + 003C00FFE03FE00007800000003800FFF03FE00007800000000000FFF81FE000 + 07800000000000FFF81FE00007800000000000FFFC0FE00007800001800001FF + FF03E00007C00003800003FFFF03E00007C00003800003FFFF83E00007E00003 + E00007FFFFE1E00007F0000FF0000FFFFFFFF0000FF8001FF0001FFFFFFFFE00 + FFFE003FFE00FFFFFFFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8001FFF + FFFFFFFFFFFFFFFFF8001FFFFFFF800003C1F0FFF0000F840023800003C0007F + F00007840021800003C000FFE00003840021800003E3F8FFC01E038E00618000 + 03FFFC7FC00F03840021800003FFFC7F80078180000180000380003F8003C180 + 000180000380003F8001C180000180000380003F8100C180000180000380001F + 81804180000180000380001F81C00180000180000380001F81E0018000018000 + 0380001F81F001800001E0000780000FC0F803800001E0000780000FE0000380 + 0001E00007C00007E00007800001FFFFFFFFE007F00007800001FFFFFFFFFFC1 + F8001FFFFFFFFFFFFFFFFFE1FE003FFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80001FFFFFFFFFFFFFFFFFFFC00003FF + FFFF800003FFFFFFC0000780001FC00007FFFFFFC0000780000FC00007800003 + C00007800007C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800001C0000780 + 0003C00007800001C00007800003C00007800001C00007800003C00007800001 + C00007800003C00007800001C00007800003C00007800001C00007800003C000 + 07800001C00007800003C00007800001C00007800003C00007800003C0001F80 + 0003C00007E00007C0001F800003C00007F8001FC001FF800003C00007FFC01F + C001FF800003C00007FFFFFFC001FF800003C00007FFFFFFC001FFFFFFFFC000 + 07FFFFFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFF9FBFFFFFFFFFFFFFFFFFFFFF9 + F3FFFFFFFFFFFFFFE00007F8E3FF000000FFFFFFC00003F843FF000000800003 + C00003F803FF000000800003C00003F803FF000000800003C00003F803FF0000 + 00800003C00003F803FF000000800003C00003F803FF000000800003C00003F8 + 03FF000000800003C00003F803FF000000800003800001F803FF000000800003 + 800001F803FF000000800003800001F8001F000000800003800001F8001F0000 + 00800003FFC7FFF8001F000000800003FFC7FFF8001F000000800003FFC7FFF8 + 001F000000800003FFC7FFF8001F800001800003FFC7FFF8001FFE3CFF800003 + FFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00FFFFFFFFFFC7FFF8001FFE00 + FFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFE0000FFF + C1FFFFFFFFF8001FE0000FFE003FFE7E7FFE00FFE0000FFC001FF83C1FFE18FF + E0000FF8000FF03C1FFE38FFC00007F00003F0181FFE3CFFC00007C0C181F818 + 1FFC38FF800003C1C1C1F8001FFC38FF800003C1C1C1FE007FFC38FF800003C1 + C1E1FE007FFC38FF800003C3E3E1FE00FFFC38FF800003CFE3F9800001FC38FF + 800003CFE3FD800001FC38FF800003FF80FF800001FC38FF800003FF80FF8000 + 01FC38FF800003FFE3FFFE00FFFC30FF800003FFC1FFFE007FFC30FF800003FF + 80FFFC003FFC00FF800003FF80FFFC001FFC84FF800003FF88FFF8181FFCFCFF + 800003FF80FFF0381FFC38FFC06C07FF80FFF03C1FFC00FFF0C60FFFC0FFF83C + 1FFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + E003FC001FC0001F000000FFFF01FF00FFC00007000001FFFF01FF00FFC00007 + 000001FFFE01FF00FFC00007000001FFF801FF00FFC00007000001FFF803FF00 + FFC00007000001FFF003FF00FFC00007000001FFE00F800000C00007000001F0 + 001F800000C00007000000E0001F800000C0000700000080007F800000C00007 + 0000008000FF800000C000070000008001FF800000C000070000000001FF8000 + 00C000070000010001FF800000C000070000010001FF800000C0000700000100 + 001FFF00FFC0000700000100001FFF00FFC0000700000100001FFF00FFC00007 + 0000018003FFFF00FFC000070000018007FFFF00FFC00007000001C007FFFF00 + FFC00007FFFFFFF03FFFFF00FFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFE000F00 + 0000FC001FFFFFFFFC0007000000FC001F000000FA000FF0000FFC001F000001 + F00FFFF0000FFC001F800001F007FFF0000FFC001F800001E003FFF00007FC00 + 1F8000018003FFF00007FC001F8000018001FFF00007FC001FC000030001FFF0 + 0007FC001FE0000701807FF00003FC001FF0000F03C07FE00003FC003FFF00FF + 87E07FE00003000001FF81FF87F03FE00003000001FF00FFFFF81FE000018000 + 03FF00FFFFFC0F800001C00007FE00FFFFFE0F800001E0000FFE00FFFFFF0780 + 0001F0001FFE00FFFFFF87800001F8003FFE00FFFFFFC1800001FC007FFE00FF + FFFFE1800000FE00FFFF00FFFFFFF1800001FF01FFFF00FFFFFFF8800001FF83 + FFFF81FFFFFFFCE00003FFC7FFFFFFFFFFFFFFF0000FFFFFFF000001F8000FF0 + 000F000000000041FE003FFFF1FF800001800041000000FFF0FF800005800041 + 000000FFF07F80000180004180000100103F80000180004180000100000F8000 + 0180004180000100000780000180004180000100000380000180004180000100 + 0003800001800041800001000000800001800041800001000000800001800041 + 80000100000080000180006380000100000080000180007F8000010000018000 + 0180007F80000100000380000180007FE4000700000780000180007FFC003F00 + 000F80000180007FFC003FFFF01F80000180007FFC003FFFF03F800001803FFF + FC003FFFF07F800001803FFFFC003FFFF0FF800001803FFFFC003FFFF1FF8000 + 01803FFFFFFFFFFFF7FFFFFFFF807FFFFFFFFFF8003F88007FFFFFFF000000FE + 003F800000000000800001FE00FFFE00FF800001800000FE00FFFE00FF800001 + 800000FF01FFFE00FF800001800000FF01FFFE00FF800001800000000000FE00 + FF800001800000000000FE00FF80000180000000000000000180000180000000 + 0000000001800001800000000000000001800001800000000000000001800001 + 8000000000000000018000008000000000000000018000008000000000000000 + 01800000800001000000000001800000800001000000000001800000C0000300 + 0000FE00FF800000E00007000000FE00FF800000F0000F000000FE00FF800001 + F8001F000000FE00FF800001FC003F000000FE00FF801801FE007F000000FE00 + FF803E01FFFFFF000000FE00FFC1FFC1F0000FFFFFFFFFFFFFE0001FF0000FFF + FFFF800001E0001FFF83FFFFFFFFE00007FF8FFFFF00FFFFFFFFE00007FF0FFF + FE007F000001E00007FE0FFFFC003F000001F0000FFC0800F8003F800007F000 + 0FF00000F0000F800003F0000FE00000E0000F800003F0000FC00000C0000780 + 0001F0000FC00000800001800001E00007000000000001800001E00007000000 + 000001800001E00007000000FC003F800000E00007000000FC003F800000E000 + 07800000FC003F800000E00007C00000FC003F800007F0000FE00000FC003F80 + 0007F8001FF00000FC003F800007FC003FF80FFFFC003F80000FFE007FFC0FFF + FC003F803FFFFF007FFE0FFFFC003FFFFFFFFF807FFF0FFFFC003FFFFFFFFFC0 + 7FFF8FFFFC003FFFFFFFFFE7FFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFF00000080 + 0001000001E00001800001E00007000001C00001800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00003800001E000078000 + 01F00003800001E00007800001F00003800001E00007800001F00003800001E0 + 0007800001F00003800001E00007800001F00003800001E00007800001F00003 + 800001E00007800001F00003800001E00007800001F00001800001E000078000 + 01F00001800001E00007800001F00001800001E00007800001F00003800001E0 + 0007800001F0000F800001E00007800001F0000F800001E00007800001F0001F + 800001E00007800001F0007F800001E00007800001F0007F800001FF81FF8000 + 01F000FFFCFF3FFF81FFFFFFFFF003FF00000000000000000000000000000000 + 000000000000} + end + object ThreeLookAndFeelCol: TcxLookAndFeelController + Kind = lfStandard + NativeStyle = False + Left = 253 + Top = 12 + end + object ThreeColorBase: TcxStyleRepository + Left = 139 + Top = 80 + PixelsPerInch = 96 + object SHuangSe: TcxStyle + AssignedValues = [svColor, svFont, svTextColor] + Color = 4707838 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + TextColor = clBtnText + end + object SkyBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Default: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object QHuangSe: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object FontBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object TextSHuangSe: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + object FonePurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindow + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object FoneClMaroon: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clMaroon + end + object FoneRed: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clRed + end + object RowColor: TcxStyle + AssignedValues = [svColor] + Color = 16311512 + end + object handBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxBlue: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16711731 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + end + object cxStyleRepository1: TcxStyleRepository + Left = 265 + Top = 174 + PixelsPerInch = 96 + object cxStyle1: TcxStyle + AssignedValues = [svColor] + Color = clInactiveCaption + end + object cxStyle2: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 4707838 + TextColor = clBtnText + end + object cxStyle_gridRow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 16311512 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_gridFoot: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridHead: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_gridGroupBox: TcxStyle + AssignedValues = [svColor, svFont] + Color = clMoneyGreen + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_yellow: TcxStyle + AssignedValues = [svColor, svFont] + Color = 8454143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_Red: TcxStyle + AssignedValues = [svColor, svFont] + Color = clRed + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + end + object cxStyle_fontBlack: TcxStyle + AssignedValues = [svFont] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + end + object cxStyle_fontclFuchsia: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clFuchsia + end + object cxStyle_fontclPurple: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clPurple + end + object cxStyle_fontclGreen: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clGreen + end + object cxStyle_fontclBlue: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clBlue + end + object cxStyle_fontclTeal: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clTeal + end + object cxStyle_fontclOlive: TcxStyle + AssignedValues = [svFont, svTextColor] + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + TextColor = clOlive + end + end + object Timer1: TTimer + Enabled = False + Interval = 10000 + Left = 272 + Top = 104 + end +end diff --git a/样品仓库/U_DataLink.pas b/样品仓库/U_DataLink.pas new file mode 100644 index 0000000..3b417ab --- /dev/null +++ b/样品仓库/U_DataLink.pas @@ -0,0 +1,99 @@ +unit U_DataLink; + +interface + +uses + SysUtils, Classes, DB, ADODB, ImgList, Controls, cxStyles, cxLookAndFeels, + Windows,Messages,forms,OleCtnrs,DateUtils, ExtCtrls, AppEvnts, cxClasses, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; +var + DConString:String; {ȫַ} + server, dtbase, user, pswd: String; {ݿӲ} + DCurHandle:hwnd; //ǰ + DName:string ; //#û#// + DCode:string ; //#û#// + Ddatabase:string; //#ݿ#// + DTitCaption:string; //##// + DParameters1,DParameters2,DParameters3,DParameters4,DParameters5:string;// ⲿ + DParameters6,DParameters7,DParameters8,DParameters9,DParameters10:string;//ⲿ + OldDllApp:Tapplication; //ԭо + NewDllApp: Tapplication;//ǰ + MainApplication: Tapplication ; + DFormCode:integer; //ǰں + IsDelphiLanguage:integer; + DServerDate:TdateTime; //ʱ + DCompany:string; //˾ +type + TBPCK_DataLink = class(TDataModule) + AdoDataLink: TADOQuery; + ADOLink: TADOConnection; + ThreeImgList: TImageList; + ThreeLookAndFeelCol: TcxLookAndFeelController; + ThreeColorBase: TcxStyleRepository; + SHuangSe: TcxStyle; + SkyBlue: TcxStyle; + Default: TcxStyle; + QHuangSe: TcxStyle; + Red: TcxStyle; + FontBlue: TcxStyle; + TextSHuangSe: TcxStyle; + FonePurple: TcxStyle; + FoneClMaroon: TcxStyle; + FoneRed: TcxStyle; + RowColor: TcxStyle; + handBlack: TcxStyle; + cxBlue: TcxStyle; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + cxStyle2: TcxStyle; + cxStyle_gridRow: TcxStyle; + cxStyle_gridFoot: TcxStyle; + cxStyle_gridHead: TcxStyle; + cxStyle_gridGroupBox: TcxStyle; + cxStyle_yellow: TcxStyle; + cxStyle_Red: TcxStyle; + cxStyle_fontBlack: TcxStyle; + cxStyle_fontclFuchsia: TcxStyle; + cxStyle_fontclPurple: TcxStyle; + cxStyle_fontclGreen: TcxStyle; + cxStyle_fontclBlue: TcxStyle; + cxStyle_fontclTeal: TcxStyle; + cxStyle_fontclOlive: TcxStyle; + Timer1: TTimer; + procedure DataModuleDestroy(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + BPCK_DataLink: TBPCK_DataLink; + +implementation +{$R *.dfm} + + +procedure TBPCK_DataLink.DataModuleDestroy(Sender: TObject); +begin + BPCK_DataLink:=nil; +end; + +end. + + + + diff --git a/样品仓库/U_GetDllForm.pas b/样品仓库/U_GetDllForm.pas new file mode 100644 index 0000000..aba4157 --- /dev/null +++ b/样品仓库/U_GetDllForm.pas @@ -0,0 +1,344 @@ + +unit U_GetDllForm; +interface +uses + Windows, Messages, forms, OleCtnrs, DateUtils, SysUtils, ADODB,IniFiles, dxcore,activeX; + +function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;export;stdcall; +function ConnData():Boolean; +Function GetsysParam(muserId:pchar;fparam1:pchar):Boolean; + +implementation +uses + U_DataLink,U_BpRklist,U_Bpcklist,U_Bpkclist,U_ZDYHelp,U_BpkcCk,U_BpGdCklist,U_ZdyAttachmentBJ; + + ///////////////////////////////////////////////////////////////// + // ˵:ȡDllеô // + // ˵App>>Ӧó // + // FormH>>ôھ // + // FormID>>ں; // + // Language>>; // + // WinStyle>>ͣ // +///////////////////////////////////////////////////////////////// +function GetDllForm(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar; + DataBaseStr:PChar):hwnd; + +var + mnewHandle: hwnd; + mstyle: TFormStyle; // 0:Ӵ; 1ͨ + mstate: TWindowState; + mborderstyle: TFormBorderStyle; +begin + mNewHandle:=0; + DName:=GName; + DCode:=GName; + DdataBase:=DataBase; + DTitCaption:=Title; + DParameters1:=Parameters1; + DParameters2:=Parameters2; + DParameters3:=Parameters3; + DParameters4:=Parameters4; + DParameters5:=Parameters5; + DParameters6:=Parameters6; + DParameters7:=Parameters7; + DParameters8:=Parameters8; + DParameters9:=Parameters9; + DParameters10:=Parameters10; + + + MainApplication:=App; + DCurHandle:=FormH; + IsDelphiLanguage:= Language; + + Application:=TApplication(App); + DCurHandle:=0; + + + //ֵַ + SetLength(server, 255); + SetLength(dtbase, 255); + SetLength(user, 255); + SetLength(pswd, 255); + + server:='47.100.182.1,7781'; + dtbase:='guihuadata'; + user:='sa'; + // pswd:='flora@111011'; + pswd:='rightsoft@123'; + DConString := 'Provider=SQLOLEDB.1;Password='+pswd+';Persist Security Info=True;User ID=' + +user+';Initial Catalog='+dtbase+';Data Source='+server; + IF trim(DataBaseStr)<>''then + DConString := DataBaseStr; + // Parameters1:='Ʒֿ'; + // DParameters1:='1'; + + // if GetLinkDog(DCurHandle,DConString)<0 then application.Terminate; + if not ConnData() then + begin + result:=0; + exit; + end; + GetsysParam('',''); + // 崰 ״̬ + if WinStyle=0 then + begin + mstyle := fsMDIChild ; + mstate := wsMaximized ; + mborderstyle := bsSizeable; + end + else + begin + mstyle := fsNormal ; + mstate := wsNormal ; + mborderstyle := bsSizeable; + end; + + ///////////////////// + //ģ鴰 + case FormId of + -1: + begin + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BPCK'; + flagname:=''; + if ShowModal=1 then + begin + + end; + free; + end; + end; + -2: + begin + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BPRKTYPE'; + flagname:=''; + fnote:=true; + if ShowModal=1 then + begin + + end; + free; + end; + end; + -3: + begin + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='BPCKTYPE'; + flagname:=''; + fnote:=true; + if ShowModal=1 then + begin + + end; + free; + end; + end; + 10: // + begin + if frmBpRklist=nil then + begin + frmBpRklist:= TfrmBpRklist.Create(application.MainForm); + with frmBpRklist do + begin + caption:=Trim(Title); + fCkName:=trim(Parameters1); + fManage:=trim(DataBase); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBpRklist.BringToFront; + // + mNewHandle:=frmBpRklist.Handle; + + end; + + 20: // + begin + if frmBpCklist=nil then + begin + frmBpCklist:= TfrmBpCklist.Create(application.MainForm); + with frmBpCklist do + begin + caption:=Trim(Title); + fCkName:=trim(Parameters1); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBpCklist.BringToFront; + // + mNewHandle:=frmBpCklist.Handle; + + end; + 21: // + begin + if frmBpGdCklist=nil then + begin + frmBpGdCklist:= TfrmBpGdCklist.Create(application.MainForm); + with frmBpGdCklist do + begin + caption:=Trim(Title); + fManage:=trim(DataBase); + fCkName:=trim(Parameters1); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBpGdCklist.BringToFront; + // + mNewHandle:=frmBpGdCklist.Handle; + + end; + 30: // + begin + if frmBpkclist=nil then + begin + frmBpkclist:= TfrmBpkclist.Create(application.MainForm); + with frmBpkclist do + begin + caption:=Trim(Title); + fCkName:=trim(Parameters1); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBpkclist.BringToFront; + // + mNewHandle:=frmBpkclist.Handle; + + end; + 31: // + begin + if frmBpkcCk=nil then + begin + frmBpkcCk:= TfrmBpkcCk.Create(application.MainForm); + with frmBpkcCk do + begin + caption:=Trim(Title); + fCkName:=trim(Parameters1); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmBpkcCk.BringToFront; + // + mNewHandle:=frmBpkcCk.Handle; + + end; + + 40: //Ʒ + begin + if frmZdyAttachmentCB=nil then + begin + frmZdyAttachmentCB:= TfrmZdyAttachmentCB.Create(application.MainForm); + with frmZdyAttachmentCB do + begin + caption:=Trim(Title); + FormStyle := mstyle ; + windowState := mstate ; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmZdyAttachmentCB.BringToFront; + // + mNewHandle:=frmZdyAttachmentCB.Handle; + end; + end ; // end case + + Result:= mnewHandle; + // NewDllApp:=Application ; +end; +//=========================================================== + //ݿӳ +//=========================================================== +function ConnData():Boolean; +begin + if not Assigned(BPCK_DataLink) then + BPCK_DataLink:=TBPCK_DataLink.Create(Application); + Try + with BPCK_DataLink.ADOLink do + begin + if not Connected then + begin + Connected:=false; + ConnectionString:=DConString; + LoginPrompt:=false; + Connected:=true; + // BaseData10_DataLink.Timer1.Enabled:=true; + end; + end; + Result:=true; + Except + Result:=false; + application.MessageBox('ݿʧܣ','',mb_Ok+ MB_ICONERROR); + end; + +end; +//========================================================= + //ȡϵͳ +//========================================================= +Function GetsysParam(muserId:pchar;fparam1:pchar):Boolean; +begin + result:=true; + ////////////////////////////// + shortDateFormat:='yyyy-MM-dd'; + // + with BPCK_DataLink.AdoDataLink do + begin + close; + sql.Clear; + sql.Add('select getDate()as dt'); + open; + DServerDate:=fieldByName('dt').AsDatetime; + end; + result:=true; +end; + + +initialization + CoInitialize(nil); + dxUnitsLoader.Initialize; + +finalization + + BPCK_DataLink.Free; + application:=NewDllApp; + dxUnitsLoader.Finalize; + +end. + diff --git a/样品仓库/U_PackList.dfm b/样品仓库/U_PackList.dfm new file mode 100644 index 0000000..07cd745 --- /dev/null +++ b/样品仓库/U_PackList.dfm @@ -0,0 +1,648 @@ +object frmPackList: TfrmPackList + Left = 77 + Top = 101 + Width = 921 + Height = 634 + Caption = #25171#21253#20449#24687 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 913 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = Packaged_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton1: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 47 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 49 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 48 + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #23548#20986#30721#21333 + ImageIndex = 44 + OnClick = TBExportClick + end + object TBClose: TToolButton + Left = 402 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 913 + Height = 56 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 239 + Top = 12 + Width = 48 + Height = 12 + Caption = #23458#25143#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label1: TLabel + Left = 24 + Top = 12 + Width = 48 + Height = 12 + Caption = #25171#21253#26085#26399 + end + object Label2: TLabel + Left = 240 + Top = 32 + Width = 48 + Height = 12 + Caption = #35745#21010#21333#21495 + end + object Label4: TLabel + Left = 444 + Top = 12 + Width = 48 + Height = 12 + Caption = #20135#21697#21517#31216 + end + object khName: TEdit + Left = 292 + Top = 7 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = khNameChange + end + object begdate: TDateTimePicker + Left = 76 + Top = 8 + Width = 97 + Height = 20 + Date = 41009.831677152770000000 + Format = 'yyyy-MM-dd' + Time = 41009.831677152770000000 + TabOrder = 1 + end + object enddate: TDateTimePicker + Left = 76 + Top = 28 + Width = 97 + Height = 20 + Date = 41009.831677152770000000 + Format = 'yyyy-MM-dd' + Time = 41009.831677152770000000 + TabOrder = 2 + end + object orderNo: TEdit + Left = 292 + Top = 28 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = khNameChange + end + object cpName: TEdit + Left = 500 + Top = 8 + Width = 100 + Height = 20 + TabOrder = 4 + OnChange = khNameChange + end + object CheckBox1: TCheckBox + Left = 444 + Top = 32 + Width = 97 + Height = 17 + Caption = #20840#36873 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + OnClick = CheckBox1Click + end + end + object CXGrid1: TcxGrid + Left = 4 + Top = 89 + Width = 505 + Height = 316 + TabOrder = 2 + LookAndFeel.Kind = lfStandard + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellClick = TV1CellClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = V1qtyMi + end + item + Kind = skSum + Column = V1qtyjz + end + item + Kind = skSum + Column = V1qtyMa + end + item + Kind = skSum + Column = V1QtyMz + end + item + Kind = skSum + Column = V1QtyPZ + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.ContentOdd = Packaged_DataLink.cxStyle_gridRow + Styles.Footer = Packaged_DataLink.cxStyle_gridFoot + Styles.GroupByBox = Packaged_DataLink.cxStyle_gridGroupBox + Styles.Header = Packaged_DataLink.cxStyle_gridHead + object V1SSel: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.ImmediatePost = True + Properties.NullStyle = nssUnchecked + HeaderAlignmentHorz = taCenter + Width = 50 + end + object V1packID: TcxGridDBColumn + Caption = #21253#26465#30721 + DataBinding.FieldName = 'packID' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 74 + end + object V1FillTime: TcxGridDBColumn + Caption = #25171#21253#26085#26399 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object V1packNo: TcxGridDBColumn + Caption = #21253#21495 + DataBinding.FieldName = 'packNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 67 + end + object TV1KHName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'KHName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 80 + end + object TV1OrderNo: TcxGridDBColumn + Caption = #35745#21010#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 100 + end + object TV1CPName: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'CPName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 109 + end + object V1qtyMi: TcxGridDBColumn + Caption = #31859#25968 + DataBinding.FieldName = 'qtyMi' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = Packaged_DataLink.cxStyle_fontclBlue + Styles.Footer = Packaged_DataLink.cxStyle_fontclBlue + Styles.Header = Packaged_DataLink.cxStyle_fontclBlue + Width = 50 + end + object V1qtyjz: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'qtyjz' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Styles.Content = Packaged_DataLink.cxStyle_fontclFuchsia + Styles.Footer = Packaged_DataLink.cxStyle_fontclFuchsia + Styles.Header = Packaged_DataLink.cxStyle_fontclFuchsia + Width = 50 + end + object V1qtyMa: TcxGridDBColumn + Caption = #30721#25968 + DataBinding.FieldName = 'qtyMa' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object V1QtyMz: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'QtyMz' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + object V1QtyPZ: TcxGridDBColumn + Caption = #30382#37325 + DataBinding.FieldName = 'QtyPZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 50 + end + end + object CXGrid1L1: TcxGridLevel + GridView = TV1 + end + end + object cxSplitter1: TcxSplitter + Left = 641 + Top = 89 + Width = 8 + Height = 319 + HotZoneClassName = 'TcxMediaPlayer9Style' + AlignSplitter = salRight + Control = cxGrid2 + end + object cxGrid2: TcxGrid + Left = 649 + Top = 89 + Width = 264 + Height = 319 + Align = alRight + TabOrder = 4 + LookAndFeel.Kind = lfStandard + object tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource2 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + Column = cxGridDBqtyMi + end + item + Kind = skSum + Column = cxGridDBqtyjz + end + item + Kind = skSum + Column = cxGridDBqtyMa + end + item + Kind = skSum + Column = cxGridDBQtyMz + end + item + Kind = skSum + Column = cxGridDBQtyPZ + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsBehavior.FocusCellOnCycle = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.ContentOdd = Packaged_DataLink.cxStyle_gridRow + Styles.Footer = Packaged_DataLink.cxStyle_gridFoot + Styles.GroupByBox = Packaged_DataLink.cxStyle_gridGroupBox + Styles.Header = Packaged_DataLink.cxStyle_gridHead + object cxGridDBTMID: TcxGridDBColumn + Caption = #21367#26465#30721 + DataBinding.FieldName = 'TMID' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object cxGridDBJH: TcxGridDBColumn + Caption = #21367#21495 + DataBinding.FieldName = 'JH' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object cxGridDBColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Options.Focusing = False + Width = 60 + end + object cxGridDBHX: TcxGridDBColumn + Caption = #33457#22411 + DataBinding.FieldName = 'HX' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 60 + end + object cxGridDBqtyMi: TcxGridDBColumn + Caption = #31859#25968 + DataBinding.FieldName = 'qtyMi' + HeaderAlignmentHorz = taCenter + Styles.Content = Packaged_DataLink.cxStyle_fontclBlue + Styles.Footer = Packaged_DataLink.cxStyle_fontclBlue + Styles.Header = Packaged_DataLink.cxStyle_fontclBlue + Width = 50 + end + object cxGridDBqtyjz: TcxGridDBColumn + Caption = #20844#26020#25968 + DataBinding.FieldName = 'qtyjz' + HeaderAlignmentHorz = taCenter + Styles.Content = Packaged_DataLink.cxStyle_fontclFuchsia + Styles.Footer = Packaged_DataLink.cxStyle_fontclFuchsia + Styles.Header = Packaged_DataLink.cxStyle_fontclFuchsia + Width = 50 + end + object cxGridDBqtyMa: TcxGridDBColumn + Caption = #30721#25968 + DataBinding.FieldName = 'qtyMa' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object cxGridDBQtyMz: TcxGridDBColumn + Caption = #27611#37325 + DataBinding.FieldName = 'QtyMz' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object cxGridDBQtyPZ: TcxGridDBColumn + Caption = #30382#37325 + DataBinding.FieldName = 'QtyPZ' + HeaderAlignmentHorz = taCenter + Width = 50 + end + end + object cxGridLevel1: TcxGridLevel + GridView = tv2 + end + end + object cxGrid3: TcxGrid + Left = 0 + Top = 408 + Width = 913 + Height = 194 + Align = alBottom + TabOrder = 5 + Visible = False + object TV3: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource3 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object TV3ORDERNO: TcxGridDBColumn + Caption = 'ORDER NO' + DataBinding.FieldName = 'ORDERNO' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 70 + end + object TV3BALNO: TcxGridDBColumn + Caption = 'BAL NO' + DataBinding.FieldName = 'PackNo' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 60 + end + object TV3TYpe: TcxGridDBColumn + DataBinding.FieldName = 'TYPE' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 60 + IsCaptionAssigned = True + end + object TV3DESNO: TcxGridDBColumn + Caption = 'DES NO' + DataBinding.FieldName = 'HX' + HeaderAlignmentHorz = taCenter + Options.CellMerging = True + Width = 60 + end + object TV31: TcxGridDBColumn + Caption = '1' + DataBinding.FieldName = 'ROW1' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV32: TcxGridDBColumn + Caption = '2' + DataBinding.FieldName = 'ROW2' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV33: TcxGridDBColumn + Caption = '3' + DataBinding.FieldName = 'ROW3' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV34: TcxGridDBColumn + Caption = '4' + DataBinding.FieldName = 'ROW4' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV35: TcxGridDBColumn + Caption = '5' + DataBinding.FieldName = 'ROW5' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV36: TcxGridDBColumn + Caption = '6' + DataBinding.FieldName = 'ROW6' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV37: TcxGridDBColumn + Caption = '7' + DataBinding.FieldName = 'ROW7' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV38: TcxGridDBColumn + Caption = '8' + DataBinding.FieldName = 'ROW8' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV39: TcxGridDBColumn + Caption = '9' + DataBinding.FieldName = 'ROW9' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV310: TcxGridDBColumn + Caption = '10' + DataBinding.FieldName = 'ROW10' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object TV3TTL: TcxGridDBColumn + Caption = 'TTL' + DataBinding.FieldName = 'ROWSUM' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGrid3Level1: TcxGridLevel + GridView = TV3 + end + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 356 + Top = 181 + end + object ADOQuerymain: TADOQuery + Connection = Packaged_DataLink.ADOLink + Parameters = <> + SQL.Strings = ( + 'SELECT * FROM JD_Pack A' + '' + '' + '' + '' + '') + Left = 412 + Top = 164 + end + object ADOQuerysub: TADOQuery + Connection = Packaged_DataLink.ADOLink + Parameters = <> + Left = 684 + Top = 188 + end + object DataSource2: TDataSource + DataSet = ADOQuerysub + Left = 720 + Top = 248 + end + object ADOQueryPrint: TADOQuery + Connection = Packaged_DataLink.ADOLink + Parameters = <> + Left = 292 + Top = 408 + end + object DataSource3: TDataSource + DataSet = ADOQueryPrint + Left = 324 + Top = 408 + end + object ADOQueryCMD: TADOQuery + Connection = Packaged_DataLink.ADOLink + Parameters = <> + Left = 644 + Top = 45 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 468 + Top = 216 + end +end diff --git a/样品仓库/U_ProductOrderList.dfm b/样品仓库/U_ProductOrderList.dfm new file mode 100644 index 0000000..4f3f6a4 --- /dev/null +++ b/样品仓库/U_ProductOrderList.dfm @@ -0,0 +1,544 @@ +object frmProductOrderList: TfrmProductOrderList + Left = 134 + Top = 115 + Width = 1094 + Height = 600 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1265 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #36873#25321 + ImageIndex = 106 + Visible = False + OnClick = ToolButton3Click + end + object TBExport: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + Visible = False + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + OnClick = TBPrintClick + end + object TBClose: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1265 + Height = 67 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 179 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 318 + Top = 15 + Width = 26 + Height = 12 + Caption = #23458#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 179 + Top = 39 + Width = 39 + Height = 12 + Caption = #36319#21333#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 318 + Top = 39 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 441 + Top = 39 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 441 + Top = 15 + Width = 52 + Height = 12 + Caption = #20135#21697#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 589 + Top = 39 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 589 + Top = 15 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNoM: TEdit + Tag = 2 + Left = 220 + Top = 11 + Width = 77 + Height = 20 + TabOrder = 2 + OnChange = OrderNoMChange + end + object CustomerNoName: TEdit + Tag = 2 + Left = 347 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 3 + OnChange = OrderNoMChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 220 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoMChange + end + object PRTColor: TEdit + Tag = 2 + Left = 347 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 5 + OnChange = OrderNoMChange + end + object MPRTCodeName: TEdit + Tag = 2 + Left = 495 + Top = 35 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoMChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 495 + Top = 11 + Width = 76 + Height = 20 + TabOrder = 7 + OnChange = OrderNoMChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 618 + Top = 35 + Width = 56 + Height = 20 + TabOrder = 8 + OnChange = OrderNoMChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 618 + Top = 11 + Width = 56 + Height = 20 + TabOrder = 9 + OnChange = OrderNoMChange + end + end + object cxGrid1: TcxGrid + Left = 16 + Top = 104 + Width = 1249 + Height = 369 + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = BPCK_DataLink.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 72 + end + object v1OrdDefStr1: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'OrdDefStr1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 90 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #36319#21333#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 73 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 72 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 69 + end + object v1MPRTMF: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 70 + end + object v1MPRTKZ: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + Options.Focusing = False + Width = 54 + end + object v1PRTColor: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 63 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 67 + end + object v1PRTPrice: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'PRTPrice' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 71 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 288 + Top = 184 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/样品仓库/U_ProductOrderList.pas b/样品仓库/U_ProductOrderList.pas new file mode 100644 index 0000000..9697ab0 --- /dev/null +++ b/样品仓库/U_ProductOrderList.pas @@ -0,0 +1,527 @@ +unit U_ProductOrderList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI + ,IniFiles; + +type + TfrmProductOrderList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBPrint: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + Tv1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNoM: TEdit; + TBExport: TToolButton; + v1OrderNo: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1PRTColor: TcxGridDBColumn; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + v1CustomerNoName: TcxGridDBColumn; + Label4: TLabel; + CustomerNoName: TEdit; + v1MPRTCodeName: TcxGridDBColumn; + v1MPRTMF: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + v1PRTPrice: TcxGridDBColumn; + Label5: TLabel; + OrdPerson1: TEdit; + Label7: TLabel; + PRTColor: TEdit; + Label8: TLabel; + MPRTCodeName: TEdit; + v1MPRTKZ: TcxGridDBColumn; + v1OrdDefStr1: TcxGridDBColumn; + Label11: TLabel; + OrdDefStr1: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + v1Column4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBExportClick(Sender: TObject); + procedure TBPrintClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoMChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + procedure ReadINIFile(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderList: TfrmProductOrderList; + +implementation +uses + U_DataLink,U_Fun10; + + +{$R *.dfm} + +procedure TfrmProductOrderList.FormDestroy(Sender: TObject); +begin + frmProductOrderList:=nil; +end; + +procedure TfrmProductOrderList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderList.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ָʾб',Tv1,'ָʾ') + else + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderList.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('select A.*,B.*,A.OrderNo OrderNoM from JYOrder_Main A left join JYOrder_Sub B on A.MainId=B.MainId '); + SQL.Add('where OrdDate>=:begdate and OrdDate<:enddate'); + if Trim(DParameters1)<>'' then + begin + sql.Add(' and A.Filler='''+Trim(DName)+''''); + end; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderList.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderList.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + if FCloth<>1 then + ReadCxGrid('ָʾб',Tv1,'ָʾ') + else + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + + + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderList.DelData():Boolean; +begin + try + Result:=false; + ADOQueryCmd.Connection.BeginTrans; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); + ExecSQL; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + if IsEmpty then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + end; + if Trim(Order_Main.fieldbyname('SubId').AsString)='' then + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + ExecSQL; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + Result:=True; + except + ADOQueryCmd.Connection.RollbackTrans; + Result:=False; + Application.MessageBox('ɾ쳣','ʾ',0); + end; +end; + +procedure TfrmProductOrderList.TBExportClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + // SelExportData(Tv1,ADOQueryMain,'ָʾб'); +end; + +procedure TfrmProductOrderList.TBPrintClick(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*,B.*,PRTColorEng=(select Note from KH_Zdy CC where ZdyName=B.PRTColor and CC.Type=''OrdColor'' ),ML='' '' '); + SQL.Add(',CPQty=(select isnull(Sum(PRTOrderQty),0) from JYOrder_Sub C where C.MainId=A.MainId)'); + sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.MainId '); + sql.Add(' and A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); + Open; + end; + SCreateCDS20(ADOQueryPrint,CDS_Print); + SInitCDSData20(ADOQueryPrint,CDS_Print); + i:=ADOQueryPrint.RecordCount; + ADOQueryPrint.First; + if i<14 then + begin + for j:=1 to 19-i do + begin + with CDS_Print do + begin + Append; + FieldByName('ML').Value:=' '; + Post; + end; + end; + end; + with CDS_Print do + begin + Append; + FieldByName('Note').Value:=Trim(Order_Main.fieldbyname('Note').AsString); + FieldByName('OrdDefStr10').Value:=Trim(Order_Main.fieldbyname('OrdDefStr10').AsString); + FieldByName('OrdDefStr11').Value:=Trim(Order_Main.fieldbyname('OrdDefStr11').AsString); + FieldByName('OrdDefStr12').Value:=Trim(Order_Main.fieldbyname('OrdDefStr12').AsString); + FieldByName('OrdDefStr13').Value:=Trim(Order_Main.fieldbyname('OrdDefStr13').AsString); + FieldByName('OrdDefStr14').Value:=Trim(Order_Main.fieldbyname('OrdDefStr14').AsString); + FieldByName('OrdDefStr15').Value:=Trim(Order_Main.fieldbyname('OrdDefStr15').AsString); + FieldByName('OrdDefStr16').Value:=Trim(Order_Main.fieldbyname('OrdDefStr16').AsString); + FieldByName('OrdDefStr17').Value:=Trim(Order_Main.fieldbyname('OrdDefStr17').AsString); + FieldByName('OrdDefStr18').Value:=Trim(Order_Main.fieldbyname('OrdDefStr18').AsString); + FieldByName('OrdDefStr19').Value:=Trim(Order_Main.fieldbyname('OrdDefStr19').AsString); + FieldByName('OrdDefStr20').Value:=Trim(Order_Main.fieldbyname('OrdDefStr20').AsString); + FieldByName('OrdDefStr21').Value:=Trim(Order_Main.fieldbyname('OrdDefStr21').AsString); + FieldByName('OrdPerson1').Value:=Trim(Order_Main.fieldbyname('OrdPerson1').AsString); + FieldByName('OrdPerson2').Value:=Trim(Order_Main.fieldbyname('OrdPerson2').AsString); + FieldByName('OrdPerson3').Value:=Trim(Order_Main.fieldbyname('OrdPerson3').AsString); + FieldByName('OrdPerson4').Value:=Trim(Order_Main.fieldbyname('OrdPerson4').AsString); + FieldByName('Filler').Value:=Trim(Order_Main.fieldbyname('Filler').AsString); + FieldByName('Chker').Value:=Trim(Order_Main.fieldbyname('Chker').AsString); + FieldByName('ML').Value:=' '; + Post; + end; + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; +end; + +procedure TfrmProductOrderList.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + InitGrid(); +end; + +procedure TfrmProductOrderList.OrderNoMChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderList.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderList.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderList.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderList.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderList.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderList.ToolButton3Click(Sender: TObject); +begin + ModalResult:=1; +end; + +procedure TfrmProductOrderList.ReadINIFile(); +var + programIni:Tinifile; //ļ + FileName:string; +begin + FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; + programIni:=Tinifile.create(FileName); + server:=programIni.ReadString('SERVER','ַ','127.0.0.1'); + programIni.Free; +end; + +end. diff --git a/样品仓库/U_ProductOrderNewList.dfm b/样品仓库/U_ProductOrderNewList.dfm new file mode 100644 index 0000000..6b9d8f7 --- /dev/null +++ b/样品仓库/U_ProductOrderNewList.dfm @@ -0,0 +1,682 @@ +object frmProductOrderNewList: TfrmProductOrderNewList + Left = 113 + Top = 117 + Width = 1094 + Height = 600 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1078 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton3Click + end + object TBClose: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1078 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 239 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 239 + Top = 39 + Width = 40 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 314 + Top = 99 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 453 + Top = 16 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 588 + Top = 103 + Width = 54 + Height = 12 + Caption = #25104' '#20998 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 693 + Top = 15 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 453 + Top = 39 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 99 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 729 + Top = 103 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 437 + Top = 99 + Width = 52 + Height = 12 + Caption = #20844#21496#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 861 + Top = 115 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 861 + Top = 91 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 85 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 280 + Top = 11 + Width = 85 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 280 + Top = 35 + Width = 85 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object JGFactoryName: TEdit + Tag = 2 + Left = 343 + Top = 95 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 507 + Top = 11 + Width = 85 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTCF: TEdit + Tag = 2 + Left = 641 + Top = 99 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object PRTColor: TEdit + Tag = 2 + Left = 722 + Top = 11 + Width = 85 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object PRTCodeName: TEdit + Tag = 2 + Left = 507 + Top = 35 + Width = 85 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 220 + Top = 95 + Width = 77 + Height = 20 + TabOrder = 9 + OnChange = OrderNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 758 + Top = 99 + Width = 76 + Height = 20 + TabOrder = 10 + OnChange = OrderNoChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 491 + Top = 95 + Width = 76 + Height = 20 + TabOrder = 11 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 890 + Top = 111 + Width = 56 + Height = 20 + TabOrder = 12 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 890 + Top = 87 + Width = 56 + Height = 20 + TabOrder = 13 + OnChange = OrderNoChange + end + object SYRName: TComboBox + Tag = 2 + Left = 433 + Top = 120 + Width = 96 + Height = 20 + Style = csDropDownList + Ctl3D = False + ItemHeight = 12 + ParentCtl3D = False + TabOrder = 14 + Items.Strings = ( + #20426#21326#32442#32455 + #19968#31859#32442#32455 + #40857#36816#32442#32455) + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 125 + Width = 1078 + Height = 424 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1PRTOrderQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = BPCK_DataLink.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 72 + end + object v1SYRName: TcxGridDBColumn + Caption = #20844#21496#25260#22836 + DataBinding.FieldName = 'SYRName' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 68 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 73 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 69 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column2: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'PRTRollNum' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 60 + end + object v1Column8: TcxGridDBColumn + Caption = #22791#27880#21450#35201#27714 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 96 + end + object v1Column3: TcxGridDBColumn + Caption = #21457#36135#22320#22336 + DataBinding.FieldName = 'FHAddress' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column5: TcxGridDBColumn + Caption = #32852#31995#26041#24335 + DataBinding.FieldName = 'LXFS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1EditTime: TcxGridDBColumn + Caption = #20462#25913#26085#26399 + DataBinding.FieldName = 'EditTime' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1ordderNote1: TcxGridDBColumn + Caption = #20462#25913#22791#27880 + DataBinding.FieldName = 'orddefNote1' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 105 + Width = 1078 + Height = 20 + Align = alTop + Style = 9 + TabIndex = 0 + TabOrder = 3 + Tabs.Strings = ( + #26410#20986#24211 + #24050#20986#24211 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectBottom = 20 + ClientRectRight = 1078 + ClientRectTop = 19 + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/样品仓库/U_ProductOrderNewList.pas b/样品仓库/U_ProductOrderNewList.pas new file mode 100644 index 0000000..797a859 --- /dev/null +++ b/样品仓库/U_ProductOrderNewList.pas @@ -0,0 +1,472 @@ +unit U_ProductOrderNewList; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus, cxPC; + +type + TfrmProductOrderNewList = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Label4: TLabel; + CustomerNoName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + Label2: TLabel; + JGFactoryName: TEdit; + Label5: TLabel; + OrdPerson1: TEdit; + Label6: TLabel; + MPRTCF: TEdit; + Label7: TLabel; + PRTColor: TEdit; + Label8: TLabel; + PRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + OrdDefStr1: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column4: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1EditTime: TcxGridDBColumn; + v1ordderNote1: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + v1SYRName: TcxGridDBColumn; + cxTabControl1: TcxTabControl; + SYRName: TComboBox; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + procedure cxTabControl1Change(Sender: TObject); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + { Private declarations } + public + FFInt,FCloth:Integer; + fsyrName:string; + { Public declarations } + end; + +var + frmProductOrderNewList: TfrmProductOrderNewList; + +implementation +uses + U_DataLink,U_Fun10; + + +{$R *.dfm} + +procedure TfrmProductOrderNewList.FormDestroy(Sender: TObject); +begin + frmProductOrderNewList:=nil; +end; + +procedure TfrmProductOrderNewList.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewList.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderNewList.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ָʾб10',Tv1,'ָʾ') + else + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderNewList.InitGrid(); +var + strwhere:string; +begin + strwhere:=''; + + strwhere:=strwhere+' and isnull(B.status,''0'')='''+inttostr(1)+''''; + + strwhere:=strwhere+' and isnull(B.orderType,''0'')='''''; + strwhere:=strwhere+' and isnull(B.syrName,''0'')='''+fsyrName+''''; + IF cxTabControl1.TabIndex=0 then + strwhere:=strwhere+' and not exists(select mainID from BP_inout X where X.mainID=A.mainID) '; + IF cxTabControl1.TabIndex=1 then + strwhere:=strwhere+' and exists(select mainID from BP_inout X where X.mainID=A.mainID) '; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + parameters.ParamByName('WSql').Value:=strwhere; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + TBFind.Click; + finally + ADOQueryMain.EnableControls; + TBFind.Click; + end; +end; +procedure TfrmProductOrderNewList.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderNewList.InitForm(); +begin + + if FCloth<>1 then + ReadCxGrid('ָʾб10',Tv1,'ָʾ') + else + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + + if FCloth=1 then + begin + v1Column4.Visible:=True; + + end else + begin + v1Column4.Visible:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp); + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + InitGrid(); +end; + +procedure TfrmProductOrderNewList.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderNewList.DelData():Boolean; +begin +end; + +procedure TfrmProductOrderNewList.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + begin + InitGrid(); + end; +end; + +procedure TfrmProductOrderNewList.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewList.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewList.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewList.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewList.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewList.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewList.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewList.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewList.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmProductOrderNewList.OrderNoKeyPress(Sender: TObject; + var Key: Char); +var + fsj:string; +begin +{ if Key=#13 then + begin + if Length(Trim(OrderNoM.Text))<4 then Exit; + fsj:='%'+Trim(OrderNoM.Text)+'%'; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + if Trim(DParameters1)<>'Ȩ' then + begin + Parameters.ParamByName('WSql').Value:=' and A.Filler='''+Trim(DName)+''''; + end else + begin + Parameters.ParamByName('WSql').Value:=' and A.OrderNo like '''+fsj+''''; + end; + Parameters.ParamByName('begdate').Value:='1900-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; } +end; + +procedure TfrmProductOrderNewList.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ToolButton3.Click; +end; + +procedure TfrmProductOrderNewList.cxTabControl1Change(Sender: TObject); +begin + InitGrid(); +end; + +end. diff --git a/样品仓库/U_ProductOrderNewListSEl.dfm b/样品仓库/U_ProductOrderNewListSEl.dfm new file mode 100644 index 0000000..a44c034 --- /dev/null +++ b/样品仓库/U_ProductOrderNewListSEl.dfm @@ -0,0 +1,632 @@ +object frmProductOrderNewListSEl: TfrmProductOrderNewListSEl + Left = 113 + Top = 117 + Width = 1094 + Height = 600 + Caption = #29983#20135#25351#31034#21333 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1078 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + Caption = #36873#25321 + ImageIndex = 106 + OnClick = ToolButton3Click + end + object TBClose: TToolButton + Left = 185 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1078 + Height = 65 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 23 + Top = 15 + Width = 52 + Height = 12 + Caption = #21046#21333#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label3: TLabel + Left = 239 + Top = 15 + Width = 39 + Height = 12 + Caption = #35746#21333#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 239 + Top = 39 + Width = 40 + Height = 12 + Caption = #23458' '#25143 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 314 + Top = 99 + Width = 26 + Height = 12 + Caption = #26579#21378 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 453 + Top = 16 + Width = 53 + Height = 12 + Caption = #19994' '#21153' '#21592 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 588 + Top = 103 + Width = 54 + Height = 12 + Caption = #25104' '#20998 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 693 + Top = 15 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 453 + Top = 39 + Width = 52 + Height = 12 + Caption = #20013#25991#21517#31216 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 179 + Top = 99 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label10: TLabel + Left = 729 + Top = 103 + Width = 26 + Height = 12 + Caption = #35268#26684 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label11: TLabel + Left = 437 + Top = 99 + Width = 52 + Height = 12 + Caption = #20844#21496#32534#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label12: TLabel + Left = 861 + Top = 115 + Width = 26 + Height = 12 + Caption = #20811#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label13: TLabel + Left = 861 + Top = 91 + Width = 26 + Height = 12 + Caption = #38376#24133 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 76 + Top = 35 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object OrderNo: TEdit + Tag = 2 + Left = 280 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = OrderNoChange + OnKeyPress = OrderNoKeyPress + end + object CustomerNoName: TEdit + Tag = 2 + Left = 280 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 3 + OnChange = OrderNoChange + end + object JGFactoryName: TEdit + Tag = 2 + Left = 343 + Top = 95 + Width = 76 + Height = 20 + TabOrder = 4 + OnChange = OrderNoChange + end + object OrdPerson1: TEdit + Tag = 2 + Left = 507 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 5 + OnChange = OrderNoChange + end + object MPRTCF: TEdit + Tag = 2 + Left = 641 + Top = 99 + Width = 76 + Height = 20 + TabOrder = 6 + OnChange = OrderNoChange + end + object PRTColor: TEdit + Tag = 2 + Left = 722 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 7 + OnChange = OrderNoChange + end + object PRTCodeName: TEdit + Tag = 2 + Left = 507 + Top = 35 + Width = 100 + Height = 20 + TabOrder = 8 + OnChange = OrderNoChange + end + object ConNo: TEdit + Tag = 2 + Left = 220 + Top = 95 + Width = 77 + Height = 20 + TabOrder = 9 + OnChange = OrderNoChange + end + object MPRTSpec: TEdit + Tag = 2 + Left = 758 + Top = 99 + Width = 76 + Height = 20 + TabOrder = 10 + OnChange = OrderNoChange + end + object OrdDefStr1: TEdit + Tag = 2 + Left = 491 + Top = 95 + Width = 76 + Height = 20 + TabOrder = 11 + OnChange = OrderNoChange + end + object MPRTKZ: TEdit + Tag = 2 + Left = 890 + Top = 111 + Width = 56 + Height = 20 + TabOrder = 12 + OnChange = OrderNoChange + end + object MPRTMF: TEdit + Tag = 2 + Left = 890 + Top = 87 + Width = 56 + Height = 20 + TabOrder = 13 + OnChange = OrderNoChange + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 97 + Width = 1078 + Height = 424 + Align = alTop + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + OnCellDblClick = Tv1CellDblClick + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = <> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsData.Editing = False + OptionsView.GroupByBox = False + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.OnGetContentStyle = Tv1StylesGetContentStyle + Styles.Header = BPCK_DataLink.Default + object v1Column4: TcxGridDBColumn + Caption = #36873#25321 + DataBinding.FieldName = 'SSel' + PropertiesClassName = 'TcxCheckBoxProperties' + Properties.NullStyle = nssUnchecked + Visible = False + HeaderAlignmentHorz = taCenter + Width = 49 + end + object v1OrderNo: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'OrderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 72 + end + object v1ConNo: TcxGridDBColumn + Caption = #21512#21516#21495 + DataBinding.FieldName = 'ConNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 68 + end + object v1OrdPerson1: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'OrdPerson1' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 73 + end + object v1OrdDate: TcxGridDBColumn + Caption = #21046#21333#26085#26399 + DataBinding.FieldName = 'OrdDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 68 + end + object v1DeliveryDate: TcxGridDBColumn + Caption = #20132#36135#26085#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.ShowTime = False + OnCustomDrawCell = v1DeliveryDateCustomDrawCell + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1CustomerNoName: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'CustomerNoName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 62 + end + object v1MPRTCodeName: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'PRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 69 + end + object v1Column1: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v1Column2: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'PRTRollNum' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v1PRTOrderQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'PRTOrderQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 97 + end + object v1Column8: TcxGridDBColumn + Caption = #22791#27880#21450#35201#27714 + DataBinding.FieldName = 'Note' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Styles.Header = BPCK_DataLink.Default + Width = 96 + end + object v1Column3: TcxGridDBColumn + Caption = #21457#36135#22320#22336 + DataBinding.FieldName = 'FHAddress' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 88 + end + object v1Column5: TcxGridDBColumn + Caption = #32852#31995#26041#24335 + DataBinding.FieldName = 'LXFS' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v1EditTime: TcxGridDBColumn + Caption = #20462#25913#26085#26399 + DataBinding.FieldName = 'EditTime' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object v1ordderNote1: TcxGridDBColumn + Caption = #20462#25913#22791#27880 + DataBinding.FieldName = 'orddefNote1' + HeaderAlignmentHorz = taCenter + Width = 80 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + PopupMenus = <> + Left = 544 + Top = 176 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 688 + Top = 224 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 552 + Top = 216 + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 248 + end + object DataSource1: TDataSource + DataSet = Order_Main + Left = 440 + Top = 184 + end + object Order_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 464 + Top = 208 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDBMain + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 336 + Top = 200 + ReportData = {} + end + object RMDBMain: TRMDBDataSet + Visible = True + DataSet = CDS_Print + Left = 392 + Top = 200 + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 576 + Top = 248 + end + object PopupMenu1: TPopupMenu + Left = 256 + Top = 176 + object N2: TMenuItem + Caption = #26377#20379#24212#21830 + OnClick = N2Click + end + end + object ADOQueryPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 360 + Top = 240 + end + object CDS_Print: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 288 + end +end diff --git a/样品仓库/U_ProductOrderNewListSEl.pas b/样品仓库/U_ProductOrderNewListSEl.pas new file mode 100644 index 0000000..0dfafca --- /dev/null +++ b/样品仓库/U_ProductOrderNewListSEl.pas @@ -0,0 +1,461 @@ +unit U_ProductOrderNewListSEl; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, + cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, + cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, + RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, + Menus; + +type + TfrmProductOrderNewListSEl = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + Label1: TLabel; + cxGridPopupMenu1: TcxGridPopupMenu; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + ADOQueryTemp: TADOQuery; + DataSource1: TDataSource; + Label3: TLabel; + OrderNo: TEdit; + Order_Main: TClientDataSet; + RM1: TRMGridReport; + RMDBMain: TRMDBDataSet; + RMXLSExport1: TRMXLSExport; + Label4: TLabel; + CustomerNoName: TEdit; + PopupMenu1: TPopupMenu; + N2: TMenuItem; + Label2: TLabel; + JGFactoryName: TEdit; + Label5: TLabel; + OrdPerson1: TEdit; + Label6: TLabel; + MPRTCF: TEdit; + Label7: TLabel; + PRTColor: TEdit; + Label8: TLabel; + PRTCodeName: TEdit; + Label9: TLabel; + ConNo: TEdit; + Label10: TLabel; + MPRTSpec: TEdit; + Label11: TLabel; + OrdDefStr1: TEdit; + Label12: TLabel; + MPRTKZ: TEdit; + Label13: TLabel; + MPRTMF: TEdit; + ADOQueryPrint: TADOQuery; + CDS_Print: TClientDataSet; + ToolButton3: TToolButton; + cxGrid1: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column4: TcxGridDBColumn; + v1OrderNo: TcxGridDBColumn; + v1ConNo: TcxGridDBColumn; + v1OrdPerson1: TcxGridDBColumn; + v1OrdDate: TcxGridDBColumn; + v1DeliveryDate: TcxGridDBColumn; + v1CustomerNoName: TcxGridDBColumn; + v1MPRTCodeName: TcxGridDBColumn; + v1Column1: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v1PRTOrderQty: TcxGridDBColumn; + v1Column8: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column5: TcxGridDBColumn; + v1EditTime: TcxGridDBColumn; + v1ordderNote1: TcxGridDBColumn; + cxGrid1Level1: TcxGridLevel; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure OrderNoChange(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBTPClick(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure CheckBox2Click(Sender: TObject); + procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; + ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; + out AStyle: TcxStyle); + procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; + ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; + var ADone: Boolean); + procedure N1Click(Sender: TObject); + procedure N2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure OrderNoKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + DQdate:TDateTime; + procedure InitGrid(); + procedure InitForm(); + function DelData():Boolean; + procedure InitGridFH(); + { Private declarations } + public + FFInt,FCloth:Integer; + + { Public declarations } + end; + +var + frmProductOrderNewListSEl: TfrmProductOrderNewListSEl; + +implementation +uses + U_DataLink,U_Fun10; + + +{$R *.dfm} + +procedure TfrmProductOrderNewListSEl.FormDestroy(Sender: TObject); +begin + frmProductOrderNewListSEl:=nil; +end; + +procedure TfrmProductOrderNewListSEl.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmProductOrderNewListSEl.FormCreate(Sender: TObject); +begin + cxgrid1.Align:=alClient; + //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; + //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); + DQdate:=SGetServerDate(ADOQueryTemp); +end; + +procedure TfrmProductOrderNewListSEl.TBCloseClick(Sender: TObject); +begin + Close; + if FCloth<>1 then + WriteCxGrid('ָʾб10',Tv1,'ָʾ') + else + WriteCxGrid('ָʾбѡ',Tv1,'ָʾ'); +end; + +procedure TfrmProductOrderNewListSEl.InitGrid(); +var + strwhere:string; +begin + strwhere:=''; + + strwhere:=strwhere+' and isnull(B.status,''0'')='''+inttostr(1)+''''; + + strwhere:=strwhere+' and isnull(B.orderType,''0'')='''''; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + parameters.ParamByName('WSql').Value:=strwhere; + Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); + Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; +procedure TfrmProductOrderNewListSEl.InitGridFH(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.Add('exec Order_QryList :MainId,:WSql'); + Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' + +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmProductOrderNewListSEl.InitForm(); +begin + if SGetServerDate(ADOQueryTemp)>StrToDate('2014-07-11') then + begin + ToolBar1.Visible:=False; + Application.MessageBox('ҪϵӦ̣','ʾ',0); + Exit; + end; + if FCloth<>1 then + ReadCxGrid('ָʾб10',Tv1,'ָʾ') + else + ReadCxGrid('ָʾбѡ',Tv1,'ָʾ'); + + if FCloth=1 then + begin + v1Column4.Visible:=True; + + end else + begin + v1Column4.Visible:=False; + end; + BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; + EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); + //InitGrid(); +end; + +procedure TfrmProductOrderNewListSEl.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +function TfrmProductOrderNewListSEl.DelData():Boolean; +begin +end; + +procedure TfrmProductOrderNewListSEl.TBRafreshClick(Sender: TObject); +begin + if FFInt=1 then + begin + InitGridFH(); + end else + begin + InitGrid(); + end; +end; + +procedure TfrmProductOrderNewListSEl.OrderNoChange(Sender: TObject); +begin + if ADOQueryMain.Active=False then Exit; + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); +end; + +procedure TfrmProductOrderNewListSEl.FormShow(Sender: TObject); +begin + InitForm(); +end; + +procedure TfrmProductOrderNewListSEl.TBTPClick(Sender: TObject); + var + FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; +begin +end; + +procedure TfrmProductOrderNewListSEl.CheckBox1Click(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmProductOrderNewListSEl.CheckBox2Click(Sender: TObject); +begin + TBRafresh.Click; +end; + +procedure TfrmProductOrderNewListSEl.Tv1StylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +var + id,id10:Integer; +begin + {try + if Tv1.GroupedItemCount=0 then + begin + Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; + Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; + if Trim(VarToStr(ARecord.Values[id]))='' then Exit; + if Id<0 then Exit; + if ARecord.Values[id10]='' then exit; + if (ARecord.Values[id]-DQdate)>=4 then Exit; + if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then + AStyle:=DataLink_.QHuangSe + else + if ARecord.Values[id]-DQdate<0 then + begin + AStyle:=DataLink_OrderManage.FenHongS; + end; + end else + begin + + end; + except + end; } +end; + +procedure TfrmProductOrderNewListSEl.v1DeliveryDateCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; + Id10:=TV1.GetColumnByFieldName('SubStatus').Index; + if Id<0 then Exit; + if AViewInfo.GridRecord.Values[Id10]='' then Exit; + if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; + if ((AViewInfo.GridRecord.Values[id]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then + ACanvas.Brush.Color:=clYellow + else + if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(ADOQueryTemp)<0) then + begin + ACanvas.Brush.Color:=clRed; + end; + begin + ACanvas.Brush.Color:=clRed; + end else + if AViewInfo.GridRecord.Values[Id]='Purple' then + begin + ACanvas.Brush.Color:=clPurple; + end else + if AViewInfo.GridRecord.Values[Id]='Olive' then + begin + ACanvas.Brush.Color:=clOlive; + end else + if AViewInfo.GridRecord.Values[Id]='Teal' then + begin + ACanvas.Brush.Color:=clTeal; + end else + if AViewInfo.GridRecord.Values[Id]='Background' then + begin + ACanvas.Brush.Color:=clBackground; + end; } +end; + +procedure TfrmProductOrderNewListSEl.N1Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ10.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ10.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewListSEl.N2Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; +begin + if Order_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\ָʾ.rmf' ; + SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); + if FileExists(fPrintFile) then + begin + //RMVariables['begindate']:=begindate.DateTime; + //RMVariables['enddate']:=enddate.DateTime; + //RMVariables['printtime']:=Now; + //RMVariables['printer']:=Trim(gUserName); + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\ָʾ.rmf'),'ʾ',0); + end; + SDofilter(ADOQueryMain,''); + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + Order_Main.Locate('ordernoM',Porderno,[]); +end; + +procedure TfrmProductOrderNewListSEl.ToolButton3Click(Sender: TObject); +begin + if Order_Main.IsEmpty then exit; + ModalResult:=1; +end; + +procedure TfrmProductOrderNewListSEl.OrderNoKeyPress(Sender: TObject; + var Key: Char); +var + fsj:string; +begin +{ if Key=#13 then + begin + if Length(Trim(OrderNoM.Text))<4 then Exit; + fsj:='%'+Trim(OrderNoM.Text)+'%'; + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; + if Trim(DParameters1)<>'Ȩ' then + begin + Parameters.ParamByName('WSql').Value:=' and A.Filler='''+Trim(DName)+''''; + end else + begin + Parameters.ParamByName('WSql').Value:=' and A.OrderNo like '''+fsj+''''; + end; + Parameters.ParamByName('begdate').Value:='1900-01-01'; + Parameters.ParamByName('enddate').Value:='2050-01-01'; + ExecSQL; + Open; + end; + SCreateCDS20(ADOQueryMain,Order_Main); + SInitCDSData20(ADOQueryMain,Order_Main); + finally + ADOQueryMain.EnableControls; + end; + end; } +end; + +procedure TfrmProductOrderNewListSEl.Tv1CellDblClick( + Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + ToolButton3.Click; +end; + +end. diff --git a/样品仓库/U_ZdyAttachCP.dfm b/样品仓库/U_ZdyAttachCP.dfm new file mode 100644 index 0000000..5f149a1 --- /dev/null +++ b/样品仓库/U_ZdyAttachCP.dfm @@ -0,0 +1,351 @@ +object frmZdyAttachCP: TfrmZdyAttachCP + Left = 108 + Top = 101 + Width = 1038 + Height = 618 + Caption = #20135#21697#36164#26009#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1022 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = ToolButton4Click + end + object TBDel: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton1: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1022 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 191 + Top = 13 + Width = 48 + Height = 12 + Caption = #20135#21697#21517#31216 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 48 + Height = 12 + Caption = #20135#21697#32534#21495 + end + object Label2: TLabel + Left = 369 + Top = 13 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object ZdyName: TEdit + Tag = 2 + Left = 241 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 71 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TComboBox + Tag = 1 + Left = 398 + Top = 8 + Width = 81 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 2 + OnChange = ZdyNameChange + Items.Strings = ( + #22383#24067 + #25104#21697 + '') + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 1022 + Height = 510 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.Header = BPCK_DataLink.handBlack + object v2Column2: TcxGridDBColumn + Caption = #20135#21697#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v2Column6: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'ZdyName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 124 + end + object v2Column11: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 53 + end + object v2Column3: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column4: TcxGridDBColumn + Caption = #25104#20221 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2DEFNote1: TcxGridDBColumn + Caption = #21517#31216 + DataBinding.FieldName = 'DEFNote1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 116 + end + object v2Column8: TcxGridDBColumn + Caption = #33457#21495 + DataBinding.FieldName = 'DEFstr4' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v2Column10: TcxGridDBColumn + Caption = #33394#21495 + DataBinding.FieldName = 'DEFstr6' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v2Column9: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'DEFstr7' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column7: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'DEFstr8' + HeaderAlignmentHorz = taCenter + Width = 61 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 114 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/样品仓库/U_ZdyAttachCP.pas b/样品仓库/U_ZdyAttachCP.pas new file mode 100644 index 0000000..de9f53a --- /dev/null +++ b/样品仓库/U_ZdyAttachCP.pas @@ -0,0 +1,202 @@ +unit U_ZdyAttachCP; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmZdyAttachCP = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + Label1: TLabel; + ZdyCode: TEdit; + ToolButton4: TToolButton; + Label2: TLabel; + DEFstr5: TComboBox; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column10: TcxGridDBColumn; + v2Column11: TcxGridDBColumn; + v2DEFNote1: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + { Private declarations } + procedure InitGrid(); + + public + + end; + +var + frmZdyAttachCP: TfrmZdyAttachCP; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp; + +{$R *.dfm} + + + +procedure TfrmZdyAttachCP.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''CP'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmZdyAttachCP.FormDestroy(Sender: TObject); +begin + frmZdyAttachCP:=nil; +end; + +procedure TfrmZdyAttachCP.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachCP.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Ʒ',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmZdyAttachCP.TBDelClick(Sender: TObject); +begin +{ if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; } +end; + +procedure TfrmZdyAttachCP.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒ',Tv2,'ͻԶ'); + InitGrid(); +end; + +procedure TfrmZdyAttachCP.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachCP.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmZdyAttachCP.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachCP.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + // SelExportData(Tv2,ADOQueryMain,'ͻб'); +end; + +procedure TfrmZdyAttachCP.ToolButton4Click(Sender: TObject); +begin +{ try + frmZdyAttInputCP:=TfrmZdyAttInputCP.Create(Application); + with frmZdyAttInputCP do + begin + FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmZdyAttInputCP.Free; + end; } +end; + +procedure TfrmZdyAttachCP.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +end. + + diff --git a/样品仓库/U_ZdyAttachGYS.dfm b/样品仓库/U_ZdyAttachGYS.dfm new file mode 100644 index 0000000..5a7adb1 --- /dev/null +++ b/样品仓库/U_ZdyAttachGYS.dfm @@ -0,0 +1,331 @@ +object frmZdyAttachGYS: TfrmZdyAttachGYS + Left = 192 + Top = 103 + Width = 1038 + Height = 618 + Caption = #20379#24212#21830#36164#26009#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1022 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = ToolButton4Click + end + object TBDel: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton1: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1022 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 203 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#21517#31216 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 60 + Height = 12 + Caption = #20379#24212#21830#32534#21495 + end + object Label2: TLabel + Left = 395 + Top = 13 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object ZdyName: TEdit + Tag = 2 + Left = 267 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 83 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TComboBox + Tag = 1 + Left = 424 + Top = 8 + Width = 81 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 2 + OnChange = ZdyNameChange + Items.Strings = ( + #22383#24067 + #21152#24037#21378) + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 1022 + Height = 510 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + OnDblClick = Tv2DblClick + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.Header = BPCK_DataLink.handBlack + object v2Column6: TcxGridDBColumn + Caption = #20379#24212#21830#21517#31216 + DataBinding.FieldName = 'ZdyName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 124 + end + object v2Column2: TcxGridDBColumn + Caption = #20379#24212#21830#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object v2Column8: TcxGridDBColumn + Caption = #31867#22411 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 77 + end + object v2Column3: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column4: TcxGridDBColumn + Caption = #25163#26426 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20844#21496#22320#22336 + DataBinding.FieldName = 'DEFNote1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 69 + end + object v2Column9: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'DEFstr4' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 114 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/样品仓库/U_ZdyAttachGYS.pas b/样品仓库/U_ZdyAttachGYS.pas new file mode 100644 index 0000000..8b0c0a4 --- /dev/null +++ b/样品仓库/U_ZdyAttachGYS.pas @@ -0,0 +1,213 @@ +unit U_ZdyAttachGYS; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmZdyAttachGYS = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + Label1: TLabel; + ZdyCode: TEdit; + ToolButton4: TToolButton; + v2Column8: TcxGridDBColumn; + Label2: TLabel; + DEFstr5: TComboBox; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure Tv2DblClick(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + + public + + end; + +var + frmZdyAttachGYS: TfrmZdyAttachGYS; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp; + +{$R *.dfm} + + + +procedure TfrmZdyAttachGYS.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''GYS'' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmZdyAttachGYS.FormDestroy(Sender: TObject); +begin + frmZdyAttachGYS:=nil; +end; + +procedure TfrmZdyAttachGYS.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachGYS.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('Ӧ',Tv2); + Close; +end; +procedure TfrmZdyAttachGYS.TBDelClick(Sender: TObject); +begin +{ if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete;} +end; + +procedure TfrmZdyAttachGYS.FormShow(Sender: TObject); +begin + ReadCxGrid('Ӧ',Tv2); + InitGrid(); +end; + +procedure TfrmZdyAttachGYS.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachGYS.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmZdyAttachGYS.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachGYS.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; +// SelExportData(Tv2,ADOQueryMain,'ͻб'); +end; + +procedure TfrmZdyAttachGYS.ToolButton4Click(Sender: TObject); +begin +{ try + frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application); + with frmZdyAttInputGYS do + begin + FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmZdyAttInputGYS.Free; + end; } +end; + +procedure TfrmZdyAttachGYS.ToolButton3Click(Sender: TObject); +begin +{ try + frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application); + with frmZdyAttInputGYS do + begin + FCYID:=''; + if ShowModal=1 then + begin + + end; + end; + finally + frmZdyAttInputGYS.Free; + end; } +end; + +procedure TfrmZdyAttachGYS.Tv2DblClick(Sender: TObject); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +end. + + diff --git a/样品仓库/U_ZdyAttachment.dfm b/样品仓库/U_ZdyAttachment.dfm new file mode 100644 index 0000000..d00dd2f --- /dev/null +++ b/样品仓库/U_ZdyAttachment.dfm @@ -0,0 +1,333 @@ +object frmZdyAttachment: TfrmZdyAttachment + Left = -8 + Top = -8 + Width = 1382 + Height = 754 + Caption = #23458#25143#36164#26009#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1366 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + Visible = False + end + object ToolButton4: TToolButton + Left = 189 + Top = 0 + Caption = #20462#25913 + ImageIndex = 54 + Visible = False + OnClick = ToolButton4Click + end + object TBDel: TToolButton + Left = 248 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + Visible = False + OnClick = TBDelClick + end + object ToolButton1: TToolButton + Left = 311 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + Visible = False + OnClick = ToolButton1Click + end + object TBClose: TToolButton + Left = 374 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1366 + Height = 39 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 190 + Top = 13 + Width = 48 + Height = 12 + Caption = #23458#25143#21517#31216 + end + object Label1: TLabel + Left = 22 + Top = 13 + Width = 48 + Height = 12 + Caption = #23458#25143#32534#21495 + end + object Label2: TLabel + Left = 350 + Top = 13 + Width = 36 + Height = 12 + Caption = #19994#21153#21592 + end + object ZdyName: TEdit + Tag = 2 + Left = 238 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = ZdyNameChange + end + object ZdyCode: TEdit + Tag = 2 + Left = 70 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 1 + OnChange = ZdyNameChange + end + object DEFstr5: TEdit + Tag = 2 + Left = 388 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 2 + OnChange = ZdyNameChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 70 + Width = 1366 + Height = 646 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + NavigatorButtons.Delete.Enabled = False + NavigatorButtons.Delete.Visible = False + OnCellDblClick = Tv2CellDblClick + DataController.DataSource = DS_HZ + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.Header = BPCK_DataLink.handBlack + object v2Column2: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'ZdyCode' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 86 + end + object v2Column6: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'ZdyName' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 127 + end + object v2Column10: TcxGridDBColumn + Caption = #19994#21153#21592 + DataBinding.FieldName = 'DEFstr5' + HeaderAlignmentHorz = taCenter + Width = 56 + end + object v2Column3: TcxGridDBColumn + Caption = #30005#35805 + DataBinding.FieldName = 'DEFstr1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v2Column4: TcxGridDBColumn + Caption = #25163#26426 + DataBinding.FieldName = 'DEFstr2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 74 + end + object v2Column5: TcxGridDBColumn + Caption = #20256#30495 + DataBinding.FieldName = 'DEFstr3' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20844#21496#22320#22336 + DataBinding.FieldName = 'DEFNote1' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column8: TcxGridDBColumn + Caption = #21457#36135#22320#22336 + DataBinding.FieldName = 'DEFNote2' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 72 + end + object v2Column9: TcxGridDBColumn + Caption = #32852#31995#20154 + DataBinding.FieldName = 'DEFstr4' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 73 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 165 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 949 + Top = 225 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 864 + Top = 224 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + Left = 928 + Top = 216 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 224 + end + object DS_HZ: TDataSource + DataSet = CDS_HZ + Left = 899 + Top = 235 + end + object CDS_HZ: TClientDataSet + Aggregates = <> + Params = <> + Left = 872 + Top = 224 + end +end diff --git a/样品仓库/U_ZdyAttachment.pas b/样品仓库/U_ZdyAttachment.pas new file mode 100644 index 0000000..e7b228c --- /dev/null +++ b/样品仓库/U_ZdyAttachment.pas @@ -0,0 +1,202 @@ +unit U_ZdyAttachment; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit; + +type + TfrmZdyAttachment = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + RM1: TRMGridReport; + RMDB_Main: TRMDBDataSet; + Label3: TLabel; + ZdyName: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_HZ: TDataSource; + CDS_HZ: TClientDataSet; + ToolButton3: TToolButton; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column4: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + Label1: TLabel; + ZdyCode: TEdit; + v2Column10: TcxGridDBColumn; + ToolButton4: TToolButton; + Label2: TLabel; + DEFstr5: TEdit; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ZdyNameChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); + private + { Private declarations } + procedure InitGrid(); + + public + fkhType:string; + + end; + +var + frmZdyAttachment: TfrmZdyAttachment; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp; + +{$R *.dfm} + + + +procedure TfrmZdyAttachment.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + SQL.Clear; + sql.Add(' select * from KH_Zdy_Attachment where Type=''KHName'' '); + sql.Add(' and isnull(khType,'''')='+quotedstr(trim(fkhType))); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmZdyAttachment.FormDestroy(Sender: TObject); +begin + frmZdyAttachment:=nil; +end; + +procedure TfrmZdyAttachment.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachment.TBCloseClick(Sender: TObject); +begin + WriteCxGrid('ͻ',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmZdyAttachment.TBDelClick(Sender: TObject); +begin +{ if CDS_HZ.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then + begin + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+''''); + ExecSQL; + end; + end; + CDS_HZ.Delete; } +end; + +procedure TfrmZdyAttachment.FormShow(Sender: TObject); +begin + ReadCxGrid('ͻ',Tv2,'ͻԶ'); + InitGrid(); +end; + +procedure TfrmZdyAttachment.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachment.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_HZ); + SInitCDSData20(ADOQueryMain,CDS_HZ); + end; +end; + +procedure TfrmZdyAttachment.ZdyNameChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachment.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + // SelExportData(Tv2,ADOQueryMain,'ͻб'); +end; + +procedure TfrmZdyAttachment.ToolButton4Click(Sender: TObject); +begin +{ try + frmZdyAttInput:=TfrmZdyAttInput.Create(Application); + with frmZdyAttInput do + begin + FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString); + if ShowModal=1 then + begin + + end; + end; + finally + frmZdyAttInput.Free; + end; } +end; + +procedure TfrmZdyAttachment.Tv2CellDblClick(Sender: TcxCustomGridTableView; + ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; + AShift: TShiftState; var AHandled: Boolean); +begin + if CDS_HZ.IsEmpty then exit; + ModalResult:=1; +end; + +end. + + diff --git a/样品仓库/U_ZdyAttachmentBJ.dfm b/样品仓库/U_ZdyAttachmentBJ.dfm new file mode 100644 index 0000000..bcdc3e3 --- /dev/null +++ b/样品仓库/U_ZdyAttachmentBJ.dfm @@ -0,0 +1,553 @@ +object frmZdyAttachmentCB: TfrmZdyAttachmentCB + Left = 15 + Top = 92 + Width = 1297 + Height = 578 + Caption = #23458#25143#25253#20215#31649#29702 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1281 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 83 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = ToolButton2Click + end + object TBADD: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #26032#22686 + ImageIndex = 3 + OnClick = TBADDClick + end + object TBedit: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20462#25913 + ImageIndex = 54 + OnClick = TBeditClick + end + object TBDel: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 17 + OnClick = TBDelClick + end + object ToolButton3: TToolButton + Left = 315 + Top = 0 + AutoSize = True + Caption = #22797#21046 + ImageIndex = 57 + OnClick = ToolButton3Click + end + object Tchk: TToolButton + Left = 378 + Top = 0 + AutoSize = True + Caption = #23457#26680 + ImageIndex = 41 + OnClick = TchkClick + end + object Tnochk: TToolButton + Left = 441 + Top = 0 + AutoSize = True + Caption = #25764#38144#23457#26680 + ImageIndex = 86 + OnClick = TnochkClick + end + object ToolButton1: TToolButton + Left = 528 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 53 + OnClick = ToolButton1Click + end + object ToolButton5: TToolButton + Left = 591 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + OnClick = ToolButton5Click + end + object TBClose: TToolButton + Left = 654 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 31 + Width = 1281 + Height = 42 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 346 + Top = 13 + Width = 48 + Height = 12 + Caption = #23458#25143#32534#21495 + end + object Label5: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #25253#20215#26085#26399 + end + object Label6: TLabel + Left = 184 + Top = 12 + Width = 6 + Height = 12 + Caption = '-' + end + object Label2: TLabel + Left = 518 + Top = 13 + Width = 48 + Height = 12 + Caption = #23458#25143#21517#31216 + end + object Label1: TLabel + Left = 850 + Top = 13 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label4: TLabel + Left = 694 + Top = 13 + Width = 24 + Height = 12 + Caption = #21697#21517 + end + object custNo: TEdit + Tag = 2 + Left = 398 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 0 + OnChange = custNoChange + end + object begdate: TDateTimePicker + Left = 80 + Top = 8 + Width = 100 + Height = 20 + Date = 42391.664898645830000000 + Time = 42391.664898645830000000 + TabOrder = 1 + end + object enddate: TDateTimePicker + Left = 192 + Top = 8 + Width = 100 + Height = 20 + Date = 42391.664898645830000000 + Time = 42391.664898645830000000 + TabOrder = 2 + end + object custName: TEdit + Tag = 2 + Left = 570 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 3 + OnChange = custNoChange + end + object P_Color: TEdit + Tag = 2 + Left = 874 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 4 + OnChange = custNoChange + end + object P_CodeName: TEdit + Tag = 2 + Left = 726 + Top = 9 + Width = 89 + Height = 20 + TabOrder = 5 + OnChange = custNoChange + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 93 + Width = 1281 + Height = 446 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + Navigator.Buttons.Delete.Enabled = False + Navigator.Buttons.Delete.Visible = False + DataController.DataSource = DS_Main + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v2Column18 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsData.Deleting = False + OptionsData.DeletingConfirmation = False + OptionsData.Editing = False + OptionsSelection.CellSelect = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Inactive = BPCK_DataLink.SHuangSe + Styles.IncSearch = BPCK_DataLink.SHuangSe + Styles.Selection = BPCK_DataLink.SHuangSe + Styles.Header = BPCK_DataLink.handBlack + object v2DEFStr7: TcxGridDBColumn + Caption = #25253#20215#26085#26399 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Width = 83 + end + object v2Column4: TcxGridDBColumn + Caption = #25253#20215#21333#21495 + DataBinding.FieldName = 'BJNO' + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v2Column2: TcxGridDBColumn + Caption = #23458#25143#32534#21495 + DataBinding.FieldName = 'custNO' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 82 + end + object v2Column6: TcxGridDBColumn + Caption = #23458#25143#21517#31216 + DataBinding.FieldName = 'custName' + HeaderAlignmentHorz = taCenter + Width = 127 + end + object v2Column10: TcxGridDBColumn + Caption = #22269#23478 + DataBinding.FieldName = 'custcustCountry' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v2Column11: TcxGridDBColumn + Caption = #20986#36816#28207 + DataBinding.FieldName = 'FromPlace' + HeaderAlignmentHorz = taCenter + Width = 65 + end + object v2Column19: TcxGridDBColumn + Caption = #30446#30340#28207 + DataBinding.FieldName = 'Toplace' + HeaderAlignmentHorz = taCenter + end + object v2Column3: TcxGridDBColumn + Caption = #32852#31995#30005#35805 + DataBinding.FieldName = 'custphone' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 71 + end + object v2Column5: TcxGridDBColumn + Caption = #26377#25928#26399 + DataBinding.FieldName = 'DlyDate' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 68 + end + object v2Column7: TcxGridDBColumn + Caption = #20215#26684#26465#27454 + DataBinding.FieldName = 'priceNote' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 67 + end + object v2Column8: TcxGridDBColumn + Caption = #26679#21697#32534#21495 + DataBinding.FieldName = 'P_Code' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 78 + end + object v2Column9: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'P_CodeName' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 75 + end + object v2Column16: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column17: TcxGridDBColumn + Caption = #35268#26684 + DataBinding.FieldName = 'P_spec' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column20: TcxGridDBColumn + Caption = #25104#20998 + DataBinding.FieldName = 'P_CF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column21: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column22: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'P_KZ' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column15: TcxGridDBColumn + Caption = #38144#21806#20215#26684 + DataBinding.FieldName = 'price' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column14: TcxGridDBColumn + Caption = #27719#29575 + DataBinding.FieldName = 'huilv' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column18: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column28: TcxGridDBColumn + Caption = #36215#35746#37327 + DataBinding.FieldName = 'BJstr6' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column1: TcxGridDBColumn + Caption = #22791#27880 + DataBinding.FieldName = 'Note' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 89 + end + object v2Column12: TcxGridDBColumn + Caption = #25805#20316#21592 + DataBinding.FieldName = 'Filler' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + object v2Column13: TcxGridDBColumn + Caption = #25805#20316#26102#38388 + DataBinding.FieldName = 'FillTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 151 + end + object v2Column23: TcxGridDBColumn + Caption = #35814#32454#25551#36848 + DataBinding.FieldName = 'Note1' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 90 + end + object v2Column24: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BJstr7' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object cxTabControl1: TcxTabControl + Left = 0 + Top = 73 + Width = 1281 + Height = 20 + Align = alTop + TabOrder = 3 + Properties.CustomButtons.Buttons = <> + Properties.Style = 9 + Properties.TabIndex = 0 + Properties.Tabs.Strings = ( + #26410#23457#26680 + #24050#23457#26680 + #20840#37096) + OnChange = cxTabControl1Change + ClientRectRight = 0 + ClientRectTop = 0 + end + object ADOQueryTemp: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 789 + Top = 9 + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 829 + Top = 1 + end + object ADOQueryMain: TADOQuery + Connection = BPCK_DataLink.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 533 + Top = 193 + end + object cxGridPopupMenu2: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 660 + Top = 132 + end + object DS_Main: TDataSource + DataSet = CDS_Main + Left = 899 + Top = 235 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 460 + Top = 168 + end + object ADOQueryPrint: TADOQuery + Connection = BPCK_DataLink.ADOLink + Parameters = <> + Left = 740 + Top = 156 + end + object RM1: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS, pbExport, pbNavigator] + DefaultCollate = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 372 + Top = 300 + ReportData = {} + end + object RMXLSExport1: TRMXLSExport + ShowAfterExport = True + ExportPrecision = 1 + PagesOfSheet = 1 + ExportImages = True + ExportFrames = True + ExportImageFormat = ifBMP + JPEGQuality = 0 + ScaleX = 1.000000000000000000 + ScaleY = 1.000000000000000000 + CompressFile = False + Left = 684 + Top = 336 + end + object RMDBDataSet1: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 356 + Top = 252 + end +end diff --git a/样品仓库/U_ZdyAttachmentBJ.pas b/样品仓库/U_ZdyAttachmentBJ.pas new file mode 100644 index 0000000..78802f9 --- /dev/null +++ b/样品仓库/U_ZdyAttachmentBJ.pas @@ -0,0 +1,405 @@ +unit U_ZdyAttachmentBJ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, + cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, + StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, + cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, + cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, + IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, + cxButtonEdit, cxTextEdit, cxDBLookupComboBox, RM_e_Xls, RM_E_llPDF, cxPC, + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + +type + TfrmZdyAttachmentCB = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBDel: TToolButton; + TBClose: TToolButton; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + Panel1: TPanel; + ToolButton2: TToolButton; + ADOQueryMain: TADOQuery; + ToolButton1: TToolButton; + Label3: TLabel; + custNo: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + cxGridLevel1: TcxGridLevel; + cxGridPopupMenu2: TcxGridPopupMenu; + DS_Main: TDataSource; + CDS_Main: TClientDataSet; + TBADD: TToolButton; + v2Column6: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column7: TcxGridDBColumn; + v2Column8: TcxGridDBColumn; + v2Column9: TcxGridDBColumn; + v2Column10: TcxGridDBColumn; + TBedit: TToolButton; + v2Column11: TcxGridDBColumn; + v2DEFStr7: TcxGridDBColumn; + v2Column12: TcxGridDBColumn; + v2Column13: TcxGridDBColumn; + Label5: TLabel; + begdate: TDateTimePicker; + Label6: TLabel; + enddate: TDateTimePicker; + v2Column4: TcxGridDBColumn; + custName: TEdit; + Label2: TLabel; + v2Column15: TcxGridDBColumn; + ToolButton5: TToolButton; + ADOQueryPrint: TADOQuery; + RM1: TRMGridReport; +// RMllPDFExport1: TRMllPDFExport; + RMXLSExport1: TRMXLSExport; + RMDBDataSet1: TRMDBDataSet; + v2Column19: TcxGridDBColumn; + v2Column14: TcxGridDBColumn; + v2Column16: TcxGridDBColumn; + v2Column17: TcxGridDBColumn; + v2Column20: TcxGridDBColumn; + v2Column21: TcxGridDBColumn; + v2Column22: TcxGridDBColumn; + v2Column28: TcxGridDBColumn; + Tchk: TToolButton; + Tnochk: TToolButton; + cxTabControl1: TcxTabControl; + v2Column23: TcxGridDBColumn; + P_Color: TEdit; + Label1: TLabel; + v2Column24: TcxGridDBColumn; + P_CodeName: TEdit; + Label4: TLabel; + ToolButton3: TToolButton; + v2Column18: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure TBCloseClick(Sender: TObject); + procedure TBDelClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure custNoChange(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure TBeditClick(Sender: TObject); + procedure TBADDClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure ToolButton5Click(Sender: TObject); + procedure TchkClick(Sender: TObject); + procedure TnochkClick(Sender: TObject); + procedure cxTabControl1Change(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + private + + { Private declarations } + procedure InitGrid(); + procedure SetStatus(); + public + fkhType:string; + Fmanage:string; + canshu1:string; + end; + +var + frmZdyAttachmentCB: TfrmZdyAttachmentCB; + +implementation +uses + U_DataLink,U_Fun10,U_ZDYHelp, + U_ZdyAttachmentBJ_Edit; + +{$R *.dfm} + +procedure TfrmZdyAttachmentCB.SetStatus(); +begin + TBedit.Visible:=false; + Tbdel.Visible:=false; + Tchk.Visible:=false; + Tnochk.Visible:=false; + IF trim(canshu1)='ҵԱ' then + begin + case cxTabControl1.TabIndex of + 0:begin + TBedit.Visible:=true; + Tbdel.Visible:=true; + end; + 1:begin + // tbcdel.Visible:=true; + end; + end; + end + else + begin + case cxTabControl1.TabIndex of + 0:begin + TBedit.Visible:=true; + Tbdel.Visible:=true; + Tchk.Visible:=true; + end; + 1:begin + Tnochk.Visible:=true; + end; + end; + end; +end; + +procedure TfrmZdyAttachmentCB.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + + Close; + Filtered:=False; + SQL.Clear; + sql.Add('select A.* from KH_CP_BJ A'); + sql.Add(' where A.CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.DateTime)+''''); + sql.Add(' and A.CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); + IF trim(canshu1)='ҵԱ'then + sql.Add(' and A.Filler='+quotedstr(trim(DName))); + if cxTabControl1.TabIndex<2 then + sql.Add('and A.status='''+inttostr(cxTabControl1.TabIndex)+''' '); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + + +procedure TfrmZdyAttachmentCB.FormDestroy(Sender: TObject); +begin + frmZdyAttachmentCB:=nil; +end; + +procedure TfrmZdyAttachmentCB.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmZdyAttachmentCB.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+'1',Tv2,'ͻԶ'); + Close; +end; +procedure TfrmZdyAttachmentCB.TBDelClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete KH_CP_BJ where BJNO='''+Trim(CDS_Main.fieldbyname('BJNO').AsString)+''''); + ExecSQL; + end; + initgrid(); +end; + +procedure TfrmZdyAttachmentCB.FormShow(Sender: TObject); +begin + ReadCxGrid(self.Caption+'1',Tv2,'ͻԶ'); + SetStatus(); + InitGrid(); +end; + +procedure TfrmZdyAttachmentCB.TBRafreshClick(Sender: TObject); +begin + InitGrid(); +end; + +procedure TfrmZdyAttachmentCB.ToolButton2Click(Sender: TObject); +begin + if ADOQueryMain.Active then + begin + SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + end; +end; + +procedure TfrmZdyAttachmentCB.custNoChange(Sender: TObject); +begin + ToolButton2.Click; +end; + + +procedure TfrmZdyAttachmentCB.ToolButton1Click(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then Exit; + TcxGridToExcel(self.Caption,cxgrid2); + // SelExportData(Tv2,ADOQueryMain,'ͻб'); +end; + +procedure TfrmZdyAttachmentCB.TBeditClick(Sender: TObject); +begin + IF CDS_main.IsEmpty then exit; + try + frmZdyAttachmentBJ_Edit:=TfrmZdyAttachmentBJ_Edit.Create(Application); + with frmZdyAttachmentBJ_Edit do + begin + fkeyNo:=self.cds_main.fieldbyname('BJNO').asstring; + fType:=1; + canshu1:=self.canshu1; + if ShowModal=1 then + begin + TBRafresh.Click; + end; + end; + finally + frmZdyAttachmentBJ_Edit.Free; + end; +end; + +procedure TfrmZdyAttachmentCB.TBADDClick(Sender: TObject); +begin + try + frmZdyAttachmentBJ_Edit:=TfrmZdyAttachmentBJ_Edit.Create(Application); + with frmZdyAttachmentBJ_Edit do + begin + fkeyNO:=''; + fType:=0; + canshu1:=self.canshu1; + if ShowModal=1 then + begin + TBRafresh.Click; + end; + end; + finally + frmZdyAttachmentBJ_Edit.Free; + end; +end; + +procedure TfrmZdyAttachmentCB.FormCreate(Sender: TObject); +begin + enddate.Date:=date(); + begdate.Date:=strtodate(formatdateTime('yyyy-MM',enddate.Date)+'-01'); + canshu1:=trim(DParameters2); +end; + +procedure TfrmZdyAttachmentCB.ToolButton5Click(Sender: TObject); +var + fPrintFile:string; + Porderno:string; + i,j:Integer; +begin + if CDS_Main.IsEmpty then Exit; + fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\Ϣ.rmf' ; + with ADOQueryPrint do + begin + Close; + sql.Clear; + sql.Add('select A.*, '); + sql.Add('FileOthers=(select Top 1 FilesOther from TP_File X1,CP_YDang X2 where X1.WBID=X2.CYID and X2.CYNo=A.P_Code) '); + sql.Add('from KH_CP_BJ A '); + sql.Add('Where A.BJNO='''+Trim(CDS_Main.fieldbyname('BJNO').AsString)+''''); + Open; + end; + if FileExists(fPrintFile) then + begin + RM1.LoadFromFile(fPrintFile); + RM1.ShowReport; + end else + begin + Application.MessageBox(PChar('û'+trim(fPrintFile)),'ʾ',0); + exit; + end; + +end; + +procedure TfrmZdyAttachmentCB.TchkClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update KH_CP_BJ SET status=''1'' '); + sql.Add('where BJNO='+quotedstr(trim(CDS_Main.fieldbyname('BJNO').AsString))); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmZdyAttachmentCB.TnochkClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then exit; + try + with ADOQueryCmd do + begin + close; + sql.Clear; + sql.Add('update KH_CP_BJ SET status=''0'' '); + sql.Add('where BJNO='+quotedstr(trim(CDS_Main.fieldbyname('BJNO').AsString))); + execsql; + end; + application.MessageBox('˳ɹ','ʾϢ'); + TBRafresh.Click; + except + application.MessageBox('ʧܣ','ʾϢ',0); + end; +end; + +procedure TfrmZdyAttachmentCB.cxTabControl1Change(Sender: TObject); +begin + SetStatus(); + InitGrid(); +end; + +procedure TfrmZdyAttachmentCB.ToolButton3Click(Sender: TObject); +begin + IF CDS_main.IsEmpty then exit; + try + frmZdyAttachmentBJ_Edit:=TfrmZdyAttachmentBJ_Edit.Create(Application); + with frmZdyAttachmentBJ_Edit do + begin + fkeyNo:=self.cds_main.fieldbyname('BJNO').asstring; + fType:=2; + canshu1:=self.canshu1; + if ShowModal=1 then + begin + TBRafresh.Click; + end; + end; + finally + frmZdyAttachmentBJ_Edit.Free; + end; +end; + +end. + + diff --git a/样品仓库/U_ZdyAttachmentBJ_Edit.dfm b/样品仓库/U_ZdyAttachmentBJ_Edit.dfm new file mode 100644 index 0000000..d7b0882 --- /dev/null +++ b/样品仓库/U_ZdyAttachmentBJ_Edit.dfm @@ -0,0 +1,533 @@ +object frmZdyAttachmentBJ_Edit: TfrmZdyAttachmentBJ_Edit + Left = 169 + Top = 131 + Width = 989 + Height = 549 + Caption = #25253#20215#20449#24687#24405#20837 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label17: TLabel + Left = 32 + Top = 96 + Width = 48 + Height = 12 + Caption = #20960' '#39068' '#33394 + end + object Label9: TLabel + Left = 836 + Top = 124 + Width = 48 + Height = 12 + Caption = #25104#20154#25104#26412 + end + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 973 + Height = 29 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object Tsave: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #20445#23384 + ImageIndex = 14 + OnClick = TsaveClick + end + object TBClose: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 29 + Width = 973 + Height = 482 + Align = alClient + BevelOuter = bvNone + TabOrder = 1 + object GroupBox1: TGroupBox + Left = 0 + Top = 0 + Width = 973 + Height = 145 + Align = alTop + Color = clSkyBlue + ParentColor = False + TabOrder = 0 + object Label1: TLabel + Left = 36 + Top = 28 + Width = 48 + Height = 12 + Caption = #25253#20215#26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + end + object Label2: TLabel + Left = 289 + Top = 28 + Width = 48 + Height = 12 + Caption = #23458#25143#32534#21495 + end + object Label3: TLabel + Left = 840 + Top = 258 + Width = 48 + Height = 12 + Caption = #20215#26684#26465#27454 + Visible = False + end + object Label6: TLabel + Left = 541 + Top = 29 + Width = 48 + Height = 12 + Caption = #23458#25143#21517#31216 + end + object Label12: TLabel + Left = 336 + Top = 234 + Width = 48 + Height = 12 + Caption = #22269' '#23478 + Visible = False + end + object Label39: TLabel + Left = 841 + Top = 234 + Width = 48 + Height = 12 + Caption = #20986' '#36816' '#28207 + Visible = False + end + object Label4: TLabel + Left = 36 + Top = 54 + Width = 48 + Height = 12 + Caption = #32852#31995#30005#35805 + end + object Label5: TLabel + Left = 289 + Top = 54 + Width = 48 + Height = 12 + Caption = #26377' '#25928' '#26399 + end + object Label7: TLabel + Left = 36 + Top = 83 + Width = 48 + Height = 12 + Caption = #22791' '#27880 + end + object Label8: TLabel + Left = 108 + Top = 230 + Width = 48 + Height = 12 + Caption = #24065' '#31181 + end + object Label11: TLabel + Left = 336 + Top = 258 + Width = 48 + Height = 12 + Caption = #30446' '#30340' '#28207 + Visible = False + end + object Label13: TLabel + Left = 336 + Top = 283 + Width = 48 + Height = 12 + Caption = #27719' '#29575 + Visible = False + end + object custName: TEdit + Tag = 2 + Left = 593 + Top = 25 + Width = 140 + Height = 20 + TabOrder = 0 + Text = 'Edit1' + end + object FromPlace: TEdit + Tag = 2 + Left = 893 + Top = 230 + Width = 140 + Height = 20 + TabOrder = 1 + Text = 'Edit1' + Visible = False + end + object custphone: TEdit + Tag = 2 + Left = 88 + Top = 50 + Width = 140 + Height = 20 + TabOrder = 2 + Text = 'custphone' + end + object note: TMemo + Tag = 2 + Left = 88 + Top = 76 + Width = 645 + Height = 57 + Lines.Strings = ( + 'note') + ScrollBars = ssVertical + TabOrder = 3 + end + object priceNote: TComboBox + Tag = 2 + Left = 892 + Top = 256 + Width = 140 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 4 + Visible = False + Items.Strings = ( + 'FOB' + 'CIF' + 'CNF' + 'EXW' + #21547#31246#21547#36816 + #21547#31246#19981#21547#36816 + '' + '') + end + object CRTime: TDateTimePicker + Tag = 2 + Left = 88 + Top = 24 + Width = 140 + Height = 20 + Date = 42680.847243599540000000 + Format = 'yyyy-MM-dd' + Time = 42680.847243599540000000 + TabOrder = 5 + end + object DlyDate: TDateTimePicker + Tag = 2 + Left = 340 + Top = 48 + Width = 140 + Height = 20 + Date = 42680.847243599540000000 + Format = 'yyyy-MM-dd' + Time = 42680.847243599540000000 + TabOrder = 6 + end + object Priceunit: TComboBox + Tag = 2 + Left = 160 + Top = 228 + Width = 140 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 7 + OnChange = PriceunitChange + Items.Strings = ( + 'USD' + 'RMB' + '' + '') + end + object custNo: TBtnEditA + Tag = 2 + Left = 340 + Top = 24 + Width = 141 + Height = 20 + ReadOnly = True + TabOrder = 8 + OnBtnClick = custNoBtnClick + end + object huilv: TcxCurrencyEdit + Tag = 2 + Left = 388 + Top = 280 + Properties.DisplayFormat = '0.##' + Properties.NullString = '1' + Properties.OnEditValueChanged = huilvPropertiesEditValueChanged + TabOrder = 9 + Visible = False + Width = 140 + end + object ToPlace: TEdit + Tag = 2 + Left = 388 + Top = 254 + Width = 140 + Height = 20 + TabOrder = 10 + Text = 'ToPlace' + Visible = False + end + object custCountry: TBtnEditA + Tag = 2 + Left = 388 + Top = 228 + Width = 141 + Height = 20 + TabOrder = 11 + Visible = False + OnBtnClick = custCountryBtnClick + end + end + object Panel2: TPanel + Left = 0 + Top = 145 + Width = 973 + Height = 337 + Align = alClient + BevelOuter = bvNone + Caption = 'Panel2' + TabOrder = 1 + object Panel3: TPanel + Left = 0 + Top = 0 + Width = 973 + Height = 337 + Align = alClient + BevelOuter = bvNone + Caption = 'Panel3' + TabOrder = 0 + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 973 + Height = 31 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + DisabledImages = BPCK_DataLink.ThreeImgList + Flat = True + Images = BPCK_DataLink.ThreeImgList + List = True + ParentColor = False + ShowCaptions = True + TabOrder = 0 + object ToolButton1: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#21152 + ImageIndex = 22 + OnClick = ToolButton1Click + end + object ToolButton2: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#38500 + ImageIndex = 100 + OnClick = ToolButton2Click + end + object CYID: TEdit + Left = 126 + Top = 0 + Width = 247 + Height = 30 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 0 + Visible = False + OnKeyPress = CYIDKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 31 + Width = 973 + Height = 306 + Align = alClient + TabOrder = 1 + object TV1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DS1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = BPCK_DataLink.Default + object V1Column2: TcxGridDBColumn + Caption = #21697#21517 + DataBinding.FieldName = 'P_CodeName' + HeaderAlignmentHorz = taCenter + Width = 100 + end + object V1Column10: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Width = 100 + end + object V1Column4: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'P_MF' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V1Column8: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'P_KZ' + PropertiesClassName = 'TcxTextEditProperties' + Properties.OnEditValueChanged = V1Column8PropertiesEditValueChanged + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V1Column6: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 60 + end + object V1Column15: TcxGridDBColumn + Caption = #36215#35746#37327 + DataBinding.FieldName = 'BJstr6' + HeaderAlignmentHorz = taCenter + Width = 88 + end + object V1Column13: TcxGridDBColumn + Caption = #38144#21806#20215#26684 + DataBinding.FieldName = 'Price' + HeaderAlignmentHorz = taCenter + Width = 80 + end + object V1Column5: TcxGridDBColumn + Caption = #35745#20215#21333#20301 + DataBinding.FieldName = 'BJstr7' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.Items.Strings = ( + 'RMB/Y' + 'RMB/M' + 'RMB/KG' + 'USD/Y' + 'USD/M' + 'USD/KG' + '') + HeaderAlignmentHorz = taCenter + Width = 70 + end + object V1Column7: TcxGridDBColumn + Caption = #35814#32454#25551#36848 + DataBinding.FieldName = 'Note1' + HeaderAlignmentHorz = taCenter + Width = 112 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = TV1 + end + end + end + end + end + object PopupMenu1: TPopupMenu + Left = 1140 + Top = 103 + object N1: TMenuItem + Caption = #21024#38500 + end + object N3: TMenuItem + Caption = '-' + end + object N2: TMenuItem + Caption = #21478#23384#20026'...' + end + end + object ADOQueryCmd: TADOQuery + Connection = BPCK_DataLink.ADOLink + EnableBCD = False + Parameters = <> + Left = 932 + Top = 87 + end + object ADOQueryTmp: TADOQuery + Connection = BPCK_DataLink.ADOLink + EnableBCD = False + Parameters = <> + Left = 844 + Top = 95 + end + object ADOQuerymain: TADOQuery + Connection = BPCK_DataLink.ADOLink + EnableBCD = False + Parameters = <> + Left = 716 + Top = 191 + end + object CDS1: TClientDataSet + Aggregates = <> + Params = <> + Left = 144 + Top = 283 + end + object DS1: TDataSource + DataSet = CDS1 + Left = 464 + Top = 288 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid1 + PopupMenus = <> + Left = 780 + Top = 149 + end +end diff --git a/样品仓库/U_ZdyAttachmentBJ_Edit.pas b/样品仓库/U_ZdyAttachmentBJ_Edit.pas new file mode 100644 index 0000000..a8048c7 --- /dev/null +++ b/样品仓库/U_ZdyAttachmentBJ_Edit.pas @@ -0,0 +1,561 @@ +unit U_ZdyAttachmentBJ_Edit; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, cxPC, cxControls, ComCtrls, ToolWin, StdCtrls, Menus, + cxTextEdit, cxCurrencyEdit, BtnEdit, cxContainer, cxEdit, cxImage, DB, + ADODB, cxDBEdit, cxLookAndFeelPainters, cxButtons, IdBaseComponent, + IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxDBData, + cxGridLevel, cxClasses, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxButtonEdit, + cxGridCustomPopupMenu, cxGridPopupMenu, cxDropDownEdit; + +type + TfrmZdyAttachmentBJ_Edit = class(TForm) + ToolBar1: TToolBar; + Tsave: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label6: TLabel; + custName: TEdit; + Label17: TLabel; + PopupMenu1: TPopupMenu; + N1: TMenuItem; + N2: TMenuItem; + N3: TMenuItem; + ADOQueryCmd: TADOQuery; + ADOQueryTmp: TADOQuery; + ADOQuerymain: TADOQuery; + Label12: TLabel; + Label39: TLabel; + FromPlace: TEdit; + custphone: TEdit; + Label4: TLabel; + Label5: TLabel; + note: TMemo; + Label7: TLabel; + priceNote: TComboBox; + Panel2: TPanel; + Panel3: TPanel; + ToolBar2: TToolBar; + ToolButton1: TToolButton; + ToolButton2: TToolButton; + TV1: TcxGridDBTableView; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + CDS1: TClientDataSet; + Label9: TLabel; + DS1: TDataSource; + CRTime: TDateTimePicker; + DlyDate: TDateTimePicker; + V1Column2: TcxGridDBColumn; + V1Column4: TcxGridDBColumn; + Label8: TLabel; + Priceunit: TComboBox; + custNo: TBtnEditA; + cxGridPopupMenu1: TcxGridPopupMenu; + huilv: TcxCurrencyEdit; + V1Column8: TcxGridDBColumn; + ToPlace: TEdit; + Label11: TLabel; + Label13: TLabel; + V1Column13: TcxGridDBColumn; + custCountry: TBtnEditA; + V1Column7: TcxGridDBColumn; + V1Column10: TcxGridDBColumn; + V1Column15: TcxGridDBColumn; + CYID: TEdit; + V1Column5: TcxGridDBColumn; + V1Column6: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure TsaveClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure cxDBImage1DblClick(Sender: TObject); + procedure FileNameClick(Sender: TObject); + procedure MTypeBtnDnClick(Sender: TObject); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure custNoBtnClick(Sender: TObject); + procedure PriceunitChange(Sender: TObject); + procedure V1Column8PropertiesEditValueChanged(Sender: TObject); + procedure huilvPropertiesEditValueChanged(Sender: TObject); + procedure custCountryBtnClick(Sender: TObject); + procedure CYIDKeyPress(Sender: TObject; var Key: Char); + private + function savedata():Boolean; + procedure InitGrid(); + procedure InitImage(); + { Private declarations } + public + fkeyNo:string; + FType:integer; + canshu1:string; + { Public declarations } + end; + +var + frmZdyAttachmentBJ_Edit: TfrmZdyAttachmentBJ_Edit; + +implementation + uses + U_DataLink,U_Fun10, U_ZDYHelp, U_ZdyAttachment, U_ZdyAttachCP; +{$R *.dfm} + +function TfrmZdyAttachmentBJ_Edit.savedata():Boolean; +var + Filler,fmxType:string; + FillTime:TdateTime; +begin + result:=false; + + ADOQueryCmd.Connection.BeginTrans; + try + IF FType=0 then + begin + fmxType:='BJ'+uppercase(formatdateTime('yyyyMMdd',DServerDate)); + if GetLSNo(ADOQueryTmp,fkeyNo,fmxType,'KH_CP_BJ',3,0)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + Filler:=DName; + FillTime:=SGetServerDateTime(adoqueryTmp); + end + else + begin + with ADOQueryTmp do + begin + Close; + SQL.Clear; + sql.Add('select * from KH_CP_BJ where BJNO='''+Trim(fkeyNo)+''''); + Open; + end; + Filler:=adoqueryTmp.fieldbyname('Filler').AsString; + FillTime:=adoqueryTmp.fieldbyname('FillTime').AsDateTime; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('delete from KH_CP_BJ where BJNO='''+Trim(fkeyNo)+''''); + execsql; + end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from KH_CP_BJ where BJNO='''+Trim(fkeyNo)+''''); + Open; + end; + with cds1 do + begin + DisableControls; + First; + while not eof do + begin + ADOQueryCmd.Append; + SSetsaveSqlNew(ADOQueryCmd,'KH_CP_BJ',GroupBox1,2); + RTSetSaveDataCDS(ADOQueryCmd,Tv1,cds1,'KH_CP_BJ',0); + ADOQueryCmd.FieldByName('BJNO').Value:=trim(fkeyNO); + ADOQueryCmd.FieldByName('BJID').Value:=recNo; + ADOQueryCmd.FieldByName('Filler').Value:=Trim(Filler); + ADOQueryCmd.FieldByName('FillTime').Value:=FillTime; + ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.DateTime); + ADOQueryCmd.FieldByName('DlyDate').Value:=formatdateTime('yyyy-MM-dd',DlyDate.DateTime); + ADOQueryCmd.FieldByName('FillTime').Value:=FillTime; + ADOQueryCmd.FieldByName('Qty').Value:=cds1.fieldbyname('Qty').AsFloat; + ADOQueryCmd.FieldByName('price').Value:=cds1.fieldbyname('price').AsFloat; + ADOQueryCmd.FieldByName('price1').Value:=cds1.fieldbyname('price1').AsFloat; + ADOQueryCmd.FieldByName('price2').Value:=cds1.fieldbyname('price2').AsFloat; + ADOQueryCmd.FieldByName('price3').Value:=cds1.fieldbyname('price3').AsFloat; + ADOQueryCmd.FieldByName('BJQty1').Value:=cds1.fieldbyname('BJQty1').AsFloat; + if FType=1 then + begin + ADOQueryCmd.FieldByName('editer').Value:=trim(dName); + ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(adoqueryTmp); + end; + ADOQueryCmd.Post; + + next; + end; + EnableControls; + end; + + result:=true; + ADOQueryCmd.Connection.CommitTrans; + except + ADOQueryCmd.Connection.RollbackTrans; + end; +end; +procedure TfrmZdyAttachmentBJ_Edit.InitGrid(); +begin + with ADOQueryMain do + begin + close; + sql.Clear; + sql.Add('select A.* from KH_CP_BJ A'); + sql.Add('where BJNO='+quotedstr(trim(fkeyNo))); + open; + end; + IF not ADOQueryMain.IsEmpty then + begin + SCSHDataNew(ADOQueryMain,GroupBox1,2); + end; + SCreateCDS20(ADOQueryMain,CDS1); + SInitCDSData20(ADOQueryMain,CDS1); + + IF fType=2 then + begin + fType:=0; + fkeyNo:=''; + end; +end; +procedure TfrmZdyAttachmentBJ_Edit.InitImage(); +begin + { with ADOQueryImage do + begin + close; + sql.Clear; + sql.Add('select * from TP_File A'); + sql.Add('where TFid='+quotedstr(trim(zdyCode.Text))); + open; + end; } +end; + +procedure TfrmZdyAttachmentBJ_Edit.FormDestroy(Sender: TObject); +begin + frmZdyAttachmentBJ_Edit:=nil; +end; + +procedure TfrmZdyAttachmentBJ_Edit.TBCloseClick(Sender: TObject); +begin + WriteCxGrid(self.Caption+'1',Tv1); + close; +end; + +procedure TfrmZdyAttachmentBJ_Edit.FormCreate(Sender: TObject); +begin + Panel1.Align:=alclient; + clearControl(GroupBox1,2); + huilv.Text:='1'; +end; + +procedure TfrmZdyAttachmentBJ_Edit.TsaveClick(Sender: TObject); +begin +// zdyName.SetFocus; + cxgrid1.SetFocus; + if cds1.IsEmpty then exit; + IF trim(custName.Text)='' then + begin + application.MessageBox('ͻƲΪգ','ʾϢ',MB_ICONERROR); + exit; + end; + + try + IF not savedata() then + begin + application.MessageBox('ݱʧܣ','ʾϢ',MB_ICONERROR); + end + else + begin + application.MessageBox('ݱɹ','ʾϢ'); + self.ModalResult:=1; + end; + + except + + end; +end; + +procedure TfrmZdyAttachmentBJ_Edit.FormShow(Sender: TObject); +begin + readCxGrid(self.Caption+'1',Tv1); + InitGrid(); +end; + +procedure TfrmZdyAttachmentBJ_Edit.cxDBImage1DblClick(Sender: TObject); +var + sFieldName:string; + fileName:string; +begin +{ + IF TcxDBImage(Sender).Picture.Height=0 then exit; + + sFieldName:='D:\ͼƬ鿴'; + + if not DirectoryExists(pchar(sFieldName)) then + CreateDirectory(pchar(sFieldName),nil); + + fileName:=adoqueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring; + + sFieldName:=sFieldName+'\'+trim(fileName); + try + IdFTP1.Host := PicSvr; + IdFTP1.Username := 'three'; + IdFTP1.Password := '641010'; + IdFTP1.Connect(); + except + ; + end; + + if IdFTP1.Connected then + begin + try + IdFTP1.Get('TP\'+ Trim(fileName), sFieldName,false, true); + except + Application.MessageBox('ͻͼļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + end + else + begin + Application.MessageBox('޷ļ', 'ʾ', MB_ICONWARNING); + IdFTP1.Quit; + Exit; + end; + if IdFTP1.Connected then IdFTP1.Quit; + ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL); } +end; + +procedure TfrmZdyAttachmentBJ_Edit.FileNameClick(Sender: TObject); +begin + {IF trim(custNo.Text)='' then + begin + application.MessageBox('ƷŲΪգ','ʾϢ',MB_ICONERROR); + exit; + end; + + try + FormGetPic := TFormGetPic.Create(Application); + with FormGetPic do + begin + fkeyNO:=trim(zdyCode.Text); + pat1:=TCXbutton(Sender).Name; + pic1:=TCXbutton(Sender).Hint; + FTFType:='Ʒ'; + // pat1:='PatFile1'; +// pic1:='Picture1'; + IF ShowModal = 1 then + begin + // self.Timage(Tbutton(Sender).Hint).Picture.Assign(FormGetPic.Image2.Picture.Bitmap); + zdycode.Enabled:=false; + end; + + Release; + end; + Initimage(); + except + if FormGetPic<>nil then FormGetPic.Release; + end;} +end; + +procedure TfrmZdyAttachmentBJ_Edit.MTypeBtnDnClick(Sender: TObject); +begin + TBtnEditC(Sender).Text:=''; + TBtnEditC(Sender).TxtCode:=''; +end; + +procedure TfrmZdyAttachmentBJ_Edit.ToolButton2Click(Sender: TObject); +begin + IF CDS1.IsEmpty then exit; + CDS1.Delete; +end; + +procedure TfrmZdyAttachmentBJ_Edit.ToolButton1Click(Sender: TObject); +begin + + try + frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); + with frmZdyAttachCP do + begin + if ShowModal=1 then + begin + Self.CDS1.append; + Self.CDS1.FieldByName('P_Code').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); + Self.CDS1.FieldByName('P_CodeName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); + Self.CDS1.FieldByName('P_Color').Value:=Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); + // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); + Self.CDS1.Post; + end; + end; + finally + frmZdyAttachCP.Free; + end; +{ frmCPManageSel:=TfrmCPManageSel.create(self); + with frmCPManageSel do + begin + IF showmodal=1 then + begin + cds_main.DisableControls; + cds_main.first; + while not cds_main.Eof do + begin + if cds_main.FieldByName('ssel').AsBoolean then + begin + cds1.append; + + + cds1.FieldByName('P_Code').Value:=trim(cds_main.fieldbyname('CYNo').AsString); + cds1.FieldByName('P_CodeName').Value:=trim(cds_main.fieldbyname('CYName').AsString); + cds1.FieldByName('P_CodeNameE').Value:=trim(cds_main.fieldbyname('CYEName').AsString); + cds1.FieldByName('P_spec').Value:=trim(cds_main.fieldbyname('CYSpec').AsString); + cds1.FieldByName('P_cf').Value:=trim(cds_main.fieldbyname('CYCF').AsString); + cds1.FieldByName('P_MF').Value:=trim(cds_main.fieldbyname('CYMF').AsString); + cds1.FieldByName('P_KZ').Value:=trim(cds_main.fieldbyname('CYKZ').AsString); + cds1.FieldByName('BJstr7').Value:=trim(cds_main.fieldbyname('defstr14').AsString); + + cds1.FieldByName('Price').Value:=cds_main.fieldbyname('Price6').AsFloat; + cds1.FieldByName('BJQty1').Value:=cds_main.fieldbyname('kcQty').AsFloat; + cds1.Post; + end; + cds_main.next; + end; + cds_main.EnableControls; + end; + free; + end; } + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmZdyAttachmentBJ_Edit.custNoBtnClick(Sender: TObject); +begin + frmZdyAttachment:=TfrmZdyAttachment.create(self); + with frmZdyAttachment do + begin + // if canshu1='ҵԱ' then fywy:=DName; + fkhType:='𻪷֯'; + if showmodal=1 then + begin + custNo.Text:=trim(cds_hz.fieldbyname('zdyCode').AsString); + custName.Text:=trim(cds_hz.fieldbyname('zdyName').AsString); + custCountry.Text:=trim(cds_hz.fieldbyname('DEFStr7').AsString); + custphone.Text:=trim(cds_hz.fieldbyname('DEFstr1').AsString); + end; + free; + end; +end; + +procedure TfrmZdyAttachmentBJ_Edit.PriceunitChange(Sender: TObject); +begin + IF trim(huilv.Text)='' then + begin + huilv.Text:='1'; + end; +end; + +procedure TfrmZdyAttachmentBJ_Edit.V1Column8PropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:string; +begin +{ mvalue:=TcxTextEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='0'; + end; + FFieldName:=Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); + with CDS1 do + begin + Edit; + FieldByName(FFieldName).Value:=Trim(mvalue); + FieldByName('Price').Value:=format('%.2f',[fieldbyname('Price1').AsFloat * strtofloatdef(trim(huilv.Text),1)]); + Post; + end; + tv1.Controller.EditingController.ShowEdit();} +end; + +procedure TfrmZdyAttachmentBJ_Edit.huilvPropertiesEditValueChanged( + Sender: TObject); +var + mvalue,FFieldName:string; +begin + mvalue:=TcxCurrencyEdit(Sender).EditingText; + if Trim(mvalue)='' then + begin + mvalue:='1'; + end; + huilv.Text:= mvalue; + IF not cds1.Active then exit; + IF cds1.IsEmpty then exit; + with cds1 do + begin + DisableControls; + first; + while not eof do + begin + Edit; + FieldByName('Price').Value:=format('%.2f',[fieldbyname('Price1').AsFloat * strtofloatdef(trim(huilv.Text),1)]); + Post; + next; + end; + EnableControls; + end; + tv1.Controller.EditingController.ShowEdit(); +end; + +procedure TfrmZdyAttachmentBJ_Edit.custCountryBtnClick(Sender: TObject); +begin + try + frmZDYHelp:=TfrmZDYHelp.Create(Application); + with frmZDYHelp do + begin + flag:='custCountry'; + flagname:=''; + if ShowModal=1 then + begin + custCountry.Text:=Trim(ClientDataSet1.fieldbyname('zdyName').AsString); + end; + end; + finally + frmZDYHelp.Free; + end; +end; + +procedure TfrmZdyAttachmentBJ_Edit.CYIDKeyPress(Sender: TObject; + var Key: Char); +begin + IF key=#13 then + begin + with ADOQueryTmp do + begin + close; + sql.Clear; + sql.Add('select * from CP_YDang where CYID='''+trim(CYID.Text)+''' '); + open; + end; + IF not ADOQueryTmp.IsEmpty then + begin + cds1.append; + cds1.FieldByName('P_Code').Value:=trim(ADOQueryTmp.fieldbyname('CYNo').AsString); + cds1.FieldByName('P_CodeName').Value:=trim(ADOQueryTmp.fieldbyname('CYName').AsString); + cds1.FieldByName('P_CodeNameE').Value:=trim(ADOQueryTmp.fieldbyname('CYEName').AsString); + cds1.FieldByName('P_spec').Value:=trim(ADOQueryTmp.fieldbyname('CYSpec').AsString); + cds1.FieldByName('P_cf').Value:=trim(ADOQueryTmp.fieldbyname('CYCF').AsString); + cds1.FieldByName('P_MF').Value:=trim(ADOQueryTmp.fieldbyname('CYMF').AsString); + cds1.FieldByName('P_KZ').Value:=trim(ADOQueryTmp.fieldbyname('CYKZ').AsString); + cds1.FieldByName('BJstr7').Value:=trim(ADOQueryTmp.fieldbyname('defstr14').AsString); + cds1.FieldByName('Price').Value:=ADOQueryTmp.fieldbyname('Price6').AsFloat; + cds1.FieldByName('BJQty1').Value:=ADOQueryTmp.fieldbyname('kcQty').AsFloat; + cds1.Post; + CYID.Text:=''; + end + else + begin + application.MessageBox('','ʾϢ',MB_ICONERROR); + CYID.Text:=''; + end; + end; +end; + +end. diff --git a/样品仓库/U_testdll.dfm b/样品仓库/U_testdll.dfm new file mode 100644 index 0000000..80d4cc0 --- /dev/null +++ b/样品仓库/U_testdll.dfm @@ -0,0 +1,221 @@ +object Form1: TForm1 + Left = 97 + Top = 122 + Width = 791 + Height = 554 + Caption = 'Form1' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + FormStyle = fsMDIForm + Menu = MainMenu1 + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnResize = FormResize + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 783 + Height = 25 + ButtonWidth = 57 + Caption = 'ToolBar1' + Flat = True + Images = ImageList1 + TabOrder = 0 + object Edit1: TEdit + Left = 0 + Top = 0 + Width = 81 + Height = 22 + TabOrder = 0 + Text = '1' + end + object ToolButton1: TToolButton + Left = 81 + Top = 0 + Caption = #20851#38381 + ImageIndex = 0 + OnClick = ToolButton1Click + end + object Label1: TLabel + Left = 138 + Top = 0 + Width = 79 + Height = 22 + Caption = ' DllName'#65306 + end + object DllName: TEdit + Left = 217 + Top = 0 + Width = 135 + Height = 22 + TabOrder = 1 + end + end + object MainMenu1: TMainMenu + Left = 232 + Top = 40 + object test1: TMenuItem + Caption = 'test' + OnClick = test1Click + end + end + object ImageList1: TImageList + Left = 320 + Top = 56 + Bitmap = { + 494C010101000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000EFEFEF0000000000000000000000 + 0000EFEFEF00EFEFEF0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000EFEFEF0000000000EFEFEF00EFEFEF0000000000EFEFEF00000000008080 + 00008080000000000000C0C0C000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000EFEFEF00EFEFEF000000 + 0000EFEFEF00EFEFEF000000000000000000C0C0C00000000000000000008080 + 00008080000080800000EFEFEF00EFEFEF000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000000000000000000000000000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000EFEFEF0000000000808080008080800080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000008080000000000000808080008080800080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000EFEFEF00EFEF + EF0000000000FFFF000080800000000000008080800080808000000000000000 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000808000000000000080808000000000008080 + 0000000000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000808000008080 + 000080800000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000FFFF0000FFFF + 0000FFFF0000FFFF000000000000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF0000FFFF0000FFFF00000000000080808000000000008080 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000808000000000000080808000808080008080800080808000FFFF + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000808080008080800080808000808080000000 + 0000808000008080000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFF000000000000D343000000000000 + F4810000000000009340000000000000F801000000000000F001000000000000 + F001000000000000C001000000000000C001000000000000C001000000000000 + C201000000000000C001000000000000F001000000000000F001000000000000 + FC03000000000000FFFF00000000000000000000000000000000000000000000 + 000000000000} + end + object ADOConnection1: TADOConnection + ConnectionString = + 'Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ' + + 'ID=sa;Initial Catalog=rzdata;Data Source=6GMFFMYKYMJDZW7' + LoginPrompt = False + Provider = 'SQLOLEDB.1' + Left = 408 + Top = 64 + end +end diff --git a/样品仓库/U_testdll.pas b/样品仓库/U_testdll.pas new file mode 100644 index 0000000..e990908 --- /dev/null +++ b/样品仓库/U_testdll.pas @@ -0,0 +1,106 @@ +unit U_testdll; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, StdCtrls, Menus, ToolWin, ComCtrls, ImgList, DB, ADODB; + +type + TForm1 = class(TForm) + MainMenu1: TMainMenu; + test1: TMenuItem; + ToolBar1: TToolBar; + Edit1: TEdit; + ToolButton1: TToolButton; + ImageList1: TImageList; + ADOConnection1: TADOConnection; + DllName: TEdit; + Label1: TLabel; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure test1Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormResize(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + newh:hwnd; + +implementation + +{$R *.dfm} + +procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); +begin + sendmessage(newh,1034,4,0); + action:=cafree; +end; + +procedure TForm1.test1Click(Sender: TObject); +type + TMyFunc = function(App:Tapplication; FormH:hwnd; FormID:integer; + Language: integer; WinStyle:integer; + GCode: Pchar; GName: Pchar; DataBase:Pchar;Title:PChar; + Parameters1:PChar;Parameters2:PChar;Parameters3:PChar;Parameters4:PChar; + Parameters5:PChar;Parameters6:PChar;Parameters7:PChar;Parameters8:PChar; + Parameters9:PChar;Parameters10:PChar;DataBaseStr:PChar):hwnd;stdcall; +var + Tf: TMyFunc; + Tp: TFarProc; + Th:Thandle; +begin + //̬ + //newh:=getForm(Application,1,ADOConnection1,PChar('sa'),PChar('dsa')); + + //̬ + // showMessage(intTostr(application.Handle)); + Th := LoadLibrary('BPCK.dll'); + if Th > 0 then + begin + try + Tp := GetProcAddress(Th, 'GetDllForm'); + if Tp <> nil then + begin + Tf := TMyFunc(Tp); + newh:=Tf(Application,0,strToint(edit1.text),0,0, + PChar('sa'), + PChar('dsa'), + PChar('bsa'), + PChar('tsa'), + PChar('d1sa'), + PChar('d2sa'), + '','','','','','','','','' + ); + end + else + begin + ShowMessage('ӡִд'); + end; + finally + // FreeLibrary(); + end; + end + else + begin + ShowMessage('Ҳ'+Trim(DllName.Text)); + end; + +end; + +procedure TForm1.ToolButton1Click(Sender: TObject); +begin + close; +end; + +procedure TForm1.FormResize(Sender: TObject); +begin + sendmessage(newh,1034,1,0); +end; + +end. + diff --git a/样品仓库/consvr.ini b/样品仓库/consvr.ini new file mode 100644 index 0000000..3a03c34 --- /dev/null +++ b/样品仓库/consvr.ini @@ -0,0 +1,2 @@ +[SERVER] +SERVER=192.168.88.254 \ No newline at end of file diff --git a/样品仓库/testDll.cfg b/样品仓库/testDll.cfg new file mode 100644 index 0000000..9db56f1 --- /dev/null +++ b/样品仓库/testDll.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"d:\program files\borland\delphi7\Projects\Bpl" +-LN"d:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/样品仓库/testDll.dof b/样品仓库/testDll.dof new file mode 100644 index 0000000..e61bd28 --- /dev/null +++ b/样品仓库/testDll.dof @@ -0,0 +1,136 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages= +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=E:\ѧ\\Ŀ10\ljb\ֿ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= diff --git a/样品仓库/testDll.dpr b/样品仓库/testDll.dpr new file mode 100644 index 0000000..4be4b8a --- /dev/null +++ b/样品仓库/testDll.dpr @@ -0,0 +1,14 @@ +program testDll; + +uses + Forms, + U_testdll in 'U_testdll.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/样品仓库/testDll.res b/样品仓库/testDll.res new file mode 100644 index 0000000..2d6f24c Binary files /dev/null and b/样品仓库/testDll.res differ diff --git a/桂华管理系统/TradeManage.dpr b/桂华管理系统/TradeManage.dpr index 29bc697..1e663d5 100644 --- a/桂华管理系统/TradeManage.dpr +++ b/桂华管理系统/TradeManage.dpr @@ -4,7 +4,7 @@ uses SysUtils, classes, forms, - WinTypes, + WinTypes, WinProcs, U_DataLink in 'U_DataLink.pas' {DataLink_TradeManage: TDataModule}, U_GetDllForm in 'U_GetDllForm.pas', diff --git a/桂华管理系统/U_CKProductBCPOutList.pas b/桂华管理系统/U_CKProductBCPOutList.pas index f35fda7..6d7e626 100644 --- a/桂华管理系统/U_CKProductBCPOutList.pas +++ b/桂华管理系统/U_CKProductBCPOutList.pas @@ -4,28 +4,27 @@ interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, - cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, - cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, - cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, - cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, - cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, RM_Common, RM_Class, - RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxCheckBox, Menus, - MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, - dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, - dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, - dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, - dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, - dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, + cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, + cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, + cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, + ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, + cxDropDownEdit, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, + RM_GridReport, cxCheckBox, Menus, MovePanel, cxLookAndFeels, + cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, + dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, - dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, - dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, - dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, - dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, - dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, - dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter; type TfrmCKProductBCPOutList = class(TForm) @@ -156,11 +155,10 @@ type procedure tbpackNoClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); - private - TblCprk :string; + TblCprk: string; procedure InitGrid(); - function YSData(Order_Main10:TClientDataSet):Boolean; + function YSData(Order_Main10: TClientDataSet): Boolean; procedure CreateTable(); procedure DropTable(); { Private declarations } @@ -172,64 +170,61 @@ var frmCKProductBCPOutList: TfrmCKProductBCPOutList; implementation + uses - U_DataLink,U_Fun, U_Printckmd, U_CKProductCK, U_NoteList; + U_DataLink, U_Fun, U_Printckmd, U_CKProductCK, U_NoteList; {$R *.dfm} procedure TfrmCKProductBCPOutList.DropTable(); var - strSQL:string; + strSQL: string; begin // TblCprk := '[##CP_INOut123' + trim(DCode) + IntToStr(Handle)+formatdatetime('hhnnsszzz',time) + ']'; //ʱ strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk; - with ADOQueryCmd do - begin - Close; - SQL.Clear; - SQL.Add(strSQL); - ExecSQL; - end; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(strSQL); + ExecSQL; + end; end; + procedure TfrmCKProductBCPOutList.CreateTable(); var - strSQL:string; + strSQL: string; begin - TblCprk := '[##CP_PPack' + trim(DCode) + IntToStr(Handle)+formatdatetime('hhnnsszzz',time) + ']'; + TblCprk := '[##CP_PPack' + trim(DCode) + IntToStr(Handle) + formatdatetime('hhnnsszzz', time) + ']'; //ʱ - strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk + #13 - + 'CREATE TABLE ' + TblCprk + ' (' - + 'MainID VARCHAR(20),' - + 'subID VARCHAR(20),' - + 'BCID Varchar(20))'#13; - with ADOQueryCmd do - begin - Close; - SQL.Clear; - SQL.Add(strSQL); - ExecSQL; - end; + strSQL := 'IF OBJECT_ID(''tempdb..' + TblCprk + ''') IS NOT NULL DROP TABLE ' + TblCprk + #13 + 'CREATE TABLE ' + TblCprk + ' (' + 'MainID VARCHAR(20),' + 'subID VARCHAR(20),' + 'BCID Varchar(20))'#13; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + SQL.Add(strSQL); + ExecSQL; + end; end; procedure TfrmCKProductBCPOutList.FormDestroy(Sender: TObject); begin - frmCKProductBCPOutList:=nil; + frmCKProductBCPOutList := nil; end; -procedure TfrmCKProductBCPOutList.FormClose(Sender: TObject; - var Action: TCloseAction); +procedure TfrmCKProductBCPOutList.FormClose(Sender: TObject; var Action: TCloseAction); begin - Action:=caFree; + Action := caFree; end; procedure TfrmCKProductBCPOutList.FormCreate(Sender: TObject); begin - cxGrid2.Align:=alClient; + cxGrid2.Align := alClient; + + BegDate.DateTime := SGetServerDateTime(ADOQueryTemp); + EndDate.DateTime := SGetServerDateTime(ADOQueryTemp) - BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp); - EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp) - end; procedure TfrmCKProductBCPOutList.InitGrid(); @@ -240,7 +235,7 @@ begin begin Close; sql.Clear; - Filtered:=False; + Filtered := False; SQL.Add('select A.*,B.OrderNo,B.MPRTMF,B.MPRTKZ,B.customerNoname '); sql.Add(',B.FHADDress,B.lxfs'); sql.Add(',PHYG=(select Top 1 PHYG from CK_BanCP_PH X where X.phID=A.phID )'); @@ -249,42 +244,42 @@ begin sql.add('from CK_BanCP_CR A '); Sql.add(' LEFT join JYOrder_Main B on B.MainId=A.MainId'); // Sql.add(' LEFT join JYOrder_Sub C on C.mainID=A.MainID and C.SubId=A.SubId'); - sql.add('where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''' '); - sql.add('and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+''' '); + sql.add('where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''' '); + sql.add('and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''' '); SQL.Add('and CRflag ='''' '); - IF trim(orderNo.Text)<>'' then - sql.add('and B.OrderNo like '+quotedstr('%'+trim(orderNo.Text)+'%')); - IF trim(customerNoname.Text)<>'' then - sql.add('and B.customerNoname like '+quotedstr('%'+trim(customerNoname.Text)+'%')); + if trim(orderNo.Text) <> '' then + sql.add('and B.OrderNo like ' + quotedstr('%' + trim(orderNo.Text) + '%')); + if trim(customerNoname.Text) <> '' then + sql.add('and B.customerNoname like ' + quotedstr('%' + trim(customerNoname.Text) + '%')); Open; end; - SCreateCDS20(ADOQueryMain,CDS_Main); - SInitCDSData20(ADOQueryMain,CDS_Main); + SCreateCDS20(ADOQueryMain, CDS_Main); + SInitCDSData20(ADOQueryMain, CDS_Main); with ADOQueryTemp do begin Close; sql.Clear; - Filtered:=False; + Filtered := False; SQL.Add('select count(distinct ckOrdNO) as cnt '); sql.add('from CK_BanCP_CR A '); Sql.add(' LEFT join JYOrder_Main B on A.MainId=B.MainId'); // Sql.add(' LEFT join JYOrder_Sub C on A.SubId=C.SubId'); - sql.add('where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''' '); - sql.add('and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+''' '); + sql.add('where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''' '); + sql.add('and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''' '); SQL.Add(' and CRflag ='''' '); - IF trim(orderNo.Text)<>'' then - sql.add('and B.OrderNo like '+quotedstr('%'+trim(orderNo.Text)+'%')); - IF trim(customerNoname.Text)<>'' then - sql.add('and B.customerNoname like '+quotedstr('%'+trim(customerNoname.Text)+'%')); + if trim(orderNo.Text) <> '' then + sql.add('and B.OrderNo like ' + quotedstr('%' + trim(orderNo.Text) + '%')); + if trim(customerNoname.Text) <> '' then + sql.add('and B.customerNoname like ' + quotedstr('%' + trim(customerNoname.Text) + '%')); Open; - Label17.Caption:='ⵥ0'; + Label17.Caption := 'ⵥ0'; if not IsEmpty then begin - Label17.Caption:='ⵥ'+Fieldbyname('cnt').AsString; + Label17.Caption := 'ⵥ' + Fieldbyname('cnt').AsString; end; end; - finally + finally ADOQueryMain.EnableControls; end; tbfind.Click; @@ -300,19 +295,19 @@ procedure TfrmCKProductBCPOutList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin - SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmCKProductBCPOutList.TBCloseClick(Sender: TObject); begin - WriteCxGrid('ֿб',Tv1,'Ʒֿ'); + WriteCxGrid('ֿб', Tv1, 'Ʒֿ'); Close; end; procedure TfrmCKProductBCPOutList.FormShow(Sender: TObject); begin - ReadCxGrid('ֿб',Tv1,'Ʒֿ'); + ReadCxGrid('ֿб', Tv1, 'Ʒֿ'); { with ADOQueryTemp do begin Close; @@ -325,39 +320,40 @@ begin CDS_CX.Delete; } //InitGrid(); - if Trim(DParameters2)='' then + if Trim(DParameters2) = '' then begin - TBCKCX.Visible:=True; - TBOtCk.Visible:=true; + TBCKCX.Visible := True; + TBOtCk.Visible := true; // TbNote.Visible:=true; - TBPrint.Visible:=true; + TBPrint.Visible := true; // tbpackNo.Visible:=true; end; end; procedure TfrmCKProductBCPOutList.TBExportClick(Sender: TObject); begin - if ADOQueryMain.IsEmpty then exit; - SelExportData(Tv1,ADOQueryMain,''); + if ADOQueryMain.IsEmpty then + exit; + SelExportData(Tv1, ADOQueryMain, ''); end; procedure TfrmCKProductBCPOutList.TBFindClick(Sender: TObject); var - strwhere:string; + strwhere: string; begin if ADOQueryMain.Active then begin - strwhere:=SGetFilters(Panel1,1,2); - IF CheckBox2.Checked then + strwhere := SGetFilters(Panel1, 1, 2); + if CheckBox2.Checked then begin - IF trim(strwhere)='' then - strwhere:=strwhere+' customerNoname<>''㶫в'' ' + if trim(strwhere) = '' then + strwhere := strwhere + ' customerNoname<>''㶫в'' ' else - strwhere:=strwhere+' and customerNoname<>''㶫в'' '; + strwhere := strwhere + ' and customerNoname<>''㶫в'' '; end; - SDofilter(ADOQueryMain,strwhere); - SCreateCDS20(ADOQueryMain,CDS_Main); - SInitCDSData20(ADOQueryMain,CDS_Main); + SDofilter(ADOQueryMain, strwhere); + SCreateCDS20(ADOQueryMain, CDS_Main); + SInitCDSData20(ADOQueryMain, CDS_Main); end; end; @@ -368,14 +364,15 @@ end; procedure TfrmCKProductBCPOutList.TBPrintClick(Sender: TObject); var - filepath,fOrderNo:string; - i:integer; - Txt,fImagePath:string; - Moudle: THandle; - Makebar:TMakebar; - Mixtext:TMixtext; + filepath, fOrderNo: string; + i: integer; + Txt, fImagePath: string; + Moudle: THandle; + Makebar: TMakebar; + Mixtext: TMixtext; begin - if CDS_Main.IsEmpty then Exit; + if CDS_Main.IsEmpty then + Exit; { if CDS_Main.Locate('ssel',true,[])=false then begin Application.MessageBox('ûѡ!','ʾ',0); @@ -425,83 +422,85 @@ begin close; sql.Clear; sql.Add('exec P_Do_PrintMd10 '); - sql.Add('@mainID='+quotedstr(trim(CDS_Main.fieldbyname('MainID').AsString))); - sql.Add(',@TblCprk='+quotedstr(trim(TblCprk))); - sql.Add(',@flag='+quotedstr(trim('б'))); + sql.Add('@mainID=' + quotedstr(trim(CDS_Main.fieldbyname('MainID').AsString))); + sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk))); + sql.Add(',@flag=' + quotedstr(trim('б'))); open; end; try - filepath:=ExtractFilePath(Application.ExeName) + 'report\뵥.rmf'; - if not FileExists(Pchar(filepath)) then + filepath := ExtractFilePath(Application.ExeName) + 'report\뵥.rmf'; + if not FileExists(Pchar(filepath)) then begin - application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); exit; end; - try - Moudle:=LoadLibrary('MakeQRBarcode.dll'); - @Makebar:=GetProcAddress(Moudle,'Make'); - @Mixtext:=GetProcAddress(Moudle,'MixText'); - Txt:=Trim(AdoPrint.fieldbyname('orderNo').AsString); - fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp'; - if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then - CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); - if FileExists(fImagePath) then DeleteFile(fImagePath); - Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); - except - application.MessageBox('ʧܣ','ʾϢ',MB_ICONERROR); - exit; - end; - RMVariables['QRBARCODE']:=fImagePath; - RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); - RMVariables['zdr'] :=trim(DName); - RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + @Makebar := GetProcAddress(Moudle, 'Make'); + @Mixtext := GetProcAddress(Moudle, 'MixText'); + Txt := Trim(AdoPrint.fieldbyname('orderNo').AsString); + fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; + if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then + CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); + if FileExists(fImagePath) then + DeleteFile(fImagePath); + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + except + application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); + exit; + end; + RMVariables['QRBARCODE'] := fImagePath; + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(CDS_Main.fieldbyname('Filler').AsString); RMGridReport1.LoadFromFile(filepath); RMGridReport1.ShowReport; finally - DropTable(); + DropTable(); end; end; procedure TfrmCKProductBCPOutList.orderNoChange(Sender: TObject); begin - if Length(orderNo.Text)<4 then Exit; - - + if Length(orderNo.Text) < 4 then + Exit; end; procedure TfrmCKProductBCPOutList.N1Click(Sender: TObject); begin - SelOKNo(CDS_Main,True); + SelOKNo(CDS_Main, True); end; procedure TfrmCKProductBCPOutList.N2Click(Sender: TObject); begin - SelOKNo(CDS_Main,False); + SelOKNo(CDS_Main, False); end; procedure TfrmCKProductBCPOutList.TBCKCXClick(Sender: TObject); var - FFMainId,FPrice:String; - YFID,CRID:string; + FFMainId, FPrice: string; + YFID, CRID: string; begin - if CDS_Main.IsEmpty then Exit; - if CDS_Main.Locate('SSel',True,[])=False then + if CDS_Main.IsEmpty then + Exit; + if CDS_Main.Locate('SSel', True, []) = False then begin - Application.MessageBox('ûѡ','ʾ',0); + Application.MessageBox('ûѡ', 'ʾ', 0); Exit; end; - if Application.MessageBox('ȷҪ','ʾ',32+4)<>IDYES then Exit; - MovePanel2.Visible:=True; + if Application.MessageBox('ȷҪ', 'ʾ', 32 + 4) <> IDYES then + Exit; + MovePanel2.Visible := True; MovePanel2.Refresh; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin - while CDS_Main.Locate('SSel',True,[])=True do + while CDS_Main.Locate('SSel', True, []) = True do begin with ADOQueryTemp do @@ -509,34 +508,67 @@ begin Close; sql.Clear; sql.Add('select * from WFB_MJJY1 '); - sql.Add(' where BCID='''+Trim(CDS_Main.fieldbyname('BCID').AsString)+''''); + sql.Add(' where BCID=''' + Trim(CDS_Main.fieldbyname('BCID').AsString) + ''''); sql.Add(' and MJStr2='''' '); Open; if not IsEmpty then begin CDS_Main.EnableControls; - MovePanel2.Visible:=False; - Application.MessageBox('㶫Ѿ⣬ܳ!','ʾ',0); + MovePanel2.Visible := False; + Application.MessageBox('㶫Ѿ⣬ܳ!', 'ʾ', 0); ADOQueryCmd.Connection.RollbackTrans; exit; end; end; - with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); - sql.Add(' where MainID='''+Trim(CDS_Main.fieldbyname('MainID').AsString)+''''); - sql.Add(' and subID='''+Trim(CDS_Main.fieldbyname('subID').AsString)+''''); - sql.Add(' and YFName=''۽'' '); + sql.Add(' where MainID=''' + Trim(CDS_Main.fieldbyname('CKOrdno').AsString) + ''''); +// sql.Add(' and subID=''' + Trim(CDS_Main.fieldbyname('subID').AsString) + ''''); + sql.Add(' and YFName=''˻'' '); sql.Add(' and status>=''1'' '); Open; if not IsEmpty then begin CDS_Main.EnableControls; - MovePanel2.Visible:=False; - Application.MessageBox('Ӧտûгˣܳ!','ʾ',0); + MovePanel2.Visible := False; + Application.MessageBox('Ӧûгˣܳ!', 'ʾ', 0); + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(CDS_Main.fieldbyname('CKOrdno').AsString) + ''''); +// sql.Add(' and subID=''' + Trim(CDS_Main.fieldbyname('subID').AsString) + ''''); + sql.Add(' and YFName=''˻'' '); + Open; + if not IsEmpty then + begin + YFID := Fieldbyname('YFID').AsString; + CRID := Fieldbyname('CRID').AsString; + end; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(CDS_Main.fieldbyname('MainID').AsString) + ''''); + sql.Add(' and subID=''' + Trim(CDS_Main.fieldbyname('subID').AsString) + ''''); + sql.Add(' and YFName=''۽'' '); + sql.Add(' and status>=''1'' '); + Open; + if not IsEmpty then + begin + CDS_Main.EnableControls; + MovePanel2.Visible := False; + Application.MessageBox('Ӧտûгˣܳ!', 'ʾ', 0); ADOQueryCmd.Connection.RollbackTrans; exit; end; @@ -547,123 +579,125 @@ begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); - sql.Add(' where MainID='''+Trim(CDS_Main.fieldbyname('MainID').AsString)+''''); - sql.Add(' and subID='''+Trim(CDS_Main.fieldbyname('subID').AsString)+''''); + sql.Add(' where MainID=''' + Trim(CDS_Main.fieldbyname('MainID').AsString) + ''''); + sql.Add(' and subID=''' + Trim(CDS_Main.fieldbyname('subID').AsString) + ''''); sql.Add(' and YFName=''۽'' '); Open; if not IsEmpty then begin - YFID:=Fieldbyname('YFID').AsString; - CRID:=Fieldbyname('CRID').AsString; + YFID := Fieldbyname('YFID').AsString; + CRID := Fieldbyname('CRID').AsString; end; - end; - with ADOQueryTemp do + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_main '); + sql.Add(' where status=1 and conTk2=' + Quotedstr(trim(CDS_Main.fieldbyname('CKOrdNo').AsString))); + Open; + if not ADOQueryTemp.IsEmpty then begin - Close; - sql.Clear; - sql.Add('select * from Contract_main '); - sql.Add(' where status=1 and conTk2='+Quotedstr(trim(CDS_Main.fieldbyname('CKOrdNo').AsString)) ); - Open; - if not ADOQueryTemp.IsEmpty then - begin - CDS_Main.EnableControls; - MovePanel2.Visible:=False; - application.MessageBox('Ʒӹûɾݣܳ!','ʾϢ',0); - ADOQueryCmd.Connection.RollbackTrans; - exit; - end; + CDS_Main.EnableControls; + MovePanel2.Visible := False; + application.MessageBox('Ʒӹûɾݣܳ!', 'ʾϢ', 0); + ADOQueryCmd.Connection.RollbackTrans; + exit; end; - with ADOQueryCmd do - begin - Close; - sql.Clear; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; - sql.Add('UPDATE CK_BanCp_KC SET KCKgQty =A.KCKgQty + B.KgQty,KCQty =A.KCQty + B.Qty,KCRollNum =1,kcstatus=''1'' '); - sql.Add('FROM CK_BanCp_KC A '); - sql.Add('INNER JOIN CK_BanCP_CR B on B.CRID=A.CRID and B.CRType='''' '); - sql.Add('WHERE B.BCID ='+Quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('UPDATE CK_BanCp_KC SET KCKgQty =A.KCKgQty + B.KgQty,KCQty =A.KCQty + B.Qty,KCRollNum =1,kcstatus=''1'' '); + sql.Add('FROM CK_BanCp_KC A '); + sql.Add('INNER JOIN CK_BanCP_CR B on B.CRID=A.CRID and B.CRType='''' '); + sql.Add('WHERE B.BCID =' + Quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); - sql.Add('UPDATE CK_BanCp_KC SET KCKgQty =A.KCKgQty + B.KgQty,KCQty =A.KCQty + B.Qty,KCRollNum =1 '); - sql.Add('FROM CK_BanCp_KC A '); - sql.Add('INNER JOIN CK_BanCP_CR B on B.CRID=A.CRID and B.CRType<>'''' '); - sql.Add('WHERE B.BCID ='+Quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('UPDATE CK_BanCp_KC SET KCKgQty =A.KCKgQty + B.KgQty,KCQty =A.KCQty + B.Qty,KCRollNum =1 '); + sql.Add('FROM CK_BanCp_KC A '); + sql.Add('INNER JOIN CK_BanCP_CR B on B.CRID=A.CRID and B.CRType<>'''' '); + sql.Add('WHERE B.BCID =' + Quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); - sql.Add('update JYOrder_sub SET substatus=''2'' '); - sql.Add('where mainID='+quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); - sql.Add('and subID='+quotedstr(trim(CDS_Main.fieldbyname('subID').AsString))); - sql.Add('and isnull(substatus,''0'')>''0'' '); + sql.Add('update JYOrder_sub SET substatus=''2'' '); + sql.Add('where mainID=' + quotedstr(trim(CDS_Main.fieldbyname('mainID').AsString))); + sql.Add('and subID=' + quotedstr(trim(CDS_Main.fieldbyname('subID').AsString))); + sql.Add('and isnull(substatus,''0'')>''0'' '); - sql.Add('delete from BP_kc '); - sql.Add('FROM BP_kc A '); - sql.Add('inner join BP_InOut B on B.KCID=A.KCID and B.CRNO=A.CRNO and B.CRFlag='''' '); - SQL.Add('where B.frommainID='''+Trim(CDS_Main.fieldbyname('ckordNo').AsString)+''' '); - SQL.Add('AND B.fromSUBID='''+Trim(CDS_Main.fieldbyname('bcid').AsString)+''' '); + sql.Add('delete from BP_kc '); + sql.Add('FROM BP_kc A '); + sql.Add('inner join BP_InOut B on B.KCID=A.KCID and B.CRNO=A.CRNO and B.CRFlag='''' '); + SQL.Add('where B.frommainID=''' + Trim(CDS_Main.fieldbyname('ckordNo').AsString) + ''' '); + SQL.Add('AND B.fromSUBID=''' + Trim(CDS_Main.fieldbyname('bcid').AsString) + ''' '); - sql.Add('delete from BP_InOut '); - SQL.Add('where frommainID='''+Trim(CDS_Main.fieldbyname('ckordNo').AsString)+''' '); - SQL.Add('AND fromSUBID='''+Trim(CDS_Main.fieldbyname('bcid').AsString)+''' '); - SQL.Add('AND CRFlag='''' '); + sql.Add('delete from BP_InOut '); + SQL.Add('where frommainID=''' + Trim(CDS_Main.fieldbyname('ckordNo').AsString) + ''' '); + SQL.Add('AND fromSUBID=''' + Trim(CDS_Main.fieldbyname('bcid').AsString) + ''' '); + SQL.Add('AND CRFlag='''' '); - sql.Add('delete from BP_kc '); - sql.Add('FROM BP_kc A '); - sql.Add('inner join BP_InOut B on B.KCID=A.KCID and B.CRNO=A.CRNO and B.CRFlag='''' '); - SQL.Add('where B.frommainID='''+Trim(CDS_Main.fieldbyname('ckordNo').AsString)+''' '); - SQL.Add('AND B.fromSUBID='''+Trim(CDS_Main.fieldbyname('bcid').AsString)+''' '); - sql.Add('delete WFB_MJJY1 where BCID='''+Trim(CDS_Main.fieldbyname('BCID').AsString)+''''); - sql.Add('delete CK_BanCP_CR where BCID='''+Trim(CDS_Main.fieldbyname('BCID').AsString)+''''); + sql.Add('delete from BP_kc '); + sql.Add('FROM BP_kc A '); + sql.Add('inner join BP_InOut B on B.KCID=A.KCID and B.CRNO=A.CRNO and B.CRFlag='''' '); + SQL.Add('where B.frommainID=''' + Trim(CDS_Main.fieldbyname('ckordNo').AsString) + ''' '); + SQL.Add('AND B.fromSUBID=''' + Trim(CDS_Main.fieldbyname('bcid').AsString) + ''' '); + sql.Add('delete WFB_MJJY1 where BCID=''' + Trim(CDS_Main.fieldbyname('BCID').AsString) + ''''); + sql.Add('delete CK_BanCP_CR where BCID=''' + Trim(CDS_Main.fieldbyname('BCID').AsString) + ''''); // sql.Add('delete CK_BanCP_PH where PHID='''+Trim(CDS_Main.fieldbyname('PHID').AsString)+''''); - sql.Add('update CK_BanCP_PH SET P_status=''0'' where PHID='''+Trim(CDS_Main.fieldbyname('PHID').AsString)+''''); + sql.Add('update CK_BanCP_PH SET P_status=''0'' where PHID=''' + Trim(CDS_Main.fieldbyname('PHID').AsString) + ''''); - sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(Qty),0) from CK_BanCP_CR A '); - sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType='''' )'); - sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); - sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType='''' )'); - sql.Add(' where YFID='''+Trim(YFID)+''''); + sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(Qty),0) from CK_BanCP_CR A '); + sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType='''' )'); + sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); + sql.Add(' where A.mainID=YF_Money_CR.mainID and A.subiD=YF_Money_CR.subiD and A.CRType='''' )'); + sql.Add(' where YFID=''' + Trim(YFID) + ''''); - sql.Add('delete from YF_Money_CR '); - sql.Add('where YFID='''+Trim(YFID)+''' and Qty=0 '); + sql.Add('delete from YF_Money_CR '); + sql.Add('where YFID=''' + Trim(YFID) + ''' and Qty=0 '); - sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); - sql.Add(' where YFID='''+Trim(YFID)+''''); + sql.Add('delete from YF_Money_CR '); + sql.Add('where YFID=''' + Trim(YFID) + ''' and YFName=''˻'' '); + + sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); + sql.Add(' where YFID=''' + Trim(YFID) + ''''); - sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); - sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); - sql.Add(' where CRID='''+Trim(CRID)+''''); + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID=''' + Trim(CRID) + ''''); { sql.Add('UPdate CK_BanCP_KC Set KCKgQty=(select KgQty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); sql.Add(',KCQty=(select Qty from CK_BanCP_CR A where A.CRID=CK_BanCP_KC.CRID and A.CRFlag='''') '); SQL.Add(' where CRID='+CDS_Main.fieldbyname('CRID').AsString); } - ExecSQL; - end; + ExecSQL; + end; - - CDS_Main.Delete; + CDS_Main.Delete; end; end; CDS_Main.EnableControls; - ADOQueryCmd.Connection.CommitTrans; - MovePanel2.Visible:=False; + MovePanel2.Visible := False; Exit; except - MovePanel2.Visible:=False; + MovePanel2.Visible := False; CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; - Application.MessageBox('쳣','ʾ',0); + Application.MessageBox('쳣', 'ʾ', 0); end; end; -function TfrmCKProductBCPOutList.YSData(Order_Main10:TClientDataSet):Boolean; + +function TfrmCKProductBCPOutList.YSData(Order_Main10: TClientDataSet): Boolean; var - CRID,YFID,Price,PriceUnit,OrderUnit:String; + CRID, YFID, Price, PriceUnit, OrderUnit: string; begin - Result:=False; + Result := False; with ADOQueryTemp do begin Close; SQL.Clear; - sql.Add('select Top 1 * from JYOrder_Sub Where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); + sql.Add('select Top 1 * from JYOrder_Sub Where Mainid=''' + Trim(Order_Main10.fieldbyname('MainId').AsString) + ''''); //sql.Add(' and PRTPrice>0'); Open; end; @@ -672,19 +706,20 @@ begin begin Price:='0'; end; } - PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); - OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); + PriceUnit := Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); + OrderUnit := Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); with ADOQueryTemp do begin Close; SQL.Clear; - sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(Order_Main10.fieldbyname('KHName').AsString) + ''''); Open; end; - if ADOQueryTemp.IsEmpty=False then + if ADOQueryTemp.IsEmpty = False then begin - CRID:=ADOQueryTemp.fieldbyname('CRID').AsString; - end else + CRID := ADOQueryTemp.fieldbyname('CRID').AsString; + end + else begin with ADOQueryCmd do begin @@ -694,7 +729,7 @@ begin sql.Add('select * from YF_Money_CRID '); Open; end; - CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; @@ -705,9 +740,9 @@ begin with ADOQueryCmd do begin Append; - FieldByName('CRID').Value:=StrToInt(CRID); - FieldByName('FactoryName').Value:=Trim(Order_Main10.fieldbyname('KHName').AsString); - FieldByName('ZdyStr1').Value:='Ӧ'; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(Order_Main10.fieldbyname('KHName').AsString); + FieldByName('ZdyStr1').Value := 'Ӧ'; Post; end; end; @@ -715,16 +750,16 @@ begin begin Close; sql.Clear; - sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(Order_Main10.fieldbyname('KHName').AsString)+''''); - sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); - sql.Add(' and Price='''+Trim(Order_Main10.fieldbyname('PRTPrice').AsString)+''''); + sql.Add('select * from YF_Money_CR where FactoryName=''' + Trim(Order_Main10.fieldbyname('KHName').AsString) + ''''); + sql.Add(' and YFTypeId=''' + Trim(Order_Main10.fieldbyname('Mainid').AsString) + ''''); + sql.Add(' and Price=''' + Trim(Order_Main10.fieldbyname('PRTPrice').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty then begin - if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then + if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 3, 1) = False then begin - Application.MessageBox('ȡӦʧ!','ʾ',0); + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); Exit; end; {with ADOQueryCmd do @@ -755,9 +790,10 @@ begin FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); Post; end; } - end else + end + else begin - YFID:=Trim(ADOQueryTemp.fieldbyname('YFID').AsString); + YFID := Trim(ADOQueryTemp.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin @@ -771,8 +807,8 @@ begin sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.MainId=YF_Money_CR.YFTypeId and A.CRType='''' and CPType=''Ʒ'' '); SQL.Add(' and B.PRTPrice=YF_Money_CR.Price )'); - sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); - sql.Add(' and Price='+Order_Main10.fieldbyname('PRTPrice').AsString); + sql.Add(' where YFTypeId=''' + Trim(Order_Main10.fieldbyname('Mainid').AsString) + ''''); + sql.Add(' and Price=' + Order_Main10.fieldbyname('PRTPrice').AsString); ExecSQL; end; with ADOQueryCmd do @@ -780,7 +816,7 @@ begin Close; sql.Clear; sql.Add('Update YF_Money_CR Set Money=cast(Price*Qty as decimal(18,0)),BBMoney=cast(Price*Qty*HuiLv as decimal(18,0)) '); - sql.Add('where YFID='''+Trim(YFID)+''''); + sql.Add('where YFID=''' + Trim(YFID) + ''''); ExecSQL; end; with ADOQueryCmd do @@ -789,23 +825,23 @@ begin sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); - sql.Add(' where CRID='+CRID); + sql.Add(' where CRID=' + CRID); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; - sql.Add('select * from YF_Money_CR where YFId='''+Trim(YFID)+''''); + sql.Add('select * from YF_Money_CR where YFId=''' + Trim(YFID) + ''''); Open; end; - if ADOQueryTemp.FieldByName('Qty').Value=0 then + if ADOQueryTemp.FieldByName('Qty').Value = 0 then begin with ADOQueryCmd do begin Close; sql.Clear; - sql.Add('delete from YF_Money_CR where YFID='''+Trim(YFID)+''''); + sql.Add('delete from YF_Money_CR where YFID=''' + Trim(YFID) + ''''); ExecSQL; end; end; @@ -813,7 +849,7 @@ begin begin Close; sql.Clear; - sql.Add('select * from YF_Money_CR where CRId='+CRID); + sql.Add('select * from YF_Money_CR where CRId=' + CRID); Open; end; if ADOQueryTemp.IsEmpty then @@ -822,70 +858,69 @@ begin begin Close; sql.Clear; - sql.Add('delete from YF_Money_KC where CRId='+CRID); + sql.Add('delete from YF_Money_KC where CRId=' + CRID); ExecSQL; end; end; - - Result:=True; + Result := True; end; -procedure TfrmCKProductBCPOutList.orderNoKeyPress(Sender: TObject; - var Key: Char); +procedure TfrmCKProductBCPOutList.orderNoKeyPress(Sender: TObject; var Key: Char); begin - if Key=#13 then + if Key = #13 then begin - if Length(Trim(orderNo.Text))<4 then Exit; + if Length(Trim(orderNo.Text)) < 4 then + Exit; try - ADOQueryMain.DisableControls; - with ADOQueryMain do - begin - Close; - sql.Clear; - Filtered:=False; - SQL.Add('select A.*,B.OrderNo,ISNULL(C.PRTCode,A.C_Code) as PRTCode,ISNULL(C.PRTCodeName,A.C_COdeName) as PRTCodeName,C.PRTSpec,isnull(C.prtColor,A.C_Color) as prtColor,B.MPRTMF,B.MPRTKZ,B.customerNoname,C.PRTPrice '); - sql.Add(',isnull(customerNoName,B.OrderNo) KHName,B.FHADDress,B.lxfs'); - sql.Add(',PHYG=(select Top 1 PHYG from CK_BanCP_PH X where X.phID=A.phID )'); - sql.Add(',AOrddefstr4=(select AOrddefstr4 from JYOrder_Sub_AnPai X where X.apid=A.apid )'); - sql.add('from CK_BanCP_CR A '); - Sql.add(' LEFT join JYOrder_Main B on A.MainId=B.MainId'); - Sql.add(' LEFT join JYOrder_Sub C on A.SubId=C.SubId'); - sql.add('where B.OrderNo='+quotedstr(trim(OrderNo.Text))); - SQL.Add(' and CRflag ='''' '); - Open; - end; - SCreateCDS20(ADOQueryMain,CDS_Main); - SInitCDSData20(ADOQueryMain,CDS_Main); - - with ADOQueryTemp do - begin - Close; - sql.Clear; - Filtered:=False; - SQL.Add('select count(distinct ckOrdNO) as cnt '); - sql.add('from CK_BanCP_CR A '); - Sql.add(' LEFT join JYOrder_Main B on A.MainId=B.MainId'); - Sql.add(' LEFT join JYOrder_Sub C on A.SubId=C.SubId'); - sql.add('where B.OrderNo='+quotedstr(trim(OrderNo.Text))); - SQL.Add(' and CRflag ='''' '); - Open; - Label17.Caption:='ⵥ0'; - if not IsEmpty then + ADOQueryMain.DisableControls; + with ADOQueryMain do begin - Label17.Caption:='ⵥ'+Fieldbyname('cnt').AsString; + Close; + sql.Clear; + Filtered := False; + SQL.Add('select A.*,B.OrderNo,ISNULL(C.PRTCode,A.C_Code) as PRTCode,ISNULL(C.PRTCodeName,A.C_COdeName) as PRTCodeName,C.PRTSpec,isnull(C.prtColor,A.C_Color) as prtColor,B.MPRTMF,B.MPRTKZ,B.customerNoname,C.PRTPrice '); + sql.Add(',isnull(customerNoName,B.OrderNo) KHName,B.FHADDress,B.lxfs'); + sql.Add(',PHYG=(select Top 1 PHYG from CK_BanCP_PH X where X.phID=A.phID )'); + sql.Add(',AOrddefstr4=(select AOrddefstr4 from JYOrder_Sub_AnPai X where X.apid=A.apid )'); + sql.add('from CK_BanCP_CR A '); + Sql.add(' LEFT join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' LEFT join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add('where B.OrderNo=' + quotedstr(trim(OrderNo.Text))); + SQL.Add(' and CRflag ='''' '); + Open; end; + SCreateCDS20(ADOQueryMain, CDS_Main); + SInitCDSData20(ADOQueryMain, CDS_Main); + + with ADOQueryTemp do + begin + Close; + sql.Clear; + Filtered := False; + SQL.Add('select count(distinct ckOrdNO) as cnt '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' LEFT join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' LEFT join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add('where B.OrderNo=' + quotedstr(trim(OrderNo.Text))); + SQL.Add(' and CRflag ='''' '); + Open; + Label17.Caption := 'ⵥ0'; + if not IsEmpty then + begin + Label17.Caption := 'ⵥ' + Fieldbyname('cnt').AsString; + end; + end; + finally + ADOQueryMain.EnableControls; end; - finally - ADOQueryMain.EnableControls; - end; end; end; procedure TfrmCKProductBCPOutList.TBOtCkClick(Sender: TObject); begin - frmCKProductCK:=TfrmCKProductCK.create(self); + frmCKProductCK := TfrmCKProductCK.create(self); with frmCKProductCK do begin { if Trim(DParameters2)<>'' then @@ -899,7 +934,7 @@ begin CRType.Items.Add('ij'); CRType.ItemIndex:=0; end; } - if showmodal=1 then + if showmodal = 1 then begin self.TBRafresh.Click; end; @@ -909,31 +944,32 @@ end; procedure TfrmCKProductBCPOutList.TbNoteClick(Sender: TObject); var - Fnote:string; + Fnote: string; begin - IF CDS_Main.IsEmpty then exit; - frmwlnote:=Tfrmwlnote.create(self); + if CDS_Main.IsEmpty then + exit; + frmwlnote := Tfrmwlnote.create(self); with frmwlnote do begin - if showmodal=1 then + if showmodal = 1 then begin - Fnote:=trim(Memo1.Text); + Fnote := trim(Memo1.Text); with CDS_Main do begin DisableControls; first; while not eof do begin - IF Fieldbyname('ssel').AsBoolean then + if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; - sql.Add('update CK_Bancp_CR SET defNote1='+quotedstr(trim(Memo1.Text))); - sql.Add('where BCID='+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); - sql.Add('update BP_InOut SET defNote1='+quotedstr(trim(Memo1.Text))); - sql.Add('where FromSubID='+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('update CK_Bancp_CR SET defNote1=' + quotedstr(trim(Memo1.Text))); + sql.Add('where BCID=' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('update BP_InOut SET defNote1=' + quotedstr(trim(Memo1.Text))); + sql.Add('where FromSubID=' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); execsql; end; end; @@ -950,7 +986,8 @@ end; procedure TfrmCKProductBCPOutList.CheckBox1Click(Sender: TObject); begin - IF CDS_Main.IsEmpty then exit; + if CDS_Main.IsEmpty then + exit; with CDS_Main do begin DisableControls; @@ -958,7 +995,7 @@ begin while not eof do begin edit; - fieldbyname('ssel').Value:=checkbox1.Checked; + fieldbyname('ssel').Value := checkbox1.Checked; post; next; end; @@ -970,33 +1007,33 @@ end; procedure TfrmCKProductBCPOutList.ToolButton3Click(Sender: TObject); var - filepath:string; + filepath: string; begin - if CDS_Main.IsEmpty then exit; - if CDS_Main.Locate('ssel',true,[])=false then + if CDS_Main.IsEmpty then + exit; + if CDS_Main.Locate('ssel', true, []) = false then begin - Application.MessageBox('ûѡ!','ʾ',0); + Application.MessageBox('ûѡ!', 'ʾ', 0); Exit; end; CreateTable(); - with CDS_Main do begin DisableControls; first; while not eof do begin - IF Fieldbyname('ssel').AsBoolean then + if Fieldbyname('ssel').AsBoolean then begin with adoqueryCmd do begin Close; - SQL.Clear; - SQL.Add(' insert into '+TblCprk+'(BCID) values( '); - SQL.Add(' '+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + SQL.Clear; + SQL.Add(' insert into ' + TblCprk + '(BCID) values( '); + SQL.Add(' ' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); sql.add(')'); - execsql; + execsql; end; end; next; @@ -1010,34 +1047,34 @@ begin close; sql.Clear; sql.Add('exec P_Get_CpCkpackList '); - sql.Add('@mainID='+quotedstr(trim(''))); - sql.Add(',@TblCprk='+quotedstr(trim(TblCprk))); - sql.Add(',@flag='+quotedstr(trim('1'))); + sql.Add('@mainID=' + quotedstr(trim(''))); + sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk))); + sql.Add(',@flag=' + quotedstr(trim('1'))); open; end; - with AdoPrint1 do + with AdoPrint1 do begin close; sql.Clear; sql.Add('exec P_Get_CpCkpackList '); - sql.Add('@mainID='+quotedstr(trim(''))); - sql.Add(',@TblCprk='+quotedstr(trim(TblCprk))); - sql.Add(',@flag='+quotedstr(trim('10'))); + sql.Add('@mainID=' + quotedstr(trim(''))); + sql.Add(',@TblCprk=' + quotedstr(trim(TblCprk))); + sql.Add(',@flag=' + quotedstr(trim('10'))); open; end; try - filepath:=ExtractFilePath(Application.ExeName) + 'report\Ʒⵥ.rmf'; - if not FileExists(Pchar(filepath)) then + filepath := ExtractFilePath(Application.ExeName) + 'report\Ʒⵥ.rmf'; + if not FileExists(Pchar(filepath)) then begin - application.MessageBox(pchar('ļ['+filepath+']ڣ'),'ʾϢ',MB_IConError); + application.MessageBox(pchar('ļ[' + filepath + ']ڣ'), 'ʾϢ', MB_IConError); exit; end; - RMVariables['begdate'] :=FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+' - '+FormatDateTime('yyyy-MM-dd',enddate.DateTime); - RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); - RMVariables['zdr'] :=trim(DName); - RMVariables['Filler'] :=trim(CDS_Main.fieldbyname('Filler').AsString); + RMVariables['begdate'] := FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ' - ' + FormatDateTime('yyyy-MM-dd', enddate.DateTime); + RMVariables['dtxz'] := FormatDateTime('yyyy-mm-dd', date()); + RMVariables['zdr'] := trim(DName); + RMVariables['Filler'] := trim(CDS_Main.fieldbyname('Filler').AsString); RMGridReport1.LoadFromFile(filepath); RMGridReport1.ShowReport; finally @@ -1050,13 +1087,14 @@ end; procedure TfrmCKProductBCPOutList.tbpackNoClick(Sender: TObject); begin - IF CDS_Main.IsEmpty then exit; - frmwlnote:=Tfrmwlnote.create(self); + if CDS_Main.IsEmpty then + exit; + frmwlnote := Tfrmwlnote.create(self); with frmwlnote do begin - frmwlnote.Caption:='Ӱ'; - frmwlnote.Label1.Caption:=''; - if showmodal=1 then + frmwlnote.Caption := 'Ӱ'; + frmwlnote.Label1.Caption := ''; + if showmodal = 1 then begin // Fnote:=trim(Memo1.Text); @@ -1066,14 +1104,14 @@ begin first; while not eof do begin - IF Fieldbyname('ssel').AsBoolean then + if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; - sql.Add('update CK_Bancp_CR SET packNo='+quotedstr(trim(Memo1.Text))); - sql.Add('where BCID='+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('update CK_Bancp_CR SET packNo=' + quotedstr(trim(Memo1.Text))); + sql.Add('where BCID=' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); execsql; end; end; @@ -1091,13 +1129,14 @@ end; procedure TfrmCKProductBCPOutList.ToolButton1Click(Sender: TObject); begin - IF CDS_Main.IsEmpty then exit; - frmwlnote:=Tfrmwlnote.create(self); + if CDS_Main.IsEmpty then + exit; + frmwlnote := Tfrmwlnote.create(self); with frmwlnote do begin - frmwlnote.Caption:='޸Ļ'; - frmwlnote.Label1.Caption:=''; - if showmodal=1 then + frmwlnote.Caption := '޸Ļ'; + frmwlnote.Label1.Caption := ''; + if showmodal = 1 then begin with CDS_Main do begin @@ -1105,16 +1144,16 @@ begin first; while not eof do begin - IF Fieldbyname('ssel').AsBoolean then + if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; - sql.Add('update CK_Bancp_CR SET defstr2='+quotedstr(trim(Memo1.Text))); - sql.Add('where BCID='+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); - sql.Add('update BP_InOut SET defstr2='+quotedstr(trim(Memo1.Text))); - sql.Add('where FromSubID='+quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('update CK_Bancp_CR SET defstr2=' + quotedstr(trim(Memo1.Text))); + sql.Add('where BCID=' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); + sql.Add('update BP_InOut SET defstr2=' + quotedstr(trim(Memo1.Text))); + sql.Add('where FromSubID=' + quotedstr(trim(CDS_Main.fieldbyname('BCID').AsString))); execsql; end; end; @@ -1129,9 +1168,11 @@ begin end; end; + procedure TfrmCKProductBCPOutList.CheckBox2Click(Sender: TObject); begin -TBFind.Click; + TBFind.Click; end; end. + diff --git a/桂华管理系统/U_CKProductCK.pas b/桂华管理系统/U_CKProductCK.pas index 8aebaa1..c22a722 100644 --- a/桂华管理系统/U_CKProductCK.pas +++ b/桂华管理系统/U_CKProductCK.pas @@ -10,7 +10,20 @@ uses cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxCheckBox, BtnEdit, strutils, cxSplitter, - cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinBlack, + dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, + dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, + dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, + dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, + dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, + dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, + dxSkinscxPCPainter; type TfrmCKProductCK = class(TForm) @@ -160,6 +173,7 @@ type IsCreateSel: boolean; procedure InitGrid(); procedure InitGridNull(); + function YFData(fkeyNo: string): Boolean; function savedate(): boolean; function SaveJG(fCkNO: string): boolean; function SaveJG10(fCkNO: string): boolean; @@ -179,6 +193,131 @@ uses U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachGYS, U_ZdyAttachCP; {$R *.dfm} + +function TfrmCKProductCK.YFData(fkeyNo: string): Boolean; +var + CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou: string; +begin + Result := False; + + with ADOQueryTemp do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(defstr1.text) + ''''); + sql.Add(' and YFDefFlag1=0 '); + Open; + end; + if not ADOQueryTemp.IsEmpty then + begin + CRID := ADOQueryTemp.fieldbyname('CRID').AsString; + end + else + begin + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_CRID set CRID=CRID+1'); + sql.Add('select * from YF_Money_CRID '); + Open; + end; + CRID := ADOQueryCmd.fieldbyname('CRID').AsString; + with ADOQueryCmd do + begin + Close; + SQL.Clear; + sql.Add('select * from YF_Money_KC where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('FactoryName').Value := Trim(defstr1.text); + FieldByName('YFDefFlag1').Value := 0; + FieldByName('ZdyStr1').Value := 'Ӧ'; + Post; + end; + end; + + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('delete from YF_Money_CR '); + sql.Add(' where MainID=''' + Trim(fkeyNo) + ''''); + sql.Add(' and YFName=''˻'' '); + execsql; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + sql.Add('select C_CodeName,C_Color,SUM(RollNum) as RollNum,SUM(Qty) as Qty from CK_BanCP_CR '); + sql.Add(' where CKOrdNo=''' + Trim(fkeyNo) + ''''); + sql.Add(' and CRType=''˻'' '); + sql.Add(' group by C_CodeName,C_Color '); + Open; + end; + while not ADOQueryTemp.eof do + begin + if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 3, 1) = False then + begin + Application.MessageBox('ȡӦʧ!', 'ʾ', 0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from YF_Money_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('YFID').Value := Trim(YFID); + FieldByName('YFTypeId').Value := Trim(fkeyNo); + FieldByName('CRID').Value := StrToInt(CRID); + FieldByName('Filler').Value := Trim(DName); + FieldByName('CRType').Value := 'ӦǼ'; + FieldByName('CRFlag').Value := 'Ӧ'; + FieldByName('QtyFlag').Value := 1; + FieldByName('FactoryName').Value := trim(defstr1.text); + FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', CRTIME.DateTime)); + FieldByName('YFType').Value := 'Զ'; + FieldByName('Price').Value := 0; + FieldByName('PS').Value := -1 * ADOQueryTemp.fieldbyname('RollNum').AsFloat; + FieldByName('Qty').Value := -1 * ADOQueryTemp.fieldbyname('Qty').AsFloat; + FieldByName('P_CodeName').Value := ADOQueryTemp.fieldbyname('C_CodeName').AsString; + FieldByName('P_Color').Value := ADOQueryTemp.fieldbyname('C_Color').AsString; + //FieldByName('HuiLv').Value:=1; + FieldByName('HuiLv').Value := 1; + FieldByName('BZType').Value := ''; + FieldByName('QtyUnit').Value := 'M'; + FieldByName('ComTaiTou').Value := trim(defstr1.text); + FieldByName('YFName').Value := '˻'; + FieldByName('MainId').Value := Trim(fkeyNo); + FieldByName('subID').Value := ''; + FieldByName('YFDefFlag1').Value := 0; + // FieldByName('status').Value:='1'; + Post; + end; + ADOQueryTemp.next; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); + sql.Add(' where CRID=' + CRID); + ExecSQL; + end; + Result := True; +end; + function TfrmCKProductCK.SaveJG10(fCkNO: string): boolean; var FmainID, fsubID, fconNo: string; @@ -201,7 +340,7 @@ begin end; } with ADOQueryTemp do - begin + begin close; sql.Clear; sql.Add('select BCGangNO='''',QtyUnit=''M'',sum(RollNum) as RollNum,suM(Qty) as Qty '); @@ -669,6 +808,14 @@ begin exit; end; end; + if (trim(CRType.Text) = '˻') then + begin + if not YFData(fkeyNo) then + begin + ADOQueryCmd.Connection.RollbackTrans; + exit; + end; + end; ADOQueryCmd.Connection.CommitTrans; result := true; diff --git a/桂华管理系统/U_CP_COL_XLYJ.dfm b/桂华管理系统/U_CP_COL_XLYJ.dfm new file mode 100644 index 0000000..c21006d --- /dev/null +++ b/桂华管理系统/U_CP_COL_XLYJ.dfm @@ -0,0 +1,652 @@ +object frmCP_COL_XLYJ: TfrmCP_COL_XLYJ + Left = 306 + Top = 350 + Width = 1220 + Height = 592 + Caption = #20135#21697#39068#33394#24211#23384#39044#35686 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + WindowState = wsMaximized + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1204 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 2 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBexcel: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBexcelClick + end + object TBClose: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 1204 + Height = 45 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 43 + Top = 15 + Width = 26 + Height = 12 + Caption = #26085#26399 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 314 + Top = 15 + Width = 26 + Height = 12 + Caption = #21697#21517 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label9: TLabel + Left = 495 + Top = 55 + Width = 39 + Height = 12 + Caption = #21512#21516#21495 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 164 + Top = 16 + Width = 6 + Height = 12 + Caption = '-' + end + object Label3: TLabel + Left = 490 + Top = 15 + Width = 26 + Height = 12 + Caption = #39068#33394 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 642 + Top = 15 + Width = 52 + Height = 12 + Caption = #39044#35686#21305#25968 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object BegDate: TDateTimePicker + Left = 76 + Top = 11 + Width = 85 + Height = 20 + Date = 40675.464742650460000000 + Format = 'yyyy-MM-dd' + Time = 40675.464742650460000000 + TabOrder = 0 + end + object EndDate: TDateTimePicker + Left = 172 + Top = 11 + Width = 86 + Height = 20 + Date = 40675.464761099540000000 + Format = 'yyyy-MM-dd' + Time = 40675.464761099540000000 + TabOrder = 1 + end + object P_CodeName: TEdit + Tag = 2 + Left = 343 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 2 + OnChange = P_CodeNameChange + end + object ConNoM: TEdit + Tag = 2 + Left = 536 + Top = 51 + Width = 77 + Height = 20 + TabOrder = 3 + end + object P_color: TEdit + Tag = 2 + Left = 519 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 4 + OnChange = P_CodeNameChange + end + object YJPS: TEdit + Left = 698 + Top = 11 + Width = 100 + Height = 20 + TabOrder = 5 + OnKeyPress = YJPSKeyPress + end + end + object cxGrid1: TcxGrid + Left = 0 + Top = 77 + Width = 729 + Height = 476 + Align = alLeft + TabOrder = 2 + object Tv1: TcxGridDBBandedTableView + Navigator.Buttons.CustomButtons = <> + OnCellClick = Tv1CellClick + OnCustomDrawCell = Tv1CustomDrawCell + DataController.DataSource = DS_Main + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v1Column2 + end + item + Kind = skSum + Column = v1Column3 + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column5 + end + item + Kind = skSum + Column = v1Column6 + end + item + Kind = skSum + Column = v1Column7 + end + item + Kind = skSum + Column = v1Column8 + end + item + Kind = skSum + Column = v1Column9 + end + item + Kind = skSum + Column = v1Column10 + end + item + Kind = skSum + Column = v1Column11 + end + item + Kind = skSum + Column = v1Column12 + end + item + Kind = skSum + Column = v1Column13 + end + item + Kind = skSum + Column = v1Column14 + end + item + Kind = skSum + Column = v1Column15 + end + item + Kind = skSum + Column = v1Column16 + end + item + Kind = skSum + Column = v1Column17 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnMoving = False + OptionsCustomize.BandHiding = True + OptionsCustomize.BandMoving = False + OptionsCustomize.BandSizing = False + OptionsData.Deleting = False + OptionsData.Inserting = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + Styles.Header = DataLink_TradeManage.cxStyle_fontBlack + Styles.BandHeader = DataLink_TradeManage.cxStyle_fontBlack + Bands = < + item + end + item + Caption = #26690#21326#32442#32455 + end + item + Caption = #23578#32654#29305 + end + item + Caption = #37329#40718#20016#38376#24066#37096 + end + item + Caption = #21512#35745 + end> + object v1Column1: TcxGridDBBandedColumn + Caption = #21697#21517 + DataBinding.FieldName = 'P_CodeName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 120 + Position.BandIndex = 0 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column18: TcxGridDBBandedColumn + Caption = #39068#33394 + DataBinding.FieldName = 'P_Color' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 0 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column2: TcxGridDBBandedColumn + Caption = #21305#25968 + DataBinding.FieldName = 'J_ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 1 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column3: TcxGridDBBandedColumn + Caption = #25968#37327 + DataBinding.FieldName = 'J_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 1 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column4: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'J_money' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 1 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column5: TcxGridDBBandedColumn + Caption = #21305#25968 + DataBinding.FieldName = 'G_ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 2 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column6: TcxGridDBBandedColumn + Caption = #25968#37327 + DataBinding.FieldName = 'G_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 2 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column7: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'G_money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 2 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column8: TcxGridDBBandedColumn + Caption = #21305#25968 + DataBinding.FieldName = 'H_ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 3 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column9: TcxGridDBBandedColumn + Caption = #25968#37327 + DataBinding.FieldName = 'H_Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 3 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column10: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'H_Money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 3 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column11: TcxGridDBBandedColumn + Caption = #21305#25968 + DataBinding.FieldName = 'ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 4 + Position.ColIndex = 0 + Position.RowIndex = 0 + end + object v1Column12: TcxGridDBBandedColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 4 + Position.ColIndex = 1 + Position.RowIndex = 0 + end + object v1Column13: TcxGridDBBandedColumn + Caption = #37329#39069 + DataBinding.FieldName = 'money' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 4 + Position.ColIndex = 2 + Position.RowIndex = 0 + end + object v1Column14: TcxGridDBBandedColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'J_KCRollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 1 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column15: TcxGridDBBandedColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'J_KCQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 1 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object v1Column16: TcxGridDBBandedColumn + Caption = #24211#23384#21305#25968 + DataBinding.FieldName = 'G_KCRollNum' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 2 + Position.ColIndex = 3 + Position.RowIndex = 0 + end + object v1Column17: TcxGridDBBandedColumn + Caption = #24211#23384#25968#37327 + DataBinding.FieldName = 'G_KCQty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 80 + Position.BandIndex = 2 + Position.ColIndex = 4 + Position.RowIndex = 0 + end + object Tv1Column1: TcxGridDBBandedColumn + Caption = #26159#21542#39044#35686 + DataBinding.FieldName = 'ISYJ' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.ImmediatePost = True + Properties.Items.Strings = ( + #26159 + #21542) + Properties.OnEditValueChanged = Tv1Column1PropertiesEditValueChanged + Position.BandIndex = 1 + Position.ColIndex = 5 + Position.RowIndex = 0 + end + object Tv1Column2: TcxGridDBBandedColumn + DataBinding.FieldName = 'YJstatus' + Visible = False + HeaderAlignmentHorz = taCenter + Width = 40 + Position.BandIndex = 1 + Position.ColIndex = 6 + Position.RowIndex = 0 + end + end + object cxGrid1Level1: TcxGridLevel + GridView = Tv1 + end + end + object GroupBox1: TGroupBox + Left = 792 + Top = 77 + Width = 412 + Height = 476 + Align = alRight + Caption = #23458#25143#38144#21806#20998#26512 + TabOrder = 3 + object cxGrid2: TcxGrid + Left = 2 + Top = 14 + Width = 408 + Height = 460 + Align = alClient + TabOrder = 0 + object TV2: TcxGridDBTableView + Navigator.Buttons.CustomButtons = <> + DataController.DataSource = DS_sub + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column3 + end + item + Kind = skSum + Column = V2Column4 + end + item + Kind = skSum + Column = V2Column6 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsCustomize.ColumnSorting = False + OptionsData.Deleting = False + OptionsData.Editing = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + OptionsView.Indicator = True + object V2Column1: TcxGridDBColumn + Caption = #23458#25143 + DataBinding.FieldName = 'factoryName' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object V2Column2: TcxGridDBColumn + Caption = #21457#36135#26085#26399 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 77 + end + object V2Column3: TcxGridDBColumn + Caption = #21305#25968 + DataBinding.FieldName = 'ps' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 39 + end + object V2Column4: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 75 + end + object V2Column5: TcxGridDBColumn + Caption = #21333#20215 + DataBinding.FieldName = 'Price' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 48 + end + object V2Column6: TcxGridDBColumn + Caption = #37329#39069 + DataBinding.FieldName = 'money' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Editing = False + Width = 60 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = TV2 + end + end + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 300 + Top = 172 + end + object DS_Main: TDataSource + DataSet = CDS_main + Left = 400 + Top = 160 + end + object CDS_main: TClientDataSet + Aggregates = <> + Params = <> + Left = 452 + Top = 168 + end + object ADO_Sub: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 776 + Top = 44 + end + object DS_sub: TDataSource + DataSet = ADO_Sub + Left = 700 + Top = 160 + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 84 + Top = 188 + end +end diff --git a/桂华管理系统/U_CP_COL_XLYJ.pas b/桂华管理系统/U_CP_COL_XLYJ.pas new file mode 100644 index 0000000..3ccc46a --- /dev/null +++ b/桂华管理系统/U_CP_COL_XLYJ.pas @@ -0,0 +1,270 @@ +unit U_CP_COL_XLYJ; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ExtCtrls, ToolWin, DBClient, DB, ADODB, cxStyles, + cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, + cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, + cxGridDBBandedTableView, cxControls, cxGridCustomView, cxClasses, cxGridLevel, + cxGrid, cxGridDBTableView, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, + dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, + dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, + dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, + dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, + dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, + dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, + dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, + dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, + dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, + dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, + dxSkinXmas2008Blue, dxSkinscxPCPainter, cxDropDownEdit; + +type + TfrmCP_COL_XLYJ = class(TForm) + ToolBar1: TToolBar; + TBRafresh: TToolButton; + TBFind: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + Label4: TLabel; + Label9: TLabel; + BegDate: TDateTimePicker; + EndDate: TDateTimePicker; + P_CodeName: TEdit; + ConNoM: TEdit; + Label2: TLabel; + ADOQueryMain: TADOQuery; + DS_Main: TDataSource; + CDS_main: TClientDataSet; + cxGrid1Level1: TcxGridLevel; + cxGrid1: TcxGrid; + Tv1: TcxGridDBBandedTableView; + v1Column1: TcxGridDBBandedColumn; + v1Column2: TcxGridDBBandedColumn; + v1Column3: TcxGridDBBandedColumn; + v1Column4: TcxGridDBBandedColumn; + v1Column5: TcxGridDBBandedColumn; + v1Column6: TcxGridDBBandedColumn; + v1Column7: TcxGridDBBandedColumn; + v1Column8: TcxGridDBBandedColumn; + v1Column9: TcxGridDBBandedColumn; + v1Column10: TcxGridDBBandedColumn; + v1Column11: TcxGridDBBandedColumn; + v1Column12: TcxGridDBBandedColumn; + v1Column13: TcxGridDBBandedColumn; + v1Column14: TcxGridDBBandedColumn; + v1Column15: TcxGridDBBandedColumn; + v1Column16: TcxGridDBBandedColumn; + v1Column17: TcxGridDBBandedColumn; + v1Column18: TcxGridDBBandedColumn; + P_color: TEdit; + Label3: TLabel; + TBexcel: TToolButton; + GroupBox1: TGroupBox; + TV2: TcxGridDBTableView; + cxGrid2Level1: TcxGridLevel; + cxGrid2: TcxGrid; + V2Column1: TcxGridDBColumn; + V2Column2: TcxGridDBColumn; + V2Column3: TcxGridDBColumn; + V2Column4: TcxGridDBColumn; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + ADO_Sub: TADOQuery; + DS_sub: TDataSource; + Tv1Column1: TcxGridDBBandedColumn; + Label5: TLabel; + YJPS: TEdit; + Tv1Column2: TcxGridDBBandedColumn; + ADOQuery1: TADOQuery; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormCreate(Sender: TObject); + procedure TBCloseClick(Sender: TObject); + procedure TBFindClick(Sender: TObject); + procedure P_CodeNameChange(Sender: TObject); + procedure TBRafreshClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure TBexcelClick(Sender: TObject); + procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); + procedure YJPSKeyPress(Sender: TObject; var Key: Char); + procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + procedure Tv1Column1PropertiesEditValueChanged(Sender: TObject); + private + procedure InitGrid(); + procedure initSub(); + { Private declarations } + public + canshu1: string; + { Public declarations } + end; + +var + frmCP_COL_XLYJ: TfrmCP_COL_XLYJ; + +implementation + +uses + U_DataLink, U_Fun10; +{$R *.dfm} + +procedure TfrmCP_COL_XLYJ.Initsub(); +begin + ADO_Sub.Close; + if CDS_Main.IsEmpty then + exit; + with ADO_Sub do + begin + close; + sql.Clear; + sql.Add('select * from YF_money_CR '); + sql.Add('where CRTime>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''' '); + sql.Add('and CRTime<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''' '); + sql.Add('and P_CodeName=' + quotedstr(trim(CDS_Main.fieldbyName('P_CodeName').AsString))); + sql.Add('and P_Color=' + quotedstr(trim(CDS_Main.fieldbyName('P_Color').AsString))); + sql.Add('and SYRName=''' + trim(canshu1) + ''''); + sql.Add('and CRType=''ӦտǼ'' '); + sql.Add('order by CRTime desc '); + open; + end; +end; + +procedure TfrmCP_COL_XLYJ.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Close; + Filtered := False; + sql.Clear; + sql.Add(' exec P_Get_CP_COL_XlYJ '); + SQL.Add(' @begdate=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''''); + SQL.Add(',@enddate=''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''''); + sql.Add(',@YJPS=''' + trim(YJPS.text) + ''''); +// ShowMessage(SQL.text); + Open; + end; + SCreateCDS20(ADOQueryMain, CDS_Main); + SInitCDSData20(ADOQueryMain, CDS_Main); + finally + ADOQueryMain.EnableControls; + end; + TBfind.Click; + Initsub(); +end; + +procedure TfrmCP_COL_XLYJ.FormDestroy(Sender: TObject); +begin + frmCP_COL_XLYJ := nil; +end; + +procedure TfrmCP_COL_XLYJ.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := cafree; +end; + +procedure TfrmCP_COL_XLYJ.FormCreate(Sender: TObject); +begin + enddate.DateTime := now(); + begdate.DateTime := enddate.DateTime - 30; + cxGrid1.Align := alclient; + canshu1 := trim(DParameters1); + YJPS.Text := '0'; +end; + +procedure TfrmCP_COL_XLYJ.TBCloseClick(Sender: TObject); +begin + close; +end; + +procedure TfrmCP_COL_XLYJ.TBFindClick(Sender: TObject); +begin + if ADOQueryMain.Active = False then + Exit; + SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); + SCreateCDS20(ADOQueryMain, CDS_Main); + SInitCDSData20(ADOQueryMain, CDS_Main); +end; + +procedure TfrmCP_COL_XLYJ.P_CodeNameChange(Sender: TObject); +begin + TBfind.Click; +end; + +procedure TfrmCP_COL_XLYJ.TBRafreshClick(Sender: TObject); +begin + initGrid(); +end; + +procedure TfrmCP_COL_XLYJ.FormShow(Sender: TObject); +begin + if trim(canshu1) = '𻪷֯' then + begin + tv1.Bands[2].Visible := false; + tv1.Bands[3].Visible := false; + tv1.Bands[4].Visible := false; + end; + if trim(canshu1) = '' then + begin + tv1.Bands[1].Visible := false; + tv1.Bands[3].Visible := false; + tv1.Bands[4].Visible := false; + end; + if trim(canshu1) = '𶦷в' then + begin + tv1.Bands[1].Visible := false; + tv1.Bands[2].Visible := false; + tv1.Bands[4].Visible := false; + end; +end; + +procedure TfrmCP_COL_XLYJ.TBexcelClick(Sender: TObject); +begin + if ADOQueryMain.IsEmpty then + exit; + TcxGridToExcel(self.Caption, cxGrid1); +end; + +procedure TfrmCP_COL_XLYJ.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); +begin + Initsub(); +end; + +procedure TfrmCP_COL_XLYJ.YJPSKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + begin + InitGrid(); + end; + +end; + +procedure TfrmCP_COL_XLYJ.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); +begin + if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('YJstatus').Index] = '1' then + ACanvas.Brush.Color := clRed; +end; + +procedure TfrmCP_COL_XLYJ.Tv1Column1PropertiesEditValueChanged(Sender: TObject); +begin + with ADOQuery1 do + begin + Close; + sql.Clear; + sql.Add('UPdate KH_Zdy_Attachment '); + sql.Add(' Set ISYJ=''' + Trim(CDS_Main.fieldbyname('ISYJ').AsString) + ''' '); + SQL.Add(' where ZDYName=''' + Trim(CDS_Main.fieldbyname('P_CodeName').AsString) + ''' '); + SQL.Add(' and DEFstr3=''' + Trim(CDS_Main.fieldbyname('P_color').AsString) + ''' '); +// ShowMessage(sql.text); + ExecSQL; + end; +end; + +end. + diff --git a/桂华管理系统/U_ClothContractList_PBKC.pas b/桂华管理系统/U_ClothContractList_PBKC.pas index 741233c..80ead42 100644 --- a/桂华管理系统/U_ClothContractList_PBKC.pas +++ b/桂华管理系统/U_ClothContractList_PBKC.pas @@ -165,7 +165,7 @@ begin with ADOQueryMain do begin Close; - sql.Clear; + sql.Clear; Filtered:=False; sql.Add('exec P_Get_FabricStockHz_PC_TZ'); sql.Add('@begdate='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''' '); diff --git a/桂华管理系统/U_GetDllForm.pas b/桂华管理系统/U_GetDllForm.pas index bd49cf0..b986705 100644 --- a/桂华管理系统/U_GetDllForm.pas +++ b/桂华管理系统/U_GetDllForm.pas @@ -33,7 +33,7 @@ uses U_CP_COL_XL_ZD, U_CKPDlist, U_ClothContractList_HZ, U_ProductOrderNewList_ZD, U_ClothContractList_SJDCK, U_KH_XS_YP_list, U_ProductOrderNewList_BH, U_ClothContractList_HZ1, U_ClothContractList_CP, U_ClothContractList_SJD, - U_ClothContractList_SJDMX, U_ClothContractList_PBKC; + U_ClothContractList_SJDMX, U_ClothContractList_PBKC, U_CP_COL_XLYJ; ///////////////////////////////////////////////////////////////// // ˵:ȡDllеô // @@ -621,10 +621,10 @@ begin BorderStyle := mborderstyle; //show; end; - end + end else frmCpRkSaoMNew.BringToFront; - // + // mnewHandle := frmCpRkSaoMNew.Handle; end; @@ -1382,6 +1382,27 @@ begin // mnewHandle := frmCP_XL.Handle; end; + 440: //ƷԤϢ + begin + if frmCP_COL_XLYJ <> nil then + frmCP_COL_XLYJ.Free; + if frmCP_COL_XLYJ = nil then + begin + frmCP_COL_XLYJ := TfrmCP_COL_XLYJ.Create(application.MainForm); + with frmCP_COL_XLYJ do + begin + caption := Trim(Title); + FormStyle := mstyle; + windowState := mstate; + BorderStyle := mborderstyle; + //show; + end; + end + else + frmCP_COL_XLYJ.BringToFront; + // + mnewHandle := frmCP_COL_XLYJ.Handle; + end; 40: //ƷϢ begin if frmCP_COL_XL <> nil then diff --git a/桂华管理系统/U_KCRLLTZ.pas b/桂华管理系统/U_KCRLLTZ.pas index a024657..7fc034b 100644 --- a/桂华管理系统/U_KCRLLTZ.pas +++ b/桂华管理系统/U_KCRLLTZ.pas @@ -10,7 +10,20 @@ uses cxGrid, StdCtrls, cxContainer, cxTextEdit, cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, MovePanel, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, - cxNavigator; + cxNavigator, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, + dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, + dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, + dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, + dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; function CommOpen(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): integer; stdcall; external 'JCYData.DLL'; diff --git a/桂华管理系统/U_MJManageNewFDNew.pas b/桂华管理系统/U_MJManageNewFDNew.pas index eb288d2..97b222a 100644 --- a/桂华管理系统/U_MJManageNewFDNew.pas +++ b/桂华管理系统/U_MJManageNewFDNew.pas @@ -11,7 +11,21 @@ uses ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxCheckBox, Menus, MovePanel, cxTextEdit, Buttons, - cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; + cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, + dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, + dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, + dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, + dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, + dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, + dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, + dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, + dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, + dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, + dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, + dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, + dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, + dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, + dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter; function CommOpen(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): integer; stdcall; external 'JCYData10.DLL'; @@ -469,7 +483,7 @@ begin if CommOpen(frmMJManageNewFDNew.Handle, '', 500, 1) < 1 then begin showmessage('򿪴ڴ'); - end; + end; end; APID.SetFocus; end; diff --git a/桂华管理系统/桂华管理系统/AES.pas b/桂华管理系统/桂华管理系统/AES.pas new file mode 100644 index 0000000..3b8432d --- /dev/null +++ b/桂华管理系统/桂华管理系统/AES.pas @@ -0,0 +1,317 @@ +(**************************************************) + +unit AES; + +interface + +uses + SysUtils, Classes, Math, ElAES; + +type + TKeyBit = (kb128, kb192, kb256); + +function StrToHex(Value: string): string; +function HexToStr(Value: string): string; +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); + +implementation + +function StrToHex(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + Result := Result + IntToHex(Ord(Value[I]), 2); +end; + +function HexToStr(Value: string): string; +var + I: Integer; +begin + Result := ''; + for I := 1 to Length(Value) do + begin + if ((I mod 2) = 1) then + Result := Result + Chr(StrToInt('0x'+ Copy(Value, I, 2))); + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׼ -- } +function EncryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(Value); + DS := TStringStream.Create(''); + try + Size := SS.Size; + DS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SS, 0, AESKey256, DS); + end; + Result := StrToHex(DS.DataString); + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ַܺ Ĭϰ 128 λܳ׽ -- } +function DecryptString(Value: string; Key: string; + KeyBit: TKeyBit = kb128): string; +var + SS, DS: TStringStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + Result := ''; + SS := TStringStream.Create(HexToStr(Value)); + DS := TStringStream.Create(''); + try + Size := SS.Size; + SS.ReadBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey128, DS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey192, DS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SS, SS.Size - SS.Position, AESKey256, DS); + end; + Result := DS.DataString; + finally + SS.Free; + DS.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function EncryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + Count := Stream.Size; + OutStrm.Write(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(Stream, 0, AESKey256, OutStrm); + end; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ܺ Ĭϰ 128 λܳ׽ -- } +function DecryptStream(Stream: TStream; Key: string; + KeyBit: TKeyBit = kb128): TStream; +var + Count, OutPos: Int64; + OutStrm: TStream; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + OutStrm := TStream.Create; + Stream.Position := 0; + OutPos :=OutStrm.Position; + Stream.ReadBuffer(Count, SizeOf(Count)); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey128, OutStrm); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey192, OutStrm); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(Stream, Stream.Size - Stream.Position, + AESKey256, OutStrm); + end; + OutStrm.Size := OutPos + Count; + OutStrm.Position := OutPos; + Result := OutStrm; + finally + OutStrm.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure EncryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + DFS := TFileStream.Create(DestFile, fmCreate); + try + Size := SFS.Size; + DFS.WriteBuffer(Size, SizeOf(Size)); + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + EncryptAESStreamECB(SFS, 0, AESKey256, DFS); + end; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; + +{ -- ļܺ Ĭϰ 128 λܳ׽ -- } +procedure DecryptFile(SourceFile, DestFile: string; + Key: string; KeyBit: TKeyBit = kb128); +var + SFS, DFS: TFileStream; + Size: Int64; + AESKey128: TAESKey128; + AESKey192: TAESKey192; + AESKey256: TAESKey256; +begin + SFS := TFileStream.Create(SourceFile, fmOpenRead); + try + SFS.ReadBuffer(Size, SizeOf(Size)); + DFS := TFileStream.Create(DestFile, fmCreate); + try + { -- 128 λܳ󳤶Ϊ 16 ַ -- } + if KeyBit = kb128 then + begin + FillChar(AESKey128, SizeOf(AESKey128), 0 ); + Move(PChar(Key)^, AESKey128, Min(SizeOf(AESKey128), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey128, DFS); + end; + { -- 192 λܳ󳤶Ϊ 24 ַ -- } + if KeyBit = kb192 then + begin + FillChar(AESKey192, SizeOf(AESKey192), 0 ); + Move(PChar(Key)^, AESKey192, Min(SizeOf(AESKey192), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey192, DFS); + end; + { -- 256 λܳ󳤶Ϊ 32 ַ -- } + if KeyBit = kb256 then + begin + FillChar(AESKey256, SizeOf(AESKey256), 0 ); + Move(PChar(Key)^, AESKey256, Min(SizeOf(AESKey256), Length(Key))); + DecryptAESStreamECB(SFS, SFS.Size - SFS.Position, AESKey256, DFS); + end; + DFS.Size := Size; + finally + DFS.Free; + end; + finally + SFS.Free; + end; +end; +end. diff --git a/桂华管理系统/桂华管理系统/ElAES.pas b/桂华管理系统/桂华管理系统/ElAES.pas new file mode 100644 index 0000000..7a3e6c8 --- /dev/null +++ b/桂华管理系统/桂华管理系统/ElAES.pas @@ -0,0 +1,2488 @@ +(**************************************************) +(* *) +(* Advanced Encryption Standard (AES) *) +(* *) +(* Copyright (c) 1998-2001 *) +(* EldoS, Alexander Ionov *) +(* *) +(**************************************************) + +unit ElAES; + +interface + +uses + Classes, SysUtils; + +type + EAESError = class(Exception); + + PInteger = ^Integer; + + TAESBuffer = array [0..15] of byte; + TAESKey128 = array [0..15] of byte; + TAESKey192 = array [0..23] of byte; + TAESKey256 = array [0..31] of byte; + TAESExpandedKey128 = array [0..43] of longword; + TAESExpandedKey192 = array [0..53] of longword; + TAESExpandedKey256 = array [0..63] of longword; + + PAESBuffer =^TAESBuffer; + PAESKey128 =^TAESKey128; + PAESKey192 =^TAESKey192; + PAESKey256 =^TAESKey256; + PAESExpandedKey128 =^TAESExpandedKey128; + PAESExpandedKey192 =^TAESExpandedKey192; + PAESExpandedKey256 =^TAESExpandedKey256; + +// Key expansion routines for encryption + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block encryption routines + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +// Key transformation routines for decryption + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; + var ExpandedKey: TAESExpandedKey128); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; + var ExpandedKey: TAESExpandedKey192); overload; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); overload; +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; + var ExpandedKey: TAESExpandedKey256); overload; + +// Block decryption routines + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); overload; +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); overload; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); overload; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); overload; +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); overload; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); overload; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); overload; +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); overload; + +resourcestring + SInvalidInBufSize = 'Invalid buffer size for decryption'; + SReadError = 'Stream read error'; + SWriteError = 'Stream write error'; + +implementation + +type + PLongWord = ^LongWord; + +function Min(A, B: integer): integer; +begin + if A < B then + Result := A + else + Result := B; +end; + +const + Rcon: array [1..30] of longword = ( + $00000001, $00000002, $00000004, $00000008, $00000010, $00000020, + $00000040, $00000080, $0000001B, $00000036, $0000006C, $000000D8, + $000000AB, $0000004D, $0000009A, $0000002F, $0000005E, $000000BC, + $00000063, $000000C6, $00000097, $00000035, $0000006A, $000000D4, + $000000B3, $0000007D, $000000FA, $000000EF, $000000C5, $00000091 + ); + + ForwardTable: array [0..255] of longword = ( + $A56363C6, $847C7CF8, $997777EE, $8D7B7BF6, $0DF2F2FF, $BD6B6BD6, $B16F6FDE, $54C5C591, + $50303060, $03010102, $A96767CE, $7D2B2B56, $19FEFEE7, $62D7D7B5, $E6ABAB4D, $9A7676EC, + $45CACA8F, $9D82821F, $40C9C989, $877D7DFA, $15FAFAEF, $EB5959B2, $C947478E, $0BF0F0FB, + $ECADAD41, $67D4D4B3, $FDA2A25F, $EAAFAF45, $BF9C9C23, $F7A4A453, $967272E4, $5BC0C09B, + $C2B7B775, $1CFDFDE1, $AE93933D, $6A26264C, $5A36366C, $413F3F7E, $02F7F7F5, $4FCCCC83, + $5C343468, $F4A5A551, $34E5E5D1, $08F1F1F9, $937171E2, $73D8D8AB, $53313162, $3F15152A, + $0C040408, $52C7C795, $65232346, $5EC3C39D, $28181830, $A1969637, $0F05050A, $B59A9A2F, + $0907070E, $36121224, $9B80801B, $3DE2E2DF, $26EBEBCD, $6927274E, $CDB2B27F, $9F7575EA, + $1B090912, $9E83831D, $742C2C58, $2E1A1A34, $2D1B1B36, $B26E6EDC, $EE5A5AB4, $FBA0A05B, + $F65252A4, $4D3B3B76, $61D6D6B7, $CEB3B37D, $7B292952, $3EE3E3DD, $712F2F5E, $97848413, + $F55353A6, $68D1D1B9, $00000000, $2CEDEDC1, $60202040, $1FFCFCE3, $C8B1B179, $ED5B5BB6, + $BE6A6AD4, $46CBCB8D, $D9BEBE67, $4B393972, $DE4A4A94, $D44C4C98, $E85858B0, $4ACFCF85, + $6BD0D0BB, $2AEFEFC5, $E5AAAA4F, $16FBFBED, $C5434386, $D74D4D9A, $55333366, $94858511, + $CF45458A, $10F9F9E9, $06020204, $817F7FFE, $F05050A0, $443C3C78, $BA9F9F25, $E3A8A84B, + $F35151A2, $FEA3A35D, $C0404080, $8A8F8F05, $AD92923F, $BC9D9D21, $48383870, $04F5F5F1, + $DFBCBC63, $C1B6B677, $75DADAAF, $63212142, $30101020, $1AFFFFE5, $0EF3F3FD, $6DD2D2BF, + $4CCDCD81, $140C0C18, $35131326, $2FECECC3, $E15F5FBE, $A2979735, $CC444488, $3917172E, + $57C4C493, $F2A7A755, $827E7EFC, $473D3D7A, $AC6464C8, $E75D5DBA, $2B191932, $957373E6, + $A06060C0, $98818119, $D14F4F9E, $7FDCDCA3, $66222244, $7E2A2A54, $AB90903B, $8388880B, + $CA46468C, $29EEEEC7, $D3B8B86B, $3C141428, $79DEDEA7, $E25E5EBC, $1D0B0B16, $76DBDBAD, + $3BE0E0DB, $56323264, $4E3A3A74, $1E0A0A14, $DB494992, $0A06060C, $6C242448, $E45C5CB8, + $5DC2C29F, $6ED3D3BD, $EFACAC43, $A66262C4, $A8919139, $A4959531, $37E4E4D3, $8B7979F2, + $32E7E7D5, $43C8C88B, $5937376E, $B76D6DDA, $8C8D8D01, $64D5D5B1, $D24E4E9C, $E0A9A949, + $B46C6CD8, $FA5656AC, $07F4F4F3, $25EAEACF, $AF6565CA, $8E7A7AF4, $E9AEAE47, $18080810, + $D5BABA6F, $887878F0, $6F25254A, $722E2E5C, $241C1C38, $F1A6A657, $C7B4B473, $51C6C697, + $23E8E8CB, $7CDDDDA1, $9C7474E8, $211F1F3E, $DD4B4B96, $DCBDBD61, $868B8B0D, $858A8A0F, + $907070E0, $423E3E7C, $C4B5B571, $AA6666CC, $D8484890, $05030306, $01F6F6F7, $120E0E1C, + $A36161C2, $5F35356A, $F95757AE, $D0B9B969, $91868617, $58C1C199, $271D1D3A, $B99E9E27, + $38E1E1D9, $13F8F8EB, $B398982B, $33111122, $BB6969D2, $70D9D9A9, $898E8E07, $A7949433, + $B69B9B2D, $221E1E3C, $92878715, $20E9E9C9, $49CECE87, $FF5555AA, $78282850, $7ADFDFA5, + $8F8C8C03, $F8A1A159, $80898909, $170D0D1A, $DABFBF65, $31E6E6D7, $C6424284, $B86868D0, + $C3414182, $B0999929, $772D2D5A, $110F0F1E, $CBB0B07B, $FC5454A8, $D6BBBB6D, $3A16162C + ); + + LastForwardTable: array [0..255] of longword = ( + $00000063, $0000007C, $00000077, $0000007B, $000000F2, $0000006B, $0000006F, $000000C5, + $00000030, $00000001, $00000067, $0000002B, $000000FE, $000000D7, $000000AB, $00000076, + $000000CA, $00000082, $000000C9, $0000007D, $000000FA, $00000059, $00000047, $000000F0, + $000000AD, $000000D4, $000000A2, $000000AF, $0000009C, $000000A4, $00000072, $000000C0, + $000000B7, $000000FD, $00000093, $00000026, $00000036, $0000003F, $000000F7, $000000CC, + $00000034, $000000A5, $000000E5, $000000F1, $00000071, $000000D8, $00000031, $00000015, + $00000004, $000000C7, $00000023, $000000C3, $00000018, $00000096, $00000005, $0000009A, + $00000007, $00000012, $00000080, $000000E2, $000000EB, $00000027, $000000B2, $00000075, + $00000009, $00000083, $0000002C, $0000001A, $0000001B, $0000006E, $0000005A, $000000A0, + $00000052, $0000003B, $000000D6, $000000B3, $00000029, $000000E3, $0000002F, $00000084, + $00000053, $000000D1, $00000000, $000000ED, $00000020, $000000FC, $000000B1, $0000005B, + $0000006A, $000000CB, $000000BE, $00000039, $0000004A, $0000004C, $00000058, $000000CF, + $000000D0, $000000EF, $000000AA, $000000FB, $00000043, $0000004D, $00000033, $00000085, + $00000045, $000000F9, $00000002, $0000007F, $00000050, $0000003C, $0000009F, $000000A8, + $00000051, $000000A3, $00000040, $0000008F, $00000092, $0000009D, $00000038, $000000F5, + $000000BC, $000000B6, $000000DA, $00000021, $00000010, $000000FF, $000000F3, $000000D2, + $000000CD, $0000000C, $00000013, $000000EC, $0000005F, $00000097, $00000044, $00000017, + $000000C4, $000000A7, $0000007E, $0000003D, $00000064, $0000005D, $00000019, $00000073, + $00000060, $00000081, $0000004F, $000000DC, $00000022, $0000002A, $00000090, $00000088, + $00000046, $000000EE, $000000B8, $00000014, $000000DE, $0000005E, $0000000B, $000000DB, + $000000E0, $00000032, $0000003A, $0000000A, $00000049, $00000006, $00000024, $0000005C, + $000000C2, $000000D3, $000000AC, $00000062, $00000091, $00000095, $000000E4, $00000079, + $000000E7, $000000C8, $00000037, $0000006D, $0000008D, $000000D5, $0000004E, $000000A9, + $0000006C, $00000056, $000000F4, $000000EA, $00000065, $0000007A, $000000AE, $00000008, + $000000BA, $00000078, $00000025, $0000002E, $0000001C, $000000A6, $000000B4, $000000C6, + $000000E8, $000000DD, $00000074, $0000001F, $0000004B, $000000BD, $0000008B, $0000008A, + $00000070, $0000003E, $000000B5, $00000066, $00000048, $00000003, $000000F6, $0000000E, + $00000061, $00000035, $00000057, $000000B9, $00000086, $000000C1, $0000001D, $0000009E, + $000000E1, $000000F8, $00000098, $00000011, $00000069, $000000D9, $0000008E, $00000094, + $0000009B, $0000001E, $00000087, $000000E9, $000000CE, $00000055, $00000028, $000000DF, + $0000008C, $000000A1, $00000089, $0000000D, $000000BF, $000000E6, $00000042, $00000068, + $00000041, $00000099, $0000002D, $0000000F, $000000B0, $00000054, $000000BB, $00000016 + ); + + InverseTable: array [0..255] of longword = ( + $50A7F451, $5365417E, $C3A4171A, $965E273A, $CB6BAB3B, $F1459D1F, $AB58FAAC, $9303E34B, + $55FA3020, $F66D76AD, $9176CC88, $254C02F5, $FCD7E54F, $D7CB2AC5, $80443526, $8FA362B5, + $495AB1DE, $671BBA25, $980EEA45, $E1C0FE5D, $02752FC3, $12F04C81, $A397468D, $C6F9D36B, + $E75F8F03, $959C9215, $EB7A6DBF, $DA595295, $2D83BED4, $D3217458, $2969E049, $44C8C98E, + $6A89C275, $78798EF4, $6B3E5899, $DD71B927, $B64FE1BE, $17AD88F0, $66AC20C9, $B43ACE7D, + $184ADF63, $82311AE5, $60335197, $457F5362, $E07764B1, $84AE6BBB, $1CA081FE, $942B08F9, + $58684870, $19FD458F, $876CDE94, $B7F87B52, $23D373AB, $E2024B72, $578F1FE3, $2AAB5566, + $0728EBB2, $03C2B52F, $9A7BC586, $A50837D3, $F2872830, $B2A5BF23, $BA6A0302, $5C8216ED, + $2B1CCF8A, $92B479A7, $F0F207F3, $A1E2694E, $CDF4DA65, $D5BE0506, $1F6234D1, $8AFEA6C4, + $9D532E34, $A055F3A2, $32E18A05, $75EBF6A4, $39EC830B, $AAEF6040, $069F715E, $51106EBD, + $F98A213E, $3D06DD96, $AE053EDD, $46BDE64D, $B58D5491, $055DC471, $6FD40604, $FF155060, + $24FB9819, $97E9BDD6, $CC434089, $779ED967, $BD42E8B0, $888B8907, $385B19E7, $DBEEC879, + $470A7CA1, $E90F427C, $C91E84F8, $00000000, $83868009, $48ED2B32, $AC70111E, $4E725A6C, + $FBFF0EFD, $5638850F, $1ED5AE3D, $27392D36, $64D90F0A, $21A65C68, $D1545B9B, $3A2E3624, + $B1670A0C, $0FE75793, $D296EEB4, $9E919B1B, $4FC5C080, $A220DC61, $694B775A, $161A121C, + $0ABA93E2, $E52AA0C0, $43E0223C, $1D171B12, $0B0D090E, $ADC78BF2, $B9A8B62D, $C8A91E14, + $8519F157, $4C0775AF, $BBDD99EE, $FD607FA3, $9F2601F7, $BCF5725C, $C53B6644, $347EFB5B, + $7629438B, $DCC623CB, $68FCEDB6, $63F1E4B8, $CADC31D7, $10856342, $40229713, $2011C684, + $7D244A85, $F83DBBD2, $1132F9AE, $6DA129C7, $4B2F9E1D, $F330B2DC, $EC52860D, $D0E3C177, + $6C16B32B, $99B970A9, $FA489411, $2264E947, $C48CFCA8, $1A3FF0A0, $D82C7D56, $EF903322, + $C74E4987, $C1D138D9, $FEA2CA8C, $360BD498, $CF81F5A6, $28DE7AA5, $268EB7DA, $A4BFAD3F, + $E49D3A2C, $0D927850, $9BCC5F6A, $62467E54, $C2138DF6, $E8B8D890, $5EF7392E, $F5AFC382, + $BE805D9F, $7C93D069, $A92DD56F, $B31225CF, $3B99ACC8, $A77D1810, $6E639CE8, $7BBB3BDB, + $097826CD, $F418596E, $01B79AEC, $A89A4F83, $656E95E6, $7EE6FFAA, $08CFBC21, $E6E815EF, + $D99BE7BA, $CE366F4A, $D4099FEA, $D67CB029, $AFB2A431, $31233F2A, $3094A5C6, $C066A235, + $37BC4E74, $A6CA82FC, $B0D090E0, $15D8A733, $4A9804F1, $F7DAEC41, $0E50CD7F, $2FF69117, + $8DD64D76, $4DB0EF43, $544DAACC, $DF0496E4, $E3B5D19E, $1B886A4C, $B81F2CC1, $7F516546, + $04EA5E9D, $5D358C01, $737487FA, $2E410BFB, $5A1D67B3, $52D2DB92, $335610E9, $1347D66D, + $8C61D79A, $7A0CA137, $8E14F859, $893C13EB, $EE27A9CE, $35C961B7, $EDE51CE1, $3CB1477A, + $59DFD29C, $3F73F255, $79CE1418, $BF37C773, $EACDF753, $5BAAFD5F, $146F3DDF, $86DB4478, + $81F3AFCA, $3EC468B9, $2C342438, $5F40A3C2, $72C31D16, $0C25E2BC, $8B493C28, $41950DFF, + $7101A839, $DEB30C08, $9CE4B4D8, $90C15664, $6184CB7B, $70B632D5, $745C6C48, $4257B8D0 + ); + + LastInverseTable: array [0..255] of longword = ( + $00000052, $00000009, $0000006A, $000000D5, $00000030, $00000036, $000000A5, $00000038, + $000000BF, $00000040, $000000A3, $0000009E, $00000081, $000000F3, $000000D7, $000000FB, + $0000007C, $000000E3, $00000039, $00000082, $0000009B, $0000002F, $000000FF, $00000087, + $00000034, $0000008E, $00000043, $00000044, $000000C4, $000000DE, $000000E9, $000000CB, + $00000054, $0000007B, $00000094, $00000032, $000000A6, $000000C2, $00000023, $0000003D, + $000000EE, $0000004C, $00000095, $0000000B, $00000042, $000000FA, $000000C3, $0000004E, + $00000008, $0000002E, $000000A1, $00000066, $00000028, $000000D9, $00000024, $000000B2, + $00000076, $0000005B, $000000A2, $00000049, $0000006D, $0000008B, $000000D1, $00000025, + $00000072, $000000F8, $000000F6, $00000064, $00000086, $00000068, $00000098, $00000016, + $000000D4, $000000A4, $0000005C, $000000CC, $0000005D, $00000065, $000000B6, $00000092, + $0000006C, $00000070, $00000048, $00000050, $000000FD, $000000ED, $000000B9, $000000DA, + $0000005E, $00000015, $00000046, $00000057, $000000A7, $0000008D, $0000009D, $00000084, + $00000090, $000000D8, $000000AB, $00000000, $0000008C, $000000BC, $000000D3, $0000000A, + $000000F7, $000000E4, $00000058, $00000005, $000000B8, $000000B3, $00000045, $00000006, + $000000D0, $0000002C, $0000001E, $0000008F, $000000CA, $0000003F, $0000000F, $00000002, + $000000C1, $000000AF, $000000BD, $00000003, $00000001, $00000013, $0000008A, $0000006B, + $0000003A, $00000091, $00000011, $00000041, $0000004F, $00000067, $000000DC, $000000EA, + $00000097, $000000F2, $000000CF, $000000CE, $000000F0, $000000B4, $000000E6, $00000073, + $00000096, $000000AC, $00000074, $00000022, $000000E7, $000000AD, $00000035, $00000085, + $000000E2, $000000F9, $00000037, $000000E8, $0000001C, $00000075, $000000DF, $0000006E, + $00000047, $000000F1, $0000001A, $00000071, $0000001D, $00000029, $000000C5, $00000089, + $0000006F, $000000B7, $00000062, $0000000E, $000000AA, $00000018, $000000BE, $0000001B, + $000000FC, $00000056, $0000003E, $0000004B, $000000C6, $000000D2, $00000079, $00000020, + $0000009A, $000000DB, $000000C0, $000000FE, $00000078, $000000CD, $0000005A, $000000F4, + $0000001F, $000000DD, $000000A8, $00000033, $00000088, $00000007, $000000C7, $00000031, + $000000B1, $00000012, $00000010, $00000059, $00000027, $00000080, $000000EC, $0000005F, + $00000060, $00000051, $0000007F, $000000A9, $00000019, $000000B5, $0000004A, $0000000D, + $0000002D, $000000E5, $0000007A, $0000009F, $00000093, $000000C9, $0000009C, $000000EF, + $000000A0, $000000E0, $0000003B, $0000004D, $000000AE, $0000002A, $000000F5, $000000B0, + $000000C8, $000000EB, $000000BB, $0000003C, $00000083, $00000053, $00000099, $00000061, + $00000017, $0000002B, $00000004, $0000007E, $000000BA, $00000077, $000000D6, $00000026, + $000000E1, $00000069, $00000014, $00000063, $00000055, $00000021, $0000000C, $0000007D + ); + +procedure ExpandAESKeyForEncryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 3] shl 24) or (ExpandedKey[I + 3] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 4] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 5] := ExpandedKey[I + 1] xor ExpandedKey[I + 4]; + ExpandedKey[I + 6] := ExpandedKey[I + 2] xor ExpandedKey[I + 5]; + ExpandedKey[I + 7] := ExpandedKey[I + 3] xor ExpandedKey[I + 6]; + Inc(I, 4); + until I >= 40; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 5] shl 24) or (ExpandedKey[I + 5] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 6] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 7] := ExpandedKey[I + 1] xor ExpandedKey[I + 6]; + ExpandedKey[I + 8] := ExpandedKey[I + 2] xor ExpandedKey[I + 7]; + ExpandedKey[I + 9] := ExpandedKey[I + 3] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 4] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 5] xor ExpandedKey[I + 10]; + Inc(I, 6); + until I >= 46; +end; + +procedure ExpandAESKeyForEncryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); overload; +var + I, J: integer; + T: longword; + W0, W1, W2, W3: longword; +begin + ExpandedKey[0] := PLongWord(@Key[0])^; + ExpandedKey[1] := PLongWord(@Key[4])^; + ExpandedKey[2] := PLongWord(@Key[8])^; + ExpandedKey[3] := PLongWord(@Key[12])^; + ExpandedKey[4] := PLongWord(@Key[16])^; + ExpandedKey[5] := PLongWord(@Key[20])^; + ExpandedKey[6] := PLongWord(@Key[24])^; + ExpandedKey[7] := PLongWord(@Key[28])^; + I := 0; J := 1; + repeat + T := (ExpandedKey[I + 7] shl 24) or (ExpandedKey[I + 7] shr 8); + W0 := LastForwardTable[Byte(T)]; W1 := LastForwardTable[Byte(T shr 8)]; + W2 := LastForwardTable[Byte(T shr 16)]; W3 := LastForwardTable[Byte(T shr 24)]; + ExpandedKey[I + 8] := ExpandedKey[I] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))) xor Rcon[J]; + Inc(J); + ExpandedKey[I + 9] := ExpandedKey[I + 1] xor ExpandedKey[I + 8]; + ExpandedKey[I + 10] := ExpandedKey[I + 2] xor ExpandedKey[I + 9]; + ExpandedKey[I + 11] := ExpandedKey[I + 3] xor ExpandedKey[I + 10]; + W0 := LastForwardTable[Byte(ExpandedKey[I + 11])]; + W1 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 8)]; + W2 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 16)]; + W3 := LastForwardTable[Byte(ExpandedKey[I + 11] shr 24)]; + ExpandedKey[I + 12] := ExpandedKey[I + 4] xor + (W0 xor ((W1 shl 8) or (W1 shr 24)) xor + ((W2 shl 16) or (W2 shr 16)) xor ((W3 shl 24) or (W3 shr 8))); + ExpandedKey[I + 13] := ExpandedKey[I + 5] xor ExpandedKey[I + 12]; + ExpandedKey[I + 14] := ExpandedKey[I + 6] xor ExpandedKey[I + 13]; + ExpandedKey[I + 15] := ExpandedKey[I + 7] xor ExpandedKey[I + 14]; + Inc(I, 8); + until I >= 52; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 9 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 11 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure EncryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[0]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[1]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[2]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[3]; + // performing transformation 13 times + // round 1 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // round 2 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 3 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 4 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 5 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 9 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 10 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 11 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 12 + W0 := ForwardTable[Byte(T1[0])]; W1 := ForwardTable[Byte(T1[1] shr 8)]; + W2 := ForwardTable[Byte(T1[2] shr 16)]; W3 := ForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := ForwardTable[Byte(T1[1])]; W1 := ForwardTable[Byte(T1[2] shr 8)]; + W2 := ForwardTable[Byte(T1[3] shr 16)]; W3 := ForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := ForwardTable[Byte(T1[2])]; W1 := ForwardTable[Byte(T1[3] shr 8)]; + W2 := ForwardTable[Byte(T1[0] shr 16)]; W3 := ForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := ForwardTable[Byte(T1[3])]; W1 := ForwardTable[Byte(T1[0] shr 8)]; + W2 := ForwardTable[Byte(T1[1] shr 16)]; W3 := ForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 13 + W0 := ForwardTable[Byte(T0[0])]; W1 := ForwardTable[Byte(T0[1] shr 8)]; + W2 := ForwardTable[Byte(T0[2] shr 16)]; W3 := ForwardTable[Byte(T0[3] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := ForwardTable[Byte(T0[1])]; W1 := ForwardTable[Byte(T0[2] shr 8)]; + W2 := ForwardTable[Byte(T0[3] shr 16)]; W3 := ForwardTable[Byte(T0[0] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := ForwardTable[Byte(T0[2])]; W1 := ForwardTable[Byte(T0[3] shr 8)]; + W2 := ForwardTable[Byte(T0[0] shr 16)]; W3 := ForwardTable[Byte(T0[1] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := ForwardTable[Byte(T0[3])]; W1 := ForwardTable[Byte(T0[0] shr 8)]; + W2 := ForwardTable[Byte(T0[1] shr 16)]; W3 := ForwardTable[Byte(T0[2] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // last round of transformations + W0 := LastForwardTable[Byte(T1[0])]; W1 := LastForwardTable[Byte(T1[1] shr 8)]; + W2 := LastForwardTable[Byte(T1[2] shr 16)]; W3 := LastForwardTable[Byte(T1[3] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[56]; + W0 := LastForwardTable[Byte(T1[1])]; W1 := LastForwardTable[Byte(T1[2] shr 8)]; + W2 := LastForwardTable[Byte(T1[3] shr 16)]; W3 := LastForwardTable[Byte(T1[0] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[57]; + W0 := LastForwardTable[Byte(T1[2])]; W1 := LastForwardTable[Byte(T1[3] shr 8)]; + W2 := LastForwardTable[Byte(T1[0] shr 16)]; W3 := LastForwardTable[Byte(T1[1] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[58]; + W0 := LastForwardTable[Byte(T1[3])]; W1 := LastForwardTable[Byte(T1[0] shr 8)]; + W2 := LastForwardTable[Byte(T1[1] shr 16)]; W3 := LastForwardTable[Byte(T1[2] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[59]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey128); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 9 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey128; var ExpandedKey: TAESExpandedKey128); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey192); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 11 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey192; var ExpandedKey: TAESExpandedKey192); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure ExpandAESKeyForDecryption(var ExpandedKey: TAESExpandedKey256); +var + I: integer; + U, F2, F4, F8, F9: longword; +begin + for I := 1 to 13 do + begin + F9 := ExpandedKey[I * 4]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 1]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 1] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 2]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 2] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + F9 := ExpandedKey[I * 4 + 3]; + U := F9 and $80808080; + F2 := ((F9 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F2 and $80808080; + F4 := ((F2 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + U := F4 and $80808080; + F8 := ((F4 and $7F7F7F7F) shl 1) xor ((U - (U shr 7)) and $1B1B1B1B); + F9 := F9 xor F8; + ExpandedKey[I * 4 + 3] := F2 xor F4 xor F8 xor + (((F2 xor F9) shl 24) or ((F2 xor F9) shr 8)) xor + (((F4 xor F9) shl 16) or ((F4 xor F9) shr 16)) xor ((F9 shl 8) or (F9 shr 24)); + end; +end; + +procedure ExpandAESKeyForDecryption(const Key: TAESKey256; var ExpandedKey: TAESExpandedKey256); +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + ExpandAESKeyForDecryption(ExpandedKey); +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey128; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[40]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[41]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[42]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[43]; + // performing transformations 9 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey192; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[48]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[49]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[50]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[51]; + // performing transformations 11 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +procedure DecryptAES(const InBuf: TAESBuffer; const Key: TAESExpandedKey256; + var OutBuf: TAESBuffer); +var + T0, T1: array [0..3] of longword; + W0, W1, W2, W3: longword; +begin + // initializing + T0[0] := PLongWord(@InBuf[0])^ xor Key[56]; + T0[1] := PLongWord(@InBuf[4])^ xor Key[57]; + T0[2] := PLongWord(@InBuf[8])^ xor Key[58]; + T0[3] := PLongWord(@InBuf[12])^ xor Key[59]; + // performing transformations 13 times + // round 1 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[52]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[53]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[54]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[55]; + // round 2 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[48]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[49]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[50]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[51]; + // round 3 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[44]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[45]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[46]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[47]; + // round 4 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[40]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[41]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[42]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[43]; + // round 5 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[36]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[37]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[38]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[39]; + // round 6 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[32]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[33]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[34]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[35]; + // round 7 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[28]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[29]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[30]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[31]; + // round 8 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[24]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[25]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[26]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[27]; + // round 9 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[20]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[21]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[22]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[23]; + // round 10 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[16]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[17]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[18]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[19]; + // round 11 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[12]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[13]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[14]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[15]; + // round 12 + W0 := InverseTable[Byte(T1[0])]; W1 := InverseTable[Byte(T1[3] shr 8)]; + W2 := InverseTable[Byte(T1[2] shr 16)]; W3 := InverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[8]; + W0 := InverseTable[Byte(T1[1])]; W1 := InverseTable[Byte(T1[0] shr 8)]; + W2 := InverseTable[Byte(T1[3] shr 16)]; W3 := InverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[9]; + W0 := InverseTable[Byte(T1[2])]; W1 := InverseTable[Byte(T1[1] shr 8)]; + W2 := InverseTable[Byte(T1[0] shr 16)]; W3 := InverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[10]; + W0 := InverseTable[Byte(T1[3])]; W1 := InverseTable[Byte(T1[2] shr 8)]; + W2 := InverseTable[Byte(T1[1] shr 16)]; W3 := InverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[11]; + // round 13 + W0 := InverseTable[Byte(T0[0])]; W1 := InverseTable[Byte(T0[3] shr 8)]; + W2 := InverseTable[Byte(T0[2] shr 16)]; W3 := InverseTable[Byte(T0[1] shr 24)]; + T1[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[4]; + W0 := InverseTable[Byte(T0[1])]; W1 := InverseTable[Byte(T0[0] shr 8)]; + W2 := InverseTable[Byte(T0[3] shr 16)]; W3 := InverseTable[Byte(T0[2] shr 24)]; + T1[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[5]; + W0 := InverseTable[Byte(T0[2])]; W1 := InverseTable[Byte(T0[1] shr 8)]; + W2 := InverseTable[Byte(T0[0] shr 16)]; W3 := InverseTable[Byte(T0[3] shr 24)]; + T1[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[6]; + W0 := InverseTable[Byte(T0[3])]; W1 := InverseTable[Byte(T0[2] shr 8)]; + W2 := InverseTable[Byte(T0[1] shr 16)]; W3 := InverseTable[Byte(T0[0] shr 24)]; + T1[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[7]; + // last round of transformations + W0 := LastInverseTable[Byte(T1[0])]; W1 := LastInverseTable[Byte(T1[3] shr 8)]; + W2 := LastInverseTable[Byte(T1[2] shr 16)]; W3 := LastInverseTable[Byte(T1[1] shr 24)]; + T0[0] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[0]; + W0 := LastInverseTable[Byte(T1[1])]; W1 := LastInverseTable[Byte(T1[0] shr 8)]; + W2 := LastInverseTable[Byte(T1[3] shr 16)]; W3 := LastInverseTable[Byte(T1[2] shr 24)]; + T0[1] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[1]; + W0 := LastInverseTable[Byte(T1[2])]; W1 := LastInverseTable[Byte(T1[1] shr 8)]; + W2 := LastInverseTable[Byte(T1[0] shr 16)]; W3 := LastInverseTable[Byte(T1[3] shr 24)]; + T0[2] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[2]; + W0 := LastInverseTable[Byte(T1[3])]; W1 := LastInverseTable[Byte(T1[2] shr 8)]; + W2 := LastInverseTable[Byte(T1[1] shr 16)]; W3 := LastInverseTable[Byte(T1[0] shr 24)]; + T0[3] := (W0 xor ((W1 shl 8) or (W1 shr 24)) xor ((W2 shl 16) or (W2 shr 16)) + xor ((W3 shl 24) or (W3 shr 8))) xor Key[3]; + // finalizing + PLongWord(@OutBuf[0])^ := T0[0]; PLongWord(@OutBuf[4])^ := T0[1]; + PLongWord(@OutBuf[8])^ := T0[2]; PLongWord(@OutBuf[12])^ := T0[3]; +end; + +// Stream encryption routines (ECB mode) + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (ECB mode) + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey128; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey192; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const Key: TAESKey256; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamECB(Source, Count, ExpandedKey, Dest); +end; + +procedure DecryptAESStreamECB(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + DecryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +// Stream encryption routines (CBC mode) + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForEncryption(Key, ExpandedKey); + EncryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure EncryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut, Vector: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + Vector := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError.Create(SReadError); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + Vector := TempOut; + Dec(Count, SizeOf(TAESBuffer)); + end; + if Count > 0 then + begin + Done := Source.Read(TempIn, Count); + if Done < Count then + raise EStreamError.Create(SReadError); + FillChar(TempIn[Count], SizeOf(TempIn) - Count, 0); + PLongWord(@TempIn[0])^ := PLongWord(@TempIn[0])^ xor PLongWord(@Vector[0])^; + PLongWord(@TempIn[4])^ := PLongWord(@TempIn[4])^ xor PLongWord(@Vector[4])^; + PLongWord(@TempIn[8])^ := PLongWord(@TempIn[8])^ xor PLongWord(@Vector[8])^; + PLongWord(@TempIn[12])^ := PLongWord(@TempIn[12])^ xor PLongWord(@Vector[12])^; + EncryptAES(TempIn, ExpandedKey, TempOut); + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError.Create(SWriteError); + end; +end; + +// Stream decryption routines (CBC mode) + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey128; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey128; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey128; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey192; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey192; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey192; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const Key: TAESKey256; const InitVector: TAESBuffer; Dest: TStream); +var + ExpandedKey: TAESExpandedKey256; +begin + ExpandAESKeyForDecryption(Key, ExpandedKey); + DecryptAESStreamCBC(Source, Count, ExpandedKey, InitVector, Dest); +end; + +procedure DecryptAESStreamCBC(Source: TStream; Count: cardinal; + const ExpandedKey: TAESExpandedKey256; const InitVector: TAESBuffer; + Dest: TStream); +var + TempIn, TempOut: TAESBuffer; + Vector1, Vector2: TAESBuffer; + Done: cardinal; +begin + if Count = 0 then + begin + Source.Position := 0; + Count := Source.Size; + end + else Count := Min(Count, Source.Size - Source.Position); + if Count = 0 then exit; + if (Count mod SizeOf(TAESBuffer)) > 0 then + raise EAESError.Create(SInvalidInBufSize); + Vector1 := InitVector; + while Count >= SizeOf(TAESBuffer) do + begin + Done := Source.Read(TempIn, SizeOf(TempIn)); + if Done < SizeOf(TempIn) then + raise EStreamError(SReadError); + Vector2 := TempIn; + DecryptAES(TempIn, ExpandedKey, TempOut); + PLongWord(@TempOut[0])^ := PLongWord(@TempOut[0])^ xor PLongWord(@Vector1[0])^; + PLongWord(@TempOut[4])^ := PLongWord(@TempOut[4])^ xor PLongWord(@Vector1[4])^; + PLongWord(@TempOut[8])^ := PLongWord(@TempOut[8])^ xor PLongWord(@Vector1[8])^; + PLongWord(@TempOut[12])^ := PLongWord(@TempOut[12])^ xor PLongWord(@Vector1[12])^; + Done := Dest.Write(TempOut, SizeOf(TempOut)); + if Done < SizeOf(TempOut) then + raise EStreamError(SWriteError); + Vector1 := Vector2; + Dec(Count, SizeOf(TAESBuffer)); + end; +end; + +end. diff --git a/桂华管理系统/桂华管理系统/File.INI b/桂华管理系统/桂华管理系统/File.INI new file mode 100644 index 0000000..98032b2 --- /dev/null +++ b/桂华管理系统/桂华管理系统/File.INI @@ -0,0 +1,3 @@ +[] +̨־=X +̨=8 diff --git a/桂华管理系统/桂华管理系统/JCYData.INI b/桂华管理系统/桂华管理系统/JCYData.INI new file mode 100644 index 0000000..0dd7fae --- /dev/null +++ b/桂华管理系统/桂华管理系统/JCYData.INI @@ -0,0 +1,7 @@ +[ϵͳ] +ں=com6 +=4800 +Уλ=0 +λ=8 +ֹͣλ=0 +Ƶ=100 diff --git a/桂华管理系统/桂华管理系统/JCYData10.INI b/桂华管理系统/桂华管理系统/JCYData10.INI new file mode 100644 index 0000000..53c885f --- /dev/null +++ b/桂华管理系统/桂华管理系统/JCYData10.INI @@ -0,0 +1,7 @@ +[ϵͳ] +ں=com1 +=19200 +Уλ=0 +λ=8 +ֹͣλ=0 +Ƶ=100 diff --git a/桂华管理系统/桂华管理系统/OrderManage.dof b/桂华管理系统/桂华管理系统/OrderManage.dof new file mode 100644 index 0000000..30929e3 --- /dev/null +++ b/桂华管理系统/桂华管理系统/OrderManage.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=D:\ͨERP +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=F:\selfware_83398\selfware\ֿ\Ŀ\self\\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/桂华管理系统/桂华管理系统/ProjectGroup1.bpg b/桂华管理系统/桂华管理系统/ProjectGroup1.bpg new file mode 100644 index 0000000..e6b2914 --- /dev/null +++ b/桂华管理系统/桂华管理系统/ProjectGroup1.bpg @@ -0,0 +1,20 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + + diff --git a/桂华管理系统/桂华管理系统/ProjectGroup1.~bpg b/桂华管理系统/桂华管理系统/ProjectGroup1.~bpg new file mode 100644 index 0000000..7c050f6 --- /dev/null +++ b/桂华管理系统/桂华管理系统/ProjectGroup1.~bpg @@ -0,0 +1,23 @@ +#------------------------------------------------------------------------------ +VERSION = BWS.01 +#------------------------------------------------------------------------------ +!ifndef ROOT +ROOT = $(MAKEDIR)\.. +!endif +#------------------------------------------------------------------------------ +MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** +DCC = $(ROOT)\bin\dcc32.exe $** +BRCC = $(ROOT)\bin\brcc32.exe $** +#------------------------------------------------------------------------------ +PROJECTS = testDll.exe ProductPrice.dll +#------------------------------------------------------------------------------ +default: $(PROJECTS) +#------------------------------------------------------------------------------ + +testDll.exe: testDll.dpr + $(DCC) + +ProductPrice.dll: ProductPrice.dpr + $(DCC) + + diff --git a/桂华管理系统/桂华管理系统/RCInspection.cfg b/桂华管理系统/桂华管理系统/RCInspection.cfg new file mode 100644 index 0000000..6c57635 --- /dev/null +++ b/桂华管理系统/桂华管理系统/RCInspection.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/桂华管理系统/桂华管理系统/RCInspection.dof b/桂华管理系统/桂华管理系统/RCInspection.dof new file mode 100644 index 0000000..c0c0e6a --- /dev/null +++ b/桂华管理系统/桂华管理系统/RCInspection.dof @@ -0,0 +1,141 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\Ⱦ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; diff --git a/桂华管理系统/桂华管理系统/RCInspection.res b/桂华管理系统/桂华管理系统/RCInspection.res new file mode 100644 index 0000000..2d6f24c Binary files /dev/null and b/桂华管理系统/桂华管理系统/RCInspection.res differ diff --git a/桂华管理系统/桂华管理系统/SYSTEMSET.ini b/桂华管理系统/桂华管理系统/SYSTEMSET.ini new file mode 100644 index 0000000..c598a0b --- /dev/null +++ b/桂华管理系统/桂华管理系统/SYSTEMSET.ini @@ -0,0 +1,3 @@ +[SERVER] +ַ=192.168.1.246 +=XXXXXXX1 \ No newline at end of file diff --git a/桂华管理系统/桂华管理系统/TradeManage.cfg b/桂华管理系统/桂华管理系统/TradeManage.cfg new file mode 100644 index 0000000..e9c1cc1 --- /dev/null +++ b/桂华管理系统/桂华管理系统/TradeManage.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/桂华管理系统/桂华管理系统/TradeManage.dof b/桂华管理系统/桂华管理系统/TradeManage.dof new file mode 100644 index 0000000..1c6e8d0 --- /dev/null +++ b/桂华管理系统/桂华管理系统/TradeManage.dof @@ -0,0 +1,138 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;dclOffice2k;Rave50CLX;Rave50VCL +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\Ŀ\Ŀ\\𻪹ϵͳ\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[Excluded Packages] +c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package diff --git a/桂华管理系统/桂华管理系统/TradeManage.dpr b/桂华管理系统/桂华管理系统/TradeManage.dpr new file mode 100644 index 0000000..1e663d5 --- /dev/null +++ b/桂华管理系统/桂华管理系统/TradeManage.dpr @@ -0,0 +1,92 @@ +library TradeManage; + +uses + SysUtils, + classes, + forms, + WinTypes, + WinProcs, + U_DataLink in 'U_DataLink.pas' {DataLink_TradeManage: TDataModule}, + U_GetDllForm in 'U_GetDllForm.pas', + U_Fun in '..\..\..\ThreeFun\Fun\U_Fun.pas', + U_SelExportField in '..\..\..\ThreeFun\Fun\U_SelExportField.pas' {frmSelExportField}, + U_ColumnSet in '..\..\..\ThreeFun\Form\U_ColumnSet.pas' {frmColumnSet}, + U_GetAddRess in '..\..\..\ThreeFun\Form\U_GetAddRess.pas', + U_iniParam in 'U_iniParam.pas', + AES in 'AES.pas', + ElAES in 'ElAES.pas', + U_ColumnBandSet in '..\..\..\ThreeFun\Form\U_ColumnBandSet.pas' {frmColumnBandSet}, + U_SelPrintFieldNew in '..\..\..\ThreeFun\Form\U_SelPrintFieldNew.pas' {frmSelPrintFieldNew}, + U_LabelPrint in 'U_LabelPrint.pas' {frmLabelPrint}, + U_ConInPut in 'U_ConInPut.pas' {frmConInPut}, + U_MJManageNewFDNew_other in 'U_MJManageNewFDNew_other.pas' {frmMJManageNewFDNew_other}, + U_MJEdit_other in 'U_MJEdit_other.pas' {frmMJEdit_other}, + U_BanCpCkSaoM in 'U_BanCpCkSaoM.pas' {frmBanCpCkSaoM}, + U_CpRkSaoMNew in 'U_CpRkSaoMNew.pas' {frmCpRkSaoMNew}, + U_PbSelCK in 'U_PbSelCK.pas' {frmPbSelCK}, + U_CrkAccount in 'U_CrkAccount.pas' {frmCrkAccount}, + U_BanCpHCSaoM in 'U_BanCpHCSaoM.pas' {frmBanCpHCSaoM}, + U_ClothHCList in 'U_ClothHCList.pas' {frmClothHCList}, + U_ClothContractInPut_CG in 'U_ClothContractInPut_CG.pas' {frmClothContractInPut_CG}, + U_ContractList in 'U_ContractList.pas' {frmContractList}, + U_ClothContractListDH in 'U_ClothContractListDH.pas' {frmClothContractListDH}, + U_OrderJDList in 'U_OrderJDList.pas' {frmOrderJDList}, + U_ClothContractListWJG in 'U_ClothContractListWJG.pas' {frmClothContractListWJG}, + U_OrderInPutXH in 'U_OrderInPutXH.pas' {frmOrderInPutXH}, + U_ProductOrderListSel in 'U_ProductOrderListSel.pas' {frmProductOrderListSel}, + U_BefChkHX in 'U_BefChkHX.pas' {frmBefChkHX}, + U_Printckmd in 'U_Printckmd.pas' {frmPrintckmd}, + U_ProductOrderListNew in 'U_ProductOrderListNew.pas' {frmProductOrderListNew}, + U_ProductOrder_Ph10 in 'U_ProductOrder_Ph10.pas' {frmProductOrder_Ph10}, + U_CpCkSaoMNewSel in 'U_CpCkSaoMNewSel.pas' {frmCpCkSaoMNewSel}, + U_CPRK in 'U_CPRK.pas' {frmCPRK}, + U_kcchEdit in 'U_kcchEdit.pas' {frmkcchEdit}, + U_CKProductCK_Other in 'U_CKProductCK_Other.pas' {frmCKProductCK_Other}, + U_Fun10 in '..\..\..\ThreeFun\Fun\U_Fun10.pas', + U_YGList in 'U_YGList.pas' {frmYGlist}, + U_ZDYHelp in '..\..\..\ThreeFun\Form\U_ZDYHelp.pas' {frmZDYHelp}, + U_ZDYHelpSel in '..\..\..\ThreeFun\Form\U_ZDYHelpSel.pas' {frmZDYHelpSel}, + U_ZdyAttachment in 'U_ZdyAttachment.pas' {frmZdyAttachment}, + U_ZdyAttachCP in 'U_ZdyAttachCP.pas' {frmZdyAttachCP}, + U_ZdyAttachGYS in 'U_ZdyAttachGYS.pas' {frmZdyAttachGYS}, + U_CP_CRC in 'U_CP_CRC.pas' {frmCP_CRC}, + U_UserHelp in '..\..\..\ThreeFun\Form\U_UserHelp.pas' {frmUserHelp}, + U_ProductOrderNewListXH in 'U_ProductOrderNewListXH.pas' {frmProductOrderNewListXH}, + U_ProductOrderNewListSEl in 'U_ProductOrderNewListSEl.pas' {frmProductOrderNewListSEl}, + U_ProductOrderNewList_JD in 'U_ProductOrderNewList_JD.pas' {frmProductOrderNewList_JD}, + U_RKSMEdit_Other in 'U_RKSMEdit_Other.pas' {frmRKSMEdit_other}, + U_KCEdit in 'U_KCEdit.pas' {frmKCEdit}, + U_CKProductBCPKCList_other in 'U_CKProductBCPKCList_other.pas' {frmCKProductBCPKCList_other}, + U_CKProductBCPOutList_other in 'U_CKProductBCPOutList_other.pas' {frmCKProductBCPOutList_other}, + U_YHList_other in 'U_YHList_other.pas' {frmYHList_other}, + U_CKProductBCPKCListSel_Other in 'U_CKProductBCPKCListSel_Other.pas' {frmCKProductBCPKCListSel_Other}, + U_KCRLLTZ_other in 'U_KCRLLTZ_other.pas' {frmKCRLLTZ_other}, + U_KCRLLTZ in 'U_KCRLLTZ.pas' {frmKCRLLTZ}, + U_ModulePromptList in 'U_ModulePromptList.pas' {frmModulePromptList}, + U_SysLogHelp in '..\..\..\ThreeFun\Form\U_SysLogHelp.pas' {frmSysLogHelp}, + U_ProductOrderNewList_ZD in 'U_ProductOrderNewList_ZD.pas' {frmProductOrderNewList_ZD}; + +{$R *.res} + +procedure DllEnterPoint(dwReason: DWORD);far;stdcall; +begin + DLLProc := @DLLEnterPoint; + DllEnterPoint(DLL_PROCESS_ATTACH); +end; + +procedure DLLUnloadProc(Reason: Integer); register; +begin + { if (Reason = DLL_PROCESS_DETACH) or (Reason=DLL_THREAD_DETACH) then + Application:=NewDllApp; } +end; +exports + GetDllForm; +begin + try + NewDllApp:=Application; + DLLProc := @DLLUnloadProc; + except + + end; +end. + diff --git a/桂华管理系统/桂华管理系统/TradeManage.res b/桂华管理系统/桂华管理系统/TradeManage.res new file mode 100644 index 0000000..2d6f24c Binary files /dev/null and b/桂华管理系统/桂华管理系统/TradeManage.res differ diff --git a/桂华管理系统/桂华管理系统/U.dfm b/桂华管理系统/桂华管理系统/U.dfm new file mode 100644 index 0000000..d5244f9 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U.dfm @@ -0,0 +1,202 @@ +object Form1: TForm1 + Left = 204 + Top = 180 + Width = 870 + Height = 500 + Caption = 'Form1' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 862 + Height = 30 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_RCInspection.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object ToolButton2: TToolButton + Left = 0 + Top = 0 + Caption = #20445#23384 + ImageIndex = 58 + end + object TBClose: TToolButton + Left = 59 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + end + end + object Panel1: TPanel + Left = 0 + Top = 30 + Width = 862 + Height = 41 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 52 + Height = 12 + Caption = #24067#21305#26465#30721 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object APID: TEdit + Left = 80 + Top = 10 + Width = 138 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 71 + Width = 862 + Height = 392 + Align = alClient + TabOrder = 2 + object Tv2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column1 + end + item + Kind = skSum + Column = Tv2CDQty + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_RCInspection.TextSHuangSe + object tv2CDType: TcxGridDBColumn + Caption = #30133#28857#21517#31216 + DataBinding.FieldName = 'CDName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 144 + end + object tv2CDWZ: TcxGridDBColumn + Caption = #20301#32622#36215 + DataBinding.FieldName = 'CDBeg' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 96 + end + object v2Column2: TcxGridDBColumn + Caption = #20301#32622#27490 + DataBinding.FieldName = 'CDend' + HeaderAlignmentHorz = taCenter + HeaderGlyphAlignmentHorz = taCenter + Styles.Content = DataLink_RCInspection.Default + Width = 93 + end + object Tv2CDQty: TcxGridDBColumn + Caption = #25968#37327 + DataBinding.FieldName = 'CDQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Styles.Content = DataLink_RCInspection.Default + Width = 93 + end + object Tv2CDReason: TcxGridDBColumn + Caption = #21407#22240 + DataBinding.FieldName = 'CDReason' + Visible = False + HeaderAlignmentHorz = taCenter + Options.Sorting = False + Width = 131 + end + object v2Column1: TcxGridDBColumn + DataBinding.FieldName = 'CDQty' + Visible = False + Width = 55 + end + end + object cxGridLevel1: TcxGridLevel + GridView = Tv2 + end + end + object ADOTmp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 336 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 312 + Top = 200 + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 288 + Top = 40 + end + object DataSource1: TDataSource + DataSet = Order_MJ + Left = 528 + Top = 200 + end + object Order_MJ: TClientDataSet + Aggregates = <> + Params = <> + Left = 344 + Top = 200 + end +end diff --git a/桂华管理系统/桂华管理系统/U.pas b/桂华管理系统/桂华管理系统/U.pas new file mode 100644 index 0000000..8a7ec6b --- /dev/null +++ b/桂华管理系统/桂华管理系统/U.pas @@ -0,0 +1,48 @@ +unit U; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, + cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, + cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, + ComCtrls, ToolWin; + +type + TForm1 = class(TForm) + ToolBar1: TToolBar; + ToolButton2: TToolButton; + TBClose: TToolButton; + Panel1: TPanel; + Label1: TLabel; + APID: TEdit; + cxGrid2: TcxGrid; + Tv2: TcxGridDBTableView; + tv2CDType: TcxGridDBColumn; + tv2CDWZ: TcxGridDBColumn; + v2Column2: TcxGridDBColumn; + Tv2CDQty: TcxGridDBColumn; + Tv2CDReason: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + ADOTmp: TADOQuery; + ADOQueryMain: TADOQuery; + ADOCmd: TADOQuery; + DataSource1: TDataSource; + Order_MJ: TClientDataSet; + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.dfm b/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.dfm new file mode 100644 index 0000000..8ad197f --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.dfm @@ -0,0 +1,201 @@ +object frmBanCpCkSaoM: TfrmBanCpCkSaoM + Left = 241 + Top = 177 + Width = 870 + Height = 500 + Caption = #21322#25104#21697#20986#24211#25195#25551 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid2: TcxGrid + Left = 0 + Top = 81 + Width = 862 + Height = 382 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + OnDblClick = Tv1DblClick + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Width = 97 + end + object v2Column1: TcxGridDBColumn + Caption = #20013#25991#21517#31216 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 101 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 78 + end + object v1Column3: TcxGridDBColumn + Caption = #32568#21495 + DataBinding.FieldName = 'GangNo' + HeaderAlignmentHorz = taCenter + Width = 58 + end + object v1Column5: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Width = 112 + end + object v1Column2: TcxGridDBColumn + Caption = #20986#24211#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Width = 88 + end + object v2Column5: TcxGridDBColumn + Caption = #20986#24211#20844#26020#25968 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 89 + end + object v2Column6: TcxGridDBColumn + Caption = #20986#24211#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 99 + end + object v1Column6: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + HeaderAlignmentHorz = taCenter + Width = 60 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 862 + Height = 81 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 56 + Top = 40 + Width = 68 + Height = 16 + Caption = #25195#25551#20837#21475 + end + object XJID: TEdit + Left = 124 + Top = 37 + Width = 167 + Height = 24 + TabOrder = 0 + OnKeyPress = XJIDKeyPress + end + object Button1: TButton + Left = 309 + Top = 38 + Width = 75 + Height = 23 + Caption = #20986#24211 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 413 + Top = 38 + Width = 75 + Height = 23 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 728 + Top = 136 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 760 + Top = 136 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 792 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end +end diff --git a/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.pas b/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.pas new file mode 100644 index 0000000..5605058 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BanCpCkSaoM.pas @@ -0,0 +1,253 @@ +unit U_BanCpCkSaoM; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +type + TfrmBanCpCkSaoM = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + XJID: TEdit; + Label1: TLabel; + Button1: TButton; + v1Column5: TcxGridDBColumn; + Button2: TButton; + v1Column6: TcxGridDBColumn; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure XJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button1Click(Sender: TObject); + procedure Tv1DblClick(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmBanCpCkSaoM: TfrmBanCpCkSaoM; + +implementation +uses +U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmBanCpCkSaoM.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBanCpCkSaoM.FormDestroy(Sender: TObject); +begin + frmBanCpCkSaoM:=nil; +end; +procedure TfrmBanCpCkSaoM.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,F.KCQty,F.KCKgQty,F.KCQtyUnit,KK.GangNo '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + Sql.add(' inner join WFB_MJJY D on A.MJId=D.MJId'); + sql.Add(' inner join JYOrder_Sub_AnPai KK on D.APID=KK.APID'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBanCpCkSaoM.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒ',Tv1,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmBanCpCkSaoM.XJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from CK_BanCP_CR A '); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,F.KCQty,F.KCKgQty,F.KCQtyUnit,KK.GangNo '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + Sql.add(' inner join WFB_MJJY D on A.MJId=D.MJId'); + sql.Add(' inner join JYOrder_Sub_AnPai KK on D.APID=KK.APID'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + sql.Add(' and KCQty>0 and A.CRType='''' '); + Open; + end; + if ADOQueryTemp.IsEmpty=False then + begin + if CDS_Main.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + with CDS_Main do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('MPRTCodeName').Value:=ADOQueryTemp.fieldbyname('MPRTCodeName').Value; + FieldByName('PRTColor').Value:=ADOQueryTemp.fieldbyname('PRTColor').Value; + FieldByName('GangNo').Value:=ADOQueryTemp.fieldbyname('GangNo').Value; + FieldByName('CRID').Value:=ADOQueryTemp.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryCmd); + FieldByName('KGQty').Value:=ADOQueryTemp.fieldbyname('kCKGQty').Value; + FieldByName('Qty').Value:=ADOQueryTemp.fieldbyname('KCQty').Value; + FieldByName('QtyUnit').Value:=ADOQueryTemp.fieldbyname('KCQtyUnit').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + FieldByName('APID').Value:=ADOQueryTemp.fieldbyname('APID').Value; + Post; + end; + end else + begin + Application.MessageBox('˾Ѿ⣬ٴγ⣡','ʾ',0); + Exit; + end; + XJID.Text:=''; + end; +end; + +procedure TfrmBanCpCkSaoM.Button1Click(Sender: TObject); +var + maxno:string; +begin + if CDS_Main.IsEmpty then Exit; + XJID.SetFocus; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxno,'ZC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_CR Set NowOutFlag=1 where MJID='''+Trim(CDS_Main.fieldbyname('MJID').AsString)+''''); + SQL.Add(' and CRType='''' '); + ExecSQL; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=CDS_Main.fieldbyname('CRTime').Value; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:=''; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('Update CK_BanCp_KC set KCKgQty=0,KCQty=0 where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + InitGrid(); + Application.MessageBox('ɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('쳣','ʾ',0); + end; +end; + +procedure TfrmBanCpCkSaoM.Tv1DblClick(Sender: TObject); +begin + if CDS_Main.IsEmpty then Exit; + CDS_Main.Delete; +end; + +procedure TfrmBanCpCkSaoM.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('Ʒ',Tv1,'Ʒֿ'); +end; + +end. diff --git a/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.dfm b/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.dfm new file mode 100644 index 0000000..2f75146 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.dfm @@ -0,0 +1,212 @@ +object frmBanCpHCSaoM: TfrmBanCpHCSaoM + Left = 241 + Top = 177 + Width = 905 + Height = 504 + Caption = #21322#25104#21697#22238#20179#25195#25551 + Color = clBtnFace + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 16 + object cxGrid2: TcxGrid + Left = 0 + Top = 81 + Width = 897 + Height = 386 + Align = alClient + TabOrder = 0 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = v2Column5 + end + item + Kind = skSum + Column = v2Column6 + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Header = cxStyle1 + object v1Column1: TcxGridDBColumn + Caption = #35746#21333#21495 + DataBinding.FieldName = 'orderNo' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v2Column1: TcxGridDBColumn + Caption = #20135#21697#20195#21495 + DataBinding.FieldName = 'MPRTCodeName' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 112 + end + object v2Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'PRTColor' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 77 + end + object v1Column3: TcxGridDBColumn + Caption = #38376#24133 + DataBinding.FieldName = 'MPRTMF' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 58 + end + object v1Column4: TcxGridDBColumn + Caption = #20811#37325 + DataBinding.FieldName = 'MPRTKZ' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 57 + end + object v1Column5: TcxGridDBColumn + Caption = #26465#30721 + DataBinding.FieldName = 'MJID' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 123 + end + object v1Column2: TcxGridDBColumn + Caption = #22238#20179#26102#38388 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 88 + end + object v2Column5: TcxGridDBColumn + Caption = #22238#20179#20844#26020#25968 + DataBinding.FieldName = 'KGQty' + HeaderAlignmentHorz = taCenter + Width = 100 + end + object v2Column6: TcxGridDBColumn + Caption = #22238#20179#38271#24230 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 85 + end + object v1Column6: TcxGridDBColumn + Caption = #38271#24230#21333#20301 + DataBinding.FieldName = 'QtyUnit' + Options.Focusing = False + Width = 74 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 897 + Height = 81 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + TabOrder = 1 + object Label1: TLabel + Left = 56 + Top = 40 + Width = 68 + Height = 16 + Caption = #25195#25551#20837#21475 + end + object XJID: TEdit + Left = 124 + Top = 37 + Width = 167 + Height = 24 + TabOrder = 0 + OnKeyPress = XJIDKeyPress + end + object Button1: TButton + Left = 309 + Top = 38 + Width = 75 + Height = 23 + Caption = #22238#20179 + TabOrder = 1 + OnClick = Button1Click + end + object Button2: TButton + Left = 421 + Top = 38 + Width = 75 + Height = 23 + Caption = #20851#38381 + TabOrder = 2 + OnClick = Button2Click + end + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 728 + Top = 136 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 760 + Top = 136 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 792 + Top = 136 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object cxStyleRepository1: TcxStyleRepository + object cxStyle1: TcxStyle + end + end +end diff --git a/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.pas b/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.pas new file mode 100644 index 0000000..a45dcc6 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BanCpHCSaoM.pas @@ -0,0 +1,264 @@ +unit U_BanCpHCSaoM; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient, + cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid; + +type + TfrmBanCpHCSaoM = class(TForm) + cxGrid2: TcxGrid; + Tv1: TcxGridDBTableView; + v1Column1: TcxGridDBColumn; + v2Column1: TcxGridDBColumn; + v2Column3: TcxGridDBColumn; + v1Column3: TcxGridDBColumn; + v1Column4: TcxGridDBColumn; + v1Column2: TcxGridDBColumn; + v2Column5: TcxGridDBColumn; + v2Column6: TcxGridDBColumn; + cxGrid2Level1: TcxGridLevel; + cxGridPopupMenu1: TcxGridPopupMenu; + CDS_Main: TClientDataSet; + DataSource1: TDataSource; + ADOQueryTemp: TADOQuery; + ADOQueryCmd: TADOQuery; + ADOQueryMain: TADOQuery; + Panel1: TPanel; + XJID: TEdit; + Label1: TLabel; + Button1: TButton; + v1Column5: TcxGridDBColumn; + Button2: TButton; + v1Column6: TcxGridDBColumn; + cxStyleRepository1: TcxStyleRepository; + cxStyle1: TcxStyle; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormDestroy(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure XJIDKeyPress(Sender: TObject; var Key: Char); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + private + { Private declarations } + procedure InitGrid(); + public + { Public declarations } + end; + +var + frmBanCpHCSaoM: TfrmBanCpHCSaoM; + +implementation +uses +U_DataLink,U_Fun ; + +{$R *.dfm} + +procedure TfrmBanCpHCSaoM.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBanCpHCSaoM.FormDestroy(Sender: TObject); +begin + frmBanCpHCSaoM:=nil; +end; +procedure TfrmBanCpHCSaoM.InitGrid(); +begin + try + ADOQueryMain.DisableControls; + with ADOQueryMain do + begin + Filtered:=False; + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.add('where 1<>1'); + Open; + end; + SCreateCDS20(ADOQueryMain,CDS_Main); + SInitCDSData20(ADOQueryMain,CDS_Main); + finally + ADOQueryMain.EnableControls; + end; +end; + +procedure TfrmBanCpHCSaoM.FormShow(Sender: TObject); +begin + ReadCxGrid('Ʒز',Tv1,'Ʒֿ'); + InitGrid(); +end; + +procedure TfrmBanCpHCSaoM.XJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.* '); + sql.add('from CK_BanCP_CR A '); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + Open; + end; + if ADOQueryTemp.IsEmpty then + begin + Application.MessageBox('','ʾ',0); + Exit; + end; + with ADOQueryTemp do + begin + Close; + sql.Clear; + SQL.Add('select A.*,B.OrderNo,B.MPRTCodeName,C.PRTColor,B.MPRTMF,B.MPRTKZ,F.KCQty,F.KCKgQty '); + sql.add('from CK_BanCP_CR A '); + Sql.add(' inner join JYOrder_Main B on A.MainId=B.MainId'); + Sql.add(' inner join JYOrder_Sub C on A.SubId=C.SubId'); + sql.Add(' inner join CK_BanCP_KC F on A.CRID=F.CRID'); + sql.add('where A.MJID='''+Trim(XJID.Text)+''''); + sql.Add(' and KCQty=0 and A.CRType='''' '); + Open; + end; + if ADOQueryTemp.IsEmpty=false then + begin + if CDS_Main.Locate('MJID',Trim(ADOQueryTemp.fieldbyname('MJID').AsString),[])=True then + begin + Application.MessageBox('Ѿɨٴɨ裡','ʾ',0); + Exit; + end; + with CDS_Main do + begin + Append; + FieldByName('OrderNo').Value:=ADOQueryTemp.fieldbyname('OrderNo').Value; + FieldByName('MPRTCodeName').Value:=ADOQueryTemp.fieldbyname('MPRTCodeName').Value; + FieldByName('PRTColor').Value:=ADOQueryTemp.fieldbyname('PRTColor').Value; + FieldByName('MPRTMF').Value:=ADOQueryTemp.fieldbyname('MPRTMF').Value; + FieldByName('MPRTKZ').Value:=ADOQueryTemp.fieldbyname('MPRTKZ').Value; + FieldByName('CRID').Value:=ADOQueryTemp.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=SGetServerDateTime(ADOQueryCmd); + FieldByName('KGQty').Value:=ADOQueryTemp.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=ADOQueryTemp.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=ADOQueryTemp.fieldbyname('QtyUnit').Value; + FieldByName('MainID').Value:=ADOQueryTemp.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=ADOQueryTemp.fieldbyname('SubID').Value; + FieldByName('APID').Value:=ADOQueryTemp.fieldbyname('APID').Value; + FieldByName('CPType').Value:=ADOQueryTemp.fieldbyname('CPType').Value; + FieldByName('MJID').Value:=ADOQueryTemp.fieldbyname('MJID').Value; + Post; + end; + end else + begin + Application.MessageBox('˾ڲֿУز֣','ʾ',0); + Exit; + end; + XJID.Text:=''; + end; +end; + +procedure TfrmBanCpHCSaoM.Button1Click(Sender: TObject); +var + maxno:string; +begin + if CDS_Main.IsEmpty then Exit; + if CDS_Main.Locate('KgQty',0,[]) then + begin + Application.MessageBox('زֹΪ0','ʾ',0); + Exit; + end; + if CDS_Main.Locate('Qty',0,[]) then + begin + Application.MessageBox('زֳȲΪ0','ʾ',0); + Exit; + end; + if CDS_Main.Locate('KgQty',null,[]) then + begin + Application.MessageBox('زֹΪգ','ʾ',0); + Exit; + end; + if CDS_Main.Locate('Qty',null,[]) then + begin + Application.MessageBox('زֳȲΪգ','ʾ',0); + Exit; + end; + XJID.SetFocus; + if Application.MessageBox('ȷҪִд˲','ʾ',32+4)<>IDYES then Exit; + try + ADOQueryCmd.Connection.BeginTrans; + with CDS_Main do + begin + First; + while not Eof do + begin + if GetLSNo(ADOQueryCmd,maxno,'HC','CK_BanCp_CR',4,1)=False then + begin + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ȡʧܣ','ʾ',0); + Exit; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + sql.Add('select * from CK_BanCp_CR where 1<>1'); + Open; + end; + with ADOQueryCmd do + begin + Append; + FieldByName('BCID').Value:=Trim(maxno); + FieldByName('CRID').Value:=CDS_Main.fieldbyname('CRID').Value; + FieldByName('CRTime').Value:=CDS_Main.fieldbyname('CRTime').Value; + FieldByName('KGQty').Value:=CDS_Main.fieldbyname('KGQty').Value; + FieldByName('Qty').Value:=CDS_Main.fieldbyname('Qty').Value; + FieldByName('QtyUnit').Value:=CDS_Main.fieldbyname('QtyUnit').Value; + FieldByName('MainID').Value:=CDS_Main.fieldbyname('MainID').Value; + FieldByName('SubID').Value:=CDS_Main.fieldbyname('SubID').Value; + FieldByName('APID').Value:=CDS_Main.fieldbyname('APID').Value; + FieldByName('MJID').Value:=CDS_Main.fieldbyname('MJID').Value; + FieldByName('CPType').Value:=CDS_Main.fieldbyname('CPType').Value; + FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); + FieldByName('Filler').Value:=Trim(DName); + FieldByName('CRFlag').Value:=''; + FieldByName('CRType').Value:='ز'; + Post; + end; + with ADOQueryCmd do + begin + Close; + sql.Clear; + SQL.Add('Update CK_BanCp_KC set KCKgQty='+cds_main.fieldbyname('KgQty').AsString); + SQL.Add(',KCQty='+cds_main.fieldbyname('Qty').AsString); + sql.Add(' where CRID='+CDS_Main.fieldbyname('CRID').AsString); + ExecSQL; + end; + Next; + end; + end; + ADOQueryCmd.Connection.CommitTrans; + InitGrid(); + Application.MessageBox('زֳɹ','ʾ',0); + Exit; + except + ADOQueryCmd.Connection.RollbackTrans; + Application.MessageBox('ز쳣','ʾ',0); + end; +end; + +procedure TfrmBanCpHCSaoM.Button2Click(Sender: TObject); +begin + Close; + WriteCxGrid('Ʒز',Tv1,'Ʒֿ'); +end; + +end. diff --git a/桂华管理系统/桂华管理系统/U_BangAdd.dfm b/桂华管理系统/桂华管理系统/U_BangAdd.dfm new file mode 100644 index 0000000..02e9c95 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BangAdd.dfm @@ -0,0 +1,255 @@ +object frmBangAdd: TfrmBangAdd + Left = 232 + Top = 185 + Width = 703 + Height = 396 + Caption = #26816#39564#31216#37325 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Label1: TLabel + Left = 193 + Top = 79 + Width = 52 + Height = 12 + Caption = #25195#25551#20837#21475 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 392 + Top = 77 + Width = 9 + Height = 16 + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + Visible = False + end + object Label3: TLabel + Left = 193 + Top = 115 + Width = 54 + Height = 12 + Caption = #31216' '#37325 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label4: TLabel + Left = 387 + Top = 115 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label5: TLabel + Left = 193 + Top = 147 + Width = 54 + Height = 12 + Caption = #32440' '#31649 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 387 + Top = 147 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 193 + Top = 179 + Width = 54 + Height = 12 + Caption = #33014' '#24102 + Font.Charset = GB2312_CHARSET + Font.Color = clBlue + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object Label8: TLabel + Left = 387 + Top = 179 + Width = 15 + Height = 14 + Caption = #30917 + Font.Charset = GB2312_CHARSET + Font.Color = clBlack + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object MJID: TEdit + Left = 248 + Top = 73 + Width = 138 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 0 + OnKeyPress = MJIDKeyPress + end + object Button1: TButton + Left = 193 + Top = 232 + Width = 57 + Height = 25 + Caption = #30830#23450 + TabOrder = 1 + OnClick = Button1Click + OnKeyPress = Button1KeyPress + end + object Button2: TButton + Left = 343 + Top = 232 + Width = 60 + Height = 25 + Caption = #36864#20986 + TabOrder = 2 + OnClick = Button2Click + end + object Edit1: TEdit + Left = 248 + Top = 109 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 3 + OnKeyPress = MJIDKeyPress + end + object CheckBox1: TCheckBox + Left = 248 + Top = 44 + Width = 97 + Height = 17 + Caption = #33258#21160#35835#21462 + Checked = True + State = cbChecked + TabOrder = 4 + OnClick = CheckBox1Click + end + object Edit2: TEdit + Left = 248 + Top = 141 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 5 + OnKeyPress = MJIDKeyPress + end + object Edit3: TEdit + Left = 248 + Top = 173 + Width = 136 + Height = 24 + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [] + ParentFont = False + TabOrder = 6 + OnKeyPress = MJIDKeyPress + end + object ADOCmd: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 608 + Top = 144 + end + object ADOTmp: TADOQuery + Connection = DataLink_RCInspection.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 608 + Top = 200 + end + object RM2: TRMGridReport + ThreadPrepareReport = True + InitialZoom = pzDefault + PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator] + DefaultCollate = False + ShowPrintDialog = False + SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\' + PreviewOptions.RulerUnit = rmutScreenPixels + PreviewOptions.RulerVisible = False + PreviewOptions.DrawBorder = False + PreviewOptions.BorderPen.Color = clGray + PreviewOptions.BorderPen.Style = psDash + Dataset = RMDB_Main + CompressLevel = rmzcFastest + CompressThread = False + LaterBuildEvents = True + OnlyOwnerDataSet = False + Left = 560 + Top = 200 + ReportData = {} + end + object RMDB_Main: TRMDBDataSet + Visible = True + DataSet = ADOQueryPrint + Left = 536 + Top = 144 + end + object ADOQueryPrint: TADOQuery + Connection = DataLink_RCInspection.ADOLink + Parameters = <> + Left = 512 + Top = 184 + end +end diff --git a/桂华管理系统/桂华管理系统/U_BangAdd.pas b/桂华管理系统/桂华管理系统/U_BangAdd.pas new file mode 100644 index 0000000..d6c043b --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BangAdd.pas @@ -0,0 +1,308 @@ +unit U_BangAdd; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, DB, ADODB,OleCtrls, RM_Dataset, RM_System, RM_Common, + RM_Class, RM_GridReport; + function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; + IntTime:integer;IsMessage:integer):integer;stdcall;external 'ELERS323C.DLL'; + function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'ELERS323C.DLL'; + +type + TfrmBangAdd = class(TForm) + Label1: TLabel; + MJID: TEdit; + Label2: TLabel; + Button1: TButton; + Button2: TButton; + Edit1: TEdit; + ADOCmd: TADOQuery; + ADOTmp: TADOQuery; + Label3: TLabel; + Label4: TLabel; + CheckBox1: TCheckBox; + RM2: TRMGridReport; + RMDB_Main: TRMDBDataSet; + ADOQueryPrint: TADOQuery; + Label5: TLabel; + Label6: TLabel; + Edit2: TEdit; + Label7: TLabel; + Label8: TLabel; + Edit3: TEdit; + procedure MJIDKeyPress(Sender: TObject; var Key: Char); + procedure FormDestroy(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormShow(Sender: TObject); + procedure CheckBox1Click(Sender: TObject); + procedure Button1KeyPress(Sender: TObject; var Key: Char); + private + { Private declarations } + procedure On1201(Var Message:Tmessage);Message 1201; + procedure PrintData(); + public + { Public declarations } + end; + +var + frmBangAdd: TfrmBangAdd; + +implementation + +{$R *.dfm} +procedure TfrmBangAdd.On1201(Var Message:Tmessage); +var + i1,i2:integer; + unitname:string; + fdata:double; +begin + i1:=message.WParam; + i2:=message.LParam; + + Edit1.Text:= floattostr(i1 *i2 /100000 ); +end; + +procedure TfrmBangAdd.MJIDKeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + with ADOTmp do + begin + Close; + sql.Clear; + sql.Add('select * from WFB_MJJY where MJID='''+Trim(MJID.Text)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + Label2.Visible:=True; + Label2.Caption:=Trim(ADOTmp.fieldbyname('MJID').AsString); + end else + begin + MJID.Text:=''; + Label2.Visible:=False; + Label2.Caption:=''; + Application.MessageBox('!','ʾ',0); + Exit; + end; + MJID.Text:=''; + Button1.SetFocus; + end; +end; + +procedure TfrmBangAdd.FormDestroy(Sender: TObject); +begin + frmBangAdd:=nil; +end; + +procedure TfrmBangAdd.Button1Click(Sender: TObject); +var + FZG,FJD:string; + FFreal,FMJMaoZ:Double; +begin + if Label2.Caption='' then + begin + Application.MessageBox('δɨ!','ʾ',0); + Exit; + end; + if Trim(Edit1.Text)='' then + begin + Application.MessageBox('Ϊ!','ʾ',0); + Exit; + end; + with ADOTmp do + begin + Close; + sql.Clear; + SQL.Add('select * from WFB_MJJY where MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + if ADOTmp.FieldByName('MJMaoZ').AsFloat>0 then + begin + if Application.MessageBox('ѳأȷҪ³','ʾ',32+4)<>IDYES then Exit; + end; + if Trim(Edit2.Text)<>'' then + begin + if TryStrToFloat(Edit2.Text,FFreal)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end else + begin + FZG:=Edit2.Text; + end; + end else + begin + FZG:='0'; + end; + if Trim(Edit3.Text)<>'' then + begin + if TryStrToFloat(Edit3.Text,FFreal)=False then + begin + Application.MessageBox('Ƿ!','ʾ',0); + Exit; + end else + begin + FJD:=Edit3.Text; + end; + end else + begin + FJD:='0'; + end; + FMJMaoZ:=StrToFloat(Edit1.Text)-StrToFloat(FZG); + try + ADOCmd.Connection.BeginTrans; + with ADOCmd do + begin + Close; + sql.Clear; + sql.Add('Update WFB_MJJY Set MJMaoZ='+Trim(Floattostr(FMJMaoZ))); + sql.add(',MJQty1='+Trim(Edit1.Text)); + sql.add(',MJQty2='+Trim(FZG)); + sql.add(',MJQty3='+Trim(FJD)); + SQL.Add(' where MJID='''+Trim(Label2.Caption)+''''); + ExecSQL; + end; + ADOCmd.Connection.CommitTrans; + PrintData(); + Label2.Caption:=''; + Label2.Visible:=False; + MJID.SetFocus; + //Application.MessageBox('ɹ!','ʾ',0); + except + ADOCmd.Connection.RollbackTrans; + Application.MessageBox('ʧ!','ʾ',0); + end; +end; +procedure TfrmBangAdd.PrintData(); +var + fPrintFile,LabInt,LabName:String; +begin + with ADOTmp do + begin + Close; + SQL.Clear; + sql.Add(' select C.SLbInt,C.SLbName from WFB_MJJY A'); + sql.Add(' inner join JYOrder_Sub_AnPai B on A.APID=B.APID'); + sql.Add(' inner join JYOrder_Sub C on B.SubId=C.SubId'); + sql.Add(' where A.MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + if ADOTmp.IsEmpty=False then + begin + LabInt:=ADOTmp.fieldbyname('SLbInt').AsString; + LabName:=ADOTmp.fieldbyname('SLbName').AsString; + end ; + if Trim(LabName)='' then + begin + Application.MessageBox('ǩδã','ʾ',0); + Exit; + end; + { try + frmLabelPrint:=TfrmLabelPrint.Create(Application); + with frmLabelPrint do + begin + fLabelId:=LabInt; + FFCDFlag:=Trim(CDFlag); + fKeyNo:=Trim(FXJID); + fIsPreviewPrint:=True; + frmLabelPrint.Button1.Click; + // if ShowModal=1 then + //begin + + // end; + end; + finally + frmLabelPrint.Free; + end; } + with ADOQueryPrint do + begin + Close; + sql.Clear; + SQL.Add('select D.OrderNo,C.PRTColor,C.PRTKZ,C.PRTType,D.OrdDefStr2,D.OrdDefStr3,D.OrdDefStr7,B.AOrdDefNote30,A.MJXH,B.GangNo'); + SQL.Add(',C.PRTMF,C.SOrddefstr3,C.SOrddefstr5,D.DlyDate,D.DLyPlace,A.MJMaoZ,B.AOrdDefNote31,C.SOrddefstr4,'); + SQL.Add('ColorEngName=(select top 1 Note from KH_Zdy E where E.ZdyName=C.PRTColor and E.Type=''OrdColor'' ),'); + {SQL.Add('MJBang=Cast((A.MJMaoZ*2.2046) as decimal(18,2)),'); + SQL.Add('MJMaoZBang=Cast(((A.MJQty1+A.MJQty3)*2.2046) as decimal(18,2)),'); + SQL.Add('MAQty=Cast((A.MJMaoZ*100*1000/(A.MJSJKZ*(A.MJFK*2.54))*0.9144) as decimal(18,2) ),'); + SQL.Add('MQty=Cast((A.MJMaoZ*100*1000/(A.MJSJKZ*(A.MJFK*2.54))) as decimal(18,2) ),'); + SQL.Add('MaoZ=A.MJQty1+A.MJQty3,'); + SQL.Add('JingZ=A.MJQty1-A.MJQty2'); } + SQL.Add('MJBang=A.MJMaoZ,'); + SQL.Add('MJMaoZBang=A.MJQty1+A.MJQty3,'); + SQL.Add('MAQty=Cast((A.MJMaoZ*0.4536*100*1000/(A.MJSJKZ*(A.MJFK*2.54))*0.9144) as decimal(18,2) ),'); + SQL.Add('MQty=Cast((A.MJMaoZ*0.4536*100*1000/(A.MJSJKZ*(A.MJFK*2.54))) as decimal(18,2) ),'); + SQL.Add('MaoZ=Cast((A.MJQty1+A.MJQty3)*0.4536 as decimal(18,2)),'); + SQL.Add('JingZ=Cast((A.MJQty1-A.MJQty2)*0.4536 as decimal(18,2))'); + SQL.Add('from WFB_MJJY A inner join JYOrder_Sub_AnPai B on A.APID=B.APID'); + SQL.Add('inner join JYOrder_Sub C on B.SubId=C.SubId'); + SQL.Add('inner join JYOrder_Main D on C.MainId=D.Mainid'); + SQL.Add('where A.MJID='''+Trim(Label2.Caption)+''''); + Open; + end; + fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf' ; + if FileExists(fPrintFile) then + begin + RM2.LoadFromFile(fPrintFile); + //RM2.ShowReport; + Rm2.PrintReport; + end else + begin + Application.MessageBox(PChar('û'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName)+'.rmf'),'ʾ',0); + end; + +end; + +procedure TfrmBangAdd.Button2Click(Sender: TObject); +begin + Close; +end; + +procedure TfrmBangAdd.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action:=caFree; + if CheckBox1.Checked=False then + CommClose(pchar('com1')); +end; + +procedure TfrmBangAdd.FormShow(Sender: TObject); +begin + if CommOpen(frmBangAdd.Handle,pchar('com1'),500,1)<1 then + begin + showmessage('ڴʧ!'); + end + else + begin + end; +end; + +procedure TfrmBangAdd.CheckBox1Click(Sender: TObject); +begin + if CheckBox1.Checked=True then + begin + if CommOpen(frmBangAdd.Handle,pchar('com1'),500,1)<1 then + begin + showmessage('ڴʧ!'); + end + else + begin + end; + end else + begin + CommClose(pchar('com1')); + end; +end; + +procedure TfrmBangAdd.Button1KeyPress(Sender: TObject; var Key: Char); +begin + if Key=#13 then + begin + Button1.Click; + end; +end; + +end. diff --git a/桂华管理系统/桂华管理系统/U_BefChkHX.dfm b/桂华管理系统/桂华管理系统/U_BefChkHX.dfm new file mode 100644 index 0000000..44ae040 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BefChkHX.dfm @@ -0,0 +1,292 @@ +object frmBefChkHX: TfrmBefChkHX + Left = 215 + Top = 176 + Width = 870 + Height = 534 + Caption = #26816#21069#22238#20462 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object Panel1: TPanel + Left = 0 + Top = 32 + Width = 862 + Height = 73 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 0 + object orderno: TLabel + Left = 48 + Top = 24 + Width = 89 + Height = 16 + Caption = 'orderno' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PRTColor: TLabel + Left = 168 + Top = 24 + Width = 89 + Height = 16 + Caption = 'PRTColor' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object FirstName: TLabel + Left = 296 + Top = 24 + Width = 105 + Height = 16 + Caption = 'FirstName' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + object PBFactory: TLabel + Left = 464 + Top = 24 + Width = 105 + Height = 16 + Caption = 'PBFactory' + Font.Charset = ANSI_CHARSET + Font.Color = clRed + Font.Height = -16 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + end + end + object ToolBar2: TToolBar + Left = 0 + Top = 0 + Width = 862 + AutoSize = True + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 1 + object ToolButton2: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #22686#34892 + ImageIndex = 103 + OnClick = ToolButton2Click + end + object ToolButton3: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #21024#34892 + ImageIndex = 107 + OnClick = ToolButton3Click + end + object ToolButton4: TToolButton + Left = 126 + Top = 0 + Caption = #20445#23384 + ImageIndex = 111 + OnClick = ToolButton4Click + end + object ToolButton1: TToolButton + Left = 185 + Top = 0 + Caption = #20851#38381 + ImageIndex = 55 + OnClick = ToolButton1Click + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 105 + Width = 862 + Height = 392 + Align = alClient + TabOrder = 2 + object TV2: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoImmediatePost] + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = '0' + Position = spFooter + Column = V2Column1 + end> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + Column = V2Column1 + end + item + Kind = skSum + Column = V2Column7 + end> + DataController.Summary.SummaryGroups = <> + OptionsBehavior.GoToNextCellOnEnter = True + OptionsCustomize.ColumnFiltering = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object V2Column2: TcxGridDBColumn + Tag = 2 + Caption = #22238#20462#26102#38388 + DataBinding.FieldName = 'HXDate' + PropertiesClassName = 'TcxDateEditProperties' + Properties.SaveTime = False + Properties.ShowTime = False + HeaderAlignmentHorz = taCenter + Width = 96 + end + object V2Column8: TcxGridDBColumn + Tag = 2 + Caption = #26579#21378 + DataBinding.FieldName = 'HXFactory' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + Properties.ReadOnly = True + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 84 + end + object V2Column7: TcxGridDBColumn + Tag = 2 + Caption = #21305#25968#37327 + DataBinding.FieldName = 'HXPS' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Width = 50 + end + object V2Column1: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327 + DataBinding.FieldName = 'HXQty' + PropertiesClassName = 'TcxTextEditProperties' + HeaderAlignmentHorz = taCenter + Styles.Header = DataLink_TradeManage.FonePurple + Width = 69 + end + object V2Column5: TcxGridDBColumn + Tag = 2 + Caption = #25968#37327#21333#20301 + DataBinding.FieldName = 'HXUnit' + PropertiesClassName = 'TcxComboBoxProperties' + Properties.DropDownListStyle = lsFixedList + Properties.Items.Strings = ( + 'M' + 'Kg') + HeaderAlignmentHorz = taCenter + Width = 74 + end + object V2Column3: TcxGridDBColumn + Tag = 2 + Caption = #25240#31639#31859#31995#25968 + DataBinding.FieldName = 'ZSXS' + Width = 72 + end + object V2Column6: TcxGridDBColumn + Tag = 2 + Caption = #22791#27880 + DataBinding.FieldName = 'HXNote' + PropertiesClassName = 'TcxButtonEditProperties' + Properties.Buttons = < + item + Default = True + Kind = bkEllipsis + end> + HeaderAlignmentHorz = taCenter + Width = 123 + end + object V2Column4: TcxGridDBColumn + Tag = 2 + Caption = #31867#22411 + DataBinding.FieldName = 'HXType' + HeaderAlignmentHorz = taCenter + Options.Focusing = False + Width = 71 + end + end + object cxGridLevel1: TcxGridLevel + GridView = TV2 + end + end + object ADOQuery1: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 352 + Top = 8 + end + object ADOQuery2: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 512 + Top = 8 + end + object ADOQuery3: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 440 + Top = 8 + end + object ClientDataSet1: TClientDataSet + Aggregates = <> + Params = <> + Left = 448 + Top = 216 + end + object DataSource1: TDataSource + DataSet = ClientDataSet1 + Left = 480 + Top = 224 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 312 + Top = 256 + end +end diff --git a/桂华管理系统/桂华管理系统/U_BefChkHX.pas b/桂华管理系统/桂华管理系统/U_BefChkHX.pas new file mode 100644 index 0000000..782ce5c --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_BefChkHX.pas @@ -0,0 +1,189 @@ +unit U_BefChkHX; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxButtonEdit, + cxTextEdit, StdCtrls, cxGridLevel, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxClasses, cxControls, + cxGridCustomView, cxGrid, ComCtrls, ToolWin, ExtCtrls, cxDropDownEdit, + DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu; + +type + TfrmBefChkHX = class(TForm) + Panel1: TPanel; + ToolBar2: TToolBar; + ToolButton2: TToolButton; + ToolButton3: TToolButton; + ToolButton4: TToolButton; + cxGrid2: TcxGrid; + TV2: TcxGridDBTableView; + V2Column2: TcxGridDBColumn; + V2Column8: TcxGridDBColumn; + V2Column7: TcxGridDBColumn; + V2Column1: TcxGridDBColumn; + V2Column5: TcxGridDBColumn; + V2Column6: TcxGridDBColumn; + cxGridLevel1: TcxGridLevel; + orderno: TLabel; + PRTColor: TLabel; + FirstName: TLabel; + PBFactory: TLabel; + V2Column3: TcxGridDBColumn; + ADOQuery1: TADOQuery; + ADOQuery2: TADOQuery; + ADOQuery3: TADOQuery; + ClientDataSet1: TClientDataSet; + DataSource1: TDataSource; + ToolButton1: TToolButton; + cxGridPopupMenu1: TcxGridPopupMenu; + V2Column4: TcxGridDBColumn; + procedure FormDestroy(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure ToolButton2Click(Sender: TObject); + procedure ToolButton3Click(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure ToolButton1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + FLLID:String; + end; + +var + frmBefChkHX: TfrmBefChkHX; + +implementation +uses +U_DataLink,U_Fun; + +{$R *.dfm} + +procedure TfrmBefChkHX.FormDestroy(Sender: TObject); +begin + frmBefChkHX:=nil; +end; + +procedure TfrmBefChkHX.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action:=caFree; +end; + +procedure TfrmBefChkHX.ToolButton2Click(Sender: TObject); +begin + with ClientDataSet1 do + begin + Append; + FieldByName('HXFactory').Value:=Trim(FirstName.Caption); + FieldByName('HXDate').Value:=SGetServerDate(ADOQuery2); + FieldByName('HXType').Value:='ǰ'; + Post; + end; +end; + +procedure TfrmBefChkHX.ToolButton3Click(Sender: TObject); +begin + if ClientDataSet1.IsEmpty then Exit; + if Trim(ClientDataSet1.fieldbyname('HXType').AsString)<>'ǰ' then Exit; + if Application.MessageBox('ȷҪɾ','ʾ',32+4)<>IDYES then Exit; + with ADOQuery3 do + begin + Close; + SQL.Clear; + SQL.Add('delete Contract_Cloth_BefChkHX where HXID='''+Trim(ClientDataSet1.fieldbyname('HXID').AsString)+''''); + sql.Add('Update Contract_Cloth_LL Set HXPS=(select sum(HXPS) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXQty=(select sum(HXQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXMQty=(select sum(HXMQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXUnit=(select Top 1 HXUnit from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(' where LLID='''+Trim(FLLID)+''''); + ExecSQL; + end; + ClientDataSet1.Delete; + +end; + +procedure TfrmBefChkHX.ToolButton4Click(Sender: TObject); +var + maxno:string; +begin + try + ADOQuery3.Connection.BeginTrans; + with ClientDataSet1 do + begin + First; + while not Eof do + begin + if Trim(ClientDataSet1.fieldbyname('HXType').AsString)='ǰ' then + begin + if Trim(ClientDataSet1.fieldbyname('HXID').AsString)='' then + begin + if GetLSNo(ADOQuery3,maxno,'HX','Contract_Cloth_BefChkHX',2,1)=False then + begin + ADOQuery3.Connection.RollbackTrans; + Application.MessageBox('ȡʧ!','ʾ',0); + Exit; + end; + end else + begin + maxno:=Trim(ClientDataSet1.fieldbyname('HXID').AsString); + end; + with ADOQuery3 do + begin + Close; + sql.Clear; + sql.Add('select * from Contract_Cloth_BefChkHX where HXID='''+Trim(ClientDataSet1.fieldbyname('HXID').AsString)+''''); + Open; + end; + with ADOQuery3 do + begin + if Trim(ClientDataSet1.fieldbyname('HXID').AsString)='' then + Append + else + Edit; + FieldByName('LLID').Value:=Trim(FLLID); + FieldByName('HXID').Value:=Trim(maxno); + SSetSaveDataCDSNew(ADOQuery3,TV2,ClientDataSet1,'Contract_Cloth_BefChkHX',2); + Post; + end; + end; + Next; + end; + end; + with ADOQuery3 do + begin + Close; + SQL.Clear; + SQL.Add('Update Contract_Cloth_BefChkHX Set HXMQty=HXQty*ZSXS where LLID='''+Trim(FLLID)+''''); + sql.Add('Update Contract_Cloth_LL Set HXPS=(select sum(HXPS) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXQty=(select sum(HXQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXMQty=(select sum(HXMQty) from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(',HXUnit=(select Top 1 HXUnit from Contract_Cloth_BefChkHX A where A.LLID=Contract_Cloth_LL.LLID)'); + sql.Add(' where LLID='''+Trim(FLLID)+''''); + ExecSQL; + end; + ADOQuery3.Connection.CommitTrans; + Application.MessageBox('ɹ!','ʾ',0); + Exit; + except + ADOQuery3.Connection.RollbackTrans; + Application.MessageBox('쳣!','ʾ',0); + end; +end; + +procedure TfrmBefChkHX.ToolButton1Click(Sender: TObject); +begin + Close; + WriteCxGrid('ǰ',TV2,'زֹ'); +end; + +procedure TfrmBefChkHX.FormShow(Sender: TObject); +begin + ReadCxGrid('ǰ',TV2,'زֹ'); +end; + +end. diff --git a/桂华管理系统/桂华管理系统/U_CKEJK.dfm b/桂华管理系统/桂华管理系统/U_CKEJK.dfm new file mode 100644 index 0000000..cce0d82 --- /dev/null +++ b/桂华管理系统/桂华管理系统/U_CKEJK.dfm @@ -0,0 +1,403 @@ +object frmCKEJK: TfrmCKEJK + Left = -27 + Top = 117 + Width = 1262 + Height = 623 + Caption = #25104#21697#24211#23384#27719#24635#21015#34920 + Color = clBtnFace + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + OldCreateOrder = False + OnClose = FormClose + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 12 + object ToolBar1: TToolBar + Left = 0 + Top = 0 + Width = 1246 + Height = 33 + ButtonHeight = 30 + ButtonWidth = 59 + Caption = 'ToolBar1' + Color = clSkyBlue + Flat = True + Font.Charset = GB2312_CHARSET + Font.Color = clWindowText + Font.Height = -12 + Font.Name = #23435#20307 + Font.Style = [] + Images = DataLink_TradeManage.ThreeImgList + List = True + ParentColor = False + ParentFont = False + ShowCaptions = True + TabOrder = 0 + object TBRafresh: TToolButton + Left = 0 + Top = 0 + AutoSize = True + Caption = #21047#26032 + ImageIndex = 9 + OnClick = TBRafreshClick + end + object TBFind: TToolButton + Left = 63 + Top = 0 + AutoSize = True + Caption = #36807#28388 + ImageIndex = 59 + OnClick = TBFindClick + end + object TBExport: TToolButton + Left = 126 + Top = 0 + AutoSize = True + Caption = #23548#20986 + ImageIndex = 75 + OnClick = TBExportClick + end + object TBPrint: TToolButton + Left = 189 + Top = 0 + AutoSize = True + Caption = #25171#21360 + ImageIndex = 12 + Visible = False + end + object TBClose: TToolButton + Left = 252 + Top = 0 + AutoSize = True + Caption = #20851#38381 + ImageIndex = 55 + OnClick = TBCloseClick + end + end + object Panel1: TPanel + Left = 0 + Top = 33 + Width = 1246 + Height = 40 + Align = alTop + BevelInner = bvRaised + BevelOuter = bvLowered + Color = clSkyBlue + TabOrder = 1 + object Label3: TLabel + Left = 307 + Top = 12 + Width = 48 + Height = 12 + Caption = #20135#21697#21517#31216 + end + object Label4: TLabel + Left = 512 + Top = 12 + Width = 24 + Height = 12 + Caption = #39068#33394 + end + object Label1: TLabel + Left = 28 + Top = 12 + Width = 48 + Height = 12 + Caption = #20986#24211#26085#26399 + end + object Label2: TLabel + Left = 172 + Top = 12 + Width = 6 + Height = 12 + Caption = '-' + end + object Label5: TLabel + Left = 32 + Top = 52 + Width = 48 + Height = 12 + Caption = #20219#21153#21333#21495 + end + object Label6: TLabel + Left = 36 + Top = 76 + Width = 48 + Height = 12 + Caption = #26465' '#30721 + end + object Label8: TLabel + Left = 195 + Top = 92 + Width = 48 + Height = 12 + Caption = #20811' '#37325 + end + object Label9: TLabel + Left = 428 + Top = 92 + Width = 24 + Height = 12 + Caption = #38376#24133 + end + object Label7: TLabel + Left = 510 + Top = 68 + Width = 24 + Height = 12 + Caption = #31867#22411 + end + object Label10: TLabel + Left = 676 + Top = 12 + Width = 72 + Height = 12 + Caption = #40857#36816#20837#24211#29366#24577 + end + object C_CodeName: TEdit + Tag = 2 + Left = 360 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 0 + OnChange = C_CodeNameChange + end + object C_Color: TEdit + Tag = 2 + Left = 540 + Top = 9 + Width = 100 + Height = 20 + TabOrder = 1 + OnChange = C_CodeNameChange + end + object BegDate: TDateTimePicker + Left = 81 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 2 + end + object EndDate: TDateTimePicker + Left = 181 + Top = 9 + Width = 87 + Height = 20 + Date = 40768.458268587970000000 + Time = 40768.458268587970000000 + TabOrder = 3 + end + object conNO: TEdit + Tag = 2 + Left = 78 + Top = 45 + Width = 109 + Height = 20 + TabOrder = 4 + OnChange = C_CodeNameChange + end + object MJID: TEdit + Tag = 2 + Left = 86 + Top = 73 + Width = 109 + Height = 20 + TabOrder = 5 + OnChange = C_CodeNameChange + end + object KZ: TEdit + Tag = 2 + Left = 240 + Top = 89 + Width = 100 + Height = 20 + TabOrder = 6 + OnChange = C_CodeNameChange + end + object MF: TEdit + Tag = 2 + Left = 452 + Top = 88 + Width = 100 + Height = 20 + TabOrder = 7 + OnChange = C_CodeNameChange + end + object CPType: TComboBox + Tag = 2 + Left = 536 + Top = 64 + Width = 68 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 8 + OnChange = TBFindClick + Items.Strings = ( + #27491#21697 + #27425#21697 + #30041#26679 + '') + end + object CKFlag: TComboBox + Tag = 2 + Left = 756 + Top = 8 + Width = 101 + Height = 20 + Style = csDropDownList + ItemHeight = 12 + TabOrder = 9 + OnChange = C_CodeNameChange + Items.Strings = ( + '' + #26410#20837#24211 + #24050#20837#24211 + '') + end + end + object cxGrid2: TcxGrid + Left = 0 + Top = 73 + Width = 1246 + Height = 512 + Align = alClient + TabOrder = 2 + object Tv1: TcxGridDBTableView + NavigatorButtons.ConfirmDelete = False + DataController.DataSource = DataSource1 + DataController.Summary.DefaultGroupSummaryItems = <> + DataController.Summary.FooterSummaryItems = < + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + end + item + Kind = skSum + Column = v1Column4 + end + item + Kind = skSum + Column = v1Column5 + end> + DataController.Summary.SummaryGroups = <> + OptionsCustomize.ColumnFiltering = False + OptionsSelection.CellSelect = False + OptionsView.Footer = True + OptionsView.GroupByBox = False + Styles.Inactive = DataLink_TradeManage.SHuangSe + Styles.IncSearch = DataLink_TradeManage.SHuangSe + Styles.Selection = DataLink_TradeManage.SHuangSe + Styles.Header = DataLink_TradeManage.Default + object v1Column1: TcxGridDBColumn + Caption = #20986#24211#26085#26399 + DataBinding.FieldName = 'CRTime' + HeaderAlignmentHorz = taCenter + Width = 158 + end + object v1Column2: TcxGridDBColumn + Caption = #20135#21697#21517#31216 + DataBinding.FieldName = 'C_CodeName' + HeaderAlignmentHorz = taCenter + Width = 127 + end + object v1Column3: TcxGridDBColumn + Caption = #39068#33394 + DataBinding.FieldName = 'C_Color' + HeaderAlignmentHorz = taCenter + Width = 114 + end + object v1Column4: TcxGridDBColumn + Caption = #26607#26725#20986#24211#25968#37327 + DataBinding.FieldName = 'Qty' + HeaderAlignmentHorz = taCenter + Width = 123 + end + object v1Column5: TcxGridDBColumn + Caption = #40857#36816#20837#24211#25968#37327 + DataBinding.FieldName = 'LYQty' + HeaderAlignmentHorz = taCenter + Width = 100 + end + object v1Column6: TcxGridDBColumn + Caption = #40857#36816#20837#24211#29366#24577 + DataBinding.FieldName = 'CKFlag' + HeaderAlignmentHorz = taCenter + Width = 129 + end + end + object cxGrid2Level1: TcxGridLevel + GridView = Tv1 + end + end + object MovePanel2: TMovePanel + Left = 408 + Top = 192 + Width = 289 + Height = 49 + BevelInner = bvLowered + Caption = #27491#22312#26597#35810#25968#25454#65292#35831#31245#21518#12290#12290#12290 + Color = clSkyBlue + Font.Charset = GB2312_CHARSET + Font.Color = clRed + Font.Height = -14 + Font.Name = #23435#20307 + Font.Style = [fsBold] + ParentFont = False + TabOrder = 3 + Visible = False + end + object ADOQueryCmd: TADOQuery + Connection = DataLink_TradeManage.ADOLink + Parameters = <> + Left = 968 + Top = 40 + end + object ADOQueryMain: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 984 + Top = 40 + end + object ADOQueryTemp: TADOQuery + Connection = DataLink_TradeManage.ADOLink + LockType = ltReadOnly + Parameters = <> + Left = 944 + Top = 32 + end + object DataSource1: TDataSource + DataSet = CDS_Main + Left = 920 + Top = 152 + end + object cxGridPopupMenu1: TcxGridPopupMenu + Grid = cxGrid2 + PopupMenus = <> + Left = 888 + Top = 144 + end + object CDS_Main: TClientDataSet + Aggregates = <> + Params = <> + Left = 896 + Top = 128 + end +end diff --git a/桂华管理系统/桂华管理系统/testDll.cfg b/桂华管理系统/桂华管理系统/testDll.cfg new file mode 100644 index 0000000..6c57635 --- /dev/null +++ b/桂华管理系统/桂华管理系统/testDll.cfg @@ -0,0 +1,38 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST diff --git a/桂华管理系统/桂华管理系统/testDll.dof b/桂华管理系统/桂华管理系统/testDll.dof new file mode 100644 index 0000000..f452c6e --- /dev/null +++ b/桂华管理系统/桂华管理系统/testDll.dof @@ -0,0 +1,136 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages= +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication=D:\selfware_83398\selfware\ֿ\Ŀ\self\·չó׹\testDll.exe +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=2052 +CodePage=936 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= diff --git a/桂华管理系统/桂华管理系统/testDll.dpr b/桂华管理系统/桂华管理系统/testDll.dpr new file mode 100644 index 0000000..4be4b8a --- /dev/null +++ b/桂华管理系统/桂华管理系统/testDll.dpr @@ -0,0 +1,14 @@ +program testDll; + +uses + Forms, + U_testdll in 'U_testdll.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/桂华管理系统/桂华管理系统/testDll.res b/桂华管理系统/桂华管理系统/testDll.res new file mode 100644 index 0000000..2d6f24c Binary files /dev/null and b/桂华管理系统/桂华管理系统/testDll.res differ