From cbd022cdeac97a8736cfe392e475c489b4a0aea3 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sun, 19 Jun 2016 22:24:29 +0000 Subject: [PATCH] tvplanit: Add full demo incl NavBar and translation git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4776 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/tvplanit/examples/demo/demo.lpi | 88 ++ components/tvplanit/examples/demo/demo.lpr | 20 + .../tvplanit/examples/demo/demomain.lfm | 1301 +++++++++++++++++ .../tvplanit/examples/demo/demomain.lrt | 10 + .../tvplanit/examples/demo/demomain.pas | 445 ++++++ components/tvplanit/examples/demo/readme.txt | 2 + 6 files changed, 1866 insertions(+) create mode 100644 components/tvplanit/examples/demo/demo.lpi create mode 100644 components/tvplanit/examples/demo/demo.lpr create mode 100644 components/tvplanit/examples/demo/demomain.lfm create mode 100644 components/tvplanit/examples/demo/demomain.lrt create mode 100644 components/tvplanit/examples/demo/demomain.pas create mode 100644 components/tvplanit/examples/demo/readme.txt diff --git a/components/tvplanit/examples/demo/demo.lpi b/components/tvplanit/examples/demo/demo.lpi new file mode 100644 index 000000000..aea511a45 --- /dev/null +++ b/components/tvplanit/examples/demo/demo.lpi @@ -0,0 +1,88 @@ + + + + + + + + + + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + </General> + <i18n> + <EnableI18N Value="True"/> + <OutDir Value="..\..\languages"/> + </i18n> + <VersionInfo> + <StringTable ProductVersion=""/> + </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + </local> + </RunParams> + <RequiredPackages Count="3"> + <Item1> + <PackageName Value="laz_visualplanit"/> + </Item1> + <Item2> + <PackageName Value="zcomponent"/> + </Item2> + <Item3> + <PackageName Value="LCL"/> + </Item3> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="demo.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="demomain.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="MainForm"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="demoMain"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="demo"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/tvplanit/examples/demo/demo.lpr b/components/tvplanit/examples/demo/demo.lpr new file mode 100644 index 000000000..cb6c898e8 --- /dev/null +++ b/components/tvplanit/examples/demo/demo.lpr @@ -0,0 +1,20 @@ +program demo; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, demoMain, laz_visualplanit, LCLTranslator, DefaultTranslator; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Initialize; + Application.CreateForm(TMainForm, MainForm); + Application.Run; +end. + diff --git a/components/tvplanit/examples/demo/demomain.lfm b/components/tvplanit/examples/demo/demomain.lfm new file mode 100644 index 000000000..897001200 --- /dev/null +++ b/components/tvplanit/examples/demo/demomain.lfm @@ -0,0 +1,1301 @@ +object MainForm: TMainForm + Left = 291 + Height = 686 + Top = 164 + Width = 980 + Caption = 'Turbo Power VisualPlanIt Demo' + ClientHeight = 686 + ClientWidth = 980 + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + LCLVersion = '1.7' + object Panel1: TPanel + Left = 0 + Height = 34 + Top = 0 + Width = 980 + Align = alTop + BevelOuter = bvNone + ClientHeight = 34 + ClientWidth = 980 + TabOrder = 0 + object VpResourceCombo1: TVpResourceCombo + Left = 8 + Height = 23 + Top = 5 + Width = 208 + DataStore = VpBufDSDataStore1 + Style = csDropDownList + end + object BtnNewRes: TButton + Left = 222 + Height = 25 + Top = 4 + Width = 128 + Caption = 'New resource' + OnClick = BtnNewResClick + TabOrder = 1 + end + object BtnEditRes: TButton + Left = 352 + Height = 25 + Top = 4 + Width = 128 + Caption = 'Edit resource' + OnClick = BtnEditResClick + TabOrder = 2 + end + object CbLanguages: TComboBox + Left = 832 + Height = 23 + Top = 5 + Width = 140 + Anchors = [akTop, akRight] + ItemHeight = 15 + OnChange = CbLanguagesChange + Style = csDropDownList + TabOrder = 3 + end + object Label1: TLabel + Left = 768 + Height = 15 + Top = 8 + Width = 52 + Anchors = [akTop, akRight] + Caption = 'Language' + ParentColor = False + end + end + object PageControl1: TPageControl + Left = 120 + Height = 652 + Top = 34 + Width = 860 + ActivePage = TabEvents + Align = alClient + TabIndex = 0 + TabOrder = 1 + object TabEvents: TTabSheet + Caption = 'Events' + ClientHeight = 624 + ClientWidth = 852 + TabVisible = False + object Panel2: TPanel + Left = 0 + Height = 624 + Top = 0 + Width = 386 + Align = alLeft + BevelOuter = bvNone + ClientHeight = 624 + ClientWidth = 386 + TabOrder = 0 + object VpMonthView1: TVpMonthView + Left = 0 + Height = 241 + Top = 383 + Width = 386 + DataStore = VpBufDSDataStore1 + ControlLink = VpControlLink1 + Color = clWindow + Align = alBottom + TabStop = True + TabOrder = 0 + KBNavigation = True + DateLabelFormat = 'mmmm yyyy' + DayHeadAttributes.Color = clBtnFace + DayHeadAttributes.Font.Height = -13 + DayHeadAttributes.Font.Name = 'Tahoma' + DayNameStyle = dsShort + DayNumberFont.Style = [fsBold] + DrawingStyle = dsFlat + EventDayStyle = [fsItalic] + LineColor = clGray + TimeFormat = tf12Hour + OffDayColor = clSilver + SelectedDayColor = clRed + ShowEvents = True + ShowEventTime = False + WeekStartsOn = dtSunday + end + object Splitter2: TSplitter + Cursor = crVSplit + Left = 0 + Height = 5 + Top = 378 + Width = 386 + Align = alBottom + ResizeAnchor = akBottom + end + object VpDayView1: TVpDayView + Left = 0 + Height = 378 + Top = 0 + Width = 386 + DataStore = VpBufDSDataStore1 + ControlLink = VpControlLink1 + Color = clWindow + Align = alClient + ReadOnly = False + TabStop = True + TabOrder = 2 + AllDayEventAttributes.BackgroundColor = clBtnShadow + AllDayEventAttributes.EventBorderColor = cl3DDkShadow + AllDayEventAttributes.EventBackgroundColor = clBtnFace + ShowEventTimes = False + DrawingStyle = dsFlat + TimeSlotColors.Active = clWhite + TimeSlotColors.Inactive = 8454143 + TimeSlotColors.Holiday = 16744703 + TimeSlotColors.Weekday = clWhite + TimeSlotColors.Weekend = 16777088 + TimeSlotColors.ActiveRange.RangeBegin = h_00 + TimeSlotColors.ActiveRange.RangeEnd = h_00 + HeadAttributes.Font.Height = -13 + HeadAttributes.Color = clBtnFace + RowHeadAttributes.HourFont.Height = -24 + RowHeadAttributes.MinuteFont.Height = -12 + RowHeadAttributes.Color = clBtnFace + ShowResourceName = True + LineColor = clGray + GutterWidth = 7 + DateLabelFormat = 'dddd, mmmm dd, yyyy' + Granularity = gr30Min + DefaultTopHour = h_07 + TimeFormat = tf12Hour + end + end + object Splitter3: TSplitter + Left = 386 + Height = 624 + Top = 0 + Width = 5 + end + object VpWeekView1: TVpWeekView + Left = 391 + Height = 624 + Top = 0 + Width = 461 + DataStore = VpBufDSDataStore1 + ControlLink = VpControlLink1 + Color = clWindow + AllDayEventAttributes.BackgroundColor = clWindow + AllDayEventAttributes.EventBorderColor = clGray + AllDayEventAttributes.EventBackgroundColor = clBtnFace + DateLabelFormat = 'dddd, mmmm dd, yyyy' + DayHeadAttributes.Color = clBtnFace + DayHeadAttributes.DateFormat = 'dddd mmmm, dd' + DayHeadAttributes.Font.Height = -13 + DayHeadAttributes.Font.Name = 'Tahoma' + DayHeadAttributes.Bordered = True + DrawingStyle = dsFlat + HeadAttributes.Color = clBtnFace + LineColor = clGray + TimeFormat = tf12Hour + ShowEventTime = True + WeekStartsOn = dtMonday + Align = alClient + TabStop = True + TabOrder = 2 + end + end + object TabTasks: TTabSheet + Caption = 'Tasks' + ClientHeight = 624 + ClientWidth = 852 + TabVisible = False + object VpTaskList1: TVpTaskList + Left = 0 + Height = 590 + Top = 34 + Width = 852 + DataStore = VpBufDSDataStore1 + ControlLink = VpControlLink1 + Color = clWindow + Align = alClient + TabStop = True + TabOrder = 0 + ReadOnly = False + DisplayOptions.CheckBGColor = clWindow + DisplayOptions.CheckColor = cl3DDkShadow + DisplayOptions.CheckStyle = csCheck + DisplayOptions.DueDateFormat = 'dd.MM.yyyy' + DisplayOptions.ShowCompletedTasks = False + DisplayOptions.ShowAll = True + DisplayOptions.ShowDueDate = True + DisplayOptions.OverdueColor = clRed + DisplayOptions.NormalColor = clBlack + DisplayOptions.CompletedColor = clGray + LineColor = clGray + MaxVisibleTasks = 250 + TaskHeadAttributes.Color = clSilver + DrawingStyle = dsFlat + ShowResourceName = True + end + object Panel3: TPanel + Left = 0 + Height = 34 + Top = 0 + Width = 852 + Align = alTop + BevelOuter = bvNone + ClientHeight = 34 + ClientWidth = 852 + TabOrder = 1 + object RbAllTasks: TRadioButton + Left = 8 + Height = 19 + Top = 7 + Width = 63 + Caption = 'All tasks' + Checked = True + OnChange = RbAllTasksChange + TabOrder = 1 + TabStop = True + end + object RbHideCompletedTasks: TRadioButton + Left = 98 + Height = 19 + Top = 7 + Width = 134 + Caption = 'Hide completed tasks' + OnChange = RbHideCompletedTasksChange + TabOrder = 0 + end + end + end + object TabContacts: TTabSheet + Caption = 'Contacts' + ClientHeight = 624 + ClientWidth = 852 + TabVisible = False + object VpContactButtonBar1: TVpContactButtonBar + Left = 0 + Height = 624 + Top = 0 + Width = 40 + DrawingStyle = dsFlat + RadioStyle = False + Align = alLeft + end + object VpContactGrid1: TVpContactGrid + Left = 40 + Height = 624 + Top = 0 + Width = 812 + DataStore = VpBufDSDataStore1 + ControlLink = VpControlLink1 + Color = clWindow + Align = alClient + TabStop = True + TabOrder = 1 + AllowInPlaceEditing = True + BarWidth = 3 + BarColor = clSilver + ColumnWidth = 200 + ContactHeadAttributes.Color = clSilver + ContactHeadAttributes.Bordered = True + DrawingStyle = dsFlat + end + end + object TabInfo: TTabSheet + Caption = 'Info' + ClientHeight = 624 + ClientWidth = 852 + object Memo1: TMemo + Left = 0 + Height = 624 + Top = 0 + Width = 852 + Align = alClient + TabOrder = 0 + end + end + end + object VpNavBar1: TVpNavBar + Left = 0 + Height = 652 + Top = 34 + Width = 120 + ActiveFolder = 3 + AllowRearrange = True + BackgroundColor = clInactiveCaption + BackgroundMethod = bmNormal + BorderStyle = bsNone + ButtonHeight = 20 + DrawingStyle = dsEtchedButton + FolderCollection = < + item + Version = 'v1.04' + Caption = 'All' + Enabled = True + FolderType = ftDefault + ItemCollection = < + item + Version = 'v1.04' + Caption = 'Events' + IconIndex = 0 + Name = 'Item0-0' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Month view' + IconIndex = 5 + Name = 'Item0-1' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Week view' + IconIndex = 4 + Name = 'Item0-2' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Day view' + IconIndex = 3 + Name = 'Item0-3' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Tasks' + Description = 'Show tasks' + IconIndex = 1 + Name = 'Item0-4' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Contacts' + Description = 'Show address book' + IconIndex = 2 + Name = 'Item0-5' + Tag = 0 + end> + IconSize = isLarge + Name = 'NavFolder3' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Events' + Enabled = True + FolderType = ftDefault + ItemCollection = < + item + Version = 'v1.04' + Caption = 'Events' + Description = 'Display appointments and events' + IconIndex = 0 + Name = 'EventItem' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'per month' + IconIndex = 5 + Name = 'Item0-5' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'per week' + IconIndex = 4 + Name = 'WeekView' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'per day' + IconIndex = 3 + Name = 'DayView' + Tag = 0 + end> + IconSize = isLarge + Name = 'NavFolder0' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Tasks' + Enabled = True + FolderType = ftDefault + ItemCollection = < + item + Version = 'v1.04' + Caption = 'List' + IconIndex = 1 + Name = 'Item1-0' + Tag = 0 + end> + IconSize = isLarge + Name = 'NavFolder2' + Tag = 0 + end + item + Version = 'v1.04' + Caption = 'Contacts' + Enabled = True + FolderType = ftDefault + ItemCollection = < + item + Version = 'v1.04' + Caption = 'Contacts' + Description = 'Show contacts' + IconIndex = 2 + Name = 'Item2-0' + Tag = 0 + end> + IconSize = isLarge + Name = 'NavFolder2' + Tag = 0 + end> + Images = ImageList1 + ItemFont.Color = clWhite + ItemSpacing = 3 + PlaySounds = False + SelectedItem = -1 + SelectedItemFont.Color = clWhite + SelectedItemFont.Style = [fsBold] + ShowButtons = True + SoundAlias = 'MenuCommand' + OnItemClick = VpNavBar1ItemClick + Align = alLeft + ParentColor = False + end + object VpControlLink1: TVpControlLink + DataStore = VpBufDSDataStore1 + Printer.BottomMargin = 0 + Printer.DayStart = h_08 + Printer.DayEnd = h_05 + Printer.Granularity = gr30Min + Printer.LeftMargin = 0 + Printer.MarginUnits = imAbsolutePixel + Printer.PrintFormats = <> + Printer.RightMargin = 0 + Printer.TopMargin = 0 + left = 312 + top = 200 + end + object VpResourceEditDialog1: TVpResourceEditDialog + Version = 'v1.04' + DataStore = VpBufDSDataStore1 + Options = [] + Placement.Position = mpCenter + Placement.Top = 10 + Placement.Left = 10 + Placement.Height = 250 + Placement.Width = 400 + left = 312 + top = 280 + end + object VpBufDSDataStore1: TVpBufDSDataStore + CategoryColorMap.Category0.Color = clNavy + CategoryColorMap.Category0.Description = 'Category 0' + CategoryColorMap.Category1.Color = clRed + CategoryColorMap.Category1.Description = 'Category 1' + CategoryColorMap.Category2.Color = clYellow + CategoryColorMap.Category2.Description = 'Category 2' + CategoryColorMap.Category3.Color = clLime + CategoryColorMap.Category3.Description = 'Category 3' + CategoryColorMap.Category4.Color = clPurple + CategoryColorMap.Category4.Description = 'Category 4' + CategoryColorMap.Category5.Color = clTeal + CategoryColorMap.Category5.Description = 'Category 5' + CategoryColorMap.Category6.Color = clFuchsia + CategoryColorMap.Category6.Description = 'Category 6' + CategoryColorMap.Category7.Color = clOlive + CategoryColorMap.Category7.Description = 'Category 7' + CategoryColorMap.Category8.Color = clAqua + CategoryColorMap.Category8.Description = 'Category 8' + CategoryColorMap.Category9.Color = clMaroon + CategoryColorMap.Category9.Description = 'Category 9' + EnableEventTimer = True + PlayEventSounds = True + Directory = 'data' + AutoConnect = True + AutoCreate = True + left = 312 + top = 128 + end + object ImageList1: TImageList + Height = 32 + Width = 32 + left = 312 + top = 365 + Bitmap = { + 4C69060000002000000020000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00B0ADA16ABBB2A09CBAB19F9BBAB29E9BBAB2 + 9E9BB9B29E9BB9B09E9BB9B19D9BB9B19D9BB9AF9D9BB9AF9D9BB9AF9D9BB8B0 + 9C9BB8B09C9BB8B09C9BB8AF9B9BB8AF9B9BB8B09C9BB8B09C9BB8B09C9BB8B0 + 9C9BB9AF9D9BB9AF9D9BB9AF9D9BB9B19D9BB9B29E9BB9B29E9BBAB29E9BBAB2 + 9E9BBAB29E9BBBB39F9CB2B0A468C3BCABC2F1EAE0FFECE3D8FFEAE0D4FFE8DE + D0FFE5DCCDFFE5DBCAFFE1D7C8FFE0D6C5FFDFD3C2FFDDD1BEFFDBCFBCFFD9CD + BAFFD8CBB8FFD7CAB5FFD5C7B4FFD5C7B4FFD7CAB5FFD8CBB7FFD9CCB9FFDACE + BBFFDCD0BDFFDDD2C1FFDFD4C3FFE0D5C5FFEFEAE1FFE4DDCEFFEEE8DFFFE6DC + CFFFECE6DDFFE1D8C8FFCAC3B6BCC3BCABBDDEDAD4FFD3CDC4FFD2CCC3FFD2CB + C3FFD1CAC2FFD1CBC0FFD0CABFFFD0C9BFFFCFC8BDFFCFC7BDFFCEC7BCFFCDC5 + BBFFCDC5BAFFCDC6B9FFCCC4B9FFCCC4B9FFCDC5BAFFCDC5BAFFCDC5BBFFCEC7 + BCFFCFC7BCFFCFC8BDFFD0C8BFFFD0C9BFFFD2CCC4FFD2CCC3FFD2CDC5FFD2CC + C4FFD3CEC6FFDBD7D0FFCAC3B6B7C2BAAABDE4E4E4FFE0DFDFFFE1E0E0FFE2E1 + E1FFE2E1E1FFE2E2E2FFE3E3E3FFE3E3E3FFE4E4E4FFE5E5E4FFE5E5E5FFE6E6 + E6FFE6E6E6FFE7E7E7FFE8E8E8FFE8E8E8FFE8E8E8FFE9E9E9FFE9E9E9FFEAE9 + E9FFE9EAEAFFEAEBEBFFEBEBEBFFEBEBEBFFEBEBEAFFECEBEBFFECECECFFECEC + ECFFEEEEEDFFE9E9E9FFC9C3B6B7C1BAAABDF1F1F1FFF5F4F4FFF5F4F4FFF5F5 + F4FFF5F5F4FFF5F5F5FFF5F5F5FFF5F5F5FFF6F5F5FFF6F5F5FFF6F6F5FFF7F6 + F6FFF7F6F6FFF7F7F6FFF7F7F6FFF7F7F7FFF7F7F7FFF7F7F7FFF8F7F7FFF8F7 + F7FFF8F8F7FFF8F8F8FFF8F8F8FFF8F8F8FFF8F8F8FFF9F8F8FFF9F8F8FFF9F9 + F8FFFAF9F9FFF1F1F1FFC9C3B6B7C1B9A9BDF8F8F9FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF5F5F5FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFF92CBDCFF88B7C6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFDDECF1FFA7E9F7FF95D9EAFFF0F6F9FFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FF77B3C7FFB1F7FFFFB0F3FFFF81B3C4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFCAC4B7B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFE3EF + F3FF85D8F0FF9AEDFFFFA3EEFFFF82CFE9FFF4F8FAFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF6F6F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2D2D3FFE3EFF3FF7CC1 + D9FF89E8FFFF83E1FFFF89E1FFFF92E4FFFF88C2D9FFE8F2F5FFFDFEFEFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFF9ACADEFF77C1DDFF6BC1E3FF65C4E7FF6CD1F4FF70DA + FFFF6CD9FFFF72D9FFFF78D9FFFF7FDAFFFF85D9FEFF7FCEF4FF78C5EAFF6DB4 + D9FF7ABBDAFF9EC7D9FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFF63B1D3FF61D0FFFF60D6FFFF58D2FFFF57D1FFFF54CE + FFFF55CDFFFF57CDFFFF5ACCFFFF5DCBFFFF62CBFFFF67CCFFFF68CAFFFF6DCB + FFFF63BEFFFF6BADCEFFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFE0EDF1FF54A6CEFF4EC0FCFF46C6FFFF38C0FFFF33BF + FFFF2FBDFFFF2CBBFFFF2BB8FFFF2BB6FFFF2DB3FFFF30B2FFFF3DB5FFFF47AD + F8FF5BA4C9FFDCE6EAFFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFBCC7CBFF4699C1FF33B4FCFF29B6FFFF27B5 + FFFF28B4FFFF27B3FFFF27B1FFFF25AEFFFF23ABFFFF22A8FFFF29A1F9FF5298 + BEFFE5EEF0FFF8F8F8FFCAC4B7B7C1B9A9BDF1F1F1FFF8F8F8FFF7F7F7FFF7F7 + F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF7F7F7FFF8F8F8FFF7F7F7FFF7F7F7FFDCE7EBFF4CA1CDFF28AFFFFF26AE + FFFF26ADFFFF25ACFFFF25AAFFFF23A8FFFF22A6FFFF22A1FDFF5AA4CBFFE6ED + EFFFF8F8F8FFF4F0F2FFCBC3B8B7C5BDAEC2F3F1EFFFEEECE8FFEDEBE5FFECE7 + E3FFEAE7E1FFE9E5DEFFE7E3DCFFE6E1D9FFE5E0D7FFE4DED5FFE3DCD4FFE2DC + D1FFE1DAD0FFE0D9CEFFDFD7CCFFDFD8CDFFE0D9CEFF72A8BEFF24A8FFFF23A7 + FFFF23A7FFFF22A5FFFF22A3FFFF21A1FFFF209FFFFF1E9AFDFF90B9C9FFECE9 + E3FFECEAE6FFEEECEAFFCCC7BABDB0AFA361BEB6A68FBDB5A48FBDB4A48FBDB4 + A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBCB4A38FBCB4A38FBCB4 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38F348CBBD922A3FFFF20A0 + FFFF20A0FFFF21A0FFFF209EFFFF1D9BFFFF1D98FFFF1D96FFFF428BB2CDBDB4 + A48FBDB4A48FBDB5A58FB3B1A85FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF001184D4CC1E9CFFFF219C + FFFF2199FFFF188DEBF6188DEEF82195FFFF1E94FFFF1990FFFF0C7AC8B7FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00006B91141588E9EA299AFFFF248D + EDF80E77BCC0006B945F016C97681077C1C92489F0FB2590FFFF0F7CDEDB006A + 8E05FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00006C972B1782E2EB147BC6CC016B + 9866006A8D17FFFFFF00006C9102006A8D1C016B9B721278CDD61077DBE1006B + 9317FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00006C9312006B9545006A8E20FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00006C9102006A8F28006B9543006C + 930CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00B0ADA16ABBB2A09CBAB19F9BBAB29E9BBAB2 + 9E9BB9B29E9BB9B09E9BB9B19D9BB9B19D9BB9AF9D9BB9AF9D9BB9AF9D9BB8B0 + 9C9BB8B09C9BB8B09C9BB8AF9B9BB8AF9B9BB8B09C9BB8B09C9BB8B09C9BB8B0 + 9C9BB9AF9D9BB9AF9D9BB9AF9D9BB9B19D9BB9B29E9BB9B29E9BBAB29E9BBAB2 + 9E9BBAB29E9BBBB39F9CB2B0A468C3BCABC2F1EAE0FFECE3D8FFEAE0D4FFE8DE + D0FFE5DCCDFFE5DBCAFFE1D7C8FFE0D6C5FFDFD3C2FFDDD1BEFFDBCFBCFFD9CD + BAFFD8CBB8FFD7CAB5FFD5C7B4FFD5C7B4FFD7CAB5FFD8CBB7FFD9CCB9FFDACE + BBFFDCD0BDFFDDD2C1FFDFD4C3FFE0D5C5FFEFEAE1FFE4DDCEFFEEE8DFFFE6DC + CFFFECE6DDFFE1D8C8FFCAC3B6BCC3BCABBDDEDAD4FFD3CDC4FFD2CCC3FFD2CB + C3FFD1CAC2FFD1CBC0FFD0CABFFFD0C9BFFFCFC8BDFFCFC7BDFFCEC7BCFFCDC5 + BBFFCDC5BAFFCDC6B9FFCCC4B9FFCCC4B9FFCDC5BAFFCDC5BAFFCDC5BBFFCEC7 + BCFFCFC7BCFFCFC8BDFFD0C8BFFFD0C9BFFFD2CCC4FFD2CCC3FFD2CDC5FFD2CC + C4FFD3CEC6FFDBD7D0FFCAC3B6B7C2BAAABDE4E4E4FFE0DFDFFFE1E0E0FFE2E1 + E1FFE2E1E1FFE2E2E2FFE3E3E3FFE3E3E3FFE4E4E4FFE5E5E4FFE5E5E5FFE6E6 + E6FFE6E6E6FFE7E7E7FFE8E8E8FFE8E8E8FFE8E8E8FFE9E9E9FFE9E9E9FFEAE9 + E9FFE9EAEAFFEAEBEBFFEBEBEBFFEBEBEBFFEBEBEAFFECEBEBFFECECECFFECEC + ECFFEEEEEDFFE9E9E9FFC9C3B6B7C1BAAABDF1F1F1FFF5F4F4FFF5F4F4FFF5F5 + F4FFF5F5F4FFF5F5F5FFF5F5F5FFF5F5F5FFF6F5F5FFF6F5F5FFF6F6F5FFF7F6 + F6FFF7F6F6FFF7F7F6FFF7F7F6FFF7F7F7FFF7F7F7FFF7F7F7FFF8F7F7FFF8F7 + F7FFF8F8F7FFF8F8F8FFF8F8F8FFF8F8F8FFF8F8F8FFF9F8F8FFF9F8F8FFF9F9 + F8FFFAF9F9FFF1F1F1FFC9C3B6B7C1B9A9BDF8F8F9FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF5F5F5FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFB4BBDFFF8C94BCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFACB3DFFF334BB0FF677DD7FFA7B0DBFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFA8B0 + DDFF334CB6FF5E71C9FF5469CCFF1B349EFF9399BBFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFB6BDE2FF2F48 + B4FF596ECDFF4A61CCFF223AA3FF061A7AFF0C2177FFA3A8BEFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D94BEFF2C46B2FF536B + D4FF425DD8FF203BB5FF00147FFF00188EFF2B42A0FF7F87A5FFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FF989FCAFF959DC9FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FF9097C0FF2943B5FF4966E4FF3858 + EAFF1839C7FF001B9AFF001EA7FF0A259AFF6B75A8FFCDCCCEFFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFB1B7E2FF4B65D1FF4A63CCFFA8AFE0FFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFB3BBE5FF2542C1FF4264F7FF3459FAFF173C + DCFF001FB2FF0126C8FF031F92FF70779AFFF8F8FAFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFA6B1E2FF3E57C8FFA2ADEBFF9AA7EBFF334CBDFFA1AADEFFFFFF + FFFFD6D4D4FFFFFFFFFFA3AEE6FF2947CFFF4668FCFF3A5FFFFF1B43EEFF0025 + D0FF022CE3FF05239DFF5E6486FFF9F9FBFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFB5BDDEFF6A80E1FFA7B4F8FF92A4F2FF8398F5FF7E95F9FF2B48C8FFB0B9 + E9FFD6D4D4FFB1BBEFFF2748DAFF4F71FFFF4769FFFF2149F8FF0028EAFF0230 + F9FF0726A1FF626C96FFD0CFD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFF909BC9FF5970CFFF304ECFFF7D95FAFF7D95FEFF718BFFFF6E8AFEFF2A4A + D7FF5C72D1FF5574F9FF5676FFFF5575FFFF2C53FFFF0130FDFF0D3BFFFF0D2F + AFFF717CAFFFF7F8FAFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFF6F7FBFF8492D4FF1B3BC3FF143BE2FF5D7AFAFF7992FFFF6F8AFFFF6582 + FEFF526FDEFF6985FFFF5F7DFFFF3F63FFFF1642FFFF244EFFFF1A3DC1FF697A + BEFFF8F9FCFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD0CFD1FF5D6BABFF0C2FBCFF0532FEFF4165FFFF748EFFFF718C + FFFF7791FFFF6C87FFFF4C6EFFFF2A52FFFF3B60FFFF2448CAFF5066C0FFD1D0 + D3FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFCAC4B7B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFAFAFCFF636FA7FF1538C3FF1F4AFFFF3B5FFFFF6D89 + FFFF7992FFFF5D7CFFFF4165FFFF4F70FFFF2E54DAFF6078DBFFF6F8FEFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF6F6F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D1D3FF6979BEFF2545BDFF4568FFFF4B6C + FFFF6481FFFF5575FFFF6381FFFF385DDBFF748EEDFFD3D2D5FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFF7F8FCFF7586D3FF2C4CBCFF6C89 + FFFF6A86FFFF7C94FFFF3D60D9FF889EEEFFF9FBFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFAFBFEFF7084DFFF4261 + C9FF96AAFDFF5473E0FFA7B7F1FFFAFBFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFBFCFFFF6C85 + E1FF3055C6FF98ABF2FFFEFEFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFCCCC + D6FFA7B2E0FFD0D0D6FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF8F8F8FFCAC4B7B7C1B9A9BDF1F1F1FFF8F8F8FFF7F7F7FFF7F7 + F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF7F7F7FFF8F8F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF8F8 + F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF8F8F8FFF4F0F2FFCBC3B8B7C5BDAEC2F3F1EFFFEEECE8FFEDEBE5FFECE7 + E3FFEAE7E1FFE9E5DEFFE7E3DCFFE6E1D9FFE5E0D7FFE4DED5FFE3DCD4FFE2DC + D1FFE1DAD0FFE0D9CEFFDFD7CCFFDFD8CDFFE0D9CEFFE1DAD0FFE4DDD3FFE1DA + CFFFE2DCD1FFE1DBD2FFE3DCD4FFE7DFD8FFE8E1DAFFEDE4E0FFEAE7E1FFECE9 + E3FFECEAE6FFEEECEAFFCCC7BABDB0AFA361BEB6A68FBDB5A48FBDB4A48FBDB4 + A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBCB4A38FBCB4A38FBCB4 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBCB3 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBEB5A68FBDB4 + A48FBDB4A48FBDB5A58FB3B1A85FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 + 00000000000000000000095E9050096598DF086BA0FF0B72A7FF157DB2FF1A84 + B9CF1081BA600000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000A517F500B5786FF0A5D8DFF0A6293FF09679AFF1473A5FF2A85 + B4FF3C93C0FF288CBFCF067BB510000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000008669ABF0B5887FF0B5481FF0B5987FF0A5E8EFF0C6496FF1D74 + A4FF3387B3FF4998C0FF2588B9CF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000076EA48F0773ABFF0778B1FF14517CFF0C4F7CFF0B5582FF0B5A89FF1163 + 93FF2676A3FF3C88B2FF4793BCFF0771A8600000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000086598DF086A9FFF2D86B6FFA9CFE8FF42779CFF0C4B77FF0C517DFF0C56 + 84FF196491FF2F78A2FF458AB1FF2178A8BF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000095D8EEF096294FF4F97C0FFC9E9FFFFC5E5FBFF6896B6FF0D4771FF0C4D + 78FF0F5480FF226691FF387AA1FF2975A1FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000A5583BF0A5989FF82B8DCFFBDE4FFFFC2E6FFFFC2E5FDFF86AECCFF184D + 75FF0D4873FF15547EFF2B6990FF226893FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000B4D79700B507DFFB5DFFFFFB0DEFFFFB6E0FFFFBBE2FFFFC0E4FFFFB8DB + F5FF81A9C7FF5082A6FF11517CFF0A5482CF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000C4771203A6F95FFB2DDFFFFA2D6FFFFA8D9FFFFAEDCFFFFB3DEFFFFB9E1 + FFFFBEE3FFFFB2DFFFFF0B4B77EF0A5381300000000000000000000000000000 + 0000067AB4300000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000004A759CBEA2D5FFFF92CEFFFF99D2FFFF9FD4FFFFA5D7FFFFABDA + FFFFAEDCFFFF90CAF6FF39658E9A00000000000000000772A9300774ACBF0676 + AFFF0678B1FF067AB3FF067BB6DF067CB7800000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000005078A09AA7D6FFFF86C8FFFF89C9FFFF8FCCFFFF95CFFFFF94CF + FFFF8ACBFFFF96D0FFFF325A827500000000076DA230076FA5EF0771A8FF0773 + AAFF0774ADFF0676AFFF0678B2FF067AB4FF067CB6BF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000084C5FF30719DC5FF9DD1FFFF88C7FFFF85C6FFFF86C7FFFF86C7 + FFFF8BCAFFFF6998C1ED0000000000000000086A9EBF086CA1FF076DA3FF076F + A6FF0771A8FF0875AEFF0775ADFF0677B0FF0679B2FF067AB480000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000004273A0AC93CAFCFF95CCFFFF89C7FFFF85C5FFFF90CB + FFFF95CBF9F743719A9E000000000864983008669AFF08689DFF086A9FFF086C + A2FF076EA4FF77BADEFF7DBFE3FF0775AEFF0775AEFF0677B0DF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000005086B3DE75B5EDFF93CBFFFF8BC3F6FF7EBB + EDFF5489B4DA000000000000000009619360096396FF086598FF08679BFF0869 + 9DFF398FBFFFD7EFFFFFE4F5FFFF8AC2E2FF0772A9FF0774ACFF0775AD500000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000BFA7A3209C929EE3A0C1D7FF86A6C0FF8FACC3FFC3DB + EBFF99828EFFA68B824B00000000095E8F80086FA5FF086398FF086499FF126E + A1FFA6D6F5FFCAEAFFFFD8F0FFFFE6F5FFFF2482B6FF0771A8FF0772A99F0000 + 0000000000000000000000000000000000000000000000000000BCA39F10B298 + 9350AD938D8F995D5AE39C6361FFD3C3BFFFFFFFFFFFF3EFEEFFE8E0DEFFFFFF + FFFFF2EDECFFB98A89FFB1807EFF306E94EF1F86BBFF94CCF6FF6DB7EDFF5DA6 + D7FFAFDEFFFFBEE4FFFFCCEAFFFFDAF0FFFF76B0D0FF076DA3FF076FA5DF0000 + 000000000000000000000000000000000000BAA09C30B39994AF9C706CFF9C6F + 6BFFA0736FFFAE928DFFB49A96FFBCA4A0FFCAB6B3FFCBB8B4FFCBB9B5FFD9CB + C8FFD2C2C0FFD6C8C5FFDCD0CEFF256A94FF1571A5FFABDBFFFF8BCDFFFF93D1 + FFFFA2D7FFFFB0DEFFFFBFE4FFFFCDEAFFFF70ACCEFF086A9FFF0679B3FF086C + A11000000000000000000000000000000000B9A09CDF996D68FFA48982FFAA8E + 89FFB09590FFB59A96FFBBA29EFFC2ACA8FFC8B4B1FFCDBAB7FFD1C0BDFFD5C4 + C2FFD7C8C6FFD9CBC9FFDBCECCFF0B5787FF0A5888FFA4D2F7FF89CAFFFF8ACB + FFFF94D0FFFFA3D7FFFFB2DDFFFFBDE3FFFF5099C5FF08669AFF0775ADFF086A + 9F40000000000000000000000000BCA39F60A47975FFA38781FFAA8E88FFB095 + 90FFB69C97FFBBA29EFFC2AAA7FFC9B4B1FFCFBBB9FFD3C1BFFFD7C6C4FFDACA + C8FFDCCDCBFFC3BEC1FF4F718EFF0D4A75FF0A527FFF86B9E0FF89C9FFFF87C9 + FFFF89CAFFFF95CFFFFF9AD2FFFF92CFFFFF2D7EAFFF096396FF09699EFF0866 + 9A40000000000000000000000000BEA5A180A67B77FFA88C86FFAF938EFFB69C + 97FFBCA39FFFC2AAA7FFC8B2AFFFD0BBB9FFD5C3C1FFDAC9C7FFDDCDCCFFB8B5 + BBFF446381FF446381FF1B4B71FF0B4C78FF0B4F7BFF5A93BEFF9ED2FFFF87C7 + FFFF85C7FFFF86C7FFFF86C8FFFF8DC8F8FF095E8FFF0B5989FF0A5E90FF0963 + 9640000000000000000000000000BFA7A3AFA27672FFAC908BFFB49994FFBBA1 + 9EFFC2AAA6FFC8B1AEFFCFB9B7FFD6C3C1FFDCCAC9FFE0D0CFFFE3D4D3FFE4D7 + D6FFAFB3BDFF0C4670FF0C4872FF0B4975FF0B4B77FF0B4D7AFF6DA7D6FF96CD + FFFF88C7FFFF75B4ECFF83BBECFF316F9CFF0D4873FF0D4A77FF095D8EEF0961 + 9310000000000000000000000000C1A9A6BFA37873FFB09590FFB89E9AFFBFA7 + A3FFC7B0ADFFCEB8B5FFD5C1BFFFDCCBC9FFE2D2D1FFE6D7D7FFE8DBDAFFE9DD + DCFFE9DEDDFF7A93AAFF366283FF0C4670FF0B4873FF0B4A75FF276998FF75B5 + EDFF95CCFFFF7EB8E9FF3F79A6FF164C76FF0C4B77FF0A5786EF06609A600000 + 0000000000000000000000000000C2ABA7FFA17571FFB39994FFBCA29EFFC4AC + A9FFCBB5B3FFD2BEBCFFDAC8C6FFE2D1D0FFE8D9D9FFECDFDFFFEEE2E2FFEFE3 + E3FFECE0DFFFE5D6D5FF4D6C87FF0C436CFF0C456EFF0C4771FF34739FFF87CA + F9FF76BBEDFF93CDF6FFB2E0FFFF29658BFF073B5C9F055F9E20000000000000 + 0000000000000000000000000000C2AAA7FFA37773FFB69C97FFBEA6A2FFC7B0 + ADFFCFBAB7FFD7C3C1FFDFCDCCFFE7D7D6FFEDDFDEFFEFE1E1FFEEE1E1FFEDDE + DEFFEADADAFFD6C6C5FF9C8F8EFF39434DFF3C4954FF475660FF3C586BFF8DD0 + FFFF8ED0FFFF96D4FFFF90D2FFFF344149FF4D4D4DFF383838DF3232328F0E0E + 0E50000000000000000000000000C5AEAB60BDA4A1CFA36B69FFA76F6DFFAB75 + 74FFB07C7AFFB58181FFBA8786FFBE8C8CFFC08F8FFFC08F8FFFC08F8FFFC08F + 8FFF886B6BFF282727FF303030FF393939FF414141FF4A4A4AFF2C3841FF87CB + FEFF8CCEFFFF8CCFFFFF7BB5DFFF1E1E1EFF363636FF363636FF363636FF3636 + 36FF242424EF1717176000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0040080808FF141414FF1C1C1CFF252525FF2D2D2DFF363636FF2A2A2AFF70B5 + E9FF8ACCFFFF8BCDFFFF57809FFF131313FF181818FF181818FF181818FF1818 + 18FF181818FF171717EF0D0D0D10000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 009F010101FF030303FF080808FF111111FF191919FF222222FF212121FF5288 + B4FF88CAFFFF89CBFFFF344C60FF020202FF020202FF020202FF020202FF0202 + 02FF020202FF020202FF02020280000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000100101 + 01EF010101FF010101FF010101FF020202FF060606FF0E0E0EFF161616FF3860 + 83FF87C8FFFF87C9FFFF090D10FF010101FF010101FF010101FF010101FF0101 + 01FF010101FF010101FF010101EF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000100000 + 00BF010101FF010101FF010101FF010101FF010101FF010101FF040404FF274A + 6AFF85C6FFFF6CA1CFFF010101FF010101FF010101FF010101FF010101FF0101 + 01FF010101FF010101FF010101BFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00B0ADA16ABBB2A09CBAB19F9BBAB29E9BBAB2 + 9E9BB9B29E9BB9B09E9BB9B19D9BB9B19D9BB9AF9D9BB9AF9D9BB9AF9D9BB8B0 + 9C9BB8B09C9BB8B09C9BB8AF9B9BB8AF9B9BB8B09C9BB8B09C9BB8B09C9BB8B0 + 9C9BB9AF9D9BB9AF9D9BB9AF9D9BB9B19D9BB9B29E9BB9B29E9BBAB29E9BBAB2 + 9E9BBAB29E9BBBB39F9CB2B0A468C3BCABC2F1EAE0FFECE3D8FFEAE0D4FFE8DE + D0FFE5DCCDFFE5DBCAFFE1D7C8FFE0D6C5FFDFD3C2FFDDD1BEFFDBCFBCFFD9CD + BAFFD8CBB8FFD7CAB5FFD5C7B4FFD5C7B4FFD7CAB5FFD8CBB7FFD9CCB9FFDACE + BBFFDCD0BDFFDDD2C1FFDFD4C3FFE0D5C5FFEFEAE1FFE4DDCEFFEEE8DFFFE6DC + CFFFECE6DDFFE1D8C8FFCAC3B6BCC3BCABBDDEDAD4FFD3CDC4FFD2CCC3FFD2CB + C3FFD1CAC2FFD1CBC0FFD0CABFFFD0C9BFFFCFC8BDFFCFC7BDFFCEC7BCFFCDC5 + BBFFCDC5BAFFCDC6B9FFCCC4B9FFCCC4B9FFCDC5BAFFCDC5BAFFCDC5BBFFCEC7 + BCFFCFC7BCFFCFC8BDFFD0C8BFFFD0C9BFFFD2CCC4FFD2CCC3FFD2CDC5FFD2CC + C4FFD3CEC6FFDBD7D0FFCAC3B6B7C2BAAABDE4E4E4FFE0DFDFFFE1E0E0FFE2E1 + E1FFE2E1E1FFE2E2E2FFE3E3E3FFE3E3E3FFE4E4E4FFE5E5E4FFE5E5E5FFE6E6 + E6FFE6E6E6FFE7E7E7FFE8E8E8FFE8E8E8FFE8E8E8FFE9E9E9FFE9E9E9FFEAE9 + E9FFE9EAEAFFEAEBEBFFEBEBEBFFEBEBEBFFEBEBEAFFECEBEBFFECECECFFECEC + ECFFEEEEEDFFE9E9E9FFC9C3B6B7C1BAAABDF1F1F1FFF5F4F4FFF5F4F4FFF5F5 + F4FFF5F5F4FFF5F5F5FFF5F5F5FFF5F5F5FFF6F5F5FFF6F5F5FFF6F6F5FFF7F6 + F6FFF7F6F6FFF7F7F6FFF7F7F6FFF7F7F7FFF7F7F7FFF7F7F7FFF8F7F7FFF8F7 + F7FFF8F8F7FFF8F8F8FFF8F8F8FFF8F8F8FFF8F8F8FFF9F8F8FFF9F8F8FFF9F9 + F8FFFAF9F9FFF1F1F1FFC9C3B6B7C1B9A9BDF8F8F9FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF5F5F5FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF4F4F4FFCAC4B7B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF6F6F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF8F8F8FFCAC4B7B7C1B9A9BDF1F1F1FFF8F8F8FFF7F7F7FFF7F7 + F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF7F7F7FFF8F8F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF8F8 + F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF8F8F8FFF4F0F2FFCBC3B8B7C5BDAEC2F3F1EFFFEEECE8FFEDEBE5FFECE7 + E3FFEAE7E1FFE9E5DEFFE7E3DCFFE6E1D9FFE5E0D7FFE4DED5FFE3DCD4FFE2DC + D1FFE1DAD0FFE0D9CEFFDFD7CCFFDFD8CDFFE0D9CEFFE1DAD0FFE4DDD3FFE1DA + CFFFE2DCD1FFE1DBD2FFE3DCD4FFE7DFD8FFE8E1DAFFEDE4E0FFEAE7E1FFECE9 + E3FFECEAE6FFEEECEAFFCCC7BABDB0AFA361BEB6A68FBDB5A48FBDB4A48FBDB4 + A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBCB4A38FBCB4A38FBCB4 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBCB3 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBEB5A68FBDB4 + A48FBDB4A48FBDB5A58FB3B1A85FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00B0ADA16ABBB2A09CBAB19F9BBAB29E9BBAB2 + 9E9BB9B29E9BB9B09E9BB9B19D9BB9B19D9BB9AF9D9BB9AF9D9BB9AF9D9BB8B0 + 9C9BB8B09C9BB8B09C9BB8AF9B9BB8AF9B9BB8B09C9BB8B09C9BB8B09C9BB8B0 + 9C9BB9AF9D9BB9AF9D9BB9AF9D9BB9B19D9BB9B29E9BB9B29E9BBAB29E9BBAB2 + 9E9BBAB29E9BBBB39F9CB2B0A468C3BCABC2F1EAE0FFECE3D8FFEAE0D4FFE8DE + D0FFE5DCCDFFE5DBCAFFE1D7C8FFE0D6C5FFDFD3C2FFDDD1BEFFDBCFBCFFD9CD + BAFFD8CBB8FFD7CAB5FFD5C7B4FFD5C7B4FFD7CAB5FFD8CBB7FFD9CCB9FFDACE + BBFFDCD0BDFFDDD2C1FFDFD4C3FFE0D5C5FFEFEAE1FFE4DDCEFFEEE8DFFFE6DC + CFFFECE6DDFFE1D8C8FFCAC3B6BCC3BCABBDDEDAD4FFD3CDC4FFD2CCC3FFD2CB + C3FFD1CAC2FFD1CBC0FFD0CABFFFD0C9BFFFCFC8BDFFCFC7BDFFCEC7BCFFCDC5 + BBFFCDC5BAFFCDC6B9FFCCC4B9FFCCC4B9FFCDC5BAFFCDC5BAFFCDC5BBFFCEC7 + BCFFCFC7BCFFCFC8BDFFD0C8BFFFD0C9BFFFD2CCC4FFD2CCC3FFD2CDC5FFD2CC + C4FFD3CEC6FFDBD7D0FFCAC3B6B7C2BAAABDE4E4E4FFE0DFDFFFE1E0E0FFE2E1 + E1FFE2E1E1FFE2E2E2FFE3E3E3FFE3E3E3FFE4E4E4FFE5E5E4FFE5E5E5FFE6E6 + E6FFE6E6E6FFE7E7E7FFE8E8E8FFE8E8E8FFE8E8E8FFE9E9E9FFE9E9E9FFEAE9 + E9FFE9EAEAFFEAEBEBFFEBEBEBFFEBEBEBFFEBEBEAFFECEBEBFFECECECFFECEC + ECFFEEEEEDFFE9E9E9FFC9C3B6B7C1BAAABDF1F1F1FFF5F4F4FFF5F4F4FFF5F5 + F4FFF5F5F4FFF5F5F5FFF5F5F5FFF5F5F5FFF6F5F5FFF6F5F5FFF6F6F5FFF7F6 + F6FFF7F6F6FFF7F7F6FFF7F7F6FFF7F7F7FFF7F7F7FFF7F7F7FFF8F7F7FFF8F7 + F7FFF8F8F7FFF8F8F8FFF8F8F8FFF8F8F8FFF8F8F8FFF9F8F8FFF9F8F8FFF9F9 + F8FFFAF9F9FFF1F1F1FFC9C3B6B7C1B9A9BDF8F8F9FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF5F5F5FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF76DD + F6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DD + F6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DD + F6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF64D3 + FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3 + FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3 + FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF5BCC + F6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCC + F6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCC + F6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F7FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF4F4F4FFCAC4B7B7C1B9A9BDF7F7F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF6F6F7FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD6D4D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D4 + D4FFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4D4FFD6D4 + D4FFF9F9F8FFF8F8F8FFCAC4B7B7C1B9A9BDF1F1F1FFF8F8F8FFF7F7F7FFF7F7 + F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF7F7F7FFF8F8F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF8F8 + F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF8F8F8FFF4F0F2FFCBC3B8B7C5BDAEC2F3F1EFFFEEECE8FFEDEBE5FFECE7 + E3FFEAE7E1FFE9E5DEFFE7E3DCFFE6E1D9FFE5E0D7FFE4DED5FFE3DCD4FFE2DC + D1FFE1DAD0FFE0D9CEFFDFD7CCFFDFD8CDFFE0D9CEFFE1DAD0FFE4DDD3FFE1DA + CFFFE2DCD1FFE1DBD2FFE3DCD4FFE7DFD8FFE8E1DAFFEDE4E0FFEAE7E1FFECE9 + E3FFECEAE6FFEEECEAFFCCC7BABDB0AFA361BEB6A68FBDB5A48FBDB4A48FBDB4 + A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBCB4A38FBCB4A38FBCB4 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBCB3 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBEB5A68FBDB4 + A48FBDB4A48FBDB5A58FB3B1A85FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00B0ADA16ABBB2A09CBAB19F9BBAB29E9BBAB2 + 9E9BB9B29E9BB9B09E9BB9B19D9BB9B19D9BB9AF9D9BB9AF9D9BB9AF9D9BB8B0 + 9C9BB8B09C9BB8B09C9BB8AF9B9BB8AF9B9BB8B09C9BB8B09C9BB8B09C9BB8B0 + 9C9BB9AF9D9BB9AF9D9BB9AF9D9BB9B19D9BB9B29E9BB9B29E9BBAB29E9BBAB2 + 9E9BBAB29E9BBBB39F9CB2B0A468C3BCABC2F1EAE0FFECE3D8FFEAE0D4FFE8DE + D0FFE5DCCDFFE5DBCAFFE1D7C8FFE0D6C5FFDFD3C2FFDDD1BEFFDBCFBCFFD9CD + BAFFD8CBB8FFD7CAB5FFD5C7B4FFD5C7B4FFD7CAB5FFD8CBB7FFD9CCB9FFDACE + BBFFDCD0BDFFDDD2C1FFDFD4C3FFE0D5C5FFEFEAE1FFE4DDCEFFEEE8DFFFE6DC + CFFFECE6DDFFE1D8C8FFCAC3B6BCC3BCABBDDEDAD4FFD3CDC4FFD2CCC3FFD2CB + C3FFD1CAC2FFD1CBC0FFD0CABFFFD0C9BFFFCFC8BDFFCFC7BDFFCEC7BCFFCDC5 + BBFFCDC5BAFFCDC6B9FFCCC4B9FFCCC4B9FFCDC5BAFFCDC5BAFFCDC5BBFFCEC7 + BCFFCFC7BCFFCFC8BDFFD0C8BFFFD0C9BFFFD2CCC4FFD2CCC3FFD2CDC5FFD2CC + C4FFD3CEC6FFDBD7D0FFCAC3B6B7C2BAAABDE4E4E4FFE0DFDFFFE1E0E0FFE2E1 + E1FFE2E1E1FFE2E2E2FFE3E3E3FFE3E3E3FFE4E4E4FFE5E5E4FFE5E5E5FFE6E6 + E6FFE6E6E6FFE7E7E7FFE8E8E8FFE8E8E8FFE8E8E8FFE9E9E9FFE9E9E9FFEAE9 + E9FFE9EAEAFFEAEBEBFFEBEBEBFFEBEBEBFFEBEBEAFFECEBEBFFECECECFFECEC + ECFFEEEEEDFFE9E9E9FFC9C3B6B7C1BAAABDF1F1F1FFF5F4F4FFF5F4F4FFF5F5 + F4FFF5F5F4FFF5F5F5FFF5F5F5FFF5F5F5FFF6F5F5FFF6F5F5FFF6F6F5FFF7F6 + F6FFF7F6F6FFF7F7F6FFF7F7F6FFF7F7F7FFF7F7F7FFF7F7F7FFF8F7F7FFF8F7 + F7FFF8F8F7FFF8F8F8FFF8F8F8FFF8F8F8FFF8F8F8FFF9F8F8FFF9F8F8FFF9F9 + F8FFFAF9F9FFF1F1F1FFC9C3B6B7C1B9A9BDF8F8F9FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF5F5F5FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF76DD + F6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DD + F6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DD + F6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF64D3 + FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3 + FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3 + FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF5BCC + F6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCC + F6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCC + F6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF76DD + F6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DD + F6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DD + F6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF64D3 + FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3 + FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3 + FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F8FFF9F9F8FF5DAFFBFF5BCC + F6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCC + F6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCC + F6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF7F7F7FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF4F4F4FFCAC4B7B7C1B9A9BDF7F7F7FFF9F9F8FF5DAFFBFF76DD + F6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DD + F6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DD + F6FF76DDF6FF76DDF6FF5DAFFBFF76DDF6FF76DDF6FF76DDF6FF76DDF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF6F6F7FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FF5DAFFBFF68DF + FEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6 + FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6 + FCFF63D6FCFF63D6FCFF5DAFFBFF68DFFEFF63D6FCFF63D6FCFF63D6FCFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FF5DAFFBFF64D3 + FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3 + FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3 + FAFF64D3FAFF64D3FAFF5DAFFBFF64D3FAFF64D3FAFF64D3FAFF64D3FAFF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FF5DAFFBFF5BCC + F6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCC + F6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCC + F6FF5BCCF6FF5BCCF6FF5DAFFBFF5BCCF6FF5BCCF6FF5BCCF6FF5BCCF6FF5DAF + FBFFF9F9F8FFF4F4F4FFC9C1B6B7C1B9A9BDF5F5F6FFF9F9F8FF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAFFBFF5DAF + FBFFF9F9F8FFF8F8F8FFCAC4B7B7C1B9A9BDF1F1F1FFF8F8F8FFF7F7F7FFF7F7 + F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF7F7F7FFF8F8F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF8F8 + F8FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7F7FFF7F7 + F7FFF8F8F8FFF4F0F2FFCBC3B8B7C5BDAEC2F3F1EFFFEEECE8FFEDEBE5FFECE7 + E3FFEAE7E1FFE9E5DEFFE7E3DCFFE6E1D9FFE5E0D7FFE4DED5FFE3DCD4FFE2DC + D1FFE1DAD0FFE0D9CEFFDFD7CCFFDFD8CDFFE0D9CEFFE1DAD0FFE4DDD3FFE1DA + CFFFE2DCD1FFE1DBD2FFE3DCD4FFE7DFD8FFE8E1DAFFEDE4E0FFEAE7E1FFECE9 + E3FFECEAE6FFEEECEAFFCCC7BABDB0AFA361BEB6A68FBDB5A48FBDB4A48FBDB4 + A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBDB4A48FBCB4A38FBCB4A38FBCB4 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBCB3 + A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBCB3A38FBFB6A68FBEB5A68FBDB4 + A48FBDB4A48FBDB5A58FB3B1A85FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00 + } + end +end diff --git a/components/tvplanit/examples/demo/demomain.lrt b/components/tvplanit/examples/demo/demomain.lrt new file mode 100644 index 000000000..90318fb03 --- /dev/null +++ b/components/tvplanit/examples/demo/demomain.lrt @@ -0,0 +1,10 @@ +TMAINFORM.CAPTION=Turbo Power VisualPlanIt Demo +TMAINFORM.BTNNEWRES.CAPTION=New resource +TMAINFORM.BTNEDITRES.CAPTION=Edit resource +TMAINFORM.LABEL1.CAPTION=Language +TMAINFORM.TABEVENTS.CAPTION=Events +TMAINFORM.TABTASKS.CAPTION=Tasks +TMAINFORM.RBALLTASKS.CAPTION=All tasks +TMAINFORM.RBHIDECOMPLETEDTASKS.CAPTION=Hide completed tasks +TMAINFORM.TABCONTACTS.CAPTION=Contacts +TMAINFORM.TABINFO.CAPTION=Info diff --git a/components/tvplanit/examples/demo/demomain.pas b/components/tvplanit/examples/demo/demomain.pas new file mode 100644 index 000000000..a1513ba8b --- /dev/null +++ b/components/tvplanit/examples/demo/demomain.pas @@ -0,0 +1,445 @@ +unit demoMain; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, + StdCtrls, ComCtrls, LCLTranslator, + VpBaseDS, VpDayView, VpWeekView, VpTaskList, + VpContactGrid, VpMonthView, VpResEditDlg, VpContactButtons, VpBufDS, VpNavBar; + +type + + { TMainForm } + + TMainForm = class(TForm) + BtnNewRes: TButton; + BtnEditRes: TButton; + CbLanguages: TComboBox; + ImageList1: TImageList; + Label1: TLabel; + Memo1: TMemo; + PageControl1: TPageControl; + Panel1: TPanel; + Panel2: TPanel; + Panel3: TPanel; + RbAllTasks: TRadioButton; + RbHideCompletedTasks: TRadioButton; + Splitter2: TSplitter; + Splitter3: TSplitter; + TabEvents: TTabSheet; + TabContacts: TTabSheet; + TabInfo: TTabSheet; + TabTasks: TTabSheet; + VpBufDSDataStore1: TVpBufDSDataStore; + VpContactButtonBar1: TVpContactButtonBar; + VpContactGrid1: TVpContactGrid; + VpControlLink1: TVpControlLink; + VpDayView1: TVpDayView; + VpMonthView1: TVpMonthView; + VpNavBar1: TVpNavBar; + VpResourceCombo1: TVpResourceCombo; + VpResourceEditDialog1: TVpResourceEditDialog; + VpTaskList1: TVpTaskList; + VpWeekView1: TVpWeekView; + procedure BtnNewResClick(Sender: TObject); + procedure BtnEditResClick(Sender: TObject); + procedure CbLanguagesChange(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); + procedure FormCreate(Sender: TObject); + procedure RbAllTasksChange(Sender: TObject); + procedure RbHideCompletedTasksChange(Sender: TObject); + procedure VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; Index: Integer); + private + { private declarations } + FLang: String; + procedure PopulateLanguages; + procedure ReadIni; + procedure SetLanguage(ALang: String); overload; + procedure SetLanguage(AIndex: Integer); overload; + procedure WriteIni; + public + { public declarations } + end; + +var + MainForm: TMainForm; + +implementation + +{$R *.lfm} + +uses + {$IFDEF WINDOWS} + Windows, + {$ENDIF} + LResources, LazUTF8, LazFileUtils, StrUtils, Translations, IniFiles, + VpMisc, VpBase, VpData; + +const + LANGUAGE_DIR = '..\..\languages\'; + +{$IFDEF WINDOWS} +{ This function determines the LCID from the language code. + Works only for Windows. } +function LangToLCID(ALang: String): Integer; +begin + case lowercase(ALang) of + '' : Result := $0409; // Default = englisch + 'ar' : Result := $0401; // Arabic + 'bg' : Result := $0403; // Bulgarian + 'ca' : Result := $0403; // Catalan + 'cs' : Result := $0405; // Czech + 'de' : Result := $0407; // German + 'en' : Result := $0409; // English (US) + 'es' : Result := $040A; // Spanisch + 'fi' : Result := $040B; // Finnish + 'fr' : Result := $040C; // French + 'he' : Result := $040D; // Hebrew + 'hu' : Result := $040E; // Hungarian + 'it' : Result := $0410; // Italian + 'jp' : Result := $0411; // Japanese + 'pl' : Result := $0415; // Polish + 'pt' : Result := $0816; // Portuguese (Portugal) + 'ru' : Result := $0419; // Russian + 'tr' : Result := $041F; // Turkish + 'zh_cn', 'zh-cn': Result := $0804; // Chinese (China) + 'zh_tw', 'zh-tw': Result := $0404; // Chinese (Taiwan) + // please complete if necessary. Language code and LCIDs can be found at + // http://www.science.co.il/Language/Locale-codes.asp + else raise Exception.CreateFmt('Language "%s" not supported. Please add to GetLCIDFromLangCode.',[ALang]); + end; +end; +{$ENDIF} + +procedure UpdateFormatSettings(ALang: String); +{$IFDEF WINDOWS} +var + LCID: Integer; +{$ENDIF} +begin + {$IFDEF WINDOWS} + // Determine the LCID for the requested language + LCID := LangToLCID(ALang); + + // Now we update the format settings to the new language + GetLocaleFormatSettingsUTF8(LCID, DefaultFormatSettings); + {$ENDIF} +end; + +function GetFirstDayOfWeek(ALang: String): TVpDayType; +// Don't know how to determine this from the OS +begin + Result := dtSunday; +end; + +{ TMainForm } + +// Adds a new resource +procedure TMainForm.BtnNewResClick(Sender: TObject); +begin + VpResourceEditDialog1.AddNewResource; +end; + +procedure TMainForm.CbLanguagesChange(Sender: TObject); +begin + SetLanguage(CbLanguages.ItemIndex); +end; + +procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: boolean); +begin + if CanClose then + try + WriteIni; + except + end; +end; + +// Edits the currently selected resource +procedure TMainForm.BtnEditResClick(Sender: TObject); +begin + // Open the resource editor dialog, everything is done here. + VpResourceEditDialog1.Execute; +end; + +// Load the last resource. +procedure TMainForm.FormCreate(Sender: TObject); +var + lastRes: TVpResource; +begin + PopulateLanguages; + ReadIni; + + if VpBufDSDatastore1.Resources.Count > 0 then + begin + lastRes := VpBufDSDatastore1.Resources.Items[VpBufDSDatastore1.Resources.Count-1]; + VpBufDSDatastore1.ResourceID := lastRes.ResourceID; + end; +end; + +procedure TMainForm.PopulateLanguages; + + function ExtractLanguage(s: String): String; + var + p: Integer; + begin + s := ChangeFileExt(s, ''); + p := RPos('.', s); + if p > 0 then + Result := Copy(s, p+1, Length(s)) + else + Result := ''; + end; + +var + L: TStrings; + po: TStringList; + lang: String; + i: Integer; + langdir: String; +begin + L := TStringList.Create; + po := TStringList.Create; + try + langdir := ExpandFileName(AppendPathDelim(Application.Location) + LANGUAGE_DIR); + FindAllFiles(L, langdir, '*.po'); + po.Sorted := true; + po.Duplicates := dupIgnore; + for i := 0 to L.Count-1 do begin + lang := ExtractLanguage(L[i]); + case lang of + 'de': po.Add('de - Deutsch'); + '', + 'en': po.Add('en - English'); + 'es': po.Add('es - Español'); + 'fr': po.Add('fr - Français'); + 'he': po.Add('he - Hebrew'); + 'hu': po.Add('hu - magyar'); + 'it': po.Add('it - Italian'); + 'ru': po.Add('ru - русский'); + end; + end; + + CbLanguages.Items.Assign(po); + SetLanguage(GetDefaultLang); + + finally + po.Free; + L.Free; + end; +end; + +procedure TMainForm.RbAllTasksChange(Sender: TObject); +begin + VpTaskList1.DisplayOptions.ShowAll := RbAllTasks.Checked; +end; + +procedure TMainForm.RbHideCompletedTasksChange(Sender: TObject); +begin + VpTaskList1.DisplayOptions.ShowAll := not RbHideCompletedTasks.Checked; +end; + +procedure TMainForm.ReadIni; +var + ini: TCustomIniFile; + lang: String; +begin + ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); + try + lang := ini.ReadString('Settings', 'Language', GetDefaultLang); + SetLanguage(lang); + finally + ini.Free; + end; +end; + +procedure TMainForm.WriteIni; +var + ini: TCustomIniFile; +begin + ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')); + try + ini.WriteString('Settings', 'Language', FLang); + finally + ini.Free; + end; +end; + +procedure TMainForm.SetLanguage(AIndex: Integer); +var + p: Integer; + lang: String; +begin + p := pos(' - ', CbLanguages.Items[AIndex]); + if p > 0 then + lang := Copy(CbLanguages.Items[AIndex], 1, p-1) + else + raise Exception.Create('Incorrect structure of language combobox.'); + SetLanguage(lang); +end; + +procedure TMainForm.SetLanguage(ALang: String); + + function GetTimeFormat: TVpTimeFormat; + var + s: String; + begin + s := lowercase(FormatDateTime('hh:nn ampm', 0.25)); + if pos(lowercase(FormatSettings.TimeAMString), s) = Length(s) - Length(FormatSettings.TimeAMString) then + Result := tf12Hour else + Result := tf24Hour; + end; + +var + i: Integer; + langdir: String; + found: Boolean; + tfmt: TVpTimeFormat; + firstWeekDay: TVpDayType; + translator: TUpdateTranslator; +begin + langdir := ExpandFileName(AppendPathDelim(Application.Location) + LANGUAGE_DIR); + + // Select new language + if ALang = 'en' then + FLang := '' else + FLang := ALang; + + // Translate VisualPlanIt strings. + if FLang = '' then begin + TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.po'); + + { NOTE: Translation of app strings back to english not working } + + TranslateUnitResourceStrings('demoMain', langDir + 'demo.po'); + TranslateUnitResourceStrings('lclstrconsts', langDir + 'lclstrconsts.po'); + translator := TPOTranslator.Create(langdir + 'demo.po'); + if Assigned(LRSTranslator) then + LRSTranslator.Free; + LRSTranslator := translator; + for i := 0 to Screen.CustomFormCount-1 do + translator.UpdateTranslation(Screen.CustomForms[i]); + end else + begin + SetDefaultLang(FLang, langdir); + TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.' + FLang + '.po'); + end; + + // Select language in language combobox. + if ALang = '' then ALang := 'en'; + found := false; + for i:=0 to CbLanguages.Items.Count-1 do + if pos(ALang + ' ', CbLanguages.Items[i]) = 1 then begin + CbLanguages.ItemIndex := i; + found := true; + break; + end; + if not found then + CbLanguages.ItemIndex := 0; + + // Next settings work correctly only for Windows. + {$IFDEF WINDOWS} + UpdateFormatSettings(ALang); + VpDayView1.DateLabelFormat := FormatSettings.LongDateFormat; + VpWeekView1.DayHeadAttributes.DateFormat := FormatSettings.LongDateFormat; + VpWeekView1.DateLabelFormat := FormatSettings.LongDateFormat; + VpMonthView1.DateLabelFormat := 'mmmm yyyy'; + VpTaskList1.DisplayOptions.DueDateFormat := FormatSettings.ShortDateFormat; + tfmt := GetTimeFormat; + VpDayView1.TimeFormat := tfmt; + VpWeekView1.TimeFormat := tfmt; + VpMonthView1.TimeFormat := tfmt; + firstWeekDay := GetFirstDayofWeek(ALang); // not correct at the moment + VpMonthView1.WeekStartsOn := firstWeekDay; + VpWeekView1.WeekStartsOn := firstWeekDay; + {$ENDIF} + + Invalidate; +end; + +procedure TMainForm.VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; Index: Integer); + + procedure ShowAllEvents; + begin + PageControl1.ActivePage := TabEvents; + VpDayView1.Parent := Panel2; + VpMonthView1.Parent := Panel2; + VpMonthView1.Align := alBottom; + VpDayview1.Show; + VpMonthView1.Show; + Splitter2.Top := 0; + Panel2.Show; + Splitter3.Show; + Splitter3.Left := Width; + VpWeekView1.Show; + end; + + procedure ShowEventsPerMonth; + begin + PageControl1.ActivePage := TabEvents; + Panel2.Hide; + Splitter3.Hide; + VpWeekView1.Hide; + VpMonthView1.Parent := TabEvents; + VpMonthView1.Align := alClient; + VpMonthView1.Show; + end; + + procedure ShowEventsPerWeek; + begin + PageControl1.ActivePage := TabEvents; + Panel2.Hide; + Splitter3.Hide; + VpMonthView1.Hide; + VpDayView1.Hide; + VpWeekView1.Show; + end; + + procedure ShowEventsPerDay; + begin + PageControl1.ActivePage := TabEvents; + Panel2.Hide; + Splitter3.Hide; + VpWeekView1.Hide; + VpDayView1.Parent := TabEvents; + VpDayView1.Align := alClient; + VpDayView1.Show; + end; + + procedure ShowTasks; + begin + Pagecontrol1.ActivePage := TabTasks; + end; + + procedure ShowContacts; + begin + PageControl1.ActivePage := TabContacts; + end; + +begin + case VpNavBar1.ActiveFolder of + 0: case Index of // All planner items + 0: ShowAllEvents; // show all + 1: ShowEventsPerMonth; // Month view only + 2: ShowEventsPerWeek; // Week view only + 3: ShowEventsPerDay; // Day view only + 4: ShowTasks; // Tasks + 5: ShowContacts; // Contacts + end; + 1: case Index of // Events only + 0: ShowAllEvents; // show all + 1: ShowEventsPerMonth; // Month view only + 2: ShowEventsPerWeek; // Week view only + 3: ShowEventsPerDay; // Day view only + end; + 2: ShowTasks; + 3: ShowContacts; + end; +end; + +end. + diff --git a/components/tvplanit/examples/demo/readme.txt b/components/tvplanit/examples/demo/readme.txt new file mode 100644 index 000000000..9fbc5609b --- /dev/null +++ b/components/tvplanit/examples/demo/readme.txt @@ -0,0 +1,2 @@ +This demo shows many of the possibilities of the Turbo Power VisualPlanIt package. +It can also be used to test translations of strings.