Subversion Repositories general

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1076 → Rev 1077

/Delphi/akPi/Setup/akpi_st.gpi
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Setup/short_description.txt
0,0 → 1,0
Program to calculate Pi. Nothing else
/Delphi/akPi/Setup/description.txt
0,0 → 1,5
Program to calculate Pi.
It doesn't have any practical usage :)
Maybe just to test computer speed or learn x86 assembler.
Sure calculates right up to 100000 digits.
Use it and its source code as you want.
/Delphi/akPi/Source/CalcUnit.pas
0,0 → 1,172
// akPi v2.2
// Copyright (c) 1997-98 Anatoli Klassen
 
unit CalcUnit;
 
interface
 
uses
Classes, Graphics, ExtCtrls, ComCtrls, LongIntegerUnit, Dialogs;
 
type
TCalc = class(TThread)
private
FRes : PChar;
FStatusBar : TStatusBar;
FNDigit : longint;
protected
procedure ShowProgress(R : real);
procedure Execute; override;
public
constructor Create(SB : TStatusBar; NDigit : longint; var Res : PChar);
end;
 
implementation
 
uses SysUtils;
 
procedure TCalc.ShowProgress(R : real);
begin
if R > 100 then R := 100;
FStatusBar.SimpleText := Format('%5.1f%s', [R, '% Done']);
end;
 
procedure TCalc.Execute;
const
NewLine = #13#10' ';
 
var
Pi, X1, X2, X3 : PLongInteger;
i, j, n, m, k1, k2 : longint;
All : real;
OldDecSeparator : char;
 
begin
OldDecSeparator := DecimalSeparator;
DecimalSeparator := '.';
 
NumDWord := Round((FNDigit + 40) / 2.3) div 4;
All := FNDigit * 1.47;
k1 := 0; k2 := 0;
 
GetMem(Pi, NumDWord * 4);
GetMem(X1, NumDWord * 4);
GetMem(X2, NumDWord * 4);
GetMem(X3, NumDWord * 4);
 
LetLong(X1^, 0);
LetLong(X2^, 1);
j := 0;
for i := 1 to FNDigit do begin
ShowProgress(i / All * 100);
if i = 1 then DivLongLim(X2^, 5, j)
else DivLongLim(X2^, 5*5, j);
 
MovLongLim(X2^, X3^, j);
DivLongLim(X3^, 2 * i - 1, j);
while (NumDWord - j div 4 - 1 > 0)
and (X2^[NumDWord - j div 4 - 1] = 0) do Inc(j, 4);
if NumDWord - j div 4 - 1 <= 0 then Break;
 
if i mod 2 = 1 then AddLongLim(X1^, X3^, j)
else SubLongLim(X1^, X3^, j);
 
if Terminated then begin
FreeMem(Pi, NumDWord * 4);
FreeMem(X1, NumDWord * 4);
FreeMem(X2, NumDWord * 4);
FreeMem(X3, NumDWord * 4);
Exit;
end;
k1 := i;
end;
MovLong(X1^, Pi^);
MulLong(Pi^, 16);
 
LetLong(X1^, 0);
LetLong(X2^, 1);
j := 0;
for i := 1 to FNDigit do begin
ShowProgress((i + k1) / All * 100);
if i = 1 then DivLongLim(X2^, 239, j)
else DivLongLim(X2^, 239*239, j);
 
MovLongLim(X2^, X3^, j);
DivLongLim(X3^, 2 * i - 1, j);
while (NumDWord - j div 4 - 1 > 0)
and (X2^[NumDWord - j div 4 - 1] = 0) do Inc(j, 4);
if NumDWord - j div 4 - 1 <= 0 then Break;
 
if i mod 2 = 1 then AddLongLim(X1^, X3^, j)
else SubLongLim(X1^, X3^, j);
 
if Terminated then begin
FreeMem(Pi, NumDWord * 4);
FreeMem(X1, NumDWord * 4);
FreeMem(X2, NumDWord * 4);
FreeMem(X3, NumDWord * 4);
Exit;
end;
k2 := i;
end;
MulLong(X1^, 4);
SubLong(Pi^, X1^);
 
i := NumDWord;
while (i > 0) and (Pi^[i] = 0) do Dec(i);
 
StrPCopy(FRes, IntToStr(Pi^[i]) + '.');
 
n := 0;
m := 2;
for j := FNDigit + i downto 1 do begin
ShowProgress((n/2 + k1 + k2) / All * 100);
if j <= 0 then Break;
 
Pi^[i] := 0;
MulLongLenLim(Pi^, 10, n div 3);
Inc(n, 1);
 
FRes[m] := Chr(Pi^[i] + Ord('0'));
Inc(m);
 
if n mod 50 = 0 then begin
Move(NewLine, FRes[m], 5);
Inc(m, 5);
end
else
if n mod 10 = 0 then begin
FRes[m] := ' ';
Inc(m);
end;
 
if (n + 2) > FNDigit then Break;
 
if Terminated then begin
FreeMem(Pi, NumDWord * 4);
FreeMem(X1, NumDWord * 4);
FreeMem(X2, NumDWord * 4);
FreeMem(X3, NumDWord * 4);
Exit;
end;
end;
FRes[m] := #0;
 
FreeMem(Pi, NumDWord * 4);
FreeMem(X1, NumDWord * 4);
FreeMem(X2, NumDWord * 4);
FreeMem(X3, NumDWord * 4);
 
DecimalSeparator := OldDecSeparator;
end;
 
constructor TCalc.Create;
begin
FStatusBar := SB;
FNDigit := NDigit + 1;
FRes := Res;
FreeOnTerminate := True;
inherited Create(False);
end;
 
end.
/Delphi/akPi/Source/ShowUnit.dfm
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Source/akpi.dpr
0,0 → 1,32
// akPi v2.2
// Copyright (c) 1997-98 Anatoli Klassen
 
