You've already forked lazarus-ccr
added: richview 0.5.2.3 component
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@73 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
60
components/richview/demo/backstyl.lfm
Normal file
60
components/richview/demo/backstyl.lfm
Normal file
@ -0,0 +1,60 @@
|
||||
object frmBackStyle: TfrmBackStyle
|
||||
Left = 129
|
||||
Height = 147
|
||||
Top = 130
|
||||
Width = 350
|
||||
HorzScrollBar.Page = 349
|
||||
VertScrollBar.Page = 146
|
||||
BorderIcons = [biSystemMenu]
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Background Styles'
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
object RadioGroup1: TRadioGroup
|
||||
Left = 8
|
||||
Height = 106
|
||||
Top = 4
|
||||
Width = 335
|
||||
AutoFill = True
|
||||
Caption = 'Background Style'
|
||||
ChildSizing.LeftRightSpacing = 6
|
||||
ChildSizing.TopBottomSpacing = 6
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.EnlargeVertical = crsHomogenousChildResize
|
||||
ChildSizing.ShrinkHorizontal = crsScaleChilds
|
||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 1
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'No bitmap'
|
||||
'Stretched bitmap'
|
||||
'Tiled bitmap'
|
||||
'Scrolled and tiled bitmap'
|
||||
)
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnOk: TButton
|
||||
Left = 186
|
||||
Height = 25
|
||||
Top = 115
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Okay'
|
||||
Default = True
|
||||
ModalResult = 1
|
||||
OnClick = btnOkClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 266
|
||||
Height = 25
|
||||
Top = 115
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 2
|
||||
end
|
||||
end
|
23
components/richview/demo/backstyl.lrs
Normal file
23
components/richview/demo/backstyl.lrs
Normal file
@ -0,0 +1,23 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TfrmBackStyle','FORMDATA',[
|
||||
'TPF0'#13'TfrmBackStyle'#12'frmBackStyle'#4'Left'#3#129#0#6'Height'#3#147#0#3
|
||||
+'Top'#3#130#0#5'Width'#3'^'#1#18'HorzScrollBar.Page'#3']'#1#18'VertScrollBar'
|
||||
+'.Page'#3#146#0#11'BorderIcons'#11#12'biSystemMenu'#0#11'BorderStyle'#7#8'bs'
|
||||
+'Dialog'#7'Caption'#6#17'Background Styles'#11'Font.Height'#2#245#9'Font.Nam'
|
||||
+'e'#6#13'MS Sans Serif'#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#2#8#6'Heig'
|
||||
+'ht'#2'j'#3'Top'#2#4#5'Width'#3'O'#1#8'AutoFill'#9#7'Caption'#6#16'Backgroun'
|
||||
+'d Style'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpaci'
|
||||
+'ng'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27
|
||||
+'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.'
|
||||
+'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14
|
||||
+'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'
|
||||
+#27'ChildSizing.ControlsPerLine'#2#1#9'ItemIndex'#2#0#13'Items.Strings'#1#6#9
|
||||
+'No bitmap'#6#16'Stretched bitmap'#6#12'Tiled bitmap'#6#25'Scrolled and tile'
|
||||
+'d bitmap'#0#8'TabOrder'#2#0#0#0#7'TButton'#5'btnOk'#4'Left'#3#186#0#6'Heigh'
|
||||
+'t'#2#25#3'Top'#2's'#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#7'Capti'
|
||||
+'on'#6#4'Okay'#7'Default'#9#11'ModalResult'#2#1#7'OnClick'#7#10'btnOkClick'#8
|
||||
+'TabOrder'#2#1#0#0#7'TButton'#9'btnCancel'#4'Left'#3#10#1#6'Height'#2#25#3'T'
|
||||
+'op'#2's'#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Capt'
|
||||
+'ion'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#2#0#0#0
|
||||
]);
|
40
components/richview/demo/backstyl.pas
Normal file
40
components/richview/demo/backstyl.pas
Normal file
@ -0,0 +1,40 @@
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
unit backstyl;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
StdCtrls, ExtCtrls, Buttons, LResources;
|
||||
|
||||
type
|
||||
TfrmBackStyle = class(TForm)
|
||||
RadioGroup1: TRadioGroup;
|
||||
btnOk: TButton;
|
||||
btnCancel: TButton;
|
||||
procedure btnOkClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmBackStyle: TfrmBackStyle;
|
||||
|
||||
implementation
|
||||
|
||||
uses Unit1, RichView;
|
||||
|
||||
{.$R *.DFM}
|
||||
|
||||
procedure TfrmBackStyle.btnOkClick(Sender: TObject);
|
||||
begin
|
||||
Form1.RichView1.BackgroundStyle := TBackgroundStyle(RadioGroup1.ItemIndex);
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I BackStyl.lrs}
|
||||
|
||||
end.
|
74
components/richview/demo/printfrm.lfm
Normal file
74
components/richview/demo/printfrm.lfm
Normal file
@ -0,0 +1,74 @@
|
||||
object frmPrint: TfrmPrint
|
||||
Left = 7
|
||||
Height = 449
|
||||
Top = 9
|
||||
Width = 624
|
||||
HorzScrollBar.Page = 623
|
||||
VertScrollBar.Page = 448
|
||||
Caption = 'Preview of 1st Page'
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
object ScrollBox1: TScrollBox
|
||||
Height = 416
|
||||
Width = 624
|
||||
HorzScrollBar.Page = 619
|
||||
VertScrollBar.Page = 411
|
||||
Align = alClient
|
||||
Color = clWhite
|
||||
ParentColor = False
|
||||
TabOrder = 0
|
||||
object Image1: TImage
|
||||
Left = 1
|
||||
Height = 91
|
||||
Width = 111
|
||||
AutoSize = True
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Height = 33
|
||||
Top = 416
|
||||
Width = 624
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 1
|
||||
object Label1: TLabel
|
||||
Left = 3
|
||||
Height = 13
|
||||
Top = 6
|
||||
Width = 186
|
||||
Caption = 'You can provide code to stretch bitmap'
|
||||
Color = clNone
|
||||
ParentColor = False
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 439
|
||||
Height = 33
|
||||
Width = 185
|
||||
Align = alRight
|
||||
BevelOuter = bvNone
|
||||
TabOrder = 0
|
||||
object btnOk: TButton
|
||||
Left = 19
|
||||
Height = 25
|
||||
Top = 5
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Print'
|
||||
Default = True
|
||||
ModalResult = 1
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnCancel: TButton
|
||||
Left = 99
|
||||
Height = 25
|
||||
Top = 5
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
22
components/richview/demo/printfrm.lrs
Normal file
22
components/richview/demo/printfrm.lrs
Normal file
@ -0,0 +1,22 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TfrmPrint','FORMDATA',[
|
||||
'TPF0'#9'TfrmPrint'#8'frmPrint'#4'Left'#2#7#6'Height'#3#193#1#3'Top'#2#9#5'Wi'
|
||||
+'dth'#3'p'#2#18'HorzScrollBar.Page'#3'o'#2#18'VertScrollBar.Page'#3#192#1#7
|
||||
+'Caption'#6#19'Preview of 1st Page'#11'Font.Height'#2#245#9'Font.Name'#6#13
|
||||
+'MS Sans Serif'#0#10'TScrollBox'#10'ScrollBox1'#6'Height'#3#160#1#5'Width'#3
|
||||
+'p'#2#18'HorzScrollBar.Page'#3'k'#2#18'VertScrollBar.Page'#3#155#1#5'Align'#7
|
||||
+#8'alClient'#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'TabOrder'#2#0#0#6'TIm'
|
||||
+'age'#6'Image1'#4'Left'#2#1#6'Height'#2'['#5'Width'#2'o'#8'AutoSize'#9#0#0#0
|
||||
+#6'TPanel'#6'Panel1'#6'Height'#2'!'#3'Top'#3#160#1#5'Width'#3'p'#2#5'Align'#7
|
||||
+#8'alBottom'#10'BevelOuter'#7#6'bvNone'#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'
|
||||
+#4'Left'#2#3#6'Height'#2#13#3'Top'#2#6#5'Width'#3#186#0#7'Caption'#6'&You ca'
|
||||
+'n provide code to stretch bitmap'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0
|
||||
+#6'TPanel'#6'Panel2'#4'Left'#3#183#1#6'Height'#2'!'#5'Width'#3#185#0#5'Align'
|
||||
+#7#7'alRight'#10'BevelOuter'#7#6'bvNone'#8'TabOrder'#2#0#0#7'TButton'#5'btnO'
|
||||
+'k'#4'Left'#2#19#6'Height'#2#25#3'Top'#2#5#5'Width'#2'K'#25'BorderSpacing.In'
|
||||
+'nerBorder'#2#4#7'Caption'#6#5'Print'#7'Default'#9#11'ModalResult'#2#1#8'Tab'
|
||||
+'Order'#2#0#0#0#7'TButton'#9'btnCancel'#4'Left'#2'c'#6'Height'#2#25#3'Top'#2
|
||||
+#5#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'#6#6
|
||||
+'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#0#0#0
|
||||
]);
|
37
components/richview/demo/printfrm.pas
Normal file
37
components/richview/demo/printfrm.pas
Normal file
@ -0,0 +1,37 @@
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
unit printfrm;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
StdCtrls, ExtCtrls, Buttons, LResources;
|
||||
|
||||
type
|
||||
TfrmPrint = class(TForm)
|
||||
ScrollBox1: TScrollBox;
|
||||
Panel1: TPanel;
|
||||
Image1: TImage;
|
||||
Label1: TLabel;
|
||||
Panel2: TPanel;
|
||||
btnOk: TButton;
|
||||
btnCancel: TButton;
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
frmPrint: TfrmPrint;
|
||||
|
||||
implementation
|
||||
|
||||
{.$R *.DFM}
|
||||
|
||||
initialization
|
||||
|
||||
{$I PrintFrm.lrs}
|
||||
|
||||
end.
|
113
components/richview/demo/rvdemo.lpi
Normal file
113
components/richview/demo/rvdemo.lpi
Normal file
@ -0,0 +1,113 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="/"/>
|
||||
<Version Value="5"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<SaveClosedFiles Value="False"/>
|
||||
<SaveOnlyProjectUnits Value="True"/>
|
||||
</Flags>
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value="./"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<ActiveEditorIndexAtStart Value="2"/>
|
||||
</General>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="lazrichview"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="4">
|
||||
<Unit0>
|
||||
<Filename Value="rvdemo.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<CursorPos X="15" Y="5"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="24"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="unit1.pas"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="unit1.lrs"/>
|
||||
<UnitName Value="Unit1"/>
|
||||
<CursorPos X="46" Y="20"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="24"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="backstyl.pas"/>
|
||||
<ComponentName Value="frmBackStyle"/>
|
||||
<HasResources Value="True"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="backstyl.lrs"/>
|
||||
<UnitName Value="backstyl"/>
|
||||
<CursorPos X="39" Y="14"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="24"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="printfrm.pas"/>
|
||||
<ComponentName Value="frmPrint"/>
|
||||
<HasResources Value="True"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="printfrm.lrs"/>
|
||||
<UnitName Value="printfrm"/>
|
||||
<CursorPos X="5" Y="37"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="24"/>
|
||||
</Unit3>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<SearchPaths>
|
||||
<LCLWidgetType Value="gtk2"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Watches Count="5">
|
||||
<Item1>
|
||||
<Expression Value="FieldDef.FDataType"/>
|
||||
<Enabled Value="False"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Expression Value="FieldDef.FSize"/>
|
||||
<Enabled Value="False"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Expression Value="IsSeq"/>
|
||||
<Enabled Value="False"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Expression Value="TIBCURSOR(CURSOR).SQLDA^"/>
|
||||
<Enabled Value="False"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<Expression Value="x"/>
|
||||
</Item5>
|
||||
</Watches>
|
||||
</Debugging>
|
||||
</CONFIG>
|
18
components/richview/demo/rvdemo.lpr
Normal file
18
components/richview/demo/rvdemo.lpr
Normal file
@ -0,0 +1,18 @@
|
||||
program rvdemo;
|
||||
|
||||
uses
|
||||
Interfaces,
|
||||
Forms, OsPrinters,
|
||||
Unit1 in 'unit1.pas' {Form1},
|
||||
BackStyl in 'backstyl.pas' {frmBackStyle},
|
||||
PrintFrm in 'printfrm.pas' {frmPrint}, lazrichview;
|
||||
|
||||
{.$R *.RES}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.CreateForm(TfrmBackStyle, frmBackStyle);
|
||||
Application.CreateForm(TfrmPrint, frmPrint);
|
||||
Application.Run;
|
||||
end.
|
BIN
components/richview/demo/rvdemo.res
Normal file
BIN
components/richview/demo/rvdemo.res
Normal file
Binary file not shown.
1179
components/richview/demo/unit1.lfm
Normal file
1179
components/richview/demo/unit1.lfm
Normal file
File diff suppressed because it is too large
Load Diff
945
components/richview/demo/unit1.lrs
Normal file
945
components/richview/demo/unit1.lrs
Normal file
@ -0,0 +1,945 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#2'~'#6'Height'#3','#1#3'Top'#2'{'#5'Width'#3
|
||||
+#179#1#18'HorzScrollBar.Page'#3#178#1#23'VertScrollBar.Increment'#2#12#18'Ve'
|
||||
+'rtScrollBar.Page'#3'+'#1#13'ActiveControl'#7#9'RichView1'#7'Caption'#6' TRi'
|
||||
+'chView, TRVStyle and TRVPrint'#11'Font.Height'#2#245#9'Font.Name'#6#13'MS S'
|
||||
+'ans Serif'#8'OnCreate'#7#10'FormCreate'#0#6'TImage'#6'Image1'#4'Left'#3'D'#1
|
||||
+#6'Height'#2#24#4'Hint'#6#9'TRichView'#3'Top'#2#20#5'Width'#2#24#8'AutoSize'
|
||||
+#9#12'Picture.Data'#10#162#1#0#0#7'TBitmap'#150#1#0#0'BM'#150#1#0#0#0#0#0#0
|
||||
+'v'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0#0#0#0#0#0#0#0
|
||||
+#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128
|
||||
+#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255#0
|
||||
+#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwwwwwwwwww'#0#0'w'
|
||||
+'wwwwwwwwp'#187#187#7'ww'#0#0#0#0#0#0#11#187#187#0'ww'#15#255#255#255#255#240
|
||||
+#187#187#187#176'ww'#15#255#255#255#255#11#11#187#187#176'ww'#15#159#0#0#15
|
||||
+#11#11#187#187#176'ww'#15#255#255#255#255#11#11#187#187#176'ww'#15#159#0#0#15
|
||||
+#240#11#11#11#0'ww'#15#255#255#255#255#255#11#11#11#0'ww'#15#159#0#0#0#15#11
|
||||
+#0#0#7'ww'#15#255#255#255#255#255#11#15#240'www'#15#159#0#0#0#15#11#15#240'w'
|
||||
+'ww'#15#255#255#255#255#255#11#15#240'www'#15#15#240#240#0#0#0#0#240'www'#15
|
||||
+#15#240#240#187#187#187#176#240'www'#15#240#0#240#187#187#187#176#240'www'#15
|
||||
+#240#240#240#187#187#187#176#240'www'#15#255#0#240#187#187#187#176#240'www'
|
||||
+#15#255#0#240#0#0#0#0#240'www'#15#255#255#255#255#255#255#255#240'www'#0#0#0
|
||||
+#0#0#0#0#0#0'wwwwwwwwwwwwwwwwwwwwwwwwww'#0#0#6'TImage'#6'Image2'#4'Left'#3']'
|
||||
+#1#6'Height'#2#24#4'Hint'#6#8'TRVStyle'#3'Top'#2#19#5'Width'#2#24#8'AutoSize'
|
||||
+#9#12'Picture.Data'#10#162#1#0#0#7'TBitmap'#150#1#0#0'BM'#150#1#0#0#0#0#0#0
|
||||
+'v'#0#0#0'('#0#0#0#24#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0#0#0#0#0#0#0#0
|
||||
+#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128
|
||||
+#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255#0
|
||||
+#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwwwww'#247#255
|
||||
+#255#255#255'wwwwww'#15'p'#0#0#7#255'www'#0#0#15#0#0''#247#0#15'www'#7'w'
|
||||
+#0#7#247'p'#7#247'ww'#7'wpww'#240#0#247'ww'#7#151#0#240#240#0'p'#0#247'w'
|
||||
+'w'#7'ww'#255#247''#247#0#0#247'ww'#7#151#0#0#15#247#0#0#15#247'ww'#7'www'
|
||||
+#247#0#0#0#255'www'#7#151#0#15'p'#0#0#255#0'www'#7'ww'#0#0#255#247#255#247
|
||||
+'ww'#7#151#0#15#0#15#247'w'#240#247'ww'#7'ww'#0#15'wpww'#7#7'p'#0#15#240
|
||||
+#15#0#15'ww'#7#7'pp'#0''#247#0#15'ww'#7'p'#0'p'#255'p'#0#0''#15'ww'#7'ppp'
|
||||
+#187#255#255#255#240#255'ww'#7'w'#0'p'#187#187#187#176'pwww'#7'w'#0'p'#0#0#0
|
||||
+#0'pwww'#7'wwwwwwwpwww'#0#0#0#0#0#0#0#0#0'wwwwwwwwwwwwwwwwwwwwwwwwww'#0#0#6
|
||||
+'TImage'#6'Image3'#4'Left'#3'E'#1#6'Height'#2' '#3'Top'#2'0'#5'Width'#2' '#8
|
||||
+'AutoSize'#9#12'Picture.Data'#10#200#8#0#0#5'TIcon'#190#8#0#0#0#0#1#0#1#0' '
|
||||
+#0#0#0#0#0#0#168#8#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0#8#0#0#0#0#0#0
|
||||
+#4#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'@'#0#0#0#128#0#0#0#255#0#0#0#0
|
||||
+' '#0#0'@ '#0#0#128' '#0#0#255' '#0#0#0'@'#0#0'@@'#0#0#128'@'#0#0#255'@'#0#0
|
||||
+#0'`'#0#0'@`'#0#0#128'`'#0#0#255'`'#0#0#0#128#0#0'@'#128#0#0#128#128#0#0#255
|
||||
+#128#0#0#0#160#0#0'@'#160#0#0#128#160#0#0#255#160#0#0#0#192#0#0'@'#192#0#0
|
||||
+#128#192#0#0#255#192#0#0#0#255#0#0'@'#255#0#0#128#255#0#0#255#255#0#0#0#0' '
|
||||
+#0'@'#0' '#0#128#0' '#0#255#0' '#0#0' '#0'@ '#0#128' '#0#255' '#0#0'@ '#0
|
||||
+'@@ '#0#128'@ '#0#255'@ '#0#0'` '#0'@` '#0#128'` '#0#255'` '#0#0#128' '#0'@'
|
||||
+#128' '#0#128#128' '#0#255#128' '#0#0#160' '#0'@'#160' '#0#128#160' '#0#255
|
||||
+#160' '#0#0#192' '#0'@'#192' '#0#128#192' '#0#255#192' '#0#0#255' '#0'@'#255
|
||||
+' '#0#128#255' '#0#255#255' '#0#0#0'@'#0'@'#0'@'#0#128#0'@'#0#255#0'@'#0#0' '
|
||||
+'@'#0'@ @'#0#128' @'#0#255' @'#0#0'@@'#0'@@@'#0#128'@@'#0#255'@@'#0#0'`@'#0
|
||||
+'@`@'#0#128'`@'#0#255'`@'#0#0#128'@'#0'@'#128'@'#0#128#128'@'#0#255#128'@'#0
|
||||
+#0#160'@'#0'@'#160'@'#0#128#160'@'#0#255#160'@'#0#0#192'@'#0'@'#192'@'#0#128
|
||||
+#192'@'#0#255#192'@'#0#0#255'@'#0'@'#255'@'#0#128#255'@'#0#255#255'@'#0#0#0
|
||||
+'`'#0'@'#0'`'#0#128#0'`'#0#255#0'`'#0#0' `'#0'@ `'#0#128' `'#0#255' `'#0#0'@'
|
||||
+'`'#0'@@`'#0#128'@`'#0#255'@`'#0#0'``'#0'@``'#0#128'``'#0#255'``'#0#0#128'`'
|
||||
+#0'@'#128'`'#0#128#128'`'#0#255#128'`'#0#0#160'`'#0'@'#160'`'#0#128#160'`'#0
|
||||
+#255#160'`'#0#0#192'`'#0'@'#192'`'#0#128#192'`'#0#255#192'`'#0#0#255'`'#0'@'
|
||||
+#255'`'#0#128#255'`'#0#255#255'`'#0#0#0#128#0'@'#0#128#0#128#0#128#0#255#0
|
||||
+#128#0#0' '#128#0'@ '#128#0#128' '#128#0#255' '#128#0#0'@'#128#0'@@'#128#0
|
||||
+#128'@'#128#0#255'@'#128#0#0'`'#128#0'@`'#128#0#128'`'#128#0#255'`'#128#0#0
|
||||
+#128#128#0'@'#128#128#0#128#128#128#0#255#128#128#0#0#160#128#0'@'#160#128#0
|
||||
+#128#160#128#0#255#160#128#0#0#192#128#0'@'#192#128#0#128#192#128#0#255#192
|
||||
+#128#0#0#255#128#0'@'#255#128#0#128#255#128#0#255#255#128#0#0#0#160#0'@'#0
|
||||
+#160#0#128#0#160#0#255#0#160#0#0' '#160#0'@ '#160#0#128' '#160#0#255' '#160#0
|
||||
+#0'@'#160#0'@@'#160#0#128'@'#160#0#255'@'#160#0#0'`'#160#0'@`'#160#0#128'`'
|
||||
,#160#0#255'`'#160#0#0#128#160#0'@'#128#160#0#128#128#160#0#255#128#160#0#0
|
||||
+#160#160#0'@'#160#160#0#128#160#160#0#255#160#160#0#0#192#160#0'@'#192#160#0
|
||||
+#128#192#160#0#255#192#160#0#0#255#160#0'@'#255#160#0#128#255#160#0#255#255
|
||||
+#160#0#0#0#192#0'@'#0#192#0#128#0#192#0#255#0#192#0#0' '#192#0'@ '#192#0#128
|
||||
+' '#192#0#255' '#192#0#0'@'#192#0'@@'#192#0#128'@'#192#0#255'@'#192#0#0'`'
|
||||
+#192#0'@`'#192#0#128'`'#192#0#255'`'#192#0#0#128#192#0'@'#128#192#0#128#128
|
||||
+#192#0#255#128#192#0#0#160#192#0'@'#160#192#0#128#160#192#0#255#160#192#0#0
|
||||
+#192#192#0'@'#192#192#0#128#192#192#0#255#192#192#0#0#255#192#0'@'#255#192#0
|
||||
+#128#255#192#0#255#255#192#0#0#0#255#0'@'#0#255#0#128#0#255#0#255#0#255#0#0
|
||||
+' '#255#0'@ '#255#0#128' '#255#0#255' '#255#0#0'@'#255#0'@@'#255#0#128'@'#255
|
||||
+#0#255'@'#255#0#0'`'#255#0'@`'#255#0#128'`'#255#0#255'`'#255#0#0#128#255#0'@'
|
||||
+#128#255#0#128#128#255#0#255#128#255#0#0#160#255#0'@'#160#255#0#128#160#255#0
|
||||
+#255#160#255#0#0#192#255#0'@'#192#255#0#128#192#255#0#255#192#255#0#0#255#255
|
||||
+#0'@'#255#255#0#128#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0'$$$'#0#0'$$$$$$'#0#0#0'$$'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'$$'#0
|
||||
+'HihHHhiH'#0#0'$'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'$H'#0'$$H'#141#241#209#141
|
||||
+#141#209#241#141'H$$'#0'H$'#0#0#0#0#0#0#0#0#0#0#0' `i$H'#136#141#173#209#209
|
||||
+#209#209#209#209#173#141#136'H$i` '#0#0#0#0#0#0#0#0#0#0' `i'#141#136#241'h'
|
||||
+#136#209#241#246#246#241#209#136'h'#241#136'i'#141'` '#0#0#0#0#0#0#0#0#0#0' '
|
||||
+'$'#214#255#141#209'$'#0'H'#177#214#214#177'H'#0'$'#209#141#255#214'$ '#0#0#0
|
||||
+#0#0#0#0#0#0#0'$'#141#246#141'$i$'#0#136#241#250#250#241#136#0'$i$'#141#246
|
||||
+#141'$'#0#0#0#0#0#0#0#0#0#0'H'#141#136'i$H$Hh'#136#136#136#136'hH$H$i'#136
|
||||
+#141'H'#0'h'#0#0#0#0#0#0'h'#0'H$hiH'#136'HH'#141'iHHi'#141'HH'#136'Hih$H'#0
|
||||
+'$'#0#0#0#0#0#0'h'#0#0'$HhH'#209#136'hi$$$$ih'#136#209'HhH$'#0#0'h'#0#0#0#0#0
|
||||
+#0'h'#0#0'$$h'#136#246#177'h$H'#136#136'H$h'#177#246#136'h$$'#0#0#141#0#0#0#0
|
||||
+#0#0#141#0#0#0'H'#136#241#246#246#209#136#246#255#255#246#136#241#246#246#241
|
||||
+#136'H'#0#0#0#141#0#0#0#0#0#0#141#0#0#0'h'#209#246#209#173#173#173#209#255
|
||||
+#254#209#173#173#173#209#246#209'h'#0#0#0'h'#0#0#0#0#0#0#141#0#0#0'H'#173#136
|
||||
+'H$$Hh'#246#241'hH$$H'#136#173'H'#0#0#0'h'#0#0#0#0#0#0'h'#0'$'#0'$h$$'#0#0#0
|
||||
+'$HH$'#0#0#0'$$h$'#0'$'#0'h'#0#0#0#0#0#0'$'#0'$'#0#0#136'$'#0#0'$$h'#173#209
|
||||
+'h$$'#0#0'$'#136#0#0'$'#0#0#0#0#0#0#0#0#0#0'$'#0#0'$h$H'#209#250#255#250#250
|
||||
+#255#250#209'H$h$'#0#0'$'#0#0#0#0#0#0#0#0#0#0'$$'#0'$h'#173#209#241#241#209
|
||||
+#173#173#209#241#241#209#173'h$'#0'$$'#0#0#0#0#0#0#0#0#0#0#0'H'#0#0#0'$$$$'#0
|
||||
+#0#0#0'$$$$'#0#0#0'H'#0#0#0#0#0#0#0#0#0#0#0#0'$H'#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0'H$'#0#0#0#0#0#0#0#0#0#0#0#0#0'$HHi'#141#214#246#255#255#246#214#246#177
|
||||
+#141'iHH$'#0#0#0#0#0#0#0#0#0#0#0#0#0'$'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'$$'#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'$$%%iiii)HH%%'#5#0'$'#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'h'
|
||||
+'h$h'#141#141'h'#141'hhh$'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
|
||||
+#255#0#0#255#254#0#0''#248#0#0'?'#248#0#0#31#240#0#0#31#240#0#0#15#240#0#0
|
||||
+#15#240#0#0#7#224#0#0#7#224#0#0#7#224#0#0#7#224#0#0#7#224#0#0#7#224#0#0#7#224
|
||||
+#0#0#7#224#0#0#15#240#0#0#15#240#0#0#15#240#0#0#31#240#0#0#31#248#0#0#31#248
|
||||
+#0#0'?'#252#0#0'?'#254#0#0#255#255#192#3#255#255#255#255#255#255#255#255#255
|
||||
+#255#255#255#255#7'Visible'#8#0#0#6'TImage'#6'Image4'#4'Left'#3's'#1#6'Heigh'
|
||||
+'t'#2#24#4'Hint'#6#8'TRVPrint'#3'Top'#2#21#5'Width'#2#24#8'AutoSize'#9#12'Pi'
|
||||
+'cture.Data'#10#162#1#0#0#7'TBitmap'#150#1#0#0'BM'#150#1#0#0#0#0#0#0'v'#0#0#0
|
||||
+'('#0#0#0#24#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0#0#0#0#0#0#0#0#16#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128
|
||||
+#128#0#0#192#192#192#0#128#128#128#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0
|
||||
+#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwwwwwp'#0#0#0#0#0#0'wwwww'
|
||||
+#135#136#136#136#136#136#136#7'ww'#0#0#15'wwwwww'#128'ww'#15#255#15#153'wwww'
|
||||
+'w'#136#7'w'#15#255#143#255#255#255#255#255#255#136#7'w'#15#159#240'wwwwww'
|
||||
+#248#7'w'#15#255#240#7#128#0#0#0#8''#7'w'#15#159#255#240#0#255#255#255#0#0
|
||||
+'ww'#15#255#255#255#240#240#240#15#0'www'#15#159#0#0#255#15#240#176#240'www'
|
||||
+#15#255#255#255#255#15#15#0#240'www'#15#159#0#0#15#240#255#255#255#7'ww'#15
|
||||
+#255#255#255#255#240#0#0#0#7'ww'#15#15#240#240#0#0#0#0#240'www'#15#15#240#240
|
||||
+#187#187#187#176#240'www'#15#240#0#240#187#187#187#176#240'www'#15#240#240
|
||||
+#240#187#187#187#176#240'www'#15#255#0#240#187#187#187#176#240'www'#15#255#0
|
||||
,#240#0#0#0#0#240'www'#15#255#255#255#255#255#255#255#240'www'#0#0#0#0#0#0#0#0
|
||||
+#0'wwwwwwwwwwwwwwwwwwwwwwwwww'#0#0#10'TStatusBar'#10'StatusBar1'#6'Height'#2
|
||||
+#20#3'Top'#3#24#1#5'Width'#3#179#1#6'Panels'#14#0#11'SimplePanel'#8#0#0#9'TR'
|
||||
+'ichView'#9'RichView1'#6'Height'#3#24#1#5'Width'#3#179#1#7'TabStop'#9#8'TabO'
|
||||
+'rder'#2#0#5'Align'#7#8'alClient'#8'Tracking'#9#14'VScrollVisible'#9#6'OnJum'
|
||||
+'p'#7#13'RichView1Jump'#13'OnRVMouseMove'#7#20'RichView1RVMouseMove'#21'OnSa'
|
||||
+'veComponentToFile'#7#28'RichView1SaveComponentToFile'#11'OnURLNeeded'#7#18
|
||||
+'RichView1URLNeeded'#12'OnRVDblClick'#7#19'RichView1RVDblClick'#14'OnRVRight'
|
||||
+'Click'#7#21'RichView1RVRightClick'#5'Style'#7#8'RVStyle1'#12'MaxTextWidth'#3
|
||||
+'l'#2#10'LeftMargin'#2#10#11'RightMargin'#2#10#21'BackgroundBitmap.Data'#10
|
||||
+#162'h'#0#0#158'h'#0#0'BM'#158'h'#0#0#0#0#0#0'6'#4#0#0'('#0#0#0#250#0#0#0'f'
|
||||
+#0#0#0#1#0#8#0#0#0#0#0'hd'#0#0#18#11#0#0#18#11#0#0#0#1#0#0#0#0#0#0#254#254
|
||||
+#253#0#250#250#250#0#248#248#248#0#247#247#247#0#247#247#246#0#246#246#245#0
|
||||
+#244#244#244#0#243#243#242#0#243#243#243#0#242#242#242#0#241#241#241#0#240
|
||||
+#240#240#0#239#239#239#0#238#238#238#0#237#237#236#0#237#237#237#0#236#236
|
||||
+#236#0#234#234#234#0#235#235#235#0#234#234#233#0#233#233#233#0#233#233#232#0
|
||||
+#232#232#232#0#232#232#231#0#230#230#230#0#231#231#231#0#230#230#229#0#229
|
||||
+#229#229#0#229#229#228#0#228#228#227#0#226#226#226#0#227#227#226#0#226#226
|
||||
+#225#0#224#224#224#0#225#225#224#0#224#224#223#0#223#223#223#0#223#223#222#0
|
||||
+#222#222#221#0#220#220#220#0#221#221#220#0#220#220#219#0#219#219#218#0#219
|
||||
+#219#219#0#218#218#218#0#218#218#217#0#216#216#216#0#217#217#217#0#217#217
|
||||
+#216#0#216#216#215#0#214#214#214#0#215#215#214#0#214#214#213#0#213#213#213#0
|
||||
+#213#213#212#0#212#212#212#0#212#212#211#0#210#210#210#0#211#211#211#0#211
|
||||
+#211#210#0#210#210#209#0#208#208#208#0#209#209#208#0#208#208#207#0#206#206
|
||||
+#206#0#207#207#206#0#206#206#205#0#204#204#204#0#205#205#205#0#205#205#204#0
|
||||
+#204#204#203#0#202#202#202#0#203#203#202#0#202#202#201#0#201#201#201#0#201
|
||||
+#201#200#0#200#200#199#0#199#199#199#0#199#199#198#0#198#198#198#0#198#198
|
||||
+#197#0#197#197#197#0#197#197#196#0#196#196#195#0#195#195#195#0#195#195#194#0
|
||||
+#194#194#194#0#194#194#193#0#194#194#192#0#192#192#192#0#193#193#193#0#193
|
||||
+#193#192#0#193#193#191#0#192#192#191#0#192#192#190#0#190#190#190#0#191#191
|
||||
+#191#0#191#191#190#0#190#190#189#0#191#191#189#0#190#190#188#0#189#189#189#0
|
||||
+#189#189#188#0#188#188#188#0#189#189#187#0#188#188#187#0#188#188#186#0#187
|
||||
+#187#187#0#187#187#186#0#187#187#185#0#186#186#185#0#186#186#184#0#184#184
|
||||
+#184#0#185#185#185#0#185#185#184#0#184#184#182#0#185#185#183#0#184#184#183#0
|
||||
+#183#183#183#0#182#182#182#0#183#183#181#0#182#182#181#0#181#181#181#0#181
|
||||
+#181#180#0#180#180#180#0#181#181#179#0#180#180#179#0#179#179#179#0#179#179
|
||||
+#178#0#178#178#178#0#178#178#177#0#177#177#177#0#177#177#176#0#176#176#176#0
|
||||
+#176#176#175#0#174#174#173#0#174#174#174#0#175#175#175#0#173#173#173#0#173
|
||||
+#173#172#0#172#172#172#0#172#172#171#0#171#171#170#0#171#171#171#0#170#170
|
||||
+#170#0#170#170#169#0#169#169#169#0#169#169#168#0#168#168#168#0#168#168#166#0
|
||||
+#168#168#167#0#167#167#166#0#167#167#167#0#166#166#166#0#166#166#164#0#166
|
||||
+#166#165#0#165#165#165#0#165#165#164#0#164#164#164#0#164#164#163#0#163#163
|
||||
+#163#0#163#163#162#0#162#162#162#0#162#162#161#0#161#161#161#0#161#161#160#0
|
||||
+#160#160#160#0#160#160#158#0#160#160#159#0#159#159#158#0#159#159#159#0#158
|
||||
+#158#158#0#158#158#157#0#157#157#157#0#157#157#156#0#156#156#156#0#156#156
|
||||
+#155#0#154#154#153#0#155#155#155#0#155#155#154#0#154#154#154#0#153#153#152#0
|
||||
+#153#153#153#0#152#152#152#0#152#152#151#0#151#151#151#0#150#150#150#0#150
|
||||
+#150#149#0#149#149#149#0#149#149#148#0#148#148#148#0#148#148#147#0#146#146
|
||||
+#145#0#147#147#146#0#147#147#147#0#146#146#146#0#145#145#144#0#145#145#145#0
|
||||
+#144#144#144#0#144#144#143#0#142#142#141#0#143#143#143#0#142#142#142#0#141
|
||||
+#141#140#0#141#141#141#0#140#140#140#0#140#140#139#0#139#139#139#0#139#139
|
||||
+#138#0#138#138#138#0#138#138#137#0#137#137#137#0#137#137#136#0#136#136#136#0
|
||||
+#136#136#135#0#134#134#133#0#135#135#135#0#135#135#134#0#134#134#134#0#133
|
||||
+#133#132#0#133#133#133#0#132#132#132#0#132#132#131#0#130#130#129#0#131#131
|
||||
+#130#0#131#131#131#0#130#130#130#0#129#129#128#0#129#129#129#0#128#128#128#0
|
||||
+#128#128''#0'~~}'#0'~'#0'}}|'#0'}}}'#0'|||'#0'||{'#0'{{z'#0'{{{'#0'zzz'#0
|
||||
+'zzy'#0'xxx'#0'yyy'#0'xxw'#0'tts'#0'vvu'#0'vvv'#0'www'#0'ttt'#0'rrq'#0'sss'#0
|
||||
+'qqq'#0'nnm'#0'ooo'#0'lll'#0'jjj'#0#1#1#1#1#1#1#1#1#1#1#1#2#1#2#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2
|
||||
,#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2
|
||||
+#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1' '#31'"'#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1'('#31#25#21#23#29'&'#8#5#5#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#2#2#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2'#'#25#25#26#31
|
||||
+' #"'#31#8#4#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2','#31#28#27#27#31#31' " '#26#2#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#4#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#6'&%'#27#25#27#28#8'#'#30#22#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#2#2#2#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#2#4#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6'&'
|
||||
+'%'#29#25#22#19#6#3#2#1#1#1#1#1#1#1#1#1#1#5#9#9#5#2#2#1#2#1#1#1#1#1#1#1#1#2#4
|
||||
+#4#2#1#1#1#1#1#1#2#2#4#4#5#5#5#5#5#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1
|
||||
+#2#1#2#2#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#8'%"'#27#21#18#12#3#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#11#29'!'#17#10#10#9#6#2#1#1#1#1#1#1#2#4#5#5#5#2#1#1#1#1#1#2
|
||||
+#2#3#4#5#6#6#6#6#5#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#9' !'#29#26#16#5#1#1#1#1#1#1#1#1#1#1#1#1#1#9
|
||||
+#25'!! '#27#25#16#11#10#6#3#1#1#2#3#5#5#6#5#3#2#2#2#1#1#1#1#2#2#4#5#6#6#6#5#3
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#5#26' '#27#23#10#3#1#1#1#1#1#1#1#1#1#1#1#1#2#6#17'%( '#31' '#28
|
||||
+#20#12#9#7#5#5#3#5#5#5#3#3#5#3#2#1#1#1#1#1#2#4#5#5#4#4#3#2#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#2#3#4#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13'""'
|
||||
+#28#28#17#5#1#1#1#1#1#1#1#1#1#1#1#1#1#3#11#30'&$!%%!'#31#28#26#18#10#3#2#2#5
|
||||
+#5#4#5#5#3#2#1#1#1#1#1#2#3#4#4#3#3#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#4
|
||||
+#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#30'$ '#27#21#15#3#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#5#11#29'$&###'#29#25#18#12#5#2#1#2#5#5#5#4#4#2#1#1#1#1#1#1
|
||||
+#1#3#5#5#3#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#4#2#1#1#1#2#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#8#30'(&'#30#28#12#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#5
|
||||
+#16'"(#"'#29#20#9#5#4#2#1#1#2#3#3#2#2#2#5#6#9#5#3#1#1#1#2#5#5#5#3#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#5#4#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#5#28'&&$$'#28#8#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#5#12#29'&&!'#29#15#6#2#2#1#1#1
|
||||
+#1#1#2#2#2#6#13#24#24#20#12#9#5#3#2#3#5#5#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#4#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#14'#(#'#30#21#9#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#9#21'"%$'#29#18#5#1#1#1#1#1#1#1#2#3#4#12#24'%%#'
|
||||
+#31#25#18#12#9#6#5#3#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#3#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#29'&&"'#24#14#5#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#9#20' "#'#24#12#3#1#1#1#1#1#1#1#3#9#15#27'#((($'#30#24#25#22#16#10#6
|
||||
+#10#12#9#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#5#20#29'"'#31#25#10#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#18
|
||||
+#28'"!'#25#11#2#1#1#1#1#1#1#1#2#12#31')''(&%'#30#24#19#19#18#15#12#16#28#30
|
||||
+#25#15#8#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#2#10#21#29#29#25#11#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13#28'#'
|
||||
+'$'#31#13#5#1#1#1#1#1#1#1#3#12#29'''))&'#30#22#12#6#6#5#5#12#28'(# '#31#23#12
|
||||
+#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#5#11#25#29#29#25#18#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#19' && '#21#6#1#1
|
||||
+#1#1#1#1#1#5#16#31'&))&'#25#11#5#2#3#3#3#12#31'((((&'#24#10#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#2#3#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#9#21#29#27#26#20
|
||||
+#12#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#9#23'#('''#29#12#4#2#1#1#1#1#1#4#12#28
|
||||
+'$&)*%'#19#6#2#1#1#1#3#11#24'%(-1.&'#16#6#1#1#1#1#1#1#1#1#5#10#10#5#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#4#3#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#20#26#27#24#22#11#5#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#6#17#31'&('#31#13#5#2#2#2#1#1#1#8#17#30'#%(('#29#11#3#1#1
|
||||
+#1#1#3#10#21' &.1.('#30#12#1#1#1#1#1#1#5#9#16#25#25#15#10#6#5#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#3#2#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#12#26' '#29#24#20#7#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#5#12#25'"# '#17#6#3#3#3#3#3#5#13#26' "# '#28#15#5#2#1#1#1#1#5#12#23#30
|
||||
+'%)('#29#29' '#18#6#1#1#1#5#6#13#19#25#31#31#25#22#18#13#10#5#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#8#18'##'#31#24#19#8#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#5#12#22#28#31#25#15#5#3#3#5#5#6#15#26'#%$!'#28#16#9#5#3#2#1#1#1#5#15#22#31
|
||||
+'"!'#29#18#18#25#22#8#1#1#2#6#15#22#22#25#27#29#28#26#25#22#25#17#11#5#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#13'#)$'#31#23#13#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#5#12#22#26#24#17#10#3#3#3#5#10#18#28'#((&'#31#22#13#6#6#6#3#3#3#3#5#10
|
||||
+#19#31' '#31#25#13#12#13#10#5#1#6#11#16#17#21#23#24#27#29#31#31#27#26#31#31
|
||||
+#22#10#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#10#31'(&"'#28#12#5#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#5#12#20#26#24#17#10#5#1#1#5#15#31'(-*(!'#25#13#10#8#7#6#5#5
|
||||
+#5#5#5#10#19#31#30#31#25#13#9#5#3#3#1#10#22#28#25#23#25#27#31#31#29#25#22#24
|
||||
+#29#26#20#10#2#1#1#1#1#1#3#5#6#8#6#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#12#12#5#1#1#1#1#1#1#5#15' (#"'#22#10#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#5#13#23#28#29#25#13#5#1#1#5#16' .0*('#31#16#10#5#6#6#5
|
||||
+#5#5#5#5#5#10#20#29#29#31#25#15#5#3#1#1#5#11#21#31#27#27#27#26#24#22#13#10#12
|
||||
+#22#26#25#17#13#9#5#1#1#1#5#8#12#15#15#18#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0
|
||||
+#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#11' '#13#1#1#1#1#1#1#6#18'#''&&'#28#13
|
||||
+#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#10#20#31' '#31#20#12#6#5#10#20'&00)('#26#13
|
||||
+#5#3#3#3#3#3#4#3#3#5#11#22#29#27#29#22#11#5#1#1#1#6#15#25#29#29#31#31#22#13
|
||||
+#10#5#5#5#10#18#20#20#20#22#13#5#1#1#5#12#15#16#15#16#16#8#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#9#29'%'#19#8#1#1#1#1#1#6#25
|
||||
+'&))('#31#13#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#10#22'"%%!'#31#23#16#16#23'"''0'
|
||||
+')$'#31#18#8#3#1#3#3#3#1#3#3#3#5#10#22#31#31#31#24#13#5#1#1#1#10#20#31#29#31
|
||||
+#31#23#13#6#4#3#3#3#5#6#10#16#20#24#25#13#5#1#3#10#18#22#17#18#13#6#1#1#1#1#1
|
||||
+#1#1#5#11#11#5#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13'$"'#12#1#1#1
|
||||
+#1#1#5#15'#/+('#29#13#5#1#1#1#1#1#1#2#3#2#2#1#1#1#1#3#10#22'!(''('#31#25#22
|
||||
+#24' (-,)'#30#18#9#5#3#3#3#3#3#3#3#3#3#5#10#20#29'"# '#17#6#1#1#3#10#20#29#29
|
||||
+' '#26#15#6#3#1#1#1#1#1#3#6#10#18#25#25#20#9#1#3#10#18#25#25#20#15#6#1#1#1#1
|
||||
+#1#1#5#16#31#31#17#13#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#16'($'#13
|
||||
+#3#2#3#4#5#5#16'(13,'#30#16#3#1#1#1#1#1#2#3#3#3#3#2#1#1#1#5#10#25'&,,&'#29#18
|
||||
+#13#16#23#31'#((#'#17#10#6#3#3#3#5#5#3#3#3#3#5#10#18#31'%("'#25#8#1#1#3#10#20
|
||||
+#29#31'"'#26#13#6#1#1#1#1#1#1#1#3#6#12#16#18#13#5#3#3#8#15#20#22#20#15#6#1#1
|
||||
+#1#1#1#1#11#26'# '#31#26#18#9#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#5#5#1#1#1#1#1#1#1#1#1#1#2#2#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#25'($'
|
||||
+#13#3#2#1#4#5#10#25''':75('#17#6#1#1#1#1#1#1#2#2#2#2#2#1#1#1#5#11#24'&--&'#27
|
||||
+#13#8#8#11#16#25#31'!#'#31#18#10#6#3#3#3#3#3#3#2#3#5#11#24'%(&'#28#13#5#1#1#3
|
||||
+#10#19#26#29#31#25#12#5#1#1#1#1#1#1#1#1#3#6#11#11#6#3#1#3#5#13#17#20#18#12#6
|
||||
+#1#1#1#1#1#3#10#22#31#31#27#25#20#11#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#4#4#2#1#1#1#2#1#1#1#1#1#1#2#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#2
|
||||
+#13'"'''#17#10#1#1#1#3#10#24'(877('#25#10#1#1#1#2#1#1#1#1#1#1#1#1#1#1#5#10#22
|
||||
+'&01)'#29#13#6#5#5#8#11#17#27'!& '#22#12#5#1#1#2#3#2#1#1#5#12#28'((&'#29#13#5
|
||||
+#1#1#3#8#18#25#28#29#20#10#3#1#1#1#1#1#1#1#1#1#3#3#3#3#1#1#1#6#13#17#17#16#11
|
||||
+#5#1#1#1#1#1#1#6#16#26#27#25#20#19#16#13#6#5#1#1#1#1#1#1#1#1#5#8#8#5#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#12' (('#16#5#1#1#3#5#17'#.2.#'#17#8#5#3#2#2#1#1#5#6#6#5#1#1#2#3#5#9#17'!0'
|
||||
+'3-'#31#13#5#1#3#5#6#11#17#31'()#'#20#10#1#1#2#3#2#1#1#3#10#25'!(&'#31#18#6#1
|
||||
+#1#1#6#14#25#28#25#16#6#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#15#20#20#16#10#6
|
||||
+#1#1#1#1#1#1#10#18#25#25#20#17#16#18#17#16#9#1#1#1#1#1#1#1#2#10#17#17#13#6#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#15'".. '#15#3#1#1#5#16'",.*'#31#16#8#5#5#4#2#1#2#8#12#12#7#5#3#4#5#5#9
|
||||
+#17'!/3-'#31#13#5#1#1#3#5#6#11#25'&// '#16#6#1#3#4#3#1#1#5#10#22'#''('#31#16
|
||||
+#5#1#1#1#6#13#22#26#22#13#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#15#20#20#18
|
||||
+#13#6#3#1#1#1#1#1#8#15#22#20#17#16#13#15#18#16#9#1#1#1#1#1#1#1#8#18#29#31#21
|
||||
+#10#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#5#16'(:8+'#27#15#6#3#5#14' -1,'#30#16#8#5#5#5#3#1#5#10#18#16#11#5#4
|
||||
+#5#5#6#9#18#30'*1*'#31#13#5#1#1#1#3#5#9#18'"-0('#25#10#6#5#5#5#3#1#5#13#31'('
|
||||
+'+'' '#18#5#1#1#1#6#13#22#24#22#13#6#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#15
|
||||
+#20#20#17#18#12#6#1#1#1#1#1#5#12#16#18#16#16#13#13#15#12#8#2#1#1#1#1#1#2#13
|
||||
+#28'##'#29#13#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#3#3#1#1#2#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#2#3#5#6#17'(991('#31#17#12#10#19'"050"'#18#7#5#5#5#5#5#8#13#20
|
||||
+#20#11#5#3#5#5#5#8#15#31')0*'#30#16#6#2#1#1#2#3#5#12#27'(-)'#31#18#10#6#6#5#4
|
||||
+#1#5#10#25'(,,%'#22#10#1#1#1#6#16#22#25#22#16#8#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#6#13#20#20#17#20#15#8#1#1#1#1#1#5#11#16#16#16#16#13#10#11#9#5#1#1#1#1#1
|
||||
+#1#5#13#29'&&'#31#18#8#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#4#5#5#5#5#5#3#1
|
||||
+#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#5#5#6#13#31'&((& '#31#26#25#28'(351#'#19#10#6#6#6#6#8
|
||||
+#11#17#25#20#11#5#3#4#4#5#8#16' ,1*'#30#16#8#4#2#1#1#1#4#9#19'"))"'#21#10#6#5
|
||||
+#6#6#6#8#9#18'"))#'#22#7#1#1#1#3#10#16#22#23#18#10#5#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#6#12#18#20#17#18#15#6#1#1#1#1#1#8#12#18#18#18#15#11#8#5#5#3#1#1#1#1
|
||||
+#1#1#5#11#23' "'#31#22#11#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#3#5#5#5#5#3
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#3#5#6#6#10#13#16#17#17#22#22#24#31'"&/551%'#22#12#9#8
|
||||
+#8#8#10#15#23#26#19#11#5#3#3#3#5#9#19'#/1+'#31#13#8#4#2#1#1#1#2#6#13#29'()#'
|
||||
+#25#11#6#5#9#12#13#16#16#24'#)( '#18#6#1#1#1#3#6#13#23#26#23#13#6#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#6#11#16#17#17#18#15#10#5#1#1#1#1#5#12#16#18#18#13#10#6#3
|
||||
+#1#1#1#1#1#1#1#1#5#11#17#29#31#31#26#16#8#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#3#5#6#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#5#5#5#5#10#10#12#10#11#13#20#28#31
|
||||
+'&,0,%'#29#22#16#13#11#10#13#19#26#26#17#10#5#1#2#2#3#7#17'"-0&'#26#13#6#3#2
|
||||
+#1#1#1#3#8#16#29'&(%'#29#13#6#5#6#12#17#25#31'"&,) '#16#6#1#1#1#1#6#13#29'"'
|
||||
+#28#25#13#6#1#1#1#1#1#1#1#6#8#6#5#1#1#1#1#6#12#16#17#18#16#15#11#5#1#1#1#1#5
|
||||
+#10#15#18#18#15#11#6#2#1#1#1#1#1#1#1#1#5#12#22#29#27#29#29#23#12#5#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#5#5#5#5#6#6#5#3#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#3#5#5#5#5#5#6
|
||||
+#8#8#8#7#11#13#15#21#29#30#31#31#29#28#24#22#17#17#21#28#31#28#17#10#5#1#1#1
|
||||
+#2#6#16' *-%'#25#11#5#1#2#1#1#1#5#11#21' &&!'#26#14#6#3#5#8#12#18#22#31'#)-%'
|
||||
+#20#10#1#1#1#1#6#16#31'&#'#31#17#8#1#1#1#1#1#1#8#13#17#16#10#5#1#1#1#6#12#18
|
||||
+#17#18#16#13#10#5#1#1#1#1#5#10#15#16#16#15#12#6#2#1#1#1#1#1#1#1#1#5#12#20#26
|
||||
+#27#27#29#29#18#8#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#13#20#18#13#13#10#6#3#1#1
|
||||
+#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#3#5#5#5#5#5#6#6#5#5#6#8#10#11#13#16#16#18#19#19#20#20#23
|
||||
+#25#28#31' '#29#17#10#5#2#1#1#5#9#17'"**$'#25#11#5#1#1#1#1#1#5#13#27'%(%'#30
|
||||
+#23#12#5#1#3#5#6#8#10#18#29'%&#'#25#10#1#1#1#1#5#11#22'"%"'#20#10#5#1#1#1#1#6
|
||||
+#18#26#31#25#18#10#3#1#1#6#12#18#17#17#18#16#13#10#5#1#1#1#5#11#15#15#13#15
|
||||
+#11#6#2#1#1#1#1#1#1#1#1#5#11#20#24#27#27#31#29#21#10#2#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#6#13#26'!##"'#25#10#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#4#3#5#5#6#5#5#5#5#5#5#5#5
|
||||
+#6#8#10#10#10#11#11#11#12#13#15#16#19#25#28#24#16#9#5#5#5#6#10#16#26'%))#'#23
|
||||
+#11#5#1#1#1#1#2#5#15#29'()&'#31#20#11#5#1#1#1#3#5#6#10#16#20#23#22#15#6#3#1#1
|
||||
+#1#3#6#10#18#28#31#31#25#13#8#1#1#1#12#28'#"'#31#20#11#5#1#1#6#13#17#17#17#17
|
||||
+#17#18#15#6#1#1#1#3#8#12#13#13#13#11#8#2#1#1#1#1#1#1#1#1#8#16#22#24#27#31' '
|
||||
+#31#21#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#20'!*.31!'#14#6#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#5#5#4#3#5#5#5#5#4#3#3#5#5#5#5#6#6#8#8#8#8#8#8#8#9#9#10#12#15#15#11#6#5#5#9
|
||||
+#13#18#26'"(*)#'#25#11#5#1#1#1#2#3#8#16#31')-( '#20#10#5#1#1#1#1#1#3#5#8#8#10
|
||||
+#8#6#3#1#1#1#1#1#3#5#8#13#24'"%'#31#13#6#1#5#13#31'&&"'#22#10#3#1#1#8#16#22
|
||||
+#22#17#17#17#19#15#10#1#1#1#1#6#11#13#13#16#15#10#3#1#1#1#1#1#1#1#1#10#17#24
|
||||
+#26#27'"& '#23#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#18'#1587*'#22#9#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#5#5#3#3#3#3#3#3#3#1#3#5#5#5#5#6#6#6#6#6#5#5#5#5#5#5#5#6#6#6#5#5#3#5
|
||||
+#9#13#20#28'#(+)%'#27#15#8#5#1#3#5#9#13#19' (*('#31#18#9#3#1#1#1#1#1#1#1#3#5
|
||||
+#5#5#3#1#1#1#1#1#1#1#1#5#8#18#31'%"'#25#10#5#8#13#24'&(#'#25#10#3#1#1#9#18#25
|
||||
+#24#22#17#16#17#19#12#6#1#1#1#6#12#15#16#17#17#13#8#1#1#1#1#1#1#1#5#10#17#25
|
||||
+#27#27#30'!'#31#25#15#8#2#1#1#1#1#1#1#1#1#1#1#1#1#1#6#16'!389;3('#17#9#1#1#1
|
||||
+#1#1#1#6#10#11#13#11#10#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#3#5#5#3#1#1#1#3#3#4#5#5#6#8#8#6#8#6#6#6#5#5#3#3#3#3#2#3#3#3
|
||||
+#3#2#2#3#5#9#13#17#25#31'!&&"'#24#18#12#10#9#12#18#25#29'"&(#'#25#13#6#4#1#1
|
||||
+#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#5#10#17#31'"'#31#21#15#15#16#27'&)('
|
||||
+#24#11#3#1#1#6#18#24#31#27#19#17#19#20#16#10#1#1#1#7#15#18#18#18#18#15#8#1#1
|
||||
+#1#1#1#1#1#5#10#17#24#27#29#27#27#27#27#25#16#8#1#1#1#1#1#1#1#1#1#1#1#1#1#6
|
||||
+#19'(1896.*%'#18#6#1#1#1#1#6#13#25#31#31#28#20#13#10#5#5#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#4#6#6#5#5#3#5#5#5#5#5#6#8#9#9#8#8
|
||||
+#8#8#6#6#5#3#2#2#1#1#1#1#1#1#1#1#2#3#5#6#9#11#15#20#26#31' '#31#26#22#22#24
|
||||
+#29#31' "##'#28#16#10#6#5#4#3#2#1#1#1#5#10#11#8#5#1#1#1#1#1#1#1#1#1#1#3#6#10
|
||||
+#16#24#31#31#31#29#31'#(''%'#25#10#3#1#1#10#18#31' '#31#25#17#18#21#22#13#6#1
|
||||
+#1#10#16#17#18#16#13#10#5#1#1#1#1#1#1#1#8#16#25#27#29#29#29#24#24#29' '#26#13
|
||||
+#2#1#1#1#1#1#1#1#1#1#1#1#1#8#25'(1880''(%'#22#6#1#1#1#6#13#25'"##!'#31#25#20
|
||||
+#18#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#2#2#2#2#1#5#6#6#6
|
||||
+#6#6#5#5#5#5#6#8#9#10#10#9#9#9#8#6#6#5#5#3#2#1#1#1#1#1#1#1#1#1#2#2#3#5#5#8#10
|
||||
+#12#16#20#23#25#26#29' '#30#31#31#31#28#19#12#8#6#5#5#5#3#2#1#5#11#19#23#18
|
||||
+#10#2#1#1#1#1#1#1#1#1#1#1#3#5#8#13#20#22#22#24#31'"'#31#31#25#13#6#1#1#1#12
|
||||
+#24'%# '#25#16#18#21#24#20#11#6#6#10#17#20#18#16#15#10#6#1#1#1#1#1#1#2#8#19
|
||||
+#29#31#29#29#26#25#24' &'#31#16#6#1#1#1#1#1#1#1#1#1#1#1#1#6#18'#166-'#30#26
|
||||
+#22#12#5#1#5#10#18#28'"#%(("'#29#25#22#18#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#2#2#1#4#5#6#6#6#6#5#5#5#6#7#9#10#11#11#10#10#9#9#8#6#6
|
||||
+#5#5#3#2#1#1#1#1#1#1#2#2#2#1#1#2#2#5#5#6#7#10#11#11#15#17#23#25#22#20#19#18
|
||||
+#18#16#12#7#6#6#5#5#3#3#2#5#8#17#31#31#24#13#6#1#1#1#1#1#1#1#1#1#1#1#1#5#6#8
|
||||
,#10#10#13#20#20#13#11#10#6#3#1#1#3#10#25'!& '#21#13#12#20#25#25#18#10#10#13
|
||||
+#20#25#20#17#18#15#7#1#1#1#1#1#1#1#6#13#25#29#29#29#25#17#22#31'& '#17#8#2#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#6#18'#145)'#27#12#10#5#1#1#10#23'!&&$#!'#31#31#23#22#22
|
||||
+#22#18#12#6#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#2#1#1#1#3#5#6#8#8
|
||||
+#6#6#6#8#7#9#10#11#11#12#11#11#10#9#8#8#7#8#6#5#3#3#2#2#1#1#1#2#2#2#1#1#1#2#3
|
||||
+#5#6#6#6#6#8#7#10#11#12#11#10#9#9#9#9#6#5#5#5#5#3#2#1#1#5#10#19#31'"'#31#17#8
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#5#5#6#6#6#6#5#3#3#1#1#1#3#5#16#31'&"'#24#13#10
|
||||
+#10#16#20#20#18#13#18#23#25#22#20#18#12#6#1#1#1#1#1#1#1#6#13#22#28#31#30#27
|
||||
+#16#16#25' '#25#11#3#1#1#1#1#1#1#1#1#1#1#1#3#18'&486,'#27#12#6#3#1#1#11#26
|
||||
+'((($ '#29#20#13#13#15#18#22#22#21#15#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1
|
||||
+#1#1#1#1#2#3#3#1#3#5#8#9#8#8#8#8#9#9#10#10#11#11#12#12#12#11#9#9#10#11#11#9#8
|
||||
+#5#5#4#3#2#1#1#1#1#1#1#1#1#1#3#5#5#6#6#6#6#6#8#7#8#6#5#5#5#6#6#5#4#3#3#3#2#1
|
||||
+#1#1#3#8#18#28#28#21#15#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#3#3#3#1#1#1#1#1
|
||||
+#1#1#6#16#31'#"'#31#19#10#6#10#16#20#20#20#21#22#22#22#22#18#10#5#1#1#1#1#1#1
|
||||
+#2#10#16#24#28#30'"'#29#18#11#13#23#29#25#13#6#1#1#1#1#1#1#1#1#1#1#1#3#16'%4'
|
||||
+'990'#31#13#6#3#1#3#13#29'()(!'#27#18#10#6#5#5#10#16#20#22#20#13#6#1#1#1#1#1
|
||||
+#1#1#1#1#1#5#10#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#2#3#3#4#5#6#8#9#10#9#9#9#9#10#10#10#10
|
||||
+#11#12#13#13#12#10#10#12#13#13#12#10#8#6#5#5#2#1#1#1#1#1#1#1#1#1#2#3#5#5#6#6
|
||||
+#8#8#7#8#6#5#2#2#3#5#5#3#2#2#3#2#2#1#1#1#1#6#12#14#14#11#8#5#1#1#1#1#1#1#1#1
|
||||
+#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#17#31' '#29#18#10#6#6#11#15#18#21
|
||||
+#22#22#20#22#22#18#10#5#1#1#1#1#1#1#3#12#25#31#28' "'#25#13#8#10#16#25#25#16
|
||||
+#8#1#1#1#1#1#1#1#1#1#1#1#3#13'"18;.'#27#12#6#3#3#6#18'"'')%'#31#18#10#5#1#1#1
|
||||
+#5#8#15#20#26#20#10#1#1#1#1#1#1#1#1#1#5#13#25#17#10#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#2#4#5
|
||||
+#6#7#10#10#10#9#9#9#9#10#9#9#9#11#13#13#13#11#11#13#15#16#15#11#9#8#6#5#3#2#1
|
||||
+#1#1#1#1#1#1#1#1#2#2#3#5#5#6#8#8#8#6#5#2#2#2#2#2#2#1#1#2#2#2#2#2#1#1#3#5#6#6
|
||||
+#6#5#3#1#1#1#1#1#1#1#1#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13#25#30' '
|
||||
+#27#14#6#3#3#6#10#14#20#22#22#22#22#20#16#7#5#1#1#1#1#1#1#5#13#25#31#30'"'#31
|
||||
+#18#8#5#6#13#23#25#16#8#2#1#1#1#1#1#1#1#1#1#1#1#13#29'-6;.'#27#12#6#4#5#10#26
|
||||
+'(*) '#18#10#5#1#1#1#1#1#5#10#16#20#20#13#6#1#1#1#1#1#1#1#1#9#18#25#22#13#5#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#4#5#5#8#10#10#10#9#7#8#9#9#9#7#9#10#13#15#13#12#12#13#16
|
||||
+#18#16#12#10#8#6#5#4#2#2#1#1#1#1#1#1#1#1#1#1#2#2#3#5#5#6#8#6#5#4#3#2#2#2#2#1
|
||||
+#1#1#1#2#3#3#2#1#1#2#3#3#3#3#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#1#1#1
|
||||
+#1#2#1#1#1#3#13#27'#"'#31#17#10#1#1#3#5#12#18#20#20#20#20#16#12#6#3#1#1#1#1#1
|
||||
+#1#5#13#23#31#30'"'#31#15#6#2#5#10#18#22#17#11#6#2#1#1#1#1#1#1#1#1#1#1#11#29
|
||||
+'-6;3'#30#14#6#5#5#13#31'/3/'#31#13#6#1#1#1#1#1#1#3#6#12#17#22#15#6#1#1#1#1#1
|
||||
+#1#1#1#10#18#22#25#18#9#1#1#1#1#1#1#5#10#10#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#2#1#1#4#5#5#6#8#9#10#9#8#8#8#8#8#7#8#9
|
||||
+#11#13#15#13#12#12#13#16#18#18#13#10#8#5#5#3#2#2#3#2#2#1#1#1#1#1#1#1#1#1#2#2
|
||||
+#3#5#6#6#6#5#5#3#3#3#3#3#2#1#1#1#2#3#2#1#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#2#2#3#3#3#3#3#3#2#2#1#8#18'%)("'#20#10#1#1#1#3#6#12#15#15#15#11
|
||||
+#7#6#4#1#1#1#1#1#1#2#8#13#25#29#31#31#22#10#5#1#3#6#12#18#20#18#11#5#1#1#1#1
|
||||
+#1#1#1#1#1#2#11#28')46-'#31#13#6#5#5#12#31'-5."'#14#6#1#1#1#1#1#1#1#3#8#16#20
|
||||
+#16#8#1#1#1#1#1#1#1#5#11#18#19#21#17#10#1#1#1#1#1#1#10#25#31#18#9#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#2#3#4#4#5#5#6#6#6#8#9#9#9
|
||||
+#7#8#8#6#6#6#6#7#11#13#15#13#12#11#12#15#16#16#15#10#6#5#3#2#2#2#3#4#3#2#2#1
|
||||
+#1#1#1#1#1#1#1#1#2#3#5#8#8#8#6#5#4#3#4#5#4#2#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#3#3#4#4#4#3#2#1#3#12' *1) '#19#6#1#1#1#1#3#5
|
||||
+#6#6#6#5#5#3#1#1#1#1#1#1#1#1#9#18#25#27#28#23#13#8#4#1#1#5#8#15#17#20#14#8#1
|
||||
+#1#1#1#1#1#1#1#1#2#11#28'(01)'#27#10#5#5#5#13#27'065('#26#13#10#5#3#1#1#1#1#1
|
||||
+#5#9#12#12#6#1#1#1#1#1#1#1#7#15#20#17#20#16#10#3#1#1#1#1#2#13#26'&&'#17#9#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#4#5#5#5#5#6#6#6#6
|
||||
+#8#9#9#9#9#7#8#6#6#6#8#10#12#13#13#12#11#11#12#13#13#12#10#6#3#2#1#1#2#3#5#5
|
||||
+#4#2#1#1#1#1#1#1#1#1#1#1#3#5#8#9#10#9#6#5#4#4#5#5#4#3#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#3#3#3#3#3#2#1#1#3#11#28'''3-"'#18#9#1
|
||||
+#1#1#1#1#1#3#3#3#3#1#1#1#1#1#1#1#1#1#1#8#16#25#28#27#25#13#8#1#1#1#1#5#10#15
|
||||
+#18#15#8#1#1#1#1#1#1#1#1#1#2#13#31')03-'#31#16#6#5#5#14'!16:1('#29#22#15#6#1
|
||||
+#1#1#1#1#3#3#5#5#3#1#1#1#1#1#1#1#10#16#20#18#18#16#10#6#1#1#1#1#6#18#31'(*"'
|
||||
+#15#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#2#3#4#5#5#5#6
|
||||
+#6#6#5#6#8#9#9#9#9#8#8#6#6#6#9#10#12#12#11#10#10#10#11#11#11#9#6#3#1#1#1#2#3
|
||||
,#5#5#5#3#1#1#1#1#1#1#1#1#1#1#2#3#6#8#9#9#6#5#4#4#5#5#5#5#5#3#2#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#2#2#1#2#2#1#1#2#3#5#16'!.-('#24#11
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#13#26' '#30#29#17#9#1#1#1#1#3#6#12
|
||||
+#14#15#8#1#1#1#1#1#1#1#1#1#5#13#31'-353%'#17#6#5#5#13#31')5;.('#31#29#20#13
|
||||
+#10#6#4#1#1#1#1#2#1#1#1#1#1#1#1#1#5#10#18#20#18#16#16#12#6#1#1#1#1#12#28'%$('
|
||||
+'"'#16#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#3
|
||||
+#5#5#6#6#5#5#6#6#6#6#6#6#6#5#5#5#6#9#10#10#10#10#9#9#9#9#9#6#5#3#1#1#1#1#2#3
|
||||
+#3#3#2#1#1#1#1#1#1#1#1#1#1#1#2#4#5#6#6#5#4#3#3#5#5#5#5#5#5#3#2#2#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#10#25'-43,'#31#12
|
||||
+#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#18' &&'#31#17#8#1#1#1#1#1#5#10#15
|
||||
+#15#10#5#1#1#1#1#1#1#1#1#1#13#31',35."'#15#5#5#5#10#21'&57('#24#17#19#20#20
|
||||
+#20#16#10#5#1#1#1#1#1#1#1#1#1#1#1#1#6#15#22#19#16#15#16#15#8#3#1#1#3#12#26' '
|
||||
+'""'#31#18#9#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#2#5#5#6#5#5#5#6#6#5#5#5#5#3#3#5#6#8#9#10#10#10#9#8#6#6#5#5#4#2#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#2#2#2#2#2#3#5#5#5#5#3#2#2#4#5#5#6#5#5#4#3#3#2#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#8#13#25'*8;64&'#16#3
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#12#29'&,('#29#13#6#1#1#1#1#1#3#6#11#15
|
||||
+#11#5#1#1#1#1#1#1#1#1#1#12#31')12,'#24#11#5#5#5#10#18'#1."'#13#10#10#12#17#22
|
||||
+#20#16#7#5#1#1#1#1#1#1#1#1#1#1#1#11#25#31#26#21#19#17#15#10#3#1#1#5#10#20#27
|
||||
+#28'"#'#31#18#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#2#5#5#6#5#5#4#5#5#3#1#2#1#1#2#3#5#8#9#10#10#9#9#6#6#5#5#3#3#2#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#2#2#2#3#5#5#5#6#5#4#2#1#1#2#3#5#5#6#5#5#5#4#3#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#1#9#23'%*179<<('#16#3#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13#31'/1-'#31#13#5#1#1#1#1#1#1#5#10#15
|
||||
+#13#8#1#1#1#1#1#1#1#1#6#10#24'(14. '#15#4#1#3#5#15' 1.'#27#12#5#4#6#11#16#16
|
||||
+#15#11#8#5#3#1#1#1#1#1#1#1#1#5#12#25#31#31#29#29#24#17#10#5#1#1#5#12#17#25#27
|
||||
+'%-0'#31#13#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#5#5#5#5#2#1#2#4#3#1#1#1#1#1#3#5#6#7#9#9#8#8#6#6#5#5#5#4#3#3#2#2#2#2#1#1#2
|
||||
+#2#3#2#2#1#1#1#1#1#1#2#4#5#6#6#6#5#3#2#1#1#1#1#3#5#5#6#6#5#5#3#2#1#1#1#1#1#1
|
||||
+#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#17'")1.377('#16#3#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#15#30'/1/"'#13#5#1#1#1#1#1#1#3#10#18#20#13#8#1
|
||||
+#1#1#1#5#10#13#13#16#27'''6;1"'#13#1#1#1#4#11#29',1!'#13#5#1#1#5#10#12#12#10
|
||||
+#11#9#6#1#1#1#1#1#1#1#1#6#13#25#31#31' '#31#31#21#16#10#5#2#10#17#22#25#27'&'
|
||||
+'15('#18#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#2#1#1#4
|
||||
+#5#5#5#5#3#2#4#5#5#4#2#1#1#3#5#5#6#8#8#6#6#6#6#6#6#6#5#5#5#5#5#5#5#4#3#3#3#5
|
||||
+#5#5#3#2#1#1#1#1#1#2#5#6#6#6#6#5#3#2#1#1#1#1#1#2#3#5#5#5#5#3#1#1#1#1#1#2#3#3
|
||||
+#3#2#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#5#12#29'$%$(( '#16#5#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#18'",.)'#31#11#5#1#1#1#1#1#1#3#10#20#28#25#13
|
||||
+#6#1#1#1#10#19' '#31#27'"0783'#31#9#2#2#4#5#8#19'(1('#17#9#1#1#1#5#9#10#10#10
|
||||
+#9#5#1#1#1#1#1#1#1#5#10#19#25#27#28#31#31#25#17#22#15#8#5#10#22#28#24#28'"*.'
|
||||
+','#24#9#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#2#3#5#5#5
|
||||
+#5#5#5#3#4#5#6#6#6#5#5#3#4#5#6#6#6#6#5#5#5#5#6#8#8#6#6#8#8#6#5#5#5#5#5#5#5#6
|
||||
+#6#5#3#2#1#1#1#1#2#5#6#6#6#6#6#5#2#1#1#1#1#1#1#1#3#5#3#3#2#1#1#1#1#2#3#4#4#3
|
||||
+#3#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#5#10#17#21#25#29' '#28#15#5
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#10#25'#*/&'#20#7#4#1#1#1#1#1#1#3#6#19#31
|
||||
+#31#20#7#1#1#1#7#17#28' (0892'#24#10#5#5#5#5#5#16'(4-"'#18#6#1#1#1#8#12#13
|
||||
+#10#6#5#1#1#1#1#1#1#1#6#15#20#25#28#29#31#26#18#18#25#19#10#5#12#23#31#28#28
|
||||
+#28#27' ("'#13#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#4
|
||||
+#5#5#5#5#5#3#1#3#5#6#6#6#6#5#5#5#5#6#6#6#5#4#2#2#5#6#6#8#8#9#9#9#8#6#6#6#6#6
|
||||
+#6#6#8#6#6#5#2#1#1#1#1#1#3#5#6#6#6#6#5#3#1#1#1#1#2#4#4#4#3#3#1#1#1#1#1#1#1#2
|
||||
+#3#4#4#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#3#5#6#9#14#20#15#8#3
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#13#24'#(''"'#18#8#1#1#1#1#1#1#1#1#6#15
|
||||
+#31'%'#26#10#1#1#1#3#6#10#13#21#31'&.;9('#13#3#5#5#5#6#12'#+.)'#31#13#5#1#1#9
|
||||
+#18#18#12#10#8#5#1#1#1#1#1#1#6#15#20#25#29#31#28#16#12#19#25#22#12#11#18#31
|
||||
+#31#29#25#20#13#16#31#31#13#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1
|
||||
+#1#1#1#1#1#2#3#3#3#3#4#3#1#1#3#5#5#6#5#5#4#5#5#5#5#6#5#4#2#2#2#3#5#6#8#9#10#9
|
||||
+#8#6#6#5#5#5#5#6#6#6#5#5#2#2#1#1#1#1#2#3#5#6#6#6#5#3#2#1#1#1#4#5#5#4#3#2#1#1
|
||||
+#1#1#1#1#1#1#2#4#5#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#3
|
||||
+#5#5#5#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#4#5#5#6#10#18' $$(!'#20#8#1#1#1#1#1#1#1
|
||||
+#1#5#13#31'&'#31#13#3#1#1#1#3#5#5#9#12#21' (8)'#16#5#1#5#5#5#5#12#31'(-('#20
|
||||
+#10#1#1#6#16#17#15#11#10#8#3#1#1#1#1#1#6#13#19#23#25#26#21#11#8#12#19#22#13
|
||||
+#18#29'" '#29#19#12#8#13#23#25#12#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#3#2#1#1#1#1#5#5#4#2#1#2#3#3#4#5#5#5#4#2#1#1#2#5#8
|
||||
+#9#9#8#6#5#5#3#3#3#4#5#5#5#5#3#2#2#2#2#2#1#1#3#5#5#6#6#5#4#1#1#1#1#2#3#3#3#2
|
||||
,#1#1#1#1#1#1#1#1#1#2#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#8#12#13#16#22'!()+)#'#22#10#1#1#1
|
||||
+#1#1#1#1#1#3#10#25' '#31#14#5#1#1#1#1#1#1#3#5#9#12#23#28#31#13#3#1#2#5#5#5#5
|
||||
+#12#29'(.$'#15#3#1#3#10#18#18#13#12#9#5#1#1#1#1#5#10#13#17#20#19#15#10#5#5#9
|
||||
+#14#22#20#17#24#31'" '#25#13#6#13#25#29#15#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#3#3#2#2#1#1#1#1#2#4#5#5#5#3
|
||||
+#2#1#2#5#6#8#8#6#5#3#3#2#2#2#3#4#3#3#3#3#2#2#2#2#1#1#1#3#5#5#6#6#6#5#4#2#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#16#22#31'!()--0('#24
|
||||
+#10#1#1#1#1#1#1#1#1#1#5#13#26' '#25#13#5#1#1#1#1#1#1#1#3#5#6#9#8#8#5#1#3#4#3
|
||||
+#3#5#8#14'(.('#28#15#10#5#10#18#21#18#16#11#5#1#1#1#1#6#12#18#17#17#15#10#5#3
|
||||
+#3#5#13#22#20#18#20#29'"&'#31#13#5#10#22' '#28#12#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#3#3#3#2#1#1#1#1#2#4#5#5
|
||||
+#5#5#3#2#2#3#5#6#6#5#3#2#3#3#2#2#3#4#3#3#2#2#1#1#1#1#1#1#1#2#3#5#6#6#6#5#5#2
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#9#16#22#24#31'%(,'
|
||||
+'..('#18#8#2#1#1#1#1#1#1#1#1#11#25'"'#31#19#10#1#2#1#1#1#1#1#3#3#3#3#5#4#1#1
|
||||
+#1#2#1#1#3#5#10#22'%(-('#27#18#20#25#24#20#17#15#8#1#1#1#1#6#15#19#20#20#13#6
|
||||
+#3#1#1#5#13#22#22#17#23#27#31#31#26#11#5#5#15#31'%'#16#6#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#1#1#1#1#2#2#3#2#1#1#1#1#2
|
||||
+#4#5#5#5#6#5#4#2#2#3#5#5#5#3#2#3#3#3#3#3#3#3#2#1#1#1#1#1#1#1#1#1#1#2#3#4#5#5
|
||||
+#5#5#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#6#6#11#16
|
||||
+#22#24'"''30&'#25#12#5#1#1#1#1#1#1#2#11#28'%$'#31#13#5#3#2#2#1#1#1#3#4#4#3#1
|
||||
+#1#2#1#1#1#1#1#1#1#2#5#12#29'(*)($ '#29#27#22#22#11#5#1#1#2#6#13#18#21#22#15
|
||||
+#8#1#1#1#1#10#17#25#25#25#24#27#22#12#5#1#1#12'"('#30#11#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#1#1#1#1#2#2
|
||||
+#3#2#3#4#5#5#3#2#2#2#2#3#3#2#2#2#2#2#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2
|
||||
+#2#3#2#2#1#2#3#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#5#5#9
|
||||
+#10#16#31'##%#'#28#11#1#1#1#1#1#1#8#18'!()'''#31#11#1#1#1#1#5#11#16#19#16#12
|
||||
+#5#3#5#3#3#1#1#1#1#1#3#1#5#11#22#28#30'"&%%'#30#20#16#20#13#10#10#10#12#13#16
|
||||
+#21#19#15#6#1#1#1#1#6#16#22#25#23#25#24#20#10#1#1#1#10#26'"'#29#11#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#2#2#1#1#2#2#2#2#2#1#1#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#2#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#3#4#5#5#5#6#11#13#13#16#26#22#8#1#1#1#1#1#5#15' ()0.('#16#8#1#1#1#10#29'*'
|
||||
+';8'#27#13#5#5#5#5#4#2#1#1#3#4#1#3#3#5#9#12#20#25#25#28#22#12#10#16#17#18#18
|
||||
+#16#15#13#16#18#15#10#3#1#1#1#1#5#13#22#25#21#24#28#22#10#1#1#1#5#18#24#28#13
|
||||
+#5#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#3#3#3#3#3#5#5#5#5#6#5#3#1#1#1#1#3#10#25' %()))%'#16#5#1#1#11
|
||||
+#31'39>-'#17#6#5#5#4#3#1#2#3#4#1#3#1#1#1#3#3#5#6#7#8#6#5#3#8#12#16#15#15#13
|
||||
+#13#13#12#11#5#3#1#1#1#1#5#16#25#29#24#27#25#20#8#1#1#1#3#10#21' '#29#10#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#3#9#18#22#28#31'#((( '#15#5#1#9#31
|
||||
+',76&'#16#6#4#4#3#1#1#2#1#2#2#3#2#1#1#1#1#1#1#1#1#1#1#1#3#5#5#6#11#13#13#11#9
|
||||
+#5#3#1#1#1#1#1#5#12#25#31#29#29#22#12#3#1#1#1#1#9#20#30#28#10#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#3#5#5#10#18#25#28'"$&'#26#9#1#5#20'''''('#24#9
|
||||
+#4#1#1#1#1#1#1#1#1#1#2#2#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#6#9#9#9#6#3#1#1#1#1#1
|
||||
+#1#1#10#19#26#27#29#22#10#1#1#1#1#1#10#26'" '#10#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#5#5#6#9#12#26#29#20#6#1#1#1#10#31#12#3#1#1#2#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#3#3#1#1#1#1#1#1#1#1#1#6#15#25
|
||||
+#27#29#22#10#1#1#1#1#3#12#30'& '#10#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#3#6#5#3#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#17#26#29#28#22#8#1#1#1#3
|
||||
+#10#24#30'% '#12#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#3#10#29'%'#30#13#3#1#1#5#12#31' $& '#8#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#5#13#31#28#10#1#1#1#5#25'"%(&'#13#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0
|
||||
+#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#5#6#6#3#1#1#1
|
||||
+#1#12'#)(&'#9#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#6#25'# '#11#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#6#6#6#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1
|
||||
,#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#0#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
|
||||
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#0#0#10'Delimiters'#6#10' .;,:(){}"'#14'Al'
|
||||
+'lowSelection'#9#0#0#8'TRVStyle'#8'RVStyle1'#10'TextStyles'#14#1#7'CharSet'#7
|
||||
+#15'DEFAULT_CHARSET'#8'FontName'#6#13'MS Sans Serif'#4'Size'#2#10#5'Color'#7
|
||||
+#12'clWindowText'#0#1#7'CharSet'#7#15'DEFAULT_CHARSET'#8'FontName'#6#5'Arial'
|
||||
+#4'Size'#2#16#5'Color'#7#5'clRed'#5'Style'#11#6'fsBold'#8'fsItalic'#0#0#1#7
|
||||
,'CharSet'#7#15'DEFAULT_CHARSET'#8'FontName'#6#5'Arial'#4'Size'#2#12#5'Color'
|
||||
+#7#6'clBlue'#5'Style'#11#6'fsBold'#8'fsItalic'#0#0#1#7'CharSet'#7#15'DEFAULT'
|
||||
+'_CHARSET'#8'FontName'#6#15'Times New Roman'#4'Size'#2#12#5'Color'#7#8'clMar'
|
||||
+'oon'#5'Style'#11#8'fsItalic'#0#0#1#7'CharSet'#7#15'DEFAULT_CHARSET'#8'FontN'
|
||||
+'ame'#6#15'Times New Roman'#4'Size'#2#12#5'Color'#7#7'clGreen'#5'Style'#11#8
|
||||
+'fsItalic'#11'fsUnderline'#0#0#1#7'CharSet'#7#15'DEFAULT_CHARSET'#8'FontName'
|
||||
+#6#15'Times New Roman'#4'Size'#2#12#5'Color'#7#6'clBlue'#5'Style'#11#8'fsIta'
|
||||
+'lic'#11'fsUnderline'#0#0#1#7'CharSet'#7#15'DEFAULT_CHARSET'#8'FontName'#6#11
|
||||
+'Courier New'#4'Size'#2#10#5'Color'#7#6'clNavy'#5'Style'#11#6'fsBold'#0#0#1#7
|
||||
+'CharSet'#7#15'DEFAULT_CHARSET'#8'FontName'#6#13'MS Sans Serif'#4'Size'#2#10
|
||||
+#5'Color'#7#12'clWindowText'#5'Style'#11#8'fsItalic'#0#0#0#10'JumpCursor'#2
|
||||
+'e'#5'Color'#7#7'clWhite'#10'HoverColor'#7#6'clNone'#8'SelColor'#7#11'clHigh'
|
||||
+'light'#12'SelTextColor'#7#15'clHighlightText'#4'left'#3#17#1#3'top'#3#194#0
|
||||
+#0#0#10'TImageList'#10'ImageList1'#6'Height'#2#15#4'left'#3#17#1#3'top'#3#165
|
||||
+#0#6'Bitmap'#10#148#4#0#0'li'#3#0#0#0#16#0#0#0#15#0#0#0'y'#1#0#0'/* XPM */'
|
||||
+#10'static char *graphic[] = {'#10'"16 15 2 1",'#10'". c None",'#10'", c #FF'
|
||||
+'6794",'#10'"................",'#10'".......,,.......",'#10'".......,.,.....'
|
||||
+'.",'#10'".,,,,,,,..,.....",'#10'".,.........,....",'#10'".,..........,...",'
|
||||
+#10'".,...........,..",'#10'".,............,.",'#10'".,............,.",'#10
|
||||
+'".,...........,..",'#10'".,..........,...",'#10'".,.........,....",'#10'".,'
|
||||
+',,,,,,..,.....",'#10'".......,.,......",'#10'".......,,......."}'#10'y'#1#0
|
||||
+#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 15 2 1",'#10'". c None",'
|
||||
+#10'", c #FF0000",'#10'".......,........",'#10'"......,,,.......",'#10'"....'
|
||||
+'.,,,,,......",'#10'"....,,,,,,,.....",'#10'"...,,,,,,,,,....",'#10'"..,,,,,'
|
||||
+',,,,,,...",'#10'".,,,,,,,,,,,,,..",'#10'".,,,,,,,,,,,,,..",'#10'"...,,,,,,,'
|
||||
+',,....",'#10'"...,,,,,,,,,....",'#10'"...,,,,,,,,,....",'#10'"...,,,,,,,,,.'
|
||||
+'...",'#10'"...,,,,,,,,,....",'#10'"...,,,,,,,,,....",'#10'"................'
|
||||
+'"}'#10#136#1#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 15 3 1",'
|
||||
+#10'". c None",'#10'", c #FF0000",'#10'"- c #7B0000",'#10'"................"'
|
||||
+','#10'".,,,,,,,,,,,,,,.",'#10'"................",'#10'".--------------.",'
|
||||
+#10'"................",'#10'".--.-.---.-...-.",'#10'".--.-.-...-...-.",'#10
|
||||
+'".--.-.---.-.-.-.",'#10'".-.--.-...-.-.-.",'#10'".-.--.-...--.--.",'#10'".-'
|
||||
+'.--.---.--.--.",'#10'"................",'#10'".--------------.",'#10'".....'
|
||||
+'...........",'#10'".,,,,,,,,,,,,,,."}'#10#0#0#8'TRVPrint'#8'RVPrint1'#12'Le'
|
||||
+'ftMarginMM'#2#20#13'RightMarginMM'#2#20#11'TopMarginMM'#2#20#14'BottomMargi'
|
||||
+'nMM'#2#20#12'OnFormatting'#7#18'RVPrint1Formatting'#18'OnSendingToPrinter'#7
|
||||
+#24'RVPrint1SendingToPrinter'#4'left'#3#17#1#3'top'#3#225#0#0#0#11'TSaveDial'
|
||||
+'og'#11'SaveDialog1'#5'Title'#6#12'Save file as'#11'FilterIndex'#2#0#7'Optio'
|
||||
+'ns'#11#17'ofOverwritePrompt'#14'ofHideReadOnly'#15'ofPathMustExist'#18'ofNo'
|
||||
+'ReadOnlyReturn'#0#4'left'#3#14#1#3'top'#3#4#1#0#0#10'TPopupMenu'#10'PopupMe'
|
||||
+'nu1'#4'left'#2'0'#3'top'#3#179#0#0#9'TMenuItem'#11'ClickedWord'#7'Caption'#6
|
||||
+#11'ClickedWord'#0#0#9'TMenuItem'#2'N1'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#7
|
||||
+'mitCopy'#7'Caption'#6#5'&Copy'#7'OnClick'#7#12'mitCopyClick'#0#0#9'TMenuIte'
|
||||
+'m'#12'mitSelectAll'#7'Caption'#6#11'&Select All'#7'OnClick'#7#17'mitSelectA'
|
||||
+'llClick'#0#0#0#0
|
||||
]);
|
1032
components/richview/demo/unit1.pas
Normal file
1032
components/richview/demo/unit1.pas
Normal file
File diff suppressed because it is too large
Load Diff
72
components/richview/lazrichview.lpk
Normal file
72
components/richview/lazrichview.lpk
Normal file
@ -0,0 +1,72 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<Package Version="2">
|
||||
<Name Value="lazrichview"/>
|
||||
<AutoUpdate Value="OnRebuildingAll"/>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(LazarusDir)/lcl/include/"/>
|
||||
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Version Minor="5" Release="2" Build="3"/>
|
||||
<Files Count="7">
|
||||
<Item1>
|
||||
<Filename Value="rvfreereg.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="RVFreeReg"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Filename Value="rvlazintf.pas"/>
|
||||
<UnitName Value="RVLazIntf"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Filename Value="ptblrv.pas"/>
|
||||
<UnitName Value="PtblRV"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<Filename Value="richview.lrs"/>
|
||||
<Type Value="LRS"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<Filename Value="richview.pas"/>
|
||||
<UnitName Value="RichView"/>
|
||||
</Item5>
|
||||
<Item6>
|
||||
<Filename Value="rvscroll.pas"/>
|
||||
<UnitName Value="RVScroll"/>
|
||||
</Item6>
|
||||
<Item7>
|
||||
<Filename Value="rvstyle.pas"/>
|
||||
<UnitName Value="RVStyle"/>
|
||||
</Item7>
|
||||
</Files>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<RequiredPkgs Count="3">
|
||||
<Item1>
|
||||
<PackageName Value="printer4lazarus"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="FCL"/>
|
||||
<MinVersion Major="1" Valid="True"/>
|
||||
</Item3>
|
||||
</RequiredPkgs>
|
||||
<UsageOptions>
|
||||
<UnitPath Value="$(PkgOutDir)/"/>
|
||||
</UsageOptions>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
</PublishOptions>
|
||||
</Package>
|
||||
</CONFIG>
|
22
components/richview/lazrichview.pas
Normal file
22
components/richview/lazrichview.pas
Normal file
@ -0,0 +1,22 @@
|
||||
{ This file was automatically created by Lazarus. Do not edit!
|
||||
This source is only used to compile and install the package.
|
||||
}
|
||||
|
||||
unit lazrichview;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
RVFreeReg, RVLazIntf, PtblRV, RichView, RVScroll, RVStyle,
|
||||
LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterUnit('RVFreeReg', @RVFreeReg.Register);
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterPackage('lazrichview', @Register);
|
||||
end.
|
80
components/richview/originalreadme.txt
Normal file
80
components/richview/originalreadme.txt
Normal file
@ -0,0 +1,80 @@
|
||||
TRichView, TRVStyle and TRVPrint Components
|
||||
(for Delphi 2-6 and C++ Builder 1,3-5)
|
||||
ver 0.5.2 FREEWARE
|
||||
(c) 1997-2001 Sergey Tkachenko
|
||||
http://www.trichview.com
|
||||
http://www.richedit.com
|
||||
svt@trichview.com
|
||||
---------------------------------------
|
||||
THIS IS AN UPDATE OF VERSION RELEASED IN 1998 WHICH IS
|
||||
MADE FOR DELPHI 5,6 AND C++BUILDER 5 COMPATIBILITY.
|
||||
There are no new features since 1998.
|
||||
You can find much more faster, powerful and convenient shareware
|
||||
version of component at http://www.trichview.com, including editor,
|
||||
tables, data-aware versions, Unicode support, RTF support,
|
||||
higher quality print preview and much, much more.
|
||||
Shareware version is constantly improved.
|
||||
---------------------------------------
|
||||
Full source code and demos are included.
|
||||
There are two demos:
|
||||
- hypertext help program (help on this components),
|
||||
- program illustarating how to make a credits box
|
||||
(some text scrolled on timer event over stationary background bitmap).
|
||||
---------------------------------------
|
||||
TRichView component can contain:
|
||||
- background bitmap,
|
||||
- text with various fonts and colors,
|
||||
- hypertext,
|
||||
- pictures,
|
||||
- pictures from Image Lists,
|
||||
- any Delphi controls.
|
||||
It can be printed and saved as plain text or html file.
|
||||
------------------------------------------
|
||||
Installation:
|
||||
Please delete all other versions of RichView installed in your system
|
||||
(or remove them from Delphi/C++Builder library paths).
|
||||
The source code is located in Source subdirectory.
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For Delphi2
|
||||
Click menu "Component|Install", button "Add" and
|
||||
select RVFreeReg.pas.
|
||||
Demo projects: Demo\RVDemo.dpr and Demo2\Credits.dpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For Delphi3:
|
||||
Install RVFree_D3.dpk (menu "File|Open", "Install").
|
||||
Demo projects: Demo\RVDemo.dpr and Demo2\Credits.dpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For Delphi4:
|
||||
Install RVFree_D4.dpk (menu "File|Open", "Install").
|
||||
Demo projects: Demo\RVDemo.dpr and Demo2\Credits.dpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For Delphi5:
|
||||
Install RVFree_D5.dpk (menu "File|Open", "Install").
|
||||
Demo projects: Demo\RVDemo.dpr and Demo2\Credits.dpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For Delphi5:
|
||||
Install RVFree_D6.dpk (menu "File|Open", "Install").
|
||||
Demo projects: Demo\RVDemo.dpr and Demo2\Credits.dpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For C++Builder1
|
||||
Click menu "Component|Install", button "Add" and
|
||||
select RVFreeReg.pas.
|
||||
Demo projects: Demo\RVDemo.mak and Demo2\Credits.mak
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For C++Builder3
|
||||
Install RVFree_CB3.dpk (menu "File|Open", "Project|Build", then
|
||||
"Components|Install Packages", "Add" button).
|
||||
Demo projects: Demo\RVDemo_CB3.bpr and Demo2\Credits_CB3.bpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For C++Builder4
|
||||
Install RVFree_CB4.dpk (menu "File|Open", "Install")
|
||||
Demo projects: Demo\RVDemo_CB4.bpr and Demo2\Credits_CB4.bpr
|
||||
- - - - - - - - - - - - - - - - - - - - - -
|
||||
For C++Builder5
|
||||
Install RVFree_CB5.dpk (menu "File|Open", "Install")
|
||||
Demo projects: Demo\RVDemo_CB5.bpr and Demo2\Credits_CB5.bpr
|
||||
|
||||
Sergey Tkachenko
|
||||
www.trichview.com or www.richedit.com
|
||||
svt@trichview.com
|
||||
Jun 29 2001
|
582
components/richview/ptblrv.pas
Normal file
582
components/richview/ptblrv.pas
Normal file
@ -0,0 +1,582 @@
|
||||
unit PtblRV;
|
||||
|
||||
{$mode Delphi}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF FPC}
|
||||
LCLType,LclIntf,OsPrinters,
|
||||
{$ELSE}
|
||||
Windows, Messages,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
RVScroll, RichView, Printers{, CommDlg};
|
||||
|
||||
{$I RV_Defs.inc}
|
||||
|
||||
type
|
||||
{------------------------------------------------------------}
|
||||
TRVPrintingStep = (rvpsStarting, rvpsProceeding, rvpsFinished);
|
||||
TRVPrintingEvent = procedure (Sender: TRichView; PageCompleted: Integer; Step:TRVPrintingStep) of object;
|
||||
{------------------------------------------------------------}
|
||||
TRVPageInfo = class (TCollectionItem)
|
||||
public
|
||||
StartY, StartLineNo : Integer;
|
||||
procedure Assign(Source: TPersistent); override;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
EInvalidPageNo = class(Exception);
|
||||
EStyleNotAssigned = class(Exception);
|
||||
{------------------------------------------------------------}
|
||||
TPrintableRV = class(TRichView)
|
||||
private
|
||||
{ Private declarations }
|
||||
FOnFormatting, FOnPrinting: TRVPrintingEvent;
|
||||
pagescoll: TCollection;
|
||||
FLeftMarginMM, FRightMarginMM, FTopMarginMM, FBottomMarginMM: Integer;
|
||||
TmpLM, TmpTM, TmpRM, TmpBM: Integer;
|
||||
PrinterSad: TScreenAndDevice;
|
||||
protected
|
||||
{ Protected declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
function FormatPages: Integer;
|
||||
procedure DrawPage(pgNo: Integer; Canvas: TCanvas);
|
||||
procedure PrintPages(firstPgNo, lastPgNo: Integer; Title: String;
|
||||
Copies: Integer; Collate: Boolean);
|
||||
procedure Print(Title: String;
|
||||
Copies: Integer; Collate: Boolean);
|
||||
published
|
||||
{ Published declarations }
|
||||
property OnFormatting: TRVPrintingEvent read FOnFormatting write FOnFormatting;
|
||||
property OnSendingToPrinter: TRVPrintingEvent read FOnPrinting write FOnPrinting;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
TRVPrint = class(TComponent)
|
||||
private
|
||||
{ Private declarations }
|
||||
FOnFormatting, FOnPrinting: TRVPrintingEvent;
|
||||
function GetLM: Integer;
|
||||
function GetRM: Integer;
|
||||
function GetTM: Integer;
|
||||
function GetBM: Integer;
|
||||
procedure SetLM(mm: Integer);
|
||||
procedure SetRM(mm: Integer);
|
||||
procedure SetTM(mm: Integer);
|
||||
procedure SetBM(mm: Integer);
|
||||
function GetPagesCount: Integer;
|
||||
protected
|
||||
{ Protected declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
rv: TPrintableRV;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
procedure AssignSource(PrintMe: TRichView);
|
||||
procedure Clear;
|
||||
function FormatPages(PrintOptions:TRVDisplayOptions): Integer;
|
||||
procedure PrintPages(firstPgNo, lastPgNo: Integer; Title: String;
|
||||
Copies: Integer; Collate: Boolean);
|
||||
procedure Print(Title: String; Copies: Integer; Collate: Boolean);
|
||||
procedure MakePreview(pgNo: Integer; bmp: TBitmap);
|
||||
|
||||
published
|
||||
{ Published declarations }
|
||||
property PagesCount: Integer read GetPagesCount;
|
||||
property LeftMarginMM: Integer read GetLM write SetLM;
|
||||
property RightMarginMM: Integer read GetRM write SetRM;
|
||||
property TopMarginMM: Integer read GetTM write SetTM;
|
||||
property BottomMarginMM:Integer read GetBM write SetBM;
|
||||
property OnFormatting: TRVPrintingEvent read FOnFormatting write FOnFormatting;
|
||||
property OnSendingToPrinter: TRVPrintingEvent read FOnPrinting write FOnPrinting;
|
||||
end;
|
||||
function GetPrinterDC: HDC;
|
||||
implementation
|
||||
{==================================================================}
|
||||
procedure TRVPageInfo.Assign(Source: TPersistent);
|
||||
begin
|
||||
if Source is TRVPageInfo then begin
|
||||
StartY := TRVPageInfo(Source).StartY;
|
||||
StartLineNo := TRVPageInfo(Source).StartLineNo;
|
||||
end
|
||||
else
|
||||
inherited Assign(Source);
|
||||
end;
|
||||
{==================================================================}
|
||||
type
|
||||
TPrinterDevice = class
|
||||
Driver, Device, Port: String;
|
||||
end;
|
||||
{$IFDEF FPC}
|
||||
function GetPrinterDC: HDC;
|
||||
begin
|
||||
result := 0; // not used in lazarus
|
||||
end;
|
||||
{$ELSE}
|
||||
function GetPrinterDC: HDC;
|
||||
var ADevice, ADriver, APort: array[0..79] of Char;
|
||||
ADeviceMode: THandle;
|
||||
DevMode: PDeviceMode;
|
||||
begin
|
||||
//Printer.GetPrinter(ADevice,ADriver,APort,ADeviceMode);
|
||||
if ADeviceMode<>0 then
|
||||
DevMode := PDeviceMode(GlobalLock(ADeviceMode))
|
||||
else
|
||||
DevMode := nil;
|
||||
Result := CreateDC(ADriver, ADevice, APort, DevMode);
|
||||
if ADeviceMode<>0 then
|
||||
GlobalUnlock(ADeviceMode);
|
||||
end;
|
||||
{$ENDIF}
|
||||
constructor TRVPrint.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
rv := TPrintableRV.Create(Self);
|
||||
if not (csDesigning in ComponentState) then rv.Parent := TWinControl(Self.Owner);
|
||||
LeftMarginMM := 20;
|
||||
RightMarginMM := 20;
|
||||
TopMarginMM := 20;
|
||||
BottomMarginMM := 20;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.GetLM: Integer;
|
||||
begin
|
||||
GetLM := rv.FLeftMarginMM;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.GetRM: Integer;
|
||||
begin
|
||||
GetRM := rv.FRightMarginMM;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.GetTM: Integer;
|
||||
begin
|
||||
GetTM := rv.FTopMarginMM;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.GetBM: Integer;
|
||||
begin
|
||||
GetBM := rv.FBottomMarginMM;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.SetLM(mm: Integer);
|
||||
begin
|
||||
rv.FLeftMarginMM := mm;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.SetRM(mm: Integer);
|
||||
begin
|
||||
rv.FRightMarginMM := mm;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.SetTM(mm: Integer);
|
||||
begin
|
||||
rv.FTopMarginMM := mm;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.SetBM(mm: Integer);
|
||||
begin
|
||||
rv.FBottomMarginMM := mm;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.FormatPages(PrintOptions:TRVDisplayOptions): Integer;
|
||||
begin
|
||||
rv.DisplayOptions := PrintOptions;
|
||||
rv.FOnFormatting := FOnFormatting;
|
||||
FormatPages := rv.FormatPages;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.Print(Title: String; Copies: Integer; Collate: Boolean);
|
||||
begin
|
||||
rv.FOnPrinting := FOnPrinting;
|
||||
rv.Print(Title, Copies, Collate);
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.PrintPages(firstPgNo, lastPgNo: Integer; Title: String;
|
||||
Copies: Integer; Collate: Boolean);
|
||||
begin
|
||||
rv.FOnPrinting := FOnPrinting;
|
||||
rv.PrintPages(firstPgNo, lastPgNo, Title, Copies, Collate);
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.AssignSource(PrintMe: TRichView);
|
||||
begin
|
||||
rv.ShareLinesFrom(PrintMe);
|
||||
rv.Style := PrintMe.Style;
|
||||
rv.BackgroundBitmap := PrintMe.BackgroundBitmap;
|
||||
rv.BackgroundStyle := PrintMe.BackgroundStyle;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.Clear;
|
||||
begin
|
||||
rv.Clear;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TRVPrint.MakePreview(pgNo: Integer; bmp: TBitmap);
|
||||
var w,h: Integer;
|
||||
begin
|
||||
w :=
|
||||
MulDiv(rv.Width+rv.TmpLM+rv.TmpRM, rv.Printersad.ppixScreen, rv.Printersad.ppixDevice);
|
||||
h :=
|
||||
MulDiv(rv.Height+rv.TmpTM+rv.TmpBM, rv.Printersad.ppiyScreen, rv.Printersad.ppiyDevice);
|
||||
if bmp.Width <> w then bmp.Width := w;
|
||||
if bmp.Height <> h then bmp.Height := h;
|
||||
bmp.Canvas.Brush.Color := clWhite;
|
||||
bmp.Canvas.Pen.Color := clWhite;
|
||||
bmp.Canvas.FillRect(Rect(0,0,bmp.Width, bmp.Height));
|
||||
rv.DrawPage(pgNo, bmp.Canvas);
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRVPrint.GetPagesCount: Integer;
|
||||
begin
|
||||
GetPagesCount := rv.pagescoll.Count;
|
||||
end;
|
||||
{==================================================================}
|
||||
constructor TPrintableRV.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
pagescoll := TCollection.Create(TRVPageInfo);
|
||||
Visible := False;
|
||||
lines.Free;
|
||||
lines := nil;
|
||||
ShareContents := True;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
destructor TPrintableRV.Destroy;
|
||||
begin
|
||||
pagescoll.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TPrintableRV.FormatPages: Integer;
|
||||
var i,j : Integer;
|
||||
dli, dli2, dli3 :TDrawLineInfo;
|
||||
nextnewline : Integer;
|
||||
rvpi : TRVPageInfo;
|
||||
nPages : Integer;
|
||||
PrinterCanvas : TCanvas;
|
||||
PHDC: HDC;
|
||||
lpy, lpx, StartY : Integer;
|
||||
|
||||
begin
|
||||
if Assigned(FOnFormatting) then FOnFormatting(Self,0, rvpsStarting);
|
||||
VScrollVisible := False;
|
||||
{$IFDEF FPC}
|
||||
lpy := Printer.YDPI;
|
||||
lpx := Printer.XDPI;
|
||||
Width := Printer.PageWidth -MulDiv(FLeftMarginMM+FRightMarginMM, 5, 127)*lpx;
|
||||
Height:= Printer.PageHeight - MulDiv(FTopMarginMM+FBottomMarginMM, 5, 127)*lpy;
|
||||
with Printer.PaperSize.PaperRect do begin
|
||||
lpx := MulDiv(PhysicalRect.Right-PhysicalRect.Left, 127, 5*lpx);
|
||||
lpy := MulDiv(PhysicalRect.Bottom-PhysicalRect.Top, 127, 5*lpy);
|
||||
end;
|
||||
TmpLM := MulDiv(FLeftMarginMM, Printer.PageWidth, lpx);
|
||||
TmpTM := MulDiv(FTopMarginMM, Printer.PageHeight, lpy);
|
||||
TmpRM := MulDiv(FRightMarginMM, Printer.PageWidth, lpx);
|
||||
TmpBM := MulDiv(FBottomMarginMM, Printer.PageHeight, lpy);
|
||||
Format_(False, 0, Printer.Canvas, False);
|
||||
InfoAboutSaD(PrinterSaD, Printer.Canvas);
|
||||
{$ELSE}
|
||||
PrinterCanvas := TCanvas.Create;
|
||||
PHDC := GetPrinterDC;
|
||||
PrinterCanvas.Handle := PHDC;
|
||||
lpy := GetDeviceCaps(PHDC, LOGPIXELSY);
|
||||
lpx := GetDeviceCaps(PHDC, LOGPIXELSX);
|
||||
PrinterCanvas.Font.PixelsPerInch := lpy;
|
||||
Width := Printer.PageWidth -MulDiv(FLeftMarginMM+FRightMarginMM, 5, 127)*lpx;
|
||||
Height:= Printer.PageHeight - MulDiv(FTopMarginMM+FBottomMarginMM, 5, 127)*lpy;
|
||||
lpx := GetDeviceCaps(PHDC, HORZSIZE);
|
||||
lpy := GetDeviceCaps(PHDC, VERTSIZE);
|
||||
TmpLM := MulDiv(FLeftMarginMM, Printer.PageWidth, lpx);
|
||||
TmpTM := MulDiv(FTopMarginMM, Printer.PageHeight, lpy);
|
||||
TmpRM := MulDiv(FRightMarginMM, Printer.PageWidth, lpx);
|
||||
TmpBM := MulDiv(FBottomMarginMM, Printer.PageHeight, lpy);
|
||||
Format_(False, 0, PrinterCanvas, False);
|
||||
InfoAboutSaD(PrinterSaD, PrinterCanvas);
|
||||
PrinterCanvas.Handle := 0;
|
||||
PrinterCanvas.Free;
|
||||
DeleteDC(PHDC);
|
||||
{$ENDIF}
|
||||
|
||||
PagesColl.Clear;
|
||||
FormatPages := 0;
|
||||
if DrawLines.Count = 0 then exit;
|
||||
nPages := 1;
|
||||
rvpi := TRVPageInfo(PagesColl.Add);
|
||||
rvpi.StartY := 0;
|
||||
rvpi.StartLineNo := 0;
|
||||
StartY := 0;
|
||||
i := 0;
|
||||
if Assigned(FOnFormatting) then FOnFormatting(Self,0, rvpsProceeding);
|
||||
while i<DrawLines.Count do
|
||||
begin
|
||||
dli := TDrawLineInfo(DrawLines.Objects[i]);
|
||||
if dli.Top+dli.Height>StartY+Height then begin { i-th item does not fit in page }
|
||||
nextnewline := i;
|
||||
{ searching first item in first last in new page }
|
||||
for j:=i downto 0 do
|
||||
begin
|
||||
dli2 := TDrawLineInfo(DrawLines.Objects[j]);
|
||||
if (j<>i) and (dli2.Top + dli2.Height <= dli.Top) then break;
|
||||
nextnewline := j;
|
||||
end;
|
||||
{ page must contain one item at least}
|
||||
if nextnewline = TRVPageInfo(PagesColl.Items[nPages-1]).StartLineNo then
|
||||
inc(nextnewline);
|
||||
if nextnewline<>DrawLines.Count then begin
|
||||
{ searching min y of first line in new page }
|
||||
dli2 := TDrawLineInfo(DrawLines.Objects[nextnewline]);
|
||||
StartY := dli2.Top;
|
||||
for j := nextnewline+1 to DrawLines.Count-1 do begin
|
||||
dli3 := TDrawLineInfo(DrawLines.Objects[j]);
|
||||
if (dli3.Top >= dli2.Top + dli2.Height) then break;
|
||||
if dli3.Top<StartY then StartY := dli3.Top;
|
||||
end;
|
||||
rvpi := TRVPageInfo(PagesColl.Add);
|
||||
rvpi.StartLineNo := nextnewline;
|
||||
rvpi.StartY := StartY;
|
||||
if Assigned(FOnFormatting) then FOnFormatting(Self,nPages, rvpsProceeding);
|
||||
inc(nPages);
|
||||
end;
|
||||
i := nextnewline;
|
||||
end
|
||||
else
|
||||
inc(i);
|
||||
end;
|
||||
if Assigned(FOnFormatting) then FOnFormatting(Self,nPages,rvpsProceeding);
|
||||
FormatPages := nPages;
|
||||
if Assigned(FOnFormatting) then FOnFormatting(Self,nPages, rvpsFinished);
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
|
||||
procedure DrawOnDevice(Canvas: TCanvas; x,y: Integer; sad:TScreenAndDevice; gr: TGraphic);
|
||||
var
|
||||
Info: PBitmapInfo;
|
||||
InfoSize: DWORD;
|
||||
Image: Pointer;
|
||||
ImageSize: DWORD;
|
||||
Bits: HBITMAP;
|
||||
DIBWidth, DIBHeight: Longint;
|
||||
PrintWidth, PrintHeight: Longint;
|
||||
begin
|
||||
if gr is TBitmap then begin
|
||||
Bits := TBitmap(gr).Handle;
|
||||
//GetDIBSizes(Bits, InfoSize, ImageSize);
|
||||
Info := AllocMem(InfoSize);
|
||||
try
|
||||
Image := AllocMem(ImageSize);
|
||||
try
|
||||
//GetDIB(Bits, 0, Info^, Image^);
|
||||
with Info^.bmiHeader do
|
||||
begin
|
||||
DIBWidth := biWidth;
|
||||
DIBHeight := biHeight;
|
||||
end;
|
||||
PrintWidth := MulDiv(DIBWidth, sad.ppixDevice, sad.ppixScreen);
|
||||
PrintHeight:= MulDiv(DIBHeight, sad.ppiyDevice, sad.ppiyScreen);
|
||||
StretchDIBits(Canvas.Handle, x, y, PrintWidth, PrintHeight, 0, 0,
|
||||
DIBWidth, DIBHeight, Image, Info^, DIB_RGB_COLORS, SRCCOPY);
|
||||
finally
|
||||
FreeMem(Image, ImageSize);
|
||||
end;
|
||||
finally
|
||||
FreeMem(Info, InfoSize);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TPrintableRV.DrawPage(pgNo: Integer; Canvas: TCanvas);
|
||||
var i,no: Integer;
|
||||
dli:TDrawLineInfo;
|
||||
li: TLineInfo;
|
||||
zerocoord: Integer;
|
||||
first, last: Integer;
|
||||
sad:TScreenAndDevice;
|
||||
background, tmpbmp : TBitmap;
|
||||
BackWidth, BackHeight: Integer;
|
||||
//wmf: TMetafile;
|
||||
begin
|
||||
if not Assigned(FStyle) then begin
|
||||
raise EStyleNotAssigned.Create('Style of printable TRichView component is not assigned');
|
||||
exit;
|
||||
end;
|
||||
if (pgNo<1) or (pgNo>PagesColl.Count) then begin
|
||||
raise EInvalidPageNo.Create('Invalid page number is specified for printing');
|
||||
exit;
|
||||
end;
|
||||
first := TRVPageInfo(PagesColl.Items[pgNo-1]).StartLineNo;
|
||||
if pgNo=PagesColl.Count then
|
||||
last := DrawLines.Count-1
|
||||
else
|
||||
last := TRVPageInfo(PagesColl.Items[pgNo]).StartLineNo-1;
|
||||
zerocoord := TRVPageInfo(PagesColl.Items[pgNo-1]).StartY-TmpTM;
|
||||
Canvas.Brush.Style := bsClear;
|
||||
InfoAboutSaD(sad, Canvas);
|
||||
BackWidth := MulDiv(Width, printersad.ppixScreen, printersad.ppixDevice);
|
||||
BackHeight := MulDiv(Height, printersad.ppiyScreen, printersad.ppiyDevice);
|
||||
if (BackGroundStyle <> bsNoBitmap) and (BackGroundBitmap<>nil) then begin
|
||||
if BackGroundStyle=bsTiledAndScrolled then BackGroundStyle:=bsTiled;
|
||||
background := TBitmap.Create;
|
||||
background.Width := BackWidth;
|
||||
background.Height := BackHeight;
|
||||
DrawBack(background.Canvas.Handle, Rect(0,0, BackWidth, BackHeight),
|
||||
BackWidth, BackHeight);
|
||||
DrawOnDevice(Canvas,
|
||||
MulDiv(TmpLM, sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv(TmpTM, sad.ppiyDevice, Printersad.ppiyDevice),
|
||||
sad, background);
|
||||
end
|
||||
else begin
|
||||
background := nil;
|
||||
Canvas.Pen.Color := Style.Color;
|
||||
Canvas.Brush.Color := Style.Color;
|
||||
Canvas.FillRect(
|
||||
Rect(
|
||||
MulDiv(TmpLM, sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv(TmpTM, sad.ppiyDevice, Printersad.ppiyDevice),
|
||||
MulDiv(TmpLM, sad.ppixDevice, Printersad.ppixDevice)+
|
||||
MulDiv(BackWidth, sad.ppixDevice, sad.ppixScreen),
|
||||
MulDiv(TmpTM, sad.ppiyDevice, Printersad.ppiyDevice)+
|
||||
MulDiv(BackHeight, sad.ppiyScreen, sad.ppiyScreen)));
|
||||
end;
|
||||
tmpbmp := TBitmap.Create;
|
||||
try
|
||||
for i:=first to last do begin
|
||||
dli := TDrawLineInfo(drawlines.Objects[i]);
|
||||
li := TLineInfo(lines.Objects[dli.LineNo]);
|
||||
no := li.StyleNo;
|
||||
if no>=0 then { text }
|
||||
with FStyle.TextStyles[no] do begin
|
||||
Canvas.Font.Color := Color;
|
||||
Canvas.Font.Style := Style;
|
||||
Canvas.Font.Size := Size;
|
||||
Canvas.Font.Name := FontName;
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
Canvas.Font.CharSet := CharSet;
|
||||
{$ENDIF}
|
||||
Canvas.TextOut(
|
||||
MulDiv(dli.Left+TmpLM, sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv( dli.Top-zerocoord, sad.ppiyDevice, Printersad.ppiyDevice),
|
||||
drawlines.Strings[i]);
|
||||
continue;
|
||||
end;
|
||||
case no of
|
||||
-3,-4,-6:{ graphics } { hotspots and bullets }
|
||||
begin
|
||||
//if li.gr is TMetafile then begin
|
||||
// wmf := TMetafile.Create;
|
||||
// try
|
||||
// wmf.Assign(li.gr);
|
||||
// wmf.Width := MulDiv(TMetafile(li.gr).Width, sad.ppixDevice, sad.ppixScreen);
|
||||
// wmf.Height := MulDiv(TMetafile(li.gr).Height, sad.ppiyDevice, sad.ppiyScreen);
|
||||
// Canvas.Draw(
|
||||
// MulDiv(dli.Left+TmpLM, sad.ppixDevice, Printersad.ppixDevice),
|
||||
// MulDiv( dli.Top-zerocoord, sad.ppiyDevice, Printersad.ppiyDevice),
|
||||
// wmf);
|
||||
// finally
|
||||
// wmf.free;
|
||||
// end;
|
||||
// end
|
||||
{else} begin
|
||||
if no = rvsPicture then begin
|
||||
tmpbmp.Width := TGraphic(li.gr).Width;
|
||||
tmpbmp.Height := TGraphic(li.gr).Height;
|
||||
end
|
||||
else begin
|
||||
tmpbmp.Width := TImageList(li.gr).Width;
|
||||
tmpbmp.Height := TImageList(li.gr).Height;
|
||||
end;
|
||||
if background<>nil then
|
||||
tmpbmp.Canvas.CopyRect(Rect(0,0, tmpbmp.Width, tmpbmp.Height),
|
||||
background.Canvas,
|
||||
Rect(
|
||||
MulDiv(dli.Left, Printersad.ppixScreen, Printersad.ppixDevice),
|
||||
MulDiv(dli.Top-(zerocoord+TmpTM), Printersad.ppiyScreen, Printersad.ppiyDevice),
|
||||
MulDiv(dli.Left, Printersad.ppixScreen, Printersad.ppixDevice)+tmpbmp.Width,
|
||||
MulDiv(dli.Top-(zerocoord+TmpTM), Printersad.ppiyScreen, Printersad.ppiyDevice)+tmpbmp.Height
|
||||
)
|
||||
)
|
||||
else begin
|
||||
tmpbmp.Canvas.Pen.Color := Style.Color;
|
||||
tmpbmp.Canvas.Brush.Color := Style.Color;
|
||||
tmpbmp.Canvas.FillRect(Rect(0,0, tmpbmp.Width, tmpbmp.Height));
|
||||
end;
|
||||
if no = rvsPicture then
|
||||
tmpbmp.Canvas.Draw(0,0, TGraphic(li.gr))
|
||||
else
|
||||
TImageList(li.gr).Draw(tmpbmp.Canvas,0,0,li.imgNo);
|
||||
DrawOnDevice(Canvas,
|
||||
MulDiv(dli.Left+TmpLM, sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv( dli.Top-zerocoord, sad.ppiyDevice, Printersad.ppiyDevice),
|
||||
sad, tmpbmp);
|
||||
end;
|
||||
end;
|
||||
-1: {break line}
|
||||
begin
|
||||
Canvas.Pen.Color := FStyle.TextStyles[0].Color;
|
||||
Canvas.MoveTo(
|
||||
MulDiv(dli.Left+TmpLM+MulDiv(5, printersad.ppixDevice, printersad.ppixScreen),
|
||||
sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv(dli.Top-zerocoord+MulDiv(5, printersad.ppiyDevice, printersad.ppiyScreen),
|
||||
sad.ppiyDevice, Printersad.ppiyDevice));
|
||||
Canvas.LineTo(
|
||||
MulDiv(Width+TmpLM-MulDiv(5+RightMargin, printersad.ppixDevice, printersad.ppixScreen),
|
||||
sad.ppixDevice, Printersad.ppixDevice),
|
||||
MulDiv(dli.Top-zerocoord+MulDiv(5, printersad.ppiyDevice, printersad.ppiyScreen),
|
||||
sad.ppiyDevice, Printersad.ppiyDevice));
|
||||
end;
|
||||
{ controls is not supported yet }
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
background.Free;
|
||||
tmpbmp.Free;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TPrintableRV.PrintPages(firstPgNo, lastPgNo: Integer; Title: String;
|
||||
Copies: Integer; Collate: Boolean);
|
||||
var i,copyno: Integer;
|
||||
PrinterCopies: Integer;
|
||||
begin
|
||||
if Assigned(FOnPrinting) then FOnPrinting(Self,0, rvpsStarting);
|
||||
Printer.Title := Title;
|
||||
PrinterCopies := Printer.Copies; { storing }
|
||||
//if pcCopies in Printer.Capabilities then
|
||||
// begin
|
||||
// Printer.Copies := Copies;
|
||||
// // Printer can make copies and collation if needed
|
||||
// Copies := 1; // TRichView need not support copies and collation itself
|
||||
// end
|
||||
//else
|
||||
Printer.Copies := 1; // TRichView will provide copies and collation itself
|
||||
Printer.BeginDoc;
|
||||
if Collate then
|
||||
for copyno:= 1 to Copies do
|
||||
for i := firstPgNo to lastPgNo do
|
||||
begin
|
||||
DrawPage(i, Printer.Canvas);
|
||||
if Assigned(FOnPrinting) then FOnPrinting(Self,i, rvpsProceeding);
|
||||
if not ((i=lastPgNo) and (copyno=Copies)) then Printer.NewPage;
|
||||
end
|
||||
else
|
||||
for i := firstPgNo to lastPgNo do
|
||||
for copyno:= 1 to Copies do
|
||||
begin
|
||||
DrawPage(i, Printer.Canvas);
|
||||
if Assigned(FOnPrinting) then FOnPrinting(Self,i, rvpsProceeding);
|
||||
if not ((i=lastPgNo) and (copyno=Copies)) then Printer.NewPage;
|
||||
end;
|
||||
Printer.EndDoc;
|
||||
Printer.Copies := PrinterCopies; { restoring }
|
||||
if Assigned(FOnPrinting) then FOnPrinting(Self,0, rvpsFinished);
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
procedure TPrintableRV.Print(Title: String; Copies: Integer; Collate: Boolean);
|
||||
begin
|
||||
PrintPages(1, PagesColl.Count, Title, Copies, Collate);
|
||||
end;
|
||||
|
||||
end.
|
42
components/richview/readme.txt
Normal file
42
components/richview/readme.txt
Normal file
@ -0,0 +1,42 @@
|
||||
Lazarus RichView
|
||||
|
||||
|
||||
Original Package: http://www.trichview.com
|
||||
|
||||
Contributors
|
||||
|
||||
Paul Burton Ported to Lazarus by Paul Burton
|
||||
http://www.burtonsoftware.co.uk
|
||||
|
||||
Jesus Reyes A. Additional portability and fixes
|
||||
jesusrmx@yahoo.com.mx
|
||||
|
||||
|
||||
This package had been tested in Lazarus 0.9.17
|
||||
under win32 and Linux.
|
||||
|
||||
|
||||
Installation
|
||||
|
||||
* Create the directory lazarus\components\richview
|
||||
* Unzip the files from the zip file in this directory
|
||||
* Open lazarus
|
||||
* Open lazrichview.lpk with Component/Open package file (.lpk)
|
||||
* Click on Compile
|
||||
* Click on Install
|
||||
|
||||
|
||||
Change Log
|
||||
|
||||
* 30.12.05 - First Release (v0.5.2.1)
|
||||
* 08.09.06 - Fixes and portability (v0.5.2.2)
|
||||
- Removed Windows dependency.
|
||||
- Fixed text selection highlight.
|
||||
- Fixed text position.
|
||||
- Added component palette icons.
|
||||
- Fixed mouse cursor disappear when hovering links.
|
||||
- Added Printer4Lazarus requeriment.
|
||||
- Added demo
|
||||
- Fixed flicker
|
||||
- Fixed Scrolling in linux
|
||||
- etc.
|
BIN
components/richview/res/RV_JUMP_CURSOR.cur
Normal file
BIN
components/richview/res/RV_JUMP_CURSOR.cur
Normal file
Binary file not shown.
After Width: | Height: | Size: 326 B |
32
components/richview/res/TRICHVIEW.xpm
Normal file
32
components/richview/res/TRICHVIEW.xpm
Normal file
@ -0,0 +1,32 @@
|
||||
/* XPM */
|
||||
static char *graphic[] = {
|
||||
"24 24 5 1",
|
||||
". c None",
|
||||
", c #000000",
|
||||
"- c #FFFFFF",
|
||||
"* c #FFFF00",
|
||||
"a c #FF0000",
|
||||
"........................",
|
||||
"........................",
|
||||
"..,,,,,,,,,,,,,,,,,,....",
|
||||
"..,----------------,....",
|
||||
"..,---,,-,,,,,,,,,-,....",
|
||||
"..,---,,-,*******,-,....",
|
||||
"..,--,-,-,*******,-,....",
|
||||
"..,--,,,-,*******,-,....",
|
||||
"..,-,--,-,*******,-,....",
|
||||
"..,-,--,-,,,,,,,,,-,....",
|
||||
"..,-----------,*,--,....",
|
||||
"..,-a-,,,,,,,-,*,--,....",
|
||||
"..,-----------,*,--,....",
|
||||
"..,-a-,,,,,,,-,*,,,,,...",
|
||||
"..,-----------,*,*,*,,..",
|
||||
"..,-a-,,,,,--,,*,*,*,,..",
|
||||
"..,---------,*,******,..",
|
||||
"..,-a-,,,,,-,*,******,..",
|
||||
"..,---------,*,******,..",
|
||||
"..,----------,*******,..",
|
||||
"..,,,,,,,,,,,,,*****,,..",
|
||||
"...............,****,...",
|
||||
"................,,,,....",
|
||||
"........................"}
|
34
components/richview/res/TRVPRINT.xpm
Normal file
34
components/richview/res/TRVPRINT.xpm
Normal file
@ -0,0 +1,34 @@
|
||||
/* XPM */
|
||||
static char *graphic[] = {
|
||||
"24 24 7 1",
|
||||
". c None",
|
||||
", c #000000",
|
||||
"- c #FFFFFF",
|
||||
"* c #FFFF00",
|
||||
"a c #FF0000",
|
||||
"b c #C6C6C6",
|
||||
"c c #848484",
|
||||
"........................",
|
||||
"........................",
|
||||
"..,,,,,,,,,,,,,,,,,,....",
|
||||
"..,----------------,....",
|
||||
"..,---,,-,,,,,,,,,-,....",
|
||||
"..,---,,-,*******,-,....",
|
||||
"..,--,-,-,*******,-,....",
|
||||
"..,--,,,-,*******,-,....",
|
||||
"..,-,--,-,*******,-,....",
|
||||
"..,-,--,-,,,,,,,,,-,....",
|
||||
"..,----------,,,,,,,,...",
|
||||
"..,-a-,,,,,--,------,...",
|
||||
"..,---------,-,-,,-,....",
|
||||
"..,-a-,,,,--,--,*,-,....",
|
||||
"..,--------,-,-,,-,,....",
|
||||
"..,-a----,,,------,,,,..",
|
||||
"..,----,,bc,,,,,,,,cb-,.",
|
||||
"..,-a--,bbbbbbbbbbbb-c,.",
|
||||
"..,---c-------------cc,.",
|
||||
"..,---,-aabbbbbbbbbbcc,.",
|
||||
"..,,,,,-bbbbbbbbbbbbc,..",
|
||||
"......cbcccccccccccc,...",
|
||||
".......,,,,,,,,,,,,,....",
|
||||
"........................"}
|
32
components/richview/res/TRVSTYLE.xpm
Normal file
32
components/richview/res/TRVSTYLE.xpm
Normal file
@ -0,0 +1,32 @@
|
||||
/* XPM */
|
||||
static char *graphic[] = {
|
||||
"24 24 5 1",
|
||||
". c None",
|
||||
", c #000000",
|
||||
"- c #FFFF00",
|
||||
"* c #FFFFFF",
|
||||
"a c #FF0000",
|
||||
"........................",
|
||||
"........................",
|
||||
"..,,,,,,,,,,,,,,,,,,....",
|
||||
"..,................,....",
|
||||
"..,...,,.,,,,,,,,,.,....",
|
||||
"..,...,,.,-------,.,....",
|
||||
"..,..,.,.,--*******,**..",
|
||||
"..,..,,,.,**.,,,,,.*,*..",
|
||||
"..,.,..,.*.,,,.**.,,,*..",
|
||||
"..,.,..,.*,,,**,,*,,,*..",
|
||||
"..,......*,,,*...*.,.*..",
|
||||
"..,.a.,,,*,,,**...*,*...",
|
||||
"..,......*,,,,***.***...",
|
||||
"..,.a.,,,*.,,,,,**,,....",
|
||||
"..,.......*.,,,,,,**....",
|
||||
"..,.a.,,,,,**.,,,,,**...",
|
||||
"..,.....***..**.,,,,*...",
|
||||
"..,.a.,,*,*,,,.*.,,,*...",
|
||||
"..,....*.,.*....*,,,*...",
|
||||
"..,....*,,,.*..*.,,.*...",
|
||||
"..,,,,,*,,,,.**.,,,*....",
|
||||
".......*,*.,,,,,,.**....",
|
||||
".......**.********......",
|
||||
"........................"}
|
60
components/richview/richview.lrs
Normal file
60
components/richview/richview.lrs
Normal file
@ -0,0 +1,60 @@
|
||||
LazarusResources.Add('RV_JUMP_CURSOR','CUR',[
|
||||
#0#0#2#0#1#0' '#0#0#6#0#0#0'0'#1#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0
|
||||
+#1#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#1#254#0#0#1#254#0#0#3#255#0#0#3#255#0#0#7#255#0#0#7#255#128#0#15
|
||||
+#255#128#0#11#255#128#0#27#255#128#0';'#255#128#0'3'#253#128#0#3'm'#128#0#3
|
||||
+'m'#0#0#3'l'#0#0#3'`'#0#0#3#0#0#0#3#0#0#0#3#0#0#0#3#0#0#0#3#0#0#0#0#0#0#0#255
|
||||
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
|
||||
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
|
||||
+#255#252#0#255#255#252#0#255#255#252#0#255#255#248#0''#255#248#0''#255#240
|
||||
+#0''#255#240#0'?'#255#224#0'?'#255#224#0'?'#255#192#0'?'#255#128#0'?'#255
|
||||
+#128#0'?'#255#136#0'?'#255#248#0''#255#248#0#255#255#248#3#255#255#248#31
|
||||
+#255#255#248''#255#255#248''#255#255#248''#255#255#248''#255#255#252#255
|
||||
+#255#255
|
||||
]);
|
||||
LazarusResources.Add('TRICHVIEW','XPM',[
|
||||
'/* XPM */'#10'static char *graphic[] = {'#10'"24 24 5 1",'#10'". c None",'#10
|
||||
+'", c #000000",'#10'"- c #FFFFFF",'#10'"* c #FFFF00",'#10'"a c #FF0000",'#10
|
||||
+'"........................",'#10'"........................",'#10'"..,,,,,,,,'
|
||||
+',,,,,,,,,,....",'#10'"..,----------------,....",'#10'"..,---,,-,,,,,,,,,-,.'
|
||||
+'...",'#10'"..,---,,-,*******,-,....",'#10'"..,--,-,-,*******,-,....",'#10'"'
|
||||
+'..,--,,,-,*******,-,....",'#10'"..,-,--,-,*******,-,....",'#10'"..,-,--,-,,'
|
||||
+',,,,,,,-,....",'#10'"..,-----------,*,--,....",'#10'"..,-a-,,,,,,,-,*,--,..'
|
||||
+'..",'#10'"..,-----------,*,--,....",'#10'"..,-a-,,,,,,,-,*,,,,,...",'#10'".'
|
||||
+'.,-----------,*,*,*,,..",'#10'"..,-a-,,,,,--,,*,*,*,,..",'#10'"..,---------'
|
||||
+',*,******,..",'#10'"..,-a-,,,,,-,*,******,..",'#10'"..,---------,*,******,.'
|
||||
+'.",'#10'"..,----------,*******,..",'#10'"..,,,,,,,,,,,,,*****,,..",'#10'"..'
|
||||
+'.............,****,...",'#10'"................,,,,....",'#10'".............'
|
||||
+'..........."}'#10
|
||||
]);
|
||||
LazarusResources.Add('TRVPRINT','XPM',[
|
||||
'/* XPM */'#10'static char *graphic[] = {'#10'"24 24 7 1",'#10'". c None",'#10
|
||||
+'", c #000000",'#10'"- c #FFFFFF",'#10'"* c #FFFF00",'#10'"a c #FF0000",'#10
|
||||
+'"b c #C6C6C6",'#10'"c c #848484",'#10'"........................",'#10'"....'
|
||||
+'....................",'#10'"..,,,,,,,,,,,,,,,,,,....",'#10'"..,------------'
|
||||
+'----,....",'#10'"..,---,,-,,,,,,,,,-,....",'#10'"..,---,,-,*******,-,....",'
|
||||
+#10'"..,--,-,-,*******,-,....",'#10'"..,--,,,-,*******,-,....",'#10'"..,-,--'
|
||||
+',-,*******,-,....",'#10'"..,-,--,-,,,,,,,,,-,....",'#10'"..,----------,,,,,'
|
||||
+',,,...",'#10'"..,-a-,,,,,--,------,...",'#10'"..,---------,-,-,,-,....",'#10
|
||||
+'"..,-a-,,,,--,--,*,-,....",'#10'"..,--------,-,-,,-,,....",'#10'"..,-a----,'
|
||||
+',,------,,,,..",'#10'"..,----,,bc,,,,,,,,cb-,.",'#10'"..,-a--,bbbbbbbbbbbb-'
|
||||
+'c,.",'#10'"..,---c-------------cc,.",'#10'"..,---,-aabbbbbbbbbbcc,.",'#10'"'
|
||||
+'..,,,,,-bbbbbbbbbbbbc,..",'#10'"......cbcccccccccccc,...",'#10'".......,,,,'
|
||||
+',,,,,,,,,....",'#10'"........................"}'#10
|
||||
]);
|
||||
LazarusResources.Add('TRVSTYLE','XPM',[
|
||||
'/* XPM */'#10'static char *graphic[] = {'#10'"24 24 5 1",'#10'". c None",'#10
|
||||
+'", c #000000",'#10'"- c #FFFF00",'#10'"* c #FFFFFF",'#10'"a c #FF0000",'#10
|
||||
+'"........................",'#10'"........................",'#10'"..,,,,,,,,'
|
||||
+',,,,,,,,,,....",'#10'"..,................,....",'#10'"..,...,,.,,,,,,,,,.,.'
|
||||
+'...",'#10'"..,...,,.,-------,.,....",'#10'"..,..,.,.,--*******,**..",'#10'"'
|
||||
+'..,..,,,.,**.,,,,,.*,*..",'#10'"..,.,..,.*.,,,.**.,,,*..",'#10'"..,.,..,.*,'
|
||||
+',,**,,*,,,*..",'#10'"..,......*,,,*...*.,.*..",'#10'"..,.a.,,,*,,,**...*,*.'
|
||||
+'..",'#10'"..,......*,,,,***.***...",'#10'"..,.a.,,,*.,,,,,**,,....",'#10'".'
|
||||
+'.,.......*.,,,,,,**....",'#10'"..,.a.,,,,,**.,,,,,**...",'#10'"..,.....***.'
|
||||
+'.**.,,,,*...",'#10'"..,.a.,,*,*,,,.*.,,,*...",'#10'"..,....*.,.*....*,,,*..'
|
||||
+'.",'#10'"..,....*,,,.*..*.,,.*...",'#10'"..,,,,,*,,,,.**.,,,*....",'#10'"..'
|
||||
+'.....*,*.,,,,,,.**....",'#10'".......**.********......",'#10'".............'
|
||||
+'..........."}'#10
|
||||
]);
|
2096
components/richview/richview.pas
Normal file
2096
components/richview/richview.pas
Normal file
File diff suppressed because it is too large
Load Diff
26
components/richview/rv_defs.inc
Normal file
26
components/richview/rv_defs.inc
Normal file
@ -0,0 +1,26 @@
|
||||
{ Determine Delphi/C++Builder version }
|
||||
|
||||
{$IFNDEF VER80} { not Delphi 1.0 }
|
||||
{$IFNDEF VER90} { not Delphi 2.0 }
|
||||
{$DEFINE RICHVIEWCBDEF1} (* C++Builder 1.0+ *)
|
||||
{$IFNDEF VER93} { not C++Builder 1.0 }
|
||||
{$DEFINE RICHVIEWCBDEF3} (* C++Builder 3.0+ *)
|
||||
{$IFNDEF VER110} { not C++Builder 3.0 }
|
||||
{$DEFINE RICHVIEWDEF3} (* Delphi 3.0+, C++Builder 4.0+ *)
|
||||
{$IFNDEF VER100} { not Delphi 3.0 }
|
||||
{$DEFINE RICHVIEWDEF4} (* Delphi 4.0+ *)
|
||||
{$IFNDEF VER120} { not Delphi 4.0 }
|
||||
{$IFNDEF VER125} { not C++Builder 4.0 }
|
||||
{$DEFINE RICHVIEWDEF5} (* Delphi 5.0+ *)
|
||||
{$IFNDEF VER130} { not Delphi 5.0 }
|
||||
{$IFNDEF VER135} { not C++Builder 5.0 }
|
||||
{$DEFINE RICHVIEWDEF6}(* Delphi 6.0+ *)
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
357
components/richview/rv_save.inc
Normal file
357
components/richview/rv_save.inc
Normal file
@ -0,0 +1,357 @@
|
||||
{this file is included in RichView.pas}
|
||||
{------------------------------------}
|
||||
procedure ReplaceStr(var str: String; old, new: String);
|
||||
var p: Integer;
|
||||
begin
|
||||
while true do begin
|
||||
p := pos(old, str);
|
||||
if p=0 then break;
|
||||
Delete(str,p, Length(old));
|
||||
Insert(new, str, p);
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
procedure ReplaceStr2(var str: String; old, new: String);
|
||||
var p,ptr: Integer;
|
||||
s: String;
|
||||
begin
|
||||
s := str;
|
||||
ptr := 1;
|
||||
while true do begin
|
||||
p := pos(old, s);
|
||||
if p=0 then break;
|
||||
inc(p, ptr-1);
|
||||
Delete(str,p, Length(old));
|
||||
Insert(new, str, p);
|
||||
ptr := p+Length(new);
|
||||
s := Copy(str, ptr, Length(str)+1-ptr);
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function MakeHTMLStr(str:String): String;
|
||||
begin
|
||||
ReplaceStr2(str, '&', '&');
|
||||
ReplaceStr(str, '>', '>');
|
||||
ReplaceStr(str, '<', '<');
|
||||
ReplaceStr(str, ' ', '  ');
|
||||
MakeHTMLStr := str;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------}
|
||||
function ColorCode(C: TColor): String;
|
||||
var s: String;
|
||||
begin
|
||||
s := IntToHex(ColorToRGB(c),6);
|
||||
s := Copy(s,5,2)+Copy(s,3,2)+Copy(s,1,2);
|
||||
ColorCode := '"#'+s+'"';
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function GetFontSize(pts: Integer): Integer;
|
||||
begin
|
||||
if pts<=8 then
|
||||
GetFontSize := 1
|
||||
else
|
||||
case pts of
|
||||
9..10: GetFontSize := 2;
|
||||
11..12: GetFontSize := 3;
|
||||
13..14: GetFontSize := 4;
|
||||
15..18: GetFontSize := 5;
|
||||
19..24: GetFontSize := 6;
|
||||
else GetFontSize := 7;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function OpenFontTag(ts: TFontInfo; normalfs: TFontStyles; Relative: Boolean): String;
|
||||
var s: String;
|
||||
begin
|
||||
s := '<FONT size='+IntToStr(GetFontSize(ts.Size))+ ' color='+ColorCode(ts.Color)+
|
||||
' face="'+ts.FontName+'">';
|
||||
if Relative then begin
|
||||
if not (fsBold in ts.Style) and (fsBold in normalfs) then s := s+'</B>';
|
||||
if not (fsItalic in ts.Style) and (fsItalic in normalfs) then s := s+'</I>';
|
||||
if not (fsUnderline in ts.Style) and (fsUnderline in normalfs) then s := s+'</U>';
|
||||
if not (fsStrikeOut in ts.Style) and (fsStrikeOut in normalfs) then s := s+'</S>';
|
||||
if (fsBold in ts.Style) and not (fsBold in normalfs) then s := s+'<B>';
|
||||
if (fsItalic in ts.Style) and not (fsItalic in normalfs) then s := s+'<I>';
|
||||
if (fsUnderline in ts.Style) and not (fsUnderline in normalfs) then s := s+'<U>';
|
||||
if (fsStrikeOut in ts.Style) and not (fsStrikeOut in normalfs) then s := s+'<S>';
|
||||
end
|
||||
else begin
|
||||
if (fsBold in ts.Style) then s := s+'<B>';
|
||||
if (fsItalic in ts.Style) then s := s+'<I>';
|
||||
if (fsUnderline in ts.Style) then s := s+'<U>';
|
||||
if (fsStrikeOut in ts.Style) then s := s+'<S>';
|
||||
end;
|
||||
OpenFontTag := s;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function CloseFontTag(ts: TFontInfo; normalfs: TFontStyles; Relative: Boolean):String;
|
||||
var s: String;
|
||||
begin
|
||||
if Relative then begin
|
||||
if (fsBold in ts.Style) and not (fsBold in normalfs) then s := s+'</B>';
|
||||
if (fsItalic in ts.Style) and not (fsItalic in normalfs) then s := s+'</I>';
|
||||
if (fsUnderline in ts.Style) and not (fsUnderline in normalfs) then s := s+'</U>';
|
||||
if (fsStrikeOut in ts.Style) and not (fsStrikeOut in normalfs) then s := s+'</S>';
|
||||
if not (fsBold in ts.Style) and (fsBold in normalfs) then s := s+'<B>';
|
||||
if not (fsItalic in ts.Style) and (fsItalic in normalfs) then s := s+'<I>';
|
||||
if not (fsUnderline in ts.Style) and (fsUnderline in normalfs) then s := s+'<U>';
|
||||
if not (fsStrikeOut in ts.Style) and (fsStrikeOut in normalfs) then s := s+'<S>';
|
||||
end
|
||||
else begin
|
||||
if (fsBold in ts.Style) then s := s+'</B>';
|
||||
if (fsItalic in ts.Style) then s := s+'</I>';
|
||||
if (fsUnderline in ts.Style) then s := s+'</U>';
|
||||
if (fsStrikeOut in ts.Style) then s := s+'</S>';
|
||||
end;
|
||||
s:= s+'</FONT>';
|
||||
CloseFontTag := s;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function TRichView.GetNextFileName(Path: String): String;
|
||||
var fn: String;
|
||||
begin
|
||||
while True do begin
|
||||
inc(imgSaveNo);
|
||||
fn := Path+imgSavePrefix+IntToStr(imgSaveNo)+'.bmp';
|
||||
GetNextFileName := fn;
|
||||
if not FileExists(fn) then exit;
|
||||
if (rvsoOverrideImages in SaveOptions) and
|
||||
((FileGetAttr(fn) and faReadOnly)=0) then exit;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function TRichView.SavePicture(DocumentSaveFormat: TRVSaveFormat; Path: String; gr: TGraphic): String;
|
||||
var fn: String;
|
||||
bmp: TBitmap;
|
||||
begin
|
||||
{ DocumentSaveFormat in this version is ignored }
|
||||
fn := GetNextFileName(Path);
|
||||
SavePicture := ExtractFileName(fn);
|
||||
if gr is TBitmap then begin
|
||||
gr.SaveToFile(fn);
|
||||
exit;
|
||||
end;
|
||||
bmp := TBitmap.Create;
|
||||
try
|
||||
bmp.Height := gr.Height;
|
||||
bmp.Width := gr.Width;
|
||||
bmp.Canvas.Brush.Color := Style.Color;
|
||||
bmp.Canvas.Pen.Color := Style.Color;
|
||||
bmp.Canvas.FillRect(Rect(0,0,Width,Height));
|
||||
bmp.Canvas.Draw(0,0,gr);
|
||||
bmp.SaveToFile(fn);
|
||||
finally
|
||||
bmp.Free;
|
||||
end;
|
||||
|
||||
end;
|
||||
{------------------------------------------------------------}
|
||||
function TRichView.SaveHTML(FileName,Title,ImagesPrefix: String; Options: TRVSaveOptions):Boolean;
|
||||
var f: TextFile;
|
||||
i,j: Integer;
|
||||
li: TLineInfo;
|
||||
needbr: Boolean;
|
||||
s: String;
|
||||
cpno, jumpno: Integer;
|
||||
Bullets: TStringList;
|
||||
fn: String;
|
||||
bmp: TBitmap;
|
||||
rvi: TRVInteger2;
|
||||
begin
|
||||
{$I+}
|
||||
SaveHTML := False;
|
||||
if Style = nil then exit;
|
||||
SaveHTML := True;
|
||||
imgSavePrefix := ImagesPrefix;
|
||||
imgSaveNo := 0;
|
||||
SaveOptions := Options;
|
||||
cpno := 0;
|
||||
jumpno := FirstJumpNo;
|
||||
Bullets := TStringList.Create;
|
||||
try
|
||||
AssignFile(f, FileName);
|
||||
Rewrite(f);
|
||||
try
|
||||
WriteLn(f,'<HTML><HEAD><TITLE>'+Title+'</TITLE></HEAD>');
|
||||
Writeln(f,'<BODY bgcolor='+ColorCode(Style.Color));
|
||||
if (BackgroundStyle<>bsNoBitmap) and
|
||||
(BackgroundBitmap<>nil) then begin
|
||||
Writeln(f,' background='+ SavePicture(rvsfHTML, ExtractFilePath(FileName), BackgroundBitmap));
|
||||
if (BackgroundStyle<>bsTiledAndScrolled) then
|
||||
Writeln(f,' bgproperties=fixed');
|
||||
end;
|
||||
Writeln(f,' leftmargin='+IntToStr(LeftMargin)+'>');
|
||||
WriteLn(f,OpenFontTag(Style.TextStyles[rvsNormal], Style.TextStyles[rvsNormal].Style, False));
|
||||
needbr := False;
|
||||
for i:=0 to Lines.Count-1 do begin
|
||||
li := TLineInfo(lines.Objects[i]);
|
||||
case li.StyleNo of
|
||||
{*} rvsBreak:
|
||||
begin
|
||||
Writeln(f,'<HR noshade size=1>');
|
||||
needbr := False;
|
||||
end;
|
||||
{*} rvsComponent:
|
||||
if Assigned(FOnSaveComponentToFile) then begin
|
||||
s := '';
|
||||
FOnSaveComponentToFile(Self, ExtractFilePath(FileName), li.gr, rvsfHTML, s);
|
||||
if s<>'' then begin
|
||||
Writeln(f,s);
|
||||
needbr := True;
|
||||
end;
|
||||
end;
|
||||
{*} rvsCheckPoint:
|
||||
begin
|
||||
WriteLn(f);
|
||||
WriteLn(f,'<A name=RichViewCheckPoint'+IntToStr(cpno)+'></A>');
|
||||
inc(cpno);
|
||||
end;
|
||||
{*} rvsPicture:
|
||||
begin
|
||||
if (not li.Center) and (not li.SameAsPrev) then WriteLn(f,'<BR>');
|
||||
if li.Center then Write(f,'<CENTER>');
|
||||
Write(f,'<IMG src="'+
|
||||
SavePicture(rvsfHTML, ExtractFilePath(FileName), TGraphic(li.gr))+
|
||||
'">');
|
||||
if li.Center then Write(f,'</CENTER>');
|
||||
needbr := True;
|
||||
end;
|
||||
{*} rvsBullet, rvsHotSpot:
|
||||
begin
|
||||
if (not li.SameAsPrev) and needbr then WriteLn(f,'<BR>');
|
||||
fn := '';
|
||||
for j:=0 to Bullets.Count-1 do
|
||||
if (TLineInfo(lines.Objects[i]).gr =
|
||||
TLineInfo(lines.Objects[TRVInteger2(Bullets.Objects[j]).val]).gr) and
|
||||
(TLineInfo(lines.Objects[i]).imgNo =
|
||||
TLineInfo(lines.Objects[TRVInteger2(Bullets.Objects[j]).val]).imgNo) then begin
|
||||
fn := Bullets[j];
|
||||
end;
|
||||
if fn='' then begin
|
||||
bmp := TBitmap.Create;
|
||||
bmp.Width := TImageList(li.gr).Width;
|
||||
bmp.Height := TImageList(li.gr).Height;
|
||||
bmp.Canvas.Brush.Color := Style.Color;
|
||||
bmp.Canvas.Pen.Color := Style.Color;
|
||||
bmp.Canvas.FillRect(Rect(0,0,Width,Height));
|
||||
TImageList(li.gr).Draw(bmp.Canvas, 0, 0, li.imgNo);
|
||||
fn := SavePicture(rvsfHTML, ExtractFilePath(FileName), bmp);
|
||||
rvi := TRVInteger2.Create;
|
||||
rvi.Val := i;
|
||||
Bullets.AddObject(fn, rvi);
|
||||
bmp.Free;
|
||||
end;
|
||||
s := '';
|
||||
if li.StyleNo=rvsHotSpot then begin
|
||||
if Assigned(FOnURLNeeded) then
|
||||
FOnURLNeeded(Self,jumpno,s);
|
||||
inc(jumpno);
|
||||
if s<>'' then Write(f,'<A href='+s+'>');
|
||||
end;
|
||||
Write(f,'<IMG src="'+fn+'">');
|
||||
if s<>'' then Write(f,'</A>');
|
||||
needbr := True;
|
||||
end;
|
||||
{*} rvsJump1, rvsJump2:
|
||||
begin
|
||||
if (not li.Center) and (not li.SameAsPrev) and needbr then WriteLn(f,'<BR>');
|
||||
if li.Center then Write(f,'<CENTER>');
|
||||
s := '';
|
||||
if Assigned(FOnURLNeeded) then
|
||||
FOnURLNeeded(Self,jumpno,s);
|
||||
inc(jumpno);
|
||||
if s<>'' then Write(f,'<A href='+s+'>');
|
||||
Write(f,OpenFontTag(Style.TextStyles[li.StyleNo], Style.TextStyles[rvsNormal].Style, True)+
|
||||
MakeHTMLStr(Lines[i])+CloseFontTag(Style.TextStyles[li.StyleNo], Style.TextStyles[rvsNormal].Style, True));
|
||||
if s<>'' then Write(f,'</A>');
|
||||
needbr := not li.Center;
|
||||
end;
|
||||
{*} rvsNormal:
|
||||
begin
|
||||
if (not li.Center) and (not li.SameAsPrev) and needbr then WriteLn(f,'<BR>');
|
||||
if li.Center then
|
||||
Write(f,'<CENTER>'+MakeHTMLStr(Lines[i])+'</CENTER>')
|
||||
else
|
||||
Write(f,MakeHTMLStr(Lines[i]));
|
||||
needbr := not li.Center;
|
||||
end;
|
||||
{*} else
|
||||
begin
|
||||
if (not li.Center) and (not li.SameAsPrev) and needbr then WriteLn(f,'<BR>');
|
||||
if li.Center then Write(f,'<CENTER>');
|
||||
Write(f,OpenFontTag(Style.TextStyles[li.StyleNo], Style.TextStyles[rvsNormal].Style, True)+
|
||||
MakeHTMLStr(Lines[i])+CloseFontTag(Style.TextStyles[li.StyleNo], Style.TextStyles[rvsNormal].Style, True));
|
||||
if li.Center then Write(f,'</CENTER>');
|
||||
needbr := not li.Center;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Writeln(f);
|
||||
WriteLn(f,CloseFontTag(Style.TextStyles[rvsNormal], Style.TextStyles[rvsNormal].Style, False));
|
||||
WriteLn(f,'</BODY></HTML>');
|
||||
finally
|
||||
for j:=0 to Bullets.Count-1 do begin
|
||||
TRVInteger2(Bullets.Objects[j]).Free;
|
||||
Bullets.Objects[j] := nil;
|
||||
end;
|
||||
Bullets.Free;
|
||||
CloseFile(f)
|
||||
end;
|
||||
except
|
||||
SaveHTML := False;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------------------}
|
||||
function TRichView.SaveText(FileName: String; LineWidth: Integer):Boolean;
|
||||
var f: TextFile;
|
||||
i,j: Integer;
|
||||
li: TLineInfo;
|
||||
s, s2: String;
|
||||
begin
|
||||
{$I+}
|
||||
SaveText := True;
|
||||
s := '';
|
||||
for j:=1 to LineWidth do s := s + '-';
|
||||
try
|
||||
AssignFile(f, FileName);
|
||||
Rewrite(f);
|
||||
try
|
||||
for i:=0 to Lines.Count-1 do begin
|
||||
li := TLineInfo(lines.Objects[i]);
|
||||
case li.StyleNo of
|
||||
{*} rvsBreak:
|
||||
begin Writeln(f); Write(f,s); end;
|
||||
{*} rvsCheckPoint: ;
|
||||
{*} rvsComponent:
|
||||
begin
|
||||
if (not li.SameAsPrev) then WriteLn(f);
|
||||
if Assigned(FOnSaveComponentToFile) then begin
|
||||
s2 := '';
|
||||
FOnSaveComponentToFile(Self,ExtractFilePath(FileName), li.gr, rvsfText, s2);
|
||||
if s2<>'' then Write(f,s2);
|
||||
end;
|
||||
end;
|
||||
{*} rvsPicture,rvsHotSpot,rvsBullet: {case}
|
||||
if (not li.SameAsPrev) then WriteLn(f);
|
||||
{*} else {case}
|
||||
begin
|
||||
if (not li.SameAsPrev) then WriteLn(f);
|
||||
if li.Center then begin
|
||||
s2 := '';
|
||||
for j:=1 to (LineWidth-Length(Lines[i])) div 2 do
|
||||
s2 := s2 + ' ';
|
||||
Write(f,s2+Lines[i])
|
||||
end
|
||||
else
|
||||
Write(f,Lines[i]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
CloseFile(f)
|
||||
end;
|
||||
except
|
||||
SaveText := False;
|
||||
end;
|
||||
end;
|
26
components/richview/rvfreereg.pas
Normal file
26
components/richview/rvfreereg.pas
Normal file
@ -0,0 +1,26 @@
|
||||
unit RVFreeReg;
|
||||
interface
|
||||
|
||||
{$I RV_Defs.inc}
|
||||
|
||||
uses
|
||||
Classes,
|
||||
{$IFDEF FPC}
|
||||
LResources,
|
||||
{$ENDIF}
|
||||
RichView, RVStyle, PtblRV;
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
|
||||
{--------------------------------------------------------------}
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('RichView', [TRVStyle, TRichView, TRVPrint]);
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I richview.lrs}
|
||||
|
||||
end.
|
116
components/richview/rvlazintf.pas
Normal file
116
components/richview/rvlazintf.pas
Normal file
@ -0,0 +1,116 @@
|
||||
unit RVLazIntf;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses Types, LCLType, LMessages;
|
||||
|
||||
type
|
||||
TWMSize = TLMSize;
|
||||
TWMEraseBkgnd = TLMEraseBkgnd;
|
||||
TMessage = TLMessage;
|
||||
TSize = Types.TSize;
|
||||
TWMHScroll = TLMHScroll;
|
||||
TWMVScroll = TLMVScroll;
|
||||
TWMKeyDown = TLMKeyDown;
|
||||
TWMGetDlgCode = TLMNoParams;
|
||||
|
||||
|
||||
const
|
||||
WM_SIZE = LM_SIZE;
|
||||
WM_ERASEBKGND = LM_ERASEBKGND;
|
||||
WM_HSCROLL = LM_HSCROLL;
|
||||
WM_VSCROLL = LM_VSCROLL;
|
||||
WM_KEYDOWN = LM_KEYDOWN;
|
||||
WM_GETDLGCODE = LM_GETDLGCODE;
|
||||
CM_MOUSELEAVE = $B000+20;
|
||||
|
||||
// todo:
|
||||
// - this should go to TWidgetset.GetTextExtentExPoint
|
||||
// lets keep it here by now
|
||||
// - merge warning message in TWidgetset.GetTextExtentExPoint
|
||||
// about
|
||||
function MyGetTextExtentExPoint(DC:HDC; Str:PChar; Count,MaxWidth:Integer;
|
||||
AMax: PInteger; PartialWidths:PInteger; var sz: TSize): boolean;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
uses LCLIntf;
|
||||
|
||||
|
||||
function MyGetTextExtentExPoint(DC:HDC; Str:PChar; Count,MaxWidth:Integer;
|
||||
AMax: PInteger; PartialWidths:PInteger; var sz: TSize): boolean;
|
||||
var
|
||||
TestCount: Integer;
|
||||
TestSize : TSize;
|
||||
Increment: Integer;
|
||||
|
||||
function CalcTestSize: boolean;
|
||||
begin
|
||||
result := GetTextExtentPoint(DC,Str,TestCount,TestSize);
|
||||
end;
|
||||
|
||||
procedure Report;
|
||||
begin
|
||||
GetTextExtentExPoint(DC, Str, Count, MaxWidth, @TestCount, nil, TestSize);
|
||||
if (TestCount<>AMax^) or (TestSize.Cx<>Sz.Cx) then begin
|
||||
WriteLn('------> Diferencia');
|
||||
WriteLn(' AMax^=',AMax^, ' Sz.Cx=',Sz.Cx);
|
||||
WriteLn('TestCount=',TestCount,' TestSize.Cx=',testSize.Cx);
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
TestCount := Count;
|
||||
|
||||
result := CalcTestSize;
|
||||
if not result then
|
||||
exit;
|
||||
|
||||
Sz := TestSize;
|
||||
AMax^ := TestCount;
|
||||
|
||||
if (TestSize.Cx=0) or (TestSize.cx<MaxWidth) then begin
|
||||
//Report;
|
||||
exit;
|
||||
end;
|
||||
|
||||
TestCount := (MaxWidth * TestCount) div TestSize.Cx;
|
||||
|
||||
Result := CalcTestSize;
|
||||
if not result then
|
||||
exit;
|
||||
|
||||
AMax^ := TestCount;
|
||||
|
||||
if TestSize.cx<MaxWidth then Increment:=1 else
|
||||
if TestSize.cx>MaxWidth then Increment:=-1
|
||||
else Increment:=0;
|
||||
|
||||
while ((Increment>0)and(TestCount<Count)) or
|
||||
((Increment<0)and(TestCount>0))
|
||||
do begin
|
||||
Inc(TestCount, Increment);
|
||||
result := CalcTestSize;
|
||||
|
||||
if not Result or
|
||||
((Increment>0)and(TestSize.cx>MaxWidth))
|
||||
then
|
||||
// no valid or old AMax was correct
|
||||
break;
|
||||
|
||||
AMax^ := TestCount;
|
||||
|
||||
if ((Increment<0)and(TestSize.cx<=MaxWidth))
|
||||
then
|
||||
// AMax just become correct
|
||||
break;
|
||||
end;
|
||||
//Report;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
323
components/richview/rvscroll.pas
Normal file
323
components/richview/rvscroll.pas
Normal file
@ -0,0 +1,323 @@
|
||||
unit RVScroll;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF FPC}
|
||||
RVLazIntf, LCLType, LCLIntf,
|
||||
{$ELSE}
|
||||
Windows, Messages,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Forms, Controls, Graphics;
|
||||
|
||||
type
|
||||
{ TRVScroller }
|
||||
|
||||
TRVScroller = class(TCustomControl)
|
||||
private
|
||||
FTracking: Boolean;
|
||||
FFullRedraw: Boolean;
|
||||
FVScrollVisible: Boolean;
|
||||
FOnVScrolled: TNotifyEvent;
|
||||
function GetVScrollPos: Integer;
|
||||
procedure SetVScrollPos(Pos: Integer);
|
||||
function GetVScrollMax: Integer;
|
||||
procedure SetVScrollVisible(vis: Boolean);
|
||||
protected
|
||||
SmallStep, HPos, VPos, XSize, YSize: Integer;
|
||||
procedure CreateParams(var Params: TCreateParams); //override;
|
||||
procedure CreateWnd; override;
|
||||
procedure UpdateScrollBars(XS, YS: Integer);
|
||||
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
|
||||
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
|
||||
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
|
||||
procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
|
||||
procedure SetVPos(p: Integer);
|
||||
procedure SetHPos(p: Integer);
|
||||
procedure Paint; override;
|
||||
procedure ScrollChildren(dx, dy: Integer);
|
||||
procedure UpdateChildren;
|
||||
property FullRedraw: Boolean read FFullRedraw write FFullRedraw;
|
||||
public
|
||||
{ Public declarations }
|
||||
constructor Create(AOwner: TComponent);override;
|
||||
procedure EraseBackground(DC: HDC); override;
|
||||
procedure ScrollTo(y: Integer);
|
||||
property VScrollPos: Integer read GetVScrollPos write SetVScrollPos;
|
||||
property VScrollMax: Integer read GetVScrollMax;
|
||||
published
|
||||
{ Published declarations }
|
||||
property Visible;
|
||||
property TabStop;
|
||||
property TabOrder;
|
||||
property Align;
|
||||
property HelpContext;
|
||||
property Tracking: Boolean read FTracking write FTracking;
|
||||
property VScrollVisible: Boolean read FVScrollVisible write SetVScrollVisible;
|
||||
property OnVScrolled: TNotifyEvent read FOnVScrolled write FOnVScrolled;
|
||||
end;
|
||||
|
||||
procedure Tag2Y(AControl: TControl);
|
||||
|
||||
implementation
|
||||
{------------------------------------------------------}
|
||||
procedure Tag2Y(AControl: TControl);
|
||||
begin
|
||||
if AControl.Tag>10000 then
|
||||
AControl.Top := 10000
|
||||
else
|
||||
if AControl.Tag<-10000 then
|
||||
AControl.Top := -10000
|
||||
else
|
||||
AControl.Top := AControl.Tag;
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
constructor TRVScroller.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
TabStop := True;
|
||||
FTracking := True;
|
||||
FFullRedraw := False;
|
||||
FVScrollVisible := True;
|
||||
end;
|
||||
|
||||
procedure TRVScroller.EraseBackground(DC: HDC);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.CreateParams(var Params: TCreateParams);
|
||||
begin
|
||||
//inherited CreateParams(Params); //CreateWindow
|
||||
Params.Style := Params.Style or WS_CLIPCHILDREN or WS_HSCROLL or WS_VSCROLL;
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.CreateWnd;
|
||||
begin
|
||||
inherited CreateWnd;
|
||||
SmallStep := 10;
|
||||
VPos := 0;
|
||||
HPos := 0;
|
||||
UpdateScrollBars(ClientWidth, (ClientHeight div SmallStep));
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.UpdateScrollBars(XS, YS: Integer);
|
||||
var
|
||||
ScrollInfo: TScrollInfo;
|
||||
begin
|
||||
XSize := XS;
|
||||
YSize := YS;
|
||||
ScrollInfo.cbSize := SizeOf(ScrollInfo);
|
||||
ScrollInfo.fMask := SIF_ALL;
|
||||
ScrollInfo.nMin := 0;
|
||||
ScrollInfo.nPage := ClientHeight div SmallStep;
|
||||
ScrollInfo.nMax := YSize;
|
||||
ScrollInfo.nPos := VPos;
|
||||
ScrollInfo.nTrackPos := 0;
|
||||
SetScrollInfo(Handle, SB_VERT, ScrollInfo, True);
|
||||
if not FVScrollVisible then
|
||||
ShowScrollBar(Handle, SB_VERT, FVScrollVisible);
|
||||
|
||||
ScrollInfo.fMask := SIF_ALL;
|
||||
ScrollInfo.nMin := 0;
|
||||
ScrollInfo.nMax := XSize-1;
|
||||
ScrollInfo.nPage := ClientWidth;
|
||||
ScrollInfo.nPos := VPos;
|
||||
ScrollInfo.nTrackPos := 0;
|
||||
SetScrollInfo(Handle, SB_HORZ, ScrollInfo, True);
|
||||
//UpdateChildren;
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.UpdateChildren;
|
||||
var i: Integer;
|
||||
begin
|
||||
for i:=0 to ControlCount-1 do
|
||||
Tag2Y(Controls[i]);
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.ScrollChildren(dx, dy: Integer);
|
||||
var i: Integer;
|
||||
begin
|
||||
if (dx=0) and (dy=0) then exit;
|
||||
for i:=0 to ControlCount-1 do begin
|
||||
if dy<>0 then begin
|
||||
Controls[i].Tag := Controls[i].Tag+dy;
|
||||
Tag2Y(Controls[i]);
|
||||
end;
|
||||
if dx<>0 then Controls[i].Left := Controls[i].Left + dx;
|
||||
end
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.WMHScroll(var Message: TWMHScroll);
|
||||
begin
|
||||
with Message do
|
||||
case ScrollCode of
|
||||
SB_LINEUP: SetHPos(HPos - SmallStep);
|
||||
SB_LINEDOWN: SetHPos(HPos + SmallStep);
|
||||
SB_PAGEUP: SetHPos(HPos-10*SmallStep);
|
||||
SB_PAGEDOWN: SetHPos(HPos+10*SmallStep);
|
||||
SB_THUMBPOSITION: SetHPos(Pos);
|
||||
SB_THUMBTRACK: if FTracking then SetHPos(Pos);
|
||||
SB_TOP: SetHPos(0);
|
||||
SB_BOTTOM: SetHPos(XSize);
|
||||
end;
|
||||
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.WMVScroll(var Message: TWMVScroll);
|
||||
begin
|
||||
with Message do
|
||||
case ScrollCode of
|
||||
SB_LINEUP: SetVPos(VPos - 1);
|
||||
SB_LINEDOWN: SetVPos(VPos + 1);
|
||||
SB_PAGEUP: SetVPos(VPos-10);
|
||||
SB_PAGEDOWN: SetVPos(VPos+10);
|
||||
SB_THUMBPOSITION: SetVPos(Pos);
|
||||
SB_THUMBTRACK: if FTracking then SetVPos(Pos);
|
||||
SB_TOP: SetVPos(0);
|
||||
SB_BOTTOM: SetVPos(YSize);
|
||||
end;
|
||||
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.WMKeyDown(var Message: TWMKeyDown);
|
||||
var vScrollNotify, hScrollNotify: Integer;
|
||||
begin
|
||||
vScrollNotify := -1;
|
||||
hScrollNotify := -1;
|
||||
with Message do
|
||||
case CharCode of
|
||||
VK_UP:
|
||||
vScrollNotify := SB_LINEUP;
|
||||
VK_PRIOR:
|
||||
vScrollNotify := SB_PAGEUP;
|
||||
VK_NEXT:
|
||||
vScrollNotify := SB_PAGEDOWN;
|
||||
VK_DOWN:
|
||||
vScrollNotify := SB_LINEDOWN;
|
||||
VK_HOME:
|
||||
vScrollNotify := SB_TOP;
|
||||
VK_END:
|
||||
vScrollNotify := SB_BOTTOM;
|
||||
VK_LEFT:
|
||||
hScrollNotify := SB_LINELEFT;
|
||||
VK_RIGHT:
|
||||
hScrollNotify := SB_LINERIGHT;
|
||||
end;
|
||||
if (vScrollNotify <> -1) then
|
||||
Perform(WM_VSCROLL, vScrollNotify, 0);
|
||||
if (hScrollNotify <> -1) then
|
||||
Perform(WM_HSCROLL, hScrollNotify, 0);
|
||||
{$IFDEF FPC}
|
||||
inherited WMKeyDown(Message);
|
||||
{$ELSE}
|
||||
inherited;
|
||||
{$ENDIF}
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.SetVPos(p: Integer);
|
||||
var ScrollInfo: TScrollInfo;
|
||||
oldPos: Integer;
|
||||
r: TRect;
|
||||
begin
|
||||
OldPos := VPos;
|
||||
VPos := p;
|
||||
ScrollInfo.cbSize := SizeOf(ScrollInfo);
|
||||
ScrollInfo.nPos := VPos;
|
||||
ScrollInfo.fMask := SIF_POS;
|
||||
SetScrollInfo(Handle, SB_VERT, ScrollInfo, True);
|
||||
GetScrollInfo(Handle, SB_VERT, ScrollInfo);
|
||||
VPos := ScrollInfo.nPos;
|
||||
r := ClientRect;
|
||||
if OldPos-VPos <> 0 then begin
|
||||
if FFullRedraw then begin
|
||||
ScrollChildren(0, (OldPos-VPos)*SmallStep);
|
||||
Refresh;
|
||||
end
|
||||
else begin
|
||||
{$IFDEF MSWINDOWS}
|
||||
ScrollWindowEx(Handle, 0, (OldPos-VPos)*SmallStep, nil, @r, 0, nil, SW_INVALIDATE {or
|
||||
SW_SCROLLCHILDREN});
|
||||
{$ELSE}
|
||||
Invalidate;
|
||||
{$ENDIF}
|
||||
ScrollChildren(0, (OldPos-VPos)*SmallStep);
|
||||
end;
|
||||
if Assigned(FOnVScrolled) then FOnVScrolled(Self);
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.SetHPos(p: Integer);
|
||||
var ScrollInfo: TScrollInfo;
|
||||
oldPos: Integer;
|
||||
r: TRect;
|
||||
begin
|
||||
OldPos := HPos;
|
||||
HPos := p;
|
||||
ScrollInfo.cbSize := SizeOf(ScrollInfo);
|
||||
ScrollInfo.nPos := HPos;
|
||||
ScrollInfo.fMask := SIF_POS;
|
||||
SetScrollInfo(Handle, SB_HORZ, ScrollInfo, True);
|
||||
GetScrollInfo(Handle, SB_HORZ, ScrollInfo);
|
||||
HPos := ScrollInfo.nPos;
|
||||
r := ClientRect;
|
||||
if OldPos-HPos <> 0 then begin
|
||||
if FFullRedraw then begin
|
||||
ScrollChildren((OldPos-HPos), 0);
|
||||
Refresh;
|
||||
end
|
||||
else begin
|
||||
ScrollWindowEx(Handle, (OldPos-HPos), 0, nil, @r, 0, nil, SW_INVALIDATE{or
|
||||
SW_SCROLLCHILDREN});
|
||||
ScrollChildren((OldPos-HPos), 0);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.Paint;
|
||||
var i: Integer;
|
||||
begin
|
||||
Canvas.Font.Color := clRed;
|
||||
Canvas.Font.Size := 2;
|
||||
Canvas.FillRect(Canvas.ClipRect);
|
||||
for i := Canvas.ClipRect.Top div SmallStep -1 to Canvas.ClipRect.Bottom div SmallStep +1 do
|
||||
Canvas.TextOut(-HPos, i*SmallStep, IntToStr(i+VPos));
|
||||
end;
|
||||
{------------------------------------------------------}
|
||||
procedure TRVScroller.ScrollTo(y: Integer);
|
||||
begin
|
||||
SetVPos(y div SmallStep);
|
||||
end;
|
||||
{-------------------------------------------------------}
|
||||
function TRVScroller.GetVScrollPos: Integer;
|
||||
begin
|
||||
GetVScrollPos := VPos;
|
||||
end;
|
||||
{-------------------------------------------------------}
|
||||
procedure TRVScroller.SetVScrollPos(Pos: Integer);
|
||||
begin
|
||||
SetVPos(Pos);
|
||||
end;
|
||||
{-------------------------------------------------------}
|
||||
function TRVScroller.GetVScrollMax: Integer;
|
||||
var ScrollInfo: TScrollInfo;
|
||||
begin
|
||||
ScrollInfo.cbSize := SizeOf(ScrollInfo);
|
||||
ScrollInfo.nPos := HPos;
|
||||
ScrollInfo.fMask := SIF_RANGE or SIF_PAGE;
|
||||
GetScrollInfo(Handle, SB_VERT, ScrollInfo);
|
||||
GetVScrollMax := ScrollInfo.nMax - Integer(ScrollInfo.nPage-1);
|
||||
end;
|
||||
{-------------------------------------------------------}
|
||||
procedure TRVScroller.SetVScrollVisible(vis: Boolean);
|
||||
begin
|
||||
FVScrollVisible := vis;
|
||||
ShowScrollBar(Handle, SB_VERT, vis);
|
||||
end;
|
||||
{-------------------------------------------------------}
|
||||
procedure TRVScroller.WMGetDlgCode(var Message: TWMGetDlgCode);
|
||||
begin
|
||||
Message.Result := DLGC_WANTARROWS;
|
||||
end;
|
||||
end.
|
362
components/richview/rvstyle.pas
Normal file
362
components/richview/rvstyle.pas
Normal file
@ -0,0 +1,362 @@
|
||||
unit RVStyle;
|
||||
|
||||
{$mode Delphi}
|
||||
|
||||
interface
|
||||
{.$R RVStyle}
|
||||
uses
|
||||
{$IFDEF FPC}
|
||||
LCLType,
|
||||
{$ELSE}
|
||||
Windows, Messages,
|
||||
{$ENDIF}
|
||||
SysUtils, Classes, Graphics, Controls, Forms, {LibConst,}
|
||||
IniFiles;
|
||||
const
|
||||
crJump = 101;
|
||||
|
||||
rvsNormal = 0;
|
||||
rvsHeading = 1;
|
||||
rvsSubheading = 2;
|
||||
rvsKeyword = 3;
|
||||
rvsJump1 = 4;
|
||||
rvsJump2 = 5;
|
||||
|
||||
LAST_DEFAULT_STYLE_NO = rvsJump2;
|
||||
|
||||
{$I RV_Defs.inc}
|
||||
|
||||
type
|
||||
{--------------------------------------------------------------}
|
||||
TFontInfo = class(TCollectionItem)
|
||||
private
|
||||
{ Private declarations }
|
||||
FFontName: TFontName;
|
||||
FSize: Integer;
|
||||
FColor: TColor;
|
||||
FStyle: TFontStyles;
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
FCharSet: TFontCharSet;
|
||||
{$ENDIF}
|
||||
public
|
||||
{ Public declarations }
|
||||
constructor Create(Collection: TCollection); override;
|
||||
procedure Assign(Source: TPersistent); override;
|
||||
published
|
||||
{ Published declarations }
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
property CharSet: TFontCharSet read FCharSet write FCharSet;
|
||||
{$ENDIF}
|
||||
property FontName: TFontName read FFontNAme write FFontName;
|
||||
property Size: Integer read FSize write FSize;
|
||||
property Color: TColor read FColor write FColor;
|
||||
property Style: TFontStyles read FStyle write FStyle;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
TFontInfos = class (TCollection)
|
||||
private
|
||||
function GetItem(Index: Integer): TFontInfo;
|
||||
procedure SetItem(Index: Integer; Value: TFontInfo);
|
||||
public
|
||||
constructor Create;
|
||||
function Add: TFontInfo;
|
||||
procedure Delete(Index: Integer);
|
||||
procedure AddFont(Name: TFontName; Size: Integer;
|
||||
Color: TColor; Style:TFontStyles);
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
procedure AddFontEx(Name: TFontName; Size: Integer;
|
||||
Color: TColor; Style:TFontStyles;
|
||||
CharSet: TFontCharSet);
|
||||
{$ENDIF}
|
||||
property Items[Index: Integer]: TFontInfo
|
||||
read GetItem write SetItem; default;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
TRVStyle = class(TComponent)
|
||||
private
|
||||
{ Private declarations }
|
||||
FColor, FHoverColor, FSelColor, FSelTextColor: TColor;
|
||||
FCursor: TCursor;
|
||||
FTextStyles: TFontInfos;
|
||||
FFullRedraw: Boolean;
|
||||
function GetTextStyle(Index: Integer): TFontInfo;
|
||||
procedure SetTextStyles(ATextStyles: TFontInfos);
|
||||
protected
|
||||
{ Protected declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
function AddTextStyle: Integer; { returns index of new style }
|
||||
procedure DeleteTextStyle(Index: Integer); { removes NONSTANDARD text style}
|
||||
procedure SaveINI(filename, section: String); {WARNING: before saving all section will be removed}
|
||||
procedure LoadINI(filename, section: String);
|
||||
published
|
||||
{ Published declarations }
|
||||
property TextStyles: TFontInfos read FTextStyles write SetTextStyles;
|
||||
property JumpCursor: TCursor read FCursor write FCursor;
|
||||
property Color: TColor read FColor write FColor;
|
||||
property HoverColor: TColor read FHoverColor write FHoverColor;
|
||||
property FullRedraw: Boolean read FFullRedraw write FFullRedraw;
|
||||
property SelColor: TColor read FSelColor write FSelColor;
|
||||
property SelTextColor: TColor read FSelTextColor write FSelTextColor;
|
||||
end;
|
||||
|
||||
implementation
|
||||
{--------------------------------------------------------------}
|
||||
{ TFontInfo }
|
||||
{--------------------------------------------------------------}
|
||||
constructor TFontInfo.Create(Collection: TCollection);
|
||||
begin
|
||||
inherited Create(Collection);
|
||||
FFontName := 'Arial';
|
||||
FSize := 10;
|
||||
FColor := clWindowText;
|
||||
FStyle := [];
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
FCharSet := DEFAULT_CHARSET;
|
||||
{$ENDIF}
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
procedure TFontInfo.Assign(Source: TPersistent);
|
||||
begin
|
||||
if Source is TFontInfo then begin
|
||||
FFontName := TFontInfo(Source).FFontName;
|
||||
FSize := TFontInfo(Source).FSize;
|
||||
FColor := TFontInfo(Source).FColor;
|
||||
FStyle := TFontInfo(Source).FStyle;
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
FCharSet := TFontInfo(Source).FCharSet;
|
||||
{$ENDIF}
|
||||
end
|
||||
else
|
||||
inherited Assign(Source);
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
{ TFontInfos }
|
||||
{--------------------------------------------------------------}
|
||||
constructor TFontInfos.Create;
|
||||
begin
|
||||
inherited Create(TFontInfo);
|
||||
end;
|
||||
{-------------------------------------------------------------}
|
||||
function TFontInfos.Add: TFontInfo;
|
||||
begin
|
||||
Result := TFontInfo(inherited Add);
|
||||
end;
|
||||
{-------------------------------------------------------------}
|
||||
procedure TFontInfos.AddFont(Name: TFontName; Size: Integer;
|
||||
Color: TColor; Style:TFontStyles);
|
||||
var v: TFontInfo;
|
||||
begin
|
||||
v := Add;
|
||||
v.FontName := Name;
|
||||
v.Size := Size;
|
||||
v.Color := Color;
|
||||
v.Style := Style;
|
||||
end;
|
||||
{-------------------------------------------------------------}
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
procedure TFontInfos.AddFontEx(Name: TFontName; Size: Integer;
|
||||
Color: TColor; Style:TFontStyles;
|
||||
CharSet: TFontCharSet);
|
||||
var v: TFontInfo;
|
||||
begin
|
||||
v := Add;
|
||||
v.FontName := Name;
|
||||
v.Size := Size;
|
||||
v.Color := Color;
|
||||
v.Style := Style;
|
||||
v.CharSet := CharSet;
|
||||
end;
|
||||
{$ENDIF}
|
||||
{-------------------------------------------------------------}
|
||||
function TFontInfos.GetItem(Index: Integer): TFontInfo;
|
||||
begin
|
||||
Result := TFontInfo(inherited GetItem(Index));
|
||||
end;
|
||||
{-------------------------------------------------------------}
|
||||
procedure TFontInfos.SetItem(Index: Integer; Value: TFontInfo);
|
||||
begin
|
||||
inherited SetItem(Index, Value);
|
||||
end;
|
||||
{-------------------------------------------------------------}
|
||||
procedure TFontInfos.Delete(Index: Integer);
|
||||
begin
|
||||
if (Index<=LAST_DEFAULT_STYLE_NO) or (Index>=Count) then exit;
|
||||
Items[Index].Free;
|
||||
{
|
||||
c:=TFontInfos.Create;
|
||||
c.Assign(Self);
|
||||
Clear;
|
||||
for i:=0 to c.Count-1 do
|
||||
if i<>Index then
|
||||
AddFont(c[i].FontName, c[i].Size, c[i].Color, c[i].Style);
|
||||
c.Free;
|
||||
}
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
{ TRVStyle }
|
||||
{--------------------------------------------------------------}
|
||||
constructor TRVStyle.Create(AOwner: TComponent);
|
||||
var fi: TFontInfo;
|
||||
i : Integer;
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
FFullRedraw := False;
|
||||
{$IFDEF FPC}
|
||||
Screen.Cursors[crJump] := LoadCursorFromLazarusREsource('RV_JUMP_CURSOR');
|
||||
{$ELSE}
|
||||
Screen.Cursors[crJump] := LoadCursor(hInstance,'RV_JUMP_CURSOR');
|
||||
{$ENDIF}
|
||||
FCursor := crJump;
|
||||
FColor := clWindow;
|
||||
FHoverColor := clNone;
|
||||
FSelColor := clHighlight;
|
||||
FSelTextColor := clHighlightText;
|
||||
FTextStyles := TFontInfos.Create;
|
||||
for i := 0 to LAST_DEFAULT_STYLE_NO do begin
|
||||
fi := FTextStyles.Add;
|
||||
case i of
|
||||
rvsHeading:
|
||||
begin
|
||||
fi.Style := fi.Style + [fsBold];
|
||||
fi.Color := clBlue;
|
||||
end;
|
||||
rvsSubheading:
|
||||
begin
|
||||
fi.Style := fi.Style + [fsBold];
|
||||
fi.Color := clNavy;
|
||||
end;
|
||||
rvsKeyword:
|
||||
begin
|
||||
fi.Style := fi.Style + [fsItalic];
|
||||
fi.Color := clMaroon;
|
||||
end;
|
||||
rvsJump1, rvsJump2:
|
||||
begin
|
||||
fi.Style := fi.Style + [fsUnderline];
|
||||
fi.Color := clGreen;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
destructor TRVStyle.Destroy;
|
||||
begin
|
||||
FTextStyles.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
function TRVStyle.GetTextStyle(Index: Integer): TFontInfo;
|
||||
begin
|
||||
GetTextStyle := FTextStyles[Index];
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
procedure TRVStyle.SetTextStyles(ATextStyles: TFontInfos);
|
||||
begin
|
||||
FTextStyles.Assign(ATextStyles);
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
function TRVStyle.AddTextStyle: Integer;
|
||||
begin
|
||||
FTextStyles.Add;
|
||||
AddTextStyle := FTextStyles.Count-1;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
procedure TRVStyle.DeleteTextStyle(Index: Integer);
|
||||
begin
|
||||
FTextStyles.Delete(Index);
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
procedure TRVStyle.SaveINI(filename, section: String);
|
||||
var i: Integer;
|
||||
ini: TIniFile;
|
||||
s : String;
|
||||
begin
|
||||
ini := nil;
|
||||
try
|
||||
ini := TIniFile.Create(filename);
|
||||
ini.EraseSection(section);
|
||||
ini.WriteInteger(section,'Color',FColor);
|
||||
ini.WriteInteger(section,'HoverColor',FHoverColor);
|
||||
ini.WriteInteger(section,'SelColor',FSelColor);
|
||||
ini.WriteInteger(section,'SelTextColor',FSelTextColor);
|
||||
ini.WriteInteger(section,'JumpCursor',FCursor);
|
||||
ini.WriteInteger(section,'FontsCount',FTextStyles.Count);
|
||||
for i:=0 to FTextStyles.Count-1 do
|
||||
begin
|
||||
ini.WriteString(section,'FontName'+IntToStr(i),FTextStyles[i].FontName);
|
||||
ini.WriteInteger(section,'FontSize'+IntToStr(i),FTextStyles[i].Size);
|
||||
ini.WriteInteger(section,'FontColor'+IntToStr(i),FTextStyles[i].Color);
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
ini.WriteInteger(section,'FontCharSet'+IntToStr(i),FTextStyles[i].CharSet);
|
||||
{$ENDIF}
|
||||
if fsBold in FTextStyles[i].Style then
|
||||
s := 'Yes'
|
||||
else
|
||||
s := 'No';
|
||||
ini.WriteString(section,'FontBold'+IntToStr(i),s);
|
||||
if fsUnderline in FTextStyles[i].Style then
|
||||
s := 'Yes'
|
||||
else
|
||||
s := 'No';
|
||||
ini.WriteString(section,'FontUnderline'+IntToStr(i),s);
|
||||
if fsStrikeOut in FTextStyles[i].Style then
|
||||
s := 'Yes'
|
||||
else
|
||||
s := 'No';
|
||||
ini.WriteString(section,'FontStrikeOut'+IntToStr(i),s);
|
||||
if fsItalic in FTextStyles[i].Style then
|
||||
s := 'Yes'
|
||||
else
|
||||
s := 'No';
|
||||
ini.WriteString(section,'FontItalic'+IntToStr(i),s);
|
||||
end;
|
||||
except
|
||||
on Exception do ;
|
||||
end;
|
||||
ini.Free;
|
||||
end;
|
||||
{--------------------------------------------------------------}
|
||||
procedure TRVStyle.LoadINI(filename, section: String);
|
||||
var i, fontcounts: Integer;
|
||||
ini: TIniFile;
|
||||
begin
|
||||
ini := nil;
|
||||
try
|
||||
ini := TIniFile.Create(filename);
|
||||
FColor := ini.ReadInteger(section, 'Color', clWindow);
|
||||
FHoverColor := ini.ReadInteger(section, 'HoverColor', clNone);
|
||||
FSelColor := ini.ReadInteger(section, 'SelColor', clHighlight);
|
||||
FSelTextColor := ini.ReadInteger(section, 'SelTextColor', clHighlightText);
|
||||
FCursor := ini.ReadInteger(section, 'JumpCursor', crJump);
|
||||
fontcounts := ini.ReadInteger(section, 'FontsCount', LAST_DEFAULT_STYLE_NO+1);
|
||||
if fontcounts<LAST_DEFAULT_STYLE_NO+1 then fontcounts := LAST_DEFAULT_STYLE_NO+1;
|
||||
while FTextStyles.Count > fontcounts do DeleteTextStyle(FTextStyles.Count-1);
|
||||
while FTextStyles.Count < fontcounts do AddTextStyle;
|
||||
for i:=0 to fontcounts-1 do
|
||||
begin
|
||||
FTextStyles[i].FontName := ini.ReadString(section,'FontName'+IntToStr(i), 'Arial');
|
||||
FTextStyles[i].Size := ini.ReadInteger(section,'FontSize'+IntToStr(i), 10);
|
||||
FTextStyles[i].Color := ini.ReadInteger(section,'FontColor'+IntToStr(i), clWindowText);
|
||||
{$IFDEF RICHVIEWDEF3}
|
||||
FTextStyles[i].CharSet := ini.ReadInteger(section,'FontCharSet'+IntToStr(i), DEFAULT_CHARSET);
|
||||
{$ENDIF}
|
||||
FTextStyles[i].Style := [];
|
||||
if ini.ReadString(section,'FontBold'+IntToStr(i),'No')='Yes' then
|
||||
FTextStyles[i].Style := FTextStyles[i].Style + [fsBold];
|
||||
if ini.ReadString(section,'FontUnderline'+IntToStr(i),'No')='Yes' then
|
||||
FTextStyles[i].Style := FTextStyles[i].Style + [fsUnderline];
|
||||
if ini.ReadString(section,'FontStrikeOut'+IntToStr(i),'No')='Yes' then
|
||||
FTextStyles[i].Style := FTextStyles[i].Style + [fsStrikeOut];
|
||||
if ini.ReadString(section,'FontItalic'+IntToStr(i),'No')='Yes' then
|
||||
FTextStyles[i].Style := FTextStyles[i].Style + [fsItalic];
|
||||
end;
|
||||
except
|
||||
on Exception do ;
|
||||
end;
|
||||
ini.Free;
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user