// Program to calculate Pi.
// It doesn't have any practical usage :)
// Maybe just to test computer speed or learn
// x86 assembler.
// Sure calculates right up to 100000 digits
// No guaranties
// Use it and its source code as you want.
 
// Uses formula pi = 16 * arctg(1/5) - 4 * arctg(1/239)
// where arctg x = x - x^3/3 + x^5/5 - x^7/7 + ...
 
program akPi;
 
uses
Forms,
ShowUnit in 'ShowUnit.pas' {ShowForm},
CalcUnit in 'CalcUnit.pas',
LongIntegerUnit in 'LongIntegerUnit.pas',
AboutUnit in 'AboutUnit.pas' {AboutBox};
 
{$R *.RES}
 
begin
Application.Initialize;
Application.Title := 'akPi';
Application.CreateForm(TShowForm, ShowForm);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.
/Delphi/akPi/Source/akpi.dof
0,0 → 1,84
[FileVersion]
Version=6.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=0
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=..\Exe
UnitOutputDir=..\Units
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=..\Units
Packages=VCLX30;VCL30;VCLDB30;VCLDBX30;INETDB30;INET30;VCLSMP30;QRPT30;TEEUI30;TEEDB30;TEE30;DSS30;IBEVNT30
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Version Info]
IncludeVerInfo=1
AutoIncBuild=1
MajorVer=2
MinorVer=2
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=Anatoli Klassen
FileDescription=akPi
FileVersion=2.2.0.0
InternalName=akPi
LegalCopyright=(c) 1997-2000 Anatoly Klassen
LegalTrademarks=
OriginalFilename=akpi.exe
ProductName=akPi
ProductVersion=2.2
Comments=freeware
Home Page=www.aksoft.net/progs/akpi
/Delphi/akPi/Source/readme.txt
0,0 → 1,14
There is source code of akPi (for Delphi 5).
You can download the program itself from
 
www.aksoft.net/progs/akpi
 
The program and its source code are provided
"AS IS", no any warranties.
 
You may use this source code in any way,
but please make a reference to me.
 
Feel free to ask me if you have any questions:
 
akpi@aksoft.net
/Delphi/akPi/Source/AboutUnit.pas
0,0 → 1,58
// akPi v2.2
// Copyright (c) 1997-99 Anatoli Klassen
 
unit AboutUnit;
 
interface
 
uses
WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, ShellAPI;
 
type
TAboutBox = class(TForm)
OkButton : TBitBtn;
ProgramIcon : TImage;
ProductName : TLabel;
Version : TLabel;
Copyright : TLabel;
WebLabel: TLabel;
MailLabel: TLabel;
HTMLLabel: TLabel;
MailtoLabel: TLabel;
procedure HTMLLabelClick(Sender: TObject);
procedure MailtoLabelClick(Sender: TObject);
private
public
end;
 
var
AboutBox : TAboutBox;
 
implementation
 
uses SysUtils;
 
{$R *.DFM}
 
procedure TAboutBox.HTMLLabelClick(Sender: TObject);
var
URL : string;
 
begin
if (Sender is TLabel) then begin
URL := (Sender as TLabel).Caption;
if UpperCase(Copy(URL, 1, 7)) <> 'HTTP://' then URL := 'http://' + URL;
 
ShellExecute(0, nil, PChar(URL), nil, nil, 0);
end;
end;
 
procedure TAboutBox.MailtoLabelClick(Sender: TObject);
begin
ShellExecute(0, nil, PChar('mailto:' + MailtoLabel.Caption), nil, nil, 0);
end;
 
end.
 
 
/Delphi/akPi/Source/akpi.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Source/akPi.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Source/AboutUnit.dfm
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Source/LongIntegerUnit.pas
0,0 → 1,332
// akPi v2.2
// Copyright (c) 1997-98 Anatoli Klassen
 
unit LongIntegerUnit;
 
interface
 
const
MaxLongDigit = 100040 div 4;
NumDWord : longint = MaxLongDigit div 4;
 
type
PLongInteger = ^LongInteger;
LongInteger = array[1..MaxLongDigit] of Cardinal;
 
procedure MovLong(var A, B : LongInteger); { B := A }
procedure LetLong(var A : LongInteger; B : longint); { A := B }
procedure AddLong(var A, B : LongInteger); { A := A + B }
procedure SubLong(var A, B : LongInteger); { A := A - B }
procedure MulLong(var A : LongInteger; B : longint); { A := A * B }
procedure DivLong(var A : LongInteger; B : longint); { A := A div B }
 
procedure MovLongLim(var A, B : LongInteger; Lim : longint); { B := A }
procedure AddLongLim(var A, B : LongInteger; Lim : longint); { A := A + B }
procedure SubLongLim(var A, B : LongInteger; Lim : longint); { A := A - B }
procedure MulLongLim(var A : LongInteger; B, Lim : longint); { A := A * B }
procedure DivLongLim(var A : LongInteger; B, Lim : longint); { A := A div B }
 
procedure MulLongLenLim(var A : LongInteger; B, Lim : longint); { A := A * B }
 
// (Lim - in bytes)
 
implementation
 
procedure MovLong(var A, B : LongInteger); { B := A }
asm
PUSHAD
PUSHF
 
MOV ESI,A
MOV EDI,B
 
MOV ECX,NumDWord
CLD
REP MOVSD
 
POPF
POPAD
end;
 
procedure LetLong(var A : LongInteger; B : longint); { A := B }
asm
PUSHAD
PUSHF
MOV EDI,A
 
CLD
MOV ECX,NumDWord
DEC ECX
MOV EAX,0
REP STOSD
 
MOV EAX,B
MOV [EDI],EAX
 
POPF
POPAD
end;
 
procedure AddLong(var A, B : LongInteger); { A := A + B }
asm
PUSHAD
PUSHF
MOV ESI,A
MOV EDI,B
 
MOV ECX,NumDWord
MOV EBX,0
CLC
 
@ADDL:
MOV EAX,[EDI+EBX*4]
ADC [ESI+EBX*4],EAX
INC EBX
DEC ECX
JNZ @ADDL
 
POPF
POPAD
end;
 
procedure SubLong(var A, B : LongInteger); { A := A - B }
asm
PUSHAD
PUSHF
MOV ESI,A
MOV EDI,B
 
MOV ECX,NumDWord
MOV EBX,0
CLC
 
@SUBL:
MOV EAX,[EDI+EBX*4]
SBB [ESI+EBX*4],EAX
INC EBX
DEC ECX
JNZ @SUBL
 
POPF
POPAD
end;
 
procedure MulLong(var A : LongInteger; B : longint); { A := A * B }
asm
PUSHAD
PUSHF
MOV EDI,A
 
MOV ECX,NumDWord
MOV EBX,B
MOV EBP,0
CLD
 
@MULL:
MOV EAX,[EDI]
MUL EBX
ADD EAX,EBP
MOV EBP,EDX
STOSD
DEC ECX
JNZ @MULL
 
POPF
POPAD
end;
 
procedure DivLong(var A : LongInteger; B : longint); { A := A div B }
asm
PUSHAD
PUSHF
MOV EDI,A
MOV EBX,B
 
MOV ECX,NumDWord { EDX := A + NumDWord * 4 - 4 }
MOV EDX,ECX
SHL EDX,2
SUB EDX,4
ADD EDI,EDX
 
MOV EDX,0
STD
 
@DIVL:
MOV EAX,[EDI]
DIV EBX
STOSD
DEC ECX
JNZ @DIVL
CLD
 
POPF
POPAD
end;
 
//===========================================================================
 
procedure MovLongLim; { B := A }
asm
PUSHAD
PUSHF
 
MOV ESI,A
MOV EDI,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
CLD
REP MOVSD
 
POPF
POPAD
end;
 
procedure AddLongLim; { A := A + B }
asm
PUSHAD
PUSHF
MOV ESI,A
MOV EDI,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
MOV EBX,0
CLC
 
@ADDL:
MOV EAX,[EDI+EBX*4]
ADC [ESI+EBX*4],EAX
INC EBX
DEC ECX
JNZ @ADDL
JC @ADDL
 
POPF
POPAD
end;
 
procedure SubLongLim; { A := A - B }
asm
PUSHAD
PUSHF
MOV ESI,A
MOV EDI,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
MOV EBX,0
CLC
 
@SUBL:
MOV EAX,[EDI+EBX*4]
SBB [ESI+EBX*4],EAX
INC EBX
DEC ECX
JNZ @SUBL
JC @SUBL
 
POPF
POPAD
end;
 
procedure MulLongLim; { A := A * B }
asm
PUSHAD
PUSHF
MOV EDI,A
MOV EBX,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
MOV EBP,0
CLD
 
@MULL:
MOV EAX,[EDI]
MUL EBX
ADD EAX,EBP
MOV EBP,EDX
STOSD
DEC ECX
JNZ @MULL
JC @MULL
 
POPF
POPAD
end;
 
procedure DivLongLim; { A := A div B }
asm
PUSHAD
PUSHF
MOV EDI,A
MOV EBX,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
MOV EDX,ECX { EDI := A + NumDWord * 4 - 4 }
SHL EDX,2
SUB EDX,4
ADD EDI,EDX
 
MOV EDX,0
STD
 
@DIVL:
MOV EAX,[EDI]
DIV EBX
STOSD
DEC ECX
JNZ @DIVL
CLD
 
POPF
POPAD
end;
 
//===========================================================================
 
procedure MulLongLenLim; { A := A * B }
asm
PUSHAD
PUSHF
MOV EDI,A
MOV EBX,B
MOV EAX,Lim
SHR EAX,2
 
MOV ECX,NumDWord
SUB ECX,EAX
SHL EAX,2
ADD EDI,EAX
 
MOV EBP,0
CLD
 
@MULL:
MOV EAX,[EDI]
MUL EBX
ADD EAX,EBP
MOV EBP,EDX
STOSD
DEC ECX
JNZ @MULL
JC @MULL
 
POPF
POPAD
end;
 
end.
 
/Delphi/akPi/Source/ShowUnit.pas
0,0 → 1,188
// akPi v2.2
// Copyright (c) 1997-99 Anatoli Klassen
 
unit ShowUnit;
 
interface
 
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, LongIntegerUnit, ExtCtrls, Menus;
 
type
TShowForm = class(TForm)
NumberLabel : TLabel;
NumberEdit : TEdit;
StatusBar : TStatusBar;
StartButton : TButton;
ResultBox : TGroupBox;
CancelButton : TButton;
AboutButton : TButton;
ExitButton : TButton;
ResultPopupMenu : TPopupMenu;
CopyItem : TMenuItem;
CopyAllItem : TMenuItem;
SaveItem : TMenuItem;
BreakLine : TMenuItem;
SaveDialog : TSaveDialog;
ResultText : TRichEdit;
HelpButton: TButton;
procedure StartButtonClick (Sender : TObject);
procedure CancelButtonClick(Sender : TObject);
procedure AboutButtonClick (Sender : TObject);
procedure ExitButtonClick (Sender : TObject);
procedure CopyItemClick (Sender : TObject);
procedure CopyAllItemClick (Sender : TObject);
procedure SaveItemClick (Sender : TObject);
procedure FormCreate(Sender: TObject);
procedure HelpButtonClick(Sender: TObject);
private
CalcThread : TThread;
NDigit : longint;
StartTime : TDateTime;
Canceled : boolean;
Pi : PChar;
FCalcTime : string;
procedure ThreadDone(Sender : TObject);
function CalcTime : string;
procedure ChangeMenuState(State : boolean);
public
end;
 
var
ShowForm : TShowForm;
 
implementation
 
uses CalcUnit, AboutUnit, ClipBrd;
 
{$R *.DFM}
 
procedure TShowForm.ThreadDone(Sender : TObject);
begin
StartButton.Visible := True;
CancelButton.Visible := False;
NumberEdit.Enabled := True;
NumberEdit.SetFocus;
 
if Canceled then StatusBar.SimpleText := 'Calculations is aborted'
else begin
StatusBar.SimpleText := 'Time of calculations: ' + CalcTime;
ResultText.Text := Pi;
FreeMem(Pi, Round(NDigit * 1.5));
ChangeMenuState(True);
end;
end;
 
procedure TShowForm.StartButtonClick(Sender : TObject);
begin
NDigit := StrToIntDef(NumberEdit.Text, 100);
if NDigit < 100 then NDigit := 100;
if NDigit > MaxLongDigit * 4 - 40 then NDigit := MaxLongDigit * 4 - 40;
NumberEdit.Text := IntToStr(NDigit);
 
Canceled := False;
StartTime := Now;
StartButton.Visible := False;
CancelButton.Visible := True;
NumberEdit.Enabled := False;
ChangeMenuState(False);
 
ResultText.Lines.Clear;
 
GetMem(Pi, Round(NDigit * 1.5));
CalcThread := TCalc.Create(StatusBar, NDigit, Pi);
CalcThread.OnTerminate := ThreadDone;
end;
 
procedure TShowForm.CancelButtonClick(Sender : TObject);
begin
Canceled := True;
CalcThread.Terminate;
end;
 
procedure TShowForm.AboutButtonClick(Sender : TObject);
begin
AboutBox.ShowModal;
end;
 
function TShowForm.CalcTime;
var
StopTime : TDateTime;
S : string;
 
begin
StopTime := Now - StartTime;
Result := TimeToStr(StopTime);
if Int(StopTime) > 0 then begin
S := Copy(Result, 1, Pos(':', Result) - 1);
Delete(Result, 1, Pos(':', Result) - 1);
Result := IntToStr(Trunc(StopTime) * 24 + StrToInt(S)) + Result;
end;
FCalcTime := Result;
end;
 
procedure TShowForm.ExitButtonClick(Sender : TObject);
begin
Close;
end;
 
procedure TShowForm.CopyItemClick(Sender : TObject);
begin
ResultText.CopyToClipboard;
end;
 
procedure TShowForm.CopyAllItemClick(Sender : TObject);
begin
Clipboard.AsText := ResultText.Lines.Text;
end;
 
procedure TShowForm.SaveItemClick(Sender : TObject);
var
i : longint;
S : TStringList;
st : string;
 
begin
if SaveDialog.Execute then begin
S := TStringList.Create;
 
for i := 0 to ResultText.Lines.Count - 1 do begin
st := ResultText.Lines[i];
if st[1] = ' ' then Delete(st, 1, 1);
S.Add(st);
end;
S.Add(FCalcTime);
 
S.SaveToFile(SaveDialog.FileName);
S.Free;
end;
end;
 
procedure TShowForm.ChangeMenuState(State : boolean);
begin
CopyItem.Enabled := State;
CopyAllItem.Enabled := State;
SaveItem.Enabled := State;
end;
 
function AddBackslash(const Path : string) : string;
begin
if Path = '' then Result := Path
else
if Path[Length(Path)] = '\' then Result := Path
else Result := Path + '\';
end;
 
procedure TShowForm.FormCreate(Sender: TObject);
begin
Application.HelpFile :=
AddBackslash(ExtractFileDir(Application.ExeName)) + 'akpi.hlp';
end;
 
procedure TShowForm.HelpButtonClick(Sender: TObject);
begin
Application.HelpContext(1);
end;
 
end.
/Delphi/akPi/Source/akpi.cfg
0,0 → 1,39
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$Y-
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-E"..\Exe"
-N"..\Units"
-U"..\Units"
-O"..\Units"
-I"..\Units"
-R"..\Units"
/Delphi/akPi/Images/screenshot.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Images/icon.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Delphi/akPi/Help/akPi.hpj
0,0 → 1,22
; This file is maintained by HCW. Do not modify this file directly.
 
[OPTIONS]
COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ; Englisch (USA)
REPORT=Yes
CONTENTS=main
TITLE=akPi 2.2.0
COPYRIGHT=Copyright (c) 1999-2000 Anatoli Klassen
HLP=akPi.hlp
 
[FILES]
akPi.rtf
 
[MAP]
main=1
 
[WINDOWS]
main="",,27904,,(r12632256),f3
 
[CONFIG]
BrowseButtons()
/Delphi/akPi/Help/akPi.rtf
0,0 → 1,186
{\rtf1\ansi\ansicpg1252\uc1 \deff1\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f34\froman\fcharset0\fprq2 Times New Roman;}{\f32\froman\fcharset238\fprq2 Times New Roman CE;}{\f35\froman\fcharset161\fprq2 Times New Roman Greek;}
{\f36\froman\fcharset162\fprq2 Times New Roman Tur;}{\f37\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f38\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f39\froman\fcharset186\fprq2 Times New Roman Baltic;}
{\f42\fswiss\fcharset0\fprq2 Arial;}{\f40\fswiss\fcharset238\fprq2 Arial CE;}{\f43\fswiss\fcharset161\fprq2 Arial Greek;}{\f44\fswiss\fcharset162\fprq2 Arial Tur;}{\f45\fswiss\fcharset177\fprq2 Arial (Hebrew);}
{\f46\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f47\fswiss\fcharset186\fprq2 Arial Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red255\green255\blue255;}{\stylesheet{
\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \snext0 Normal;}{\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\adjustright\rin0\lin0\itap0
\b\f1\fs28\lang1033\langfe1031\kerning28\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 1;}{\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\adjustright\rin0\lin0\itap0 \b\i\f1\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031
\sbasedon0 \snext0 heading 2;}{\s3\ql \li0\ri0\sa120\keepn\widctlpar\faauto\adjustright\rin0\lin0\itap0 \i\f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 3;}{
\s4\ql \li0\ri0\sa120\keepn\widctlpar\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \b\i\f1\fs20\ul\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 4;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive \ul\cf2
\sbasedon10 Hyperlink;}{\s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext16 footnote text;}{\*\cs17 \additive \super \sbasedon10 footnote reference;}{
\s18\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \b\i\f1\fs20\ul\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 caption;}{\s19\ql \fi-284\li284\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin284\itap0
\f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext19 Body Text 2;}}{\*\listtable{\list\listtemplateid67567617\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0
{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1550651505}{\list\listtemplateid67567617\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0
\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1739474320}}{\*\listoverridetable
{\listoverride\listid1550651505\listoverridecount0\ls1}{\listoverride\listid1739474320\listoverridecount0\ls2}}{\info{\title akPlayer}{\author Anatoli Klassen}{\operator Anatoly Klassen}{\creatim\yr1999\mo3\dy27\hr23\min12}
{\revtim\yr2000\mo6\dy25\hr20\min45}{\version68}{\edmins0}{\nofpages2}{\nofwords90}{\nofchars517}{\*\company }{\nofcharsws0}{\vern8249}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1134
\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
\jcompress\viewkind4\viewscale100\pgbrdrhead\pgbrdrfoot\nolnhtadjtbl \fet0\sectd \linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang
{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain
\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \b\f1\fs28\lang1033\langfe1031\kerning28\cgrid\langnp1033\langfenp1031 {\cs17\super #{\footnote \pard\plain
\s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\cs17\super #}{ main}}${\footnote \pard\plain \s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0
\f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\cs17\super $}{ akPi}}+{\footnote \pard\plain \s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\cs17\super +}{ auto}
}K{\footnote \pard\plain \s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\cs17\super K}{ akPi; General Description}}}{\fs20 {\*\shppict
{\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pibName}{\sv akPi.bmp}}{\sp{\sn pibFlags}{\sv 2}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw847\pich847\picwgoal480\pichgoal480\pngblip\bliptag-591502725{\*\blipuid dcbe627be316e5df36b815038f6d9fef}
89504e470d0a1a0a0000000d4948445200000020000000200403000000815467c700000001735247420240c07dc500000030504c544500000080000000800080
8000000080800080008080c0c0c0808080ff000000ff00ffff000000ffff00ff00ffffffffff4f132649000000097048597300000ec200000ec20115284a8000
0000584944415428cfadd1c10ec0200803d0defabbbdf1fb739331c0cb4cec495f088915d68243204426a0813a608531740fd2973e97046203b317ac02326001ee82fe833f7f9c2bc881fa0af29a984119e810255bac3ef6732517e39fb1f5c610f8ae0000000049454e44ae426082}}{\nonshppict
{\pict\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw847\pich847\picwgoal480\pichgoal480\wmetafile8\bliptag-591502725\blipupi95{\*\blipuid dcbe627be316e5df36b815038f6d9fef}
0100090000036601000000004201000000000400000003010800050000000b0200000000050000000c02200020000500000007010400000042010000430f2000
cc00000020002000000000002000200000000000280000002000000020000000010004000000000000020000c20e0000c20e0000100000001000000000000000
80000000ff00000000008000800080000000ff00ff00ff0000800000808000000080800080808000c0c0c00000ff0000ffff000000ffff00ffffff00bbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000bbbbbbbbbb00000bbbbbbbbbbbbb00000bbbbbbbb0000000bbbbbbbbbbbb000000bbbbbbb00000000bbbbbbbbbbb00
0000bbbbbb000000000bbbbbbbbbbbb000000bbbbb00000bb000bbbbbbbbbbbb00000bbbbb0000bbbb00bbbbbbbbbbbbb0000bbbbb0000bbbb00bbbbbbbbbbbb
b0000bbbbb0000bbbbbbbbbbbbbbbbbbb0000bbbbb0000bbbbbbbbbbbbbbbbbbbb000bbbbb0000bbbbbbbbbbbbbbbbbbbb000bbbbb0000bbbbbbbbbbbbbbbbbb
bb000bbbbb0000bbbbbbbbbbbbbbbbbbbb0000bbbb0000bbbbbbbbbbbbbbbbbbbbb000bbbb0000bbbbbbbbbbbbbbbbbbbbb000bbbbb000bbbbbbbbbbbbb00bbb
bbb000bbbbb0000bbbbbbbbbbbbb00bbbbb000bbbbb0000bbbbbbbbbbbbb0000bbb000bbbbb0000bbbbbbbbbbbbb000000000000000000000000bbbbbbbbb000
00000000000000000000bbbbbbbbbb0000000000000000000000bbbbbbbbbbb000000000000000000000bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb05000000070101000000030000000000}}}{akPi
\par }\pard\plain \s16\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {
\par }\pard\plain \s3\ql \li0\ri0\sa120\keepn\widctlpar\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \i\f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {Version 2.2.0
\par Copyright \'a9 1997-2000 Anatoli Klassen
\par Freeware. Feel free to copy and use it.
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {
\par }\trowd \trgaph70\trrh248\trleft-70\trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1346 \cellx1276\clvertalt\clbrdrt\brdrnone \clbrdrl
\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth2977 \cellx4253\pard \ql \li0\ri0\sa120\widctlpar\intbl\faauto\adjustright\rin0\lin0 {Home Page\cell }{\field{\*\fldinst { HYPERLINK "http://www.aksoft.net/progs/akpi" }{
{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001a0000007700770077002e0061006b0073006f00660074002e006e00650074002f00700072006f00670073002f0061006b00700069000000e0c9ea79f9bace118c8200aa004ba90b4200000068007400740070003a002f002f007700770077002e0061006b00
73006f00660074002e006e00650074002f00700072006f00670073002f0061006b00700069000000}}}{\fldrslt {\cs15\ul\cf2 www.aksoft.net/progs/akpi}}}{\cell }\pard \ql \li0\ri0\sa120\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\trowd
\trgaph70\trrh248\trleft-70\trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1346 \cellx1276\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone
\clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth2977 \cellx4253\row }\trowd \trgaph70\trrh247\trleft-70\trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr
\brdrnone \cltxlrtb\clftsWidth3\clwWidth1346 \cellx1276\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth2977 \cellx4253\pard \ql \li0\ri0\sa120\widctlpar\intbl\faauto\adjustright\rin0\lin0 {
e-mail\cell }{\field{\*\fldinst { HYPERLINK "mailto:akpi@aksoft.net" }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001000000061006b0070006900400061006b0073006f00660074002e006e00650074000000e0c9ea79f9bace118c8200aa004ba90b2e0000006d00610069006c0074006f003a0061006b0070006900400061006b0073006f00660074002e006e00650074000000
00}}}{\fldrslt {\cs15\ul\cf2 akpi@aksoft.net}}}{\cell }\pard \ql \li0\ri0\sa120\widctlpar\intbl\faauto\adjustright\rin0\lin0 {\trowd \trgaph70\trrh247\trleft-70\trftsWidth1\trpaddl70\trpaddr70\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrnone \clbrdrl
\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1346 \cellx1276\clvertalt\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth2977 \cellx4253\row }\pard
\ql \li0\ri0\sa120\widctlpar\faauto\adjustright\rin0\lin0\itap0 {
\par }\pard \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 {Program to calculate Pi.
\par It doesn't have any practical usage :-), maybe just to test computer speed or learn x86 assembler (you can get its source code on my web site for free).
\par Sure calculates right up to 100000 digits.
\par Of course, }{\b no any guaranties}{.
\par Use it and its source code as you want.
\par
\par Formula for Pi
\par }{\pard\plain \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\object\objemb\objw3100\objh620{\*\objclass Equation.3}{\*\objdata 01050000020000000b0000004571756174696f6e2e330000000000
0000000000100000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdffffff04000000feffffff05000000feffffff06000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff0200000002ce020000000000c000000000000046000000000000000000000000007d
f08ad5debf0103000000c00400000000000001004f006c00650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
0000000000000000000000001400000000000000010043006f006d0070004f0062006a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002010100000004000000ffffffff0000000000000000000000000000000000000000000000000000
0000000000000000000001000000660000000000000003004f0062006a0049006e0066006f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
000000000000000000000000030000000400000000000000feffffff02000000fefffffffeffffff05000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000feffffff1100000012000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff010000020800000000000000000000000000000010501800200045006e00740072007900000000000000000000000000000000000000000000000000000000000100feff030a0000ffffffff02ce020000000000c0000000000000461700
00004d6963726f736f6674204571756174696f6e20332e30000c0000004453204571756174696f6e000b0000004571756174696f6e2e3300f439b27100000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000ffffffffffffffff
ffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffff030000000400000001000000ffffffff00000000000000005c15000046040000d40200000100090000036a01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff000500
00002e0118000000050000000b0200000000050000000c02e00360131200000026060f001a00ffffffff000010000000c0ffffffb8ffffff20130000980300000b00000026060f000c004d617468547970650000c00008000000fa0200001000000000000000040000002d0100000500000014020002d408050000001302
0002aa0905000000140200029a10050000001302000202131c000000fb0280fe000000000000900102004f006c0065005000720065007300300030003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180002010300000005000000ffffffff000000000000
00000000000000000000000000000000000000000000000000000000000004000000fc020000000000004500710075006100740069006f006e0020004e00610074006900760065000000000000000000000000000000000000000000000000000000000000000000000020000200ffffffffffffffffffffffff00000000
0000000000000000000000000000000000000000000000000000000000000000100000009f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01010009000000320a8c03b410030000003233396508000000320a6e016e110100
000031330a000000320a6002b00c0600000061726374616e08000000320a6002240b01000000347208000000320a8c03e20801000000357208000000320a6e01df080100000031720a000000320a6002ea040600000061726374616e08000000320a60029e020200000031361c000000fb0280fe00000000000090010000
00020002001053796d626f6c00774000000095070a730d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320a60021a0c01000000d73608000000320a6002040a010000002d3608000000320a6002540401000000d73608000000320a60029001010000003d361c000000fb0280fe
0000000000009001010000020002001053796d626f6c0077400000009b070a3a0d55f5771655f5770100000000003000040000002d01010004000000f001020008000000320a60021c000100000070360a00000026060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc010202225379
7374656d000000000a000000040000000000020000000100000000003000040000002d01020004000000f0010100030000000000000000001c000000020015c28300000000000000d8af1400c4eb14000000000003010103010a010284c00302863d0002883100028836000286c522128261001282720012826300128274
001282610012826e00030e00000102883100000102883500000002861222028834000286c522128261001282720012826300128274001282610012826e00030e0000010288310000010288320002883300028839000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050000050000000d0000004d45544146494c4550494354005c150000bafbffffdc02000008005c1546040000
0100090000036a01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff00050000002e0118000000050000000b0200000000050000000c02e00360131200000026060f001a00ffffffff000010000000c0ffffffb8ffffff20130000980300000b00000026060f000c004d61
7468547970650000c00008000000fa0200001000000000000000040000002d0100000500000014020002d4080500000013020002aa0905000000140200029a10050000001302000202131c000000fb0280fe0000000000009001000000000402001054696d6573204e657720526f6d616e000d55f5771655f57701000000
00003000040000002d01010009000000320a8c03b410030000003233396508000000320a6e016e110100000031330a000000320a6002b00c0600000061726374616e08000000320a6002240b01000000347208000000320a8c03e20801000000357208000000320a6e01df080100000031720a000000320a6002ea040600
000061726374616e08000000320a60029e020200000031361c000000fb0280fe0000000000009001000000020002001053796d626f6c00774000000095070a730d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320a60021a0c01000000d73608000000320a6002040a01000000
2d3608000000320a6002540401000000d73608000000320a60029001010000003d361c000000fb0280fe0000000000009001010000020002001053796d626f6c0077400000009b070a3a0d55f5771655f5770100000000003000040000002d01010004000000f001020008000000320a60021c000100000070360a000000
26060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a000000040000000000020000000100000000003000040000002d01020004000000f0010100030000000000}{\result {\dn24
{\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pictureGray}{\sv 0}}{\sp{\sn pictureBiLevel}{\sv 0}}{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}
{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn fNoFillHitTest}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fReallyHidden}{\sv 0}}{\sp{\sn fScriptAnchor}{\sv 0}}{\sp{\sn fFakeMaster}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}
\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0\picw5468\pich1094\picwgoal3100\pichgoal620\wmetafile8\bliptag2090999086\blipupi485{\*\blipuid 7ca21d2e12d447dfe2b8f0f1ca4fb93c}
0100090000036a01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff00050000002e0118000000050000000b02
00000000050000000c02e00360131200000026060f001a00ffffffff000010000000c0ffffffb8ffffff20130000980300000b00000026060f000c004d617468
547970650000c00008000000fa0200001000000000000000040000002d0100000500000014020002d4080500000013020002aa0905000000140200029a100500
00001302000202131c000000fb0280fe0000000000009001000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000
040000002d01010009000000320a8c03b410030000003233396508000000320a6e016e110100000031330a000000320a6002b00c0600000061726374616e0800
0000320a6002240b01000000347208000000320a8c03e20801000000357208000000320a6e01df080100000031720a000000320a6002ea040600000061726374
616e08000000320a60029e020200000031361c000000fb0280fe0000000000009001000000020002001053796d626f6c00774000000095070a730d55f5771655
f5770100000000003000040000002d01020004000000f001010008000000320a60021a0c01000000d73608000000320a6002040a010000002d3608000000320a
6002540401000000d73608000000320a60029001010000003d361c000000fb0280fe0000000000009001010000020002001053796d626f6c0077400000009b07
0a3a0d55f5771655f5770100000000003000040000002d01010004000000f001020008000000320a60021c000100000070360a00000026060f000a00ffffffff
0100000000001c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a000000040000000000020000000100000000003000040000002d01020004000000f001010003000000000000}}}}}{
\par where
\par }{\pard\plain \ql \li0\ri0\widctlpar\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\object\objemb\objw3100\objh660{\*\objclass Equation.3}{\*\objdata 01050000020000000b0000004571756174696f6e2e330000000000
0000000000100000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdffffff04000000feffffff05000000feffffff06000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff0200000002ce020000000000c000000000000046000000000000000000000000602b
fb8ad5debf0103000000c00500000000000001004f006c00650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
0000000000000000000000001400000000000000010043006f006d0070004f0062006a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002010100000004000000ffffffff0000000000000000000000000000000000000000000000000000
0000000000000000000001000000660000000000000003004f0062006a0049006e0066006f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
000000000000000000000000030000000400000000000000feffffff02000000fefffffffeffffff05000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000feffffff140000001500000016000000feffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff010000020800000000000000000000000000000010501800200045006e00740072007900000000000000000000000000000000000000000000000000000000000100feff030a0000ffffffff02ce020000000000c0000000000000461700
00004d6963726f736f6674204571756174696f6e20332e30000c0000004453204571756174696f6e000b0000004571756174696f6e2e3300f439b27100000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000ffffffffffffffff
ffffffff0000000000000000000000000000000000000000000000000000000000000000ffffffff030000000400000001000000ffffffff00000000000000005c1500008c0400007c030000010009000003be01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff000500
00002e0118000000050000000b0200000000050000000c02200460131200000026060f001a00ffffffff000010000000c0ffffffa9ffffff20130000c90300000b00000026060f000c004d617468547970650000c00008000000fa0200001000000000000000040000002d0100000500000014024002aa08050000001302
40024c0a0500000014024002d20b0500000013024002780d0500000014024002f80e05000000130202004f006c0065005000720065007300300030003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180002010300000005000000ffffffff000000000000
00000000000000000000000000000000000000000000000000000000000004000000a4030000000000004500710075006100740069006f006e0020004e00610074006900760065000000000000000000000000000000000000000000000000000000000000000000000020000200ffffffffffffffffffffffff00000000
000000000000000000000000000000000000000000000000000000000000000013000000c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004002a8101c000000fb0280fe0000000000009001000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01010009000000320aa0021012
030000002e2e2e6508000000320acc03700f01000000372e08000000320acc03480c01000000352e08000000320acc03210901000000332e0a000000320aa00234000600000061726374616e1c000000fb0220ff0000000000009001000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100
000000003000040000002d01020004000000f001010008000000320a0201ef0f01000000377208000000320a0201c60c01000000357208000000320a02019e090100000033721c000000fb0280fe0000000000009001000000020002001053796d626f6c0077400000006c070a720d55f5771655f5770100000000003000
040000002d01010004000000f001020008000000320aa0020211010000002b7208000000320aa002d20d010000002d7208000000320aa002a60a010000002b7208000000320aa0028407010000002d7208000000320aa0023e05010000003d721c000000fb0280fe0000000000009001010000000402001054696d657320
4e657720526f6d616e000d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320aae01240f01000000787208000000320aae01fe0b01000000787208000000320aae01d60801000000787208000000320aa002880601000000787208000000320aa0022a040100000078720a000000
26060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a000000040000000000010000000100000000003000040000002d01010004000000f00102000300000000000000320a60029e020200000031361c000000fb0280fe0000000000001c000000
020015c2a600000000000000b840150074e314000000000003010103010a01128261001282720012826300128274001282610012826e001283780002863d001283780002861222030e00000112837800030f00000b1101028833000000000a0102883300000002862b00030e00000112837800030f00000b110102883500
0000000a0102883500000002861222030e00000112837800030f00000b1101028837000000000a0102883700000002862b0002822e0002822e0002822e00000008000000320a60021c000100000070360a00000026060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc010202225379
7374656d000000000a000000040000000000020000000100000000003000040000002d01020004000000f001010003000000000000000000000000003c00e40001050000050000000d0000004d45544146494c4550494354005c15000074fbffff8403000008005c158c040000
010009000003be01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff00050000002e0118000000050000000b0200000000050000000c02200460131200000026060f001a00ffffffff000010000000c0ffffffa9ffffff20130000c90300000b00000026060f000c004d61
7468547970650000c00008000000fa0200001000000000000000040000002d0100000500000014024002aa0805000000130240024c0a0500000014024002d20b0500000013024002780d0500000014024002f80e0500000013024002a8101c000000fb0280fe0000000000009001000000000402001054696d6573204e65
7720526f6d616e000d55f5771655f5770100000000003000040000002d01010009000000320aa0021012030000002e2e2e6508000000320acc03700f01000000372e08000000320acc03480c01000000352e08000000320acc03210901000000332e0a000000320aa00234000600000061726374616e1c000000fb0220ff
0000000000009001000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320a0201ef0f01000000377208000000320a0201c60c01000000357208000000320a02019e090100000033721c000000fb0280fe000000000000
9001000000020002001053796d626f6c0077400000006c070a720d55f5771655f5770100000000003000040000002d01010004000000f001020008000000320aa0020211010000002b7208000000320aa002d20d010000002d7208000000320aa002a60a010000002b7208000000320aa0028407010000002d7208000000
320aa0023e05010000003d721c000000fb0280fe0000000000009001010000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320aae01240f01000000787208000000320aae01fe0b01000000787208000000320aae01d608
01000000787208000000320aa002880601000000787208000000320aa0022a040100000078720a00000026060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a000000040000000000010000000100000000003000040000002d01010004000000
f0010200030000000000}{\result {\dn24 {\pict{\*\picprop\shplid1027{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn pictureGray}{\sv 0}}{\sp{\sn pictureBiLevel}{\sv 0}}
{\sp{\sn fFilled}{\sv 0}}{\sp{\sn fHitTestFill}{\sv 1}}{\sp{\sn fillShape}{\sv 1}}{\sp{\sn fillUseRect}{\sv 0}}{\sp{\sn fNoFillHitTest}{\sv 0}}{\sp{\sn fLine}{\sv 0}}
{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fReallyHidden}{\sv 0}}{\sp{\sn fScriptAnchor}{\sv 0}}{\sp{\sn fFakeMaster}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex100\picscaley100\piccropl0\piccropr0\piccropt0\piccropb0
\picw5468\pich1164\picwgoal3100\pichgoal660\wmetafile8\bliptag-1179393899\blipupi505{\*\blipuid b9b3e0958db981ff5b54398a10e6bd68}
010009000003be01000003001c00000000000500000009020000000005000000020101000000050000000102ffffff00050000002e0118000000050000000b02
00000000050000000c02200460131200000026060f001a00ffffffff000010000000c0ffffffa9ffffff20130000c90300000b00000026060f000c004d617468
547970650000c00008000000fa0200001000000000000000040000002d0100000500000014024002aa0805000000130240024c0a0500000014024002d20b0500
000013024002780d0500000014024002f80e0500000013024002a8101c000000fb0280fe0000000000009001000000000402001054696d6573204e657720526f
6d616e000d55f5771655f5770100000000003000040000002d01010009000000320aa0021012030000002e2e2e6508000000320acc03700f01000000372e0800
0000320acc03480c01000000352e08000000320acc03210901000000332e0a000000320aa00234000600000061726374616e1c000000fb0220ff000000000000
9001000000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01020004000000f001010008000000320a
0201ef0f01000000377208000000320a0201c60c01000000357208000000320a02019e090100000033721c000000fb0280fe0000000000009001000000020002
001053796d626f6c0077400000006c070a720d55f5771655f5770100000000003000040000002d01010004000000f001020008000000320aa002021101000000
2b7208000000320aa002d20d010000002d7208000000320aa002a60a010000002b7208000000320aa0028407010000002d7208000000320aa0023e0501000000
3d721c000000fb0280fe0000000000009001010000000402001054696d6573204e657720526f6d616e000d55f5771655f5770100000000003000040000002d01
020004000000f001010008000000320aae01240f01000000787208000000320aae01fe0b01000000787208000000320aae01d60801000000787208000000320a
a002880601000000787208000000320aa0022a040100000078720a00000026060f000a00ffffffff0100000000001c000000fb021000070000000000bc02000000cc0102022253797374656d000000000a000000040000000000010000000100000000003000040000002d01010004000000f001020003000000000000}}}}}
{
\par
\par \page
\par }}