diff --git a/CodeCompletion/CodeCompletion.csproj b/CodeCompletion/CodeCompletion.csproj index 5cbce79dd..00e95f89e 100644 --- a/CodeCompletion/CodeCompletion.csproj +++ b/CodeCompletion/CodeCompletion.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/Compiler/Compiler.csproj b/Compiler/Compiler.csproj index f97121b47..49cc787cb 100644 --- a/Compiler/Compiler.csproj +++ b/Compiler/Compiler.csproj @@ -69,6 +69,7 @@ full prompt AllRules.ruleset + true ..\bin\ diff --git a/CompilerTools/CompilerTools.csproj b/CompilerTools/CompilerTools.csproj index 4b20dc868..9979a3821 100644 --- a/CompilerTools/CompilerTools.csproj +++ b/CompilerTools/CompilerTools.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index db05e3346..145d81dd8 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -13,9 +13,9 @@ using System.Runtime.CompilerServices; internal static class RevisionClass { public const string Major = "3"; - public const string Minor = "6"; - public const string Build = "3"; - public const string Revision = "2660"; + public const string Minor = "7"; + public const string Build = "0"; + public const string Revision = "2670"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index 6e0f81b41..78c64c3e2 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%COREVERSION%=3 -%REVISION%=2660 -%MINOR%=6 +%COREVERSION%=0 +%REVISION%=2670 +%MINOR%=7 %MAJOR%=3 diff --git a/Errors/Errors.csproj b/Errors/Errors.csproj index 2a879b3b2..5d223359d 100644 --- a/Errors/Errors.csproj +++ b/Errors/Errors.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/Localization/DefaultLang.resources b/Localization/DefaultLang.resources index 70d58f618..dac6069f5 100644 Binary files a/Localization/DefaultLang.resources and b/Localization/DefaultLang.resources differ diff --git a/Localization/Localization.csproj b/Localization/Localization.csproj index 263319e5b..5c64380e9 100644 --- a/Localization/Localization.csproj +++ b/Localization/Localization.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/NETGenerator/NETGenerator.csproj b/NETGenerator/NETGenerator.csproj index 3fdab4696..a259e9f85 100644 --- a/NETGenerator/NETGenerator.csproj +++ b/NETGenerator/NETGenerator.csproj @@ -65,6 +65,7 @@ prompt AllRules.ruleset DEBUG + true ..\bin\ @@ -169,4 +170,4 @@ - + \ No newline at end of file diff --git a/Optimizer/Optimizer.csproj b/Optimizer/Optimizer.csproj index 9c8c1c440..3cc7ad4a5 100644 --- a/Optimizer/Optimizer.csproj +++ b/Optimizer/Optimizer.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/ParserTools/ParserTools.csproj b/ParserTools/ParserTools.csproj index 451eaf45c..24a638a26 100644 --- a/ParserTools/ParserTools.csproj +++ b/ParserTools/ParserTools.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly @@ -122,4 +123,4 @@ --> - + \ No newline at end of file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs index 79f6384de..8923c16ea 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascal.cs @@ -2,7 +2,7 @@ // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 // Machine: DESKTOP-G8V08V4 -// DateTime: 12.08.2020 15:06:56 +// DateTime: 26.08.2020 0:44:46 // UserName: ????????? // GPLEX input file // GPLEX frame file diff --git a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs index 36f946e2d..92ad31f96 100644 --- a/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs +++ b/Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs @@ -2,7 +2,7 @@ // GPPG version 1.3.6 // Machine: DESKTOP-G8V08V4 -// DateTime: 12.08.2020 15:06:57 +// DateTime: 26.08.2020 0:44:47 // UserName: ????????? // Input file diff --git a/Parsers/PascalABCParserNewSaushkin/PABC.ymc b/Parsers/PascalABCParserNewSaushkin/PABC.ymc index dcc3ad542..8cc0534dc 100644 --- a/Parsers/PascalABCParserNewSaushkin/PABC.ymc +++ b/Parsers/PascalABCParserNewSaushkin/PABC.ymc @@ -276,6 +276,10 @@ script= + + + + diff --git a/Parsers/PascalABCParserNewSaushkin/PascalABCSaushkinParser.csproj b/Parsers/PascalABCParserNewSaushkin/PascalABCSaushkinParser.csproj index 9eeb4ca67..3346fe329 100644 --- a/Parsers/PascalABCParserNewSaushkin/PascalABCSaushkinParser.csproj +++ b/Parsers/PascalABCParserNewSaushkin/PascalABCSaushkinParser.csproj @@ -47,6 +47,7 @@ 3 AllRules.ruleset AnyCPU + true pdbonly diff --git a/Parsers/VBNETParser/VBNETParser.csproj b/Parsers/VBNETParser/VBNETParser.csproj index 8ea9c23b2..0f64f4b72 100644 --- a/Parsers/VBNETParser/VBNETParser.csproj +++ b/Parsers/VBNETParser/VBNETParser.csproj @@ -59,6 +59,7 @@ AllRules.ruleset + true AllRules.ruleset diff --git a/PluginsSupport/Interfaces.cs b/PluginsSupport/Interfaces.cs index 8b38a2bc0..68f46809e 100644 --- a/PluginsSupport/Interfaces.cs +++ b/PluginsSupport/Interfaces.cs @@ -299,6 +299,7 @@ namespace VisualPascalABCPlugins void Stop(string FileName); bool Run(bool forDebugging, bool startWithGoto, bool need_first_brpt); bool Run(ICodeFileDocument tabPage, bool forDebugging, bool startWithGoto, bool needFirstBreakpoint); + void Run(string fileName, bool redirectIO, string ModeName, bool RunWithPause, string WorkingDirectory, string CommandLineArguments, bool attachDebugger, bool fictive_attach); bool HasRunArgument(string FileName); string GetRunArgument(string FileName); void AddRunArgument(string FileName, string argument); diff --git a/PluginsSupport/PluginsSupport.csproj b/PluginsSupport/PluginsSupport.csproj index 36c1db15c..f471d78ba 100644 --- a/PluginsSupport/PluginsSupport.csproj +++ b/PluginsSupport/PluginsSupport.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index 77d573b65..20bd31262 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.6.3.2660 +3.7.0.2670 diff --git a/ReleaseGenerators/License.rtf b/ReleaseGenerators/License.rtf index 191d6d5ee..ef7c268d7 100644 --- a/ReleaseGenerators/License.rtf +++ b/ReleaseGenerators/License.rtf @@ -37,9 +37,9 @@ \fs22\lang1049\langfe1049\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 \widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1049\langfe1049\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 \snext11 \ssemihidden \sunhideused -Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid9583613\rsid12019863\rsid14836557}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info -{\operator \'d1\'f2\'e0\'ed\'e8\'f1\'eb\'e0\'e2 \'cc\'e8\'f5\'e0\'eb\'ea\'ee\'e2\'e8\'f7}{\creatim\yr2018\mo8\dy29\hr21\min57}{\revtim\yr2020\mo2\dy4\hr23\min13}{\version7}{\edmins9}{\nofpages4}{\nofwords1386}{\nofchars7904}{\nofcharsws9272}{\vern121}} -{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect +Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2307793\rsid2756858\rsid5121612\rsid9338748\rsid9583613\rsid12019863\rsid14836557}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1} +{\info{\operator \'d1\'f2\'e0\'ed\'e8\'f1\'eb\'e0\'e2 \'cc\'e8\'f5\'e0\'eb\'ea\'ee\'e2\'e8\'f7}{\creatim\yr2018\mo8\dy29\hr21\min57}{\revtim\yr2020\mo8\dy24\hr15\min4}{\version8}{\edmins9}{\nofpages4}{\nofwords1386}{\nofchars7904}{\nofcharsws9272} +{\vern7}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 \dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot9338748 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\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 @@ -47,67 +47,67 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1049\langfe1049\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'c4\'e0\'ed\'ed\'fb\'e9\loch\f37 \hich\f37 \'e4\'ee\'ea\'f3\'ec\'e5\'ed\'f2\loch\f37 \hich\f37 \'ee\'ef\'e8\'f1\'fb\'e2\'e0\'e5\'f2\loch\f37 \hich\f37 \'f3\'f1\'eb\'ee\'e2\'e8\'ff \loch\f37 \hich\f37 \'f0\'e0\'f1\'ef\'f0\'ee\'f1\'f2\'f0\'e0\'ed\'e5\'ed\'e8\'ff\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0\loch\f37 \hich\f37 PascalABC.NET (\'e2\'e5\'f0\'f1\'e8\'ff\loch\f37 3.}{\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\insrsid1983975\charrsid5121612 \hich\af37\dbch\af31505\loch\f37 6}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 ). +\f37\lang1033\langfe1049\langnp1033\insrsid2307793 \hich\af37\dbch\af31505\loch\f37 7}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 ). \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'ca\'ee\'ef\'e8\'ff\loch\f37 \hich\f37 \'eb\'e8\'f6\'e5\'ed\'e7\'e8\'e8\loch\f37 \hich\f37 GNU LGPL \'ef\'f0\'e8\'eb\'e0\'e3\'e0\'e5\'f2\'f1\'ff\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'ea\'ee\'ed\'f6\'e5\loch\f37 \hich\f37 \'fd\'f2\'ee\'e3\'ee\loch\f37 \hich\f37 \'f4\'e0\'e9\'eb\'e0. \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'c2\'c0\'c6\'cd\'c5\'c9\'d8\'c8\'c5\loch\f37 \hich\f37 \'d3\'d1\'cb\'ce\'c2\'c8\'df\loch\f37 \hich\f37 \'d0\'c0\loch\af37\dbch\af31505\hich\f37 \'d1\'cf\'d0\'ce\'d1 -\'d2\'d0\'c0\'cd\'c5\'cd\'c8\'df\loch\f37 \hich\f37 \'cf\'d0\'ce\'c4\'d3\'ca\'d2\'c0\loch\f37 PascalABC.NET}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 \loch\af37\dbch\af31505\hich\f37 \'e8\'eb\'e8\loch\f37 -\hich\f37 \'eb\'fe\'e1\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e8\'e7\'e2\'ee\'e4\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 +\'d2\'d0\'c0\'cd\'c5\'cd\'c8\'df\loch\f37 \hich\f37 \'cf\'d0\'ce\'c4\'d3\'ca\'d2\'c0\loch\f37 PascalABC.NET}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 \hich\f37 \'e8\'eb\'e8\loch\f37 \hich\f37 \'eb\'fe\'e1\'ee +\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e8\'e7\'e2\'ee\'e4\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \par \hich\af37\dbch\af31505\loch\f37 Copyright (C) 2005-20}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid2756858 \hich\af37\dbch\af31505\loch\f37 20}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 by Ivan Bondarev, Stanislav Mikhalkovich \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'dd\'f2\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e3\'f0\'e0\'ec\'ec\'ed\'ee\'e5\loch\f37 \hich\f37 \'ee\'e1\'e5\'f1\'ef\'e5\'f7\'e5\'ed\'e8\'e5\loch\f37 \hich\f37 \'ff \'e2\'eb\'ff\'e5\'f2\'f1\'ff\loch\f37 \hich\f37 \'f1\'e2\'ee\'e1\'ee\'e4\'ed\'fb\'ec\loch\f37 \hich\f37 ; \'e2\'fb\loch\f37 \hich\f37 \'ec\'ee\'e6\'e5\'f2\'e5\loch\f37 \hich\f37 \'f0\'e0\'f1\'ef\'f0\'ee\'f1\'f2\'f0\'e0\'ed\'ff\'f2\'fc\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 /\'e8\'eb\'e8\loch\f37 \hich\f37 \'ec\'ee\'e4\'e8\'f4\'e8\'f6\'e8\'f0\'ee\'e2\'e0\'f2\'fc\loch\f37 \hich\f37 \'e5\'e3\'ee\loch\f37 \hich\f37 \'ed\'e0\loch\f37 \hich\f37 \'f3\'f1\'eb\'ee\'e2\'e8\'ff\'f5\loch\f37 -\hich\f37 GNU LGPL \'e2\'e5\'f0\'f1\'e8\'e8\loch\f37 \hich\f37 3 \'f1\loch\f37 \hich\f37 \'f0\'e0\'e7\'fa\'ff\'f1\'ed\'e5\'ed\'e8\'ff\'ec\'e8\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 \'e8\'f1\'ea\'eb\'fe\'f7\'e5\loch\af37\dbch\af31505\hich\f37 \'ed +\hich\f37 GNU LGPL \'e2\loch\af37\dbch\af31505\hich\f37 \'e5\'f0\'f1\'e8\'e8\loch\f37 \hich\f37 3 \'f1\loch\f37 \hich\f37 \'f0\'e0\'e7\'fa\'ff\'f1\'ed\'e5\'ed\'e8\'ff\'ec\'e8\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 \'e8\'f1\'ea\'eb\'fe\'f7\'e5\'ed \'e8\'ff\'ec\'e8\loch\f37 \hich\f37 , \'e4\'e0\'ed\'ed\'fb\'ec\'e8\loch\f37 \hich\f37 \'ed\'e8\'e6\'e5. \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'cf\'f0\'ee\'e4\'f3\'ea\'f2\loch\f37 \hich\f37 PascalABC.NET \'ec\'ee\'e6\'e5\'f2\loch\f37 \hich\f37 \'ea\'ee\'ec\'ef\'ee\'ed\'ee\'e2\'e0\'f2\'fc\'f1\'ff\loch\f37 \hich\f37 \'f1\loch\f37 \hich\f37 \'ed\'e5\'f1\'e2\'ee\'e1\'ee\'e4\'ed\'fb\'ec\'e8\loch\f37 \hich\f37 \'ec\'ee\'e4\'f3\'eb\'ff\'ec\'e8\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 \'e1\'e8\'e1\'eb\'e8\'ee\'f2\'e5\'ea\'e0\'ec\'e8\loch\f37 \hich\f37 \'e5\'f1\'eb\'e8\loch\f37 \hich\f37 \'fd\'f2\'ee\loch\f37 \hich\f37 \'ed\'e5\loch\f37 \hich\f37 \'e4\'e5\'f1\'f2\'e0\'e1\'e8\'eb\'e8\'e7\'e8\'f0\'f3\'e5\'f2\loch\f37 \hich\f37 \'e5\'e3\'ee\loch\f37 \hich\f37 \'f0\'e0\'e1\'ee\'f2\'f3\loch\f37 \hich\f37 . \'c4\'e0\'ed\'ed\'ee\'e5\loch\f37 \hich\f37 \'f3\'f1\'eb\'ee\'e2\'e8\'e5\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'ee\'f1\'ed\'ee\'e2\'ed\'ee\'ec\loch\f37 \hich\f37 \'ed\'e0\'ef\'f0\'e0\'e2\'eb\'e5\'ed\'ee\loch\f37 \hich\f37 \'ed\'e0 -\loch\f37 \hich\f37 \'e2\'ee\'e7\'ec\'ee\'e6\'ed\'ee\'f1\'f2\'fc\loch\f37 \hich\f37 \'e4\'ee\'e1\'e0\'e2\'eb\'e5\'ed\'e8\'ff\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\loch\f37 \hich\f37 \'f1\'f2\'ee\'f0\'ee\'ed\'ed\'e8 -\'f5\loch\f37 \hich\f37 \'ec\'ee\'e4\'f3\'eb\'e5\'e9\loch\f37 \hich\f37 , \'f1\'e2\'ff\'e7\'e0\'ed\'ed\'fb\'f5\loch\f37 \hich\f37 \'f1\loch\f37 \hich\f37 \'ee\'e1\'f3\'f7\'e5\'ed\'e8\'e5\'ec\hich\af37\dbch\af31505\loch\f37 \hich\f37 . \'c2\loch\f37 -\hich\f37 \'f7\'e0\'f1\'f2\'ed\'ee\'f1\'f2\'e8\loch\f37 \hich\f37 , \'e2\loch\f37 \hich\f37 \'ee\'f1\'ed\'ee\'e2\'ed\'f3\'fe\loch\f37 \hich\f37 \'ef\'ee\'f1\'f2\'e0\'e2\'ea\'f3\loch\f37 \hich\f37 PascalABC.NET \'e2\'f5\'ee\'e4\'e8\'f2\loch\f37 -\hich\f37 \'fd\'eb\'e5\'ea\'f2\'f0\'ee\'ed\'ed\'fb\'e9\loch\f37 \hich\f37 \'e7\'e0\'e4\'e0\'f7\'ed\'e8\'ea\loch\f37 \hich\f37 Programming Taskbook (\'ef\'ee\loch\f37 \hich\f37 \'f1\'ee\'e3\'eb\'e0\'f1\'ee\'e2\'e0\'ed\'e8\'fe\loch\f37 \hich\f37 \'f1 -\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'ec\loch\f37 \hich\f37 \'e4\'e0\'ed\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0\loch\f37 \hich\f37 ), \'ea\'ee\'f2\'ee\'f0\'fb\'e9\loch\f37 \hich\f37 \'f0\'e0\'f1\'ef\'f0\'ee\'f1\'f2 -\'f0\'e0\'ed\'e0\'ff\'e5\'f2\'f1\'ff\loch\f37 \hich\f37 \'ed\'e0\loch\f37 \hich\f37 \'f3\'f1\'eb\'ee\'e2\'e8\'ff\'f5\loch\f37 \hich\f37 \'f1\'e2\'ee\'e5\'e9\loch\f37 \hich\f37 \'ef\'f0\'ee\'ef\'f0\'e8\'e5\'f2\'e0\'f0\'ed\'ee\'e9\loch\f37 \hich\f37 -\'eb\'e8\'f6\'e5\'ed\'e7\'e8\'e8\loch\f37 \hich\f37 (\'f1\'ec\loch\f37 \hich\f37 . \'ef\'e0\'ef\'ea\'f3\loch\f37 \\bin\\PT4) +\loch\f37 \hich\f37 \'e2\'ee\'e7\'ec\'ee\'e6\'ed\'ee\'f1\'f2\'fc\loch\f37 \hich\f37 \'e4\'ee\'e1\'e0\'e2\'eb\'e5\'ed\'e8\'ff\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\loch\f37 \hich\f37 \'f1\'f2\'ee\'f0\'ee\'ed\'ed +\loch\af37\dbch\af31505\hich\f37 \'e8\'f5\loch\f37 \hich\f37 \'ec\'ee\'e4\'f3\'eb\'e5\'e9\loch\f37 \hich\f37 , \'f1\'e2\'ff\'e7\'e0\'ed\'ed\'fb\'f5\loch\f37 \hich\f37 \'f1\loch\f37 \hich\f37 \'ee\'e1\'f3\'f7\'e5\'ed\'e8\'e5\'ec\loch\f37 \hich\f37 . +\'c2\loch\f37 \hich\f37 \'f7\'e0\'f1\'f2\'ed\'ee\'f1\'f2\'e8\loch\f37 \hich\f37 , \'e2\loch\f37 \hich\f37 \'ee\'f1\'ed\'ee\'e2\'ed\'f3\'fe\loch\f37 \hich\f37 \'ef\'ee\'f1\'f2\'e0\'e2\'ea\'f3\loch\f37 \hich\f37 PascalABC.NET \'e2\'f5\'ee\'e4\'e8\'f2 +\loch\f37 \hich\f37 \'fd\'eb\'e5\'ea\'f2\'f0\'ee\'ed\'ed\'fb\'e9\loch\f37 \hich\f37 \'e7\'e0\'e4\'e0\'f7\'ed\'e8\'ea\loch\f37 \hich\f37 Programming Taskbook (\'ef\'ee\loch\f37 \hich\f37 \'f1\'ee\'e3\'eb\'e0\'f1\'ee\'e2\'e0\'ed\'e8\'fe\loch\f37 +\hich\f37 \'f1\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'ec\loch\f37 \hich\f37 \'e4\'e0\'ed\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0\loch\f37 \hich\f37 ), \'ea\'ee\'f2\'ee\'f0\'fb\'e9\loch\f37 \hich\f37 \'f0\'e0\'f1\'ef +\'f0\'ee\'f1\'f2\'f0\'e0\'ed\'e0\'ff\'e5\'f2\'f1\'ff\loch\f37 \hich\f37 \'ed\'e0\loch\f37 \hich\f37 \'f3\'f1\'eb\'ee\'e2\'e8\'ff\'f5\loch\f37 \hich\f37 \'f1\'e2\'ee\'e5\'e9\loch\f37 \hich\f37 \'ef\'f0\'ee\'ef\'f0\'e8\'e5\'f2\'e0\'f0\'ed\'ee\'e9 +\loch\f37 \hich\f37 \'eb\'e8\'f6\'e5\'ed\'e7\'e8\'e8\loch\f37 \hich\f37 (\'f1\'ec\loch\f37 \hich\f37 . \'ef\'e0\'ef\'ea\'f3\loch\f37 \\\hich\af37\dbch\af31505\loch\f37 bin\\PT4) \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'ca\'f0\'ee\'ec\'e5\loch\f37 \hich\f37 \'f2\'ee\'e3\'ee\loch\f37 \hich\f37 , \'e2\loch\f37 \hich\f37 \'ee\'ea\'ed\'e5\loch\f37 Abou\hich\af37\dbch\af31505\loch\f37 -\hich\f37 t \'e8\'ed\'f2\'e5\'e3\'f0\'e8\'f0\'ee\'e2\'e0\'ed\'ed\'ee\'e9\loch\f37 \hich\f37 \'f1\'f0\'e5\'e4\'fb\loch\f37 \hich\f37 PascalABC.NET \'e4\'ee\'eb\'e6\'ed\'fb\loch\f37 \hich\f37 \'ee\'e1\'ff\'e7\'e0\'f2\'e5\'eb\'fc\'ed\'ee\loch\f37 -\hich\f37 \'f1\'ee\'e4\'e5\'f0\'e6\'e0\'f2\'fc\'f1\'ff\loch\f37 \hich\f37 \'e8\'ec\'e5\'ed\'e0\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'e2}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 -\hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0\loch\f37 \hich\f37 , \'ef\'f0\'e8\'e2\'e5\'e4\'e5\'ed\'ed\'fb\'e5\loch\f37 \hich\f37 \'e2\loch\f37 -\hich\f37 \'ed\'e0\'f7\'e0\'eb\'e5\loch\f37 \hich\f37 \'e4\'e0\'ed\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'e4\'ee\'ea\'f3\'ec\'e5\'ed\'f2\'e0\loch\f37 \hich\f37 \'f1\'f0\'e0\'e7\'f3\loch\f37 \hich\f37 \'ef\'ee\'f1\'eb\'e5\loch\f37 \hich\f37 \'e7\'e0 -\'e3\'ee\'eb\'ee\'e2\'ea\'e0\loch\f37 \hich\f37 \'ab\'c2\'c0\'c6\'cd\'c5\'c9\'d8\'c8\'c5\loch\f37 \hich\f37 \'d3\'d1\'cb\'ce\'c2\'c8\'df\loch\f37 \hich\f37 \'d0\'c0\'d1\'cf\'d0\'ce\'d1\'d2\'d0\'c0\'cd\'c5\'cd\'c8\'df\loch\f37 \hich\f37 \'cf\'d0\'ce -\'c4\'d3\'ca\'d2\'c0\loch\f37 PascalABC.NET}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 \loch\af37\dbch\af31505\hich\f37 \'e8\'eb\'e8\loch\f37 \hich\f37 \'eb -\'fe\'e1\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e8\'e7\'e2\'ee\'e4\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'bb.}{\rtlch\fcs1 \af37 -\ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612\charrsid5121612 \loch\af37\dbch\af31505\hich\f37 \'c2\loch\f37 \hich\f37 \'f1\'eb\'f3\'f7\'e0\'e5\loch\f37 \hich\f37 \'e8\'ed\'f2\'e5 -\'e3\'f0\'e0\'f6\'e8\'e8\loch\f37 \hich\f37 \'ea\'ee\'ec\'ef\'e8\'eb\'ff\'f2\'ee\'f0\'e0\loch\f37 \hich\f37 PascalABC.NET \'e2\loch\f37 \hich\f37 \'e4\'f0\'f3\'e3\'f3\'fe\loch\f37 \hich\f37 \'f1\'f0\'e5\'e4\'f3\loch\f37 \hich\f37 \'ee\'ea\'ed\'ee -\loch\f37 \hich\f37 \'f1\loch\f37 \hich\f37 \'f3\'ea\'e0\'e7\'e0\'ed\'ed\'fb\'ec\'e8\loch\f37 \hich\f37 \'e8\'ec\'e5\'ed\'e0\'ec\'e8\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'e2\loch\f37 \hich\f37 \'e4\'ee\'eb\'e6\'ed\'ee\loch\f37 \hich\f37 \'ee -\'e1\'ff\'e7\'e0\'f2\'e5\'eb\'fc\'ed\'ee\loch\f37 \hich\f37 \'ef\'f0\'e8\'f1\'f3\'f2\'f1\'f2\'e2\'ee\'e2\'e0\'f2\'fc\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'e4\'ee\'f1\'f2\'f3\'ef\'ed\'ee\'ec\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 \'ee\'f7 -\'e5\'e2\'e8\'e4\'ed\'ee\'ec\loch\f37 \hich\f37 \'ec\'e5\'f1\'f2\'e5}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 .\hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'ca\'f0\'ee\'ec\'e5\loch\f37 \hich\f37 \'f2\'ee\'e3\'ee\loch\f37 \hich\f37 , \'e2\loch\f37 \hich\f37 \'ee\'ea\'ed\'e5\loch\f37 \hich\f37 About \'e8\'ed\'f2\'e5\'e3 +\'f0\'e8\'f0\'ee\'e2\'e0\'ed\'ed\'ee\'e9\loch\f37 \hich\f37 \'f1\'f0\'e5\'e4\'fb\loch\f37 \hich\f37 PascalABC.NET \'e4\'ee\'eb\'e6\'ed\'fb\loch\f37 \hich\f37 \'ee\'e1\'ff\'e7\'e0\'f2\'e5\'eb\'fc\'ed\'ee\loch\f37 \hich\f37 \'f1\'ee\'e4\'e5\'f0\'e6\'e0 +\'f2\'fc\'f1\'ff\loch\f37 \hich\f37 \'e8\'ec\'e5\'ed\'e0\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'e2}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\'e0\loch\f37 \hich\f37 , \'ef\'f0\'e8\'e2\'e5\'e4\'e5\'ed\'ed\'fb\'e5\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'ed\'e0\'f7\'e0\'eb\'e5\loch\f37 \hich\f37 \'e4\'e0\'ed +\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'e4\'ee\'ea\'f3\'ec\'e5\'ed\'f2\'e0\loch\f37 \hich\f37 \'f1\'f0\'e0\'e7\'f3\loch\f37 \hich\f37 \'ef\'ee\'f1\'eb\'e5\loch\f37 \hich\f37 \'e7\'e0\'e3\'ee\'eb\'ee\'e2\'ea\'e0\loch\f37 \hich\f37 \'ab\'c2\'c0\'c6\'cd +\'c5\'c9\'d8\'c8\'c5\loch\f37 \hich\f37 \'d3\'d1\'cb\'ce\'c2\'c8\'df\loch\f37 \hich\f37 \'d0\'c0\'d1\'cf\'d0\'ce\'d1\'d2\'d0\'c0\'cd\'c5\'cd\'c8\'df\loch\f37 \hich\f37 \'cf\'d0\'ce\'c4\'d3\'ca\'d2\'c0\loch\f37 PascalABC.NET}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 \hich\f37 \'e8\'eb\'e8\loch\f37 \hich\f37 \'eb\'fe\'e1\'ee\'e3\'ee\loch\f37 \loch\af37\dbch\af31505\hich\f37 \'ef\'f0\'ee\'e8\'e7\'e2\'ee\'e4\'ed\'ee\'e3\'ee\loch\f37 \hich\f37 \'ef\'f0 +\'ee\'e4\'f3\'ea\'f2\'e0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'bb.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\insrsid5121612\charrsid5121612 \loch\af37\dbch\af31505\hich\f37 \'c2\loch\f37 \hich\f37 \'f1\'eb\'f3\'f7\'e0\'e5\loch\f37 \hich\f37 \'e8\'ed\'f2\'e5\'e3\'f0\'e0\'f6\'e8\'e8\loch\f37 \hich\f37 \'ea\'ee\'ec\'ef\'e8\'eb\'ff\'f2\'ee\'f0\'e0\loch\f37 +\hich\f37 PascalABC.NET \'e2\loch\f37 \hich\f37 \'e4\'f0\'f3\'e3\'f3\'fe\loch\f37 \hich\f37 \'f1\'f0\'e5\'e4\'f3\loch\f37 \hich\f37 \'ee\'ea\'ed\'ee\loch\f37 \hich\f37 \'f1\loch\f37 \hich\f37 \'f3\'ea\'e0\'e7\'e0\'ed\'ed\'fb\'ec\'e8\loch\f37 +\hich\f37 \'e8\'ec\'e5\'ed\'e0\'ec\'e8\loch\f37 \hich\f37 \'e0\'e2\'f2\'ee\'f0\'ee\'e2\loch\f37 \hich\f37 \'e4\'ee\'eb\'e6\'ed\'ee\loch\f37 \hich\f37 \'ee\'e1\'ff\'e7\'e0\'f2\'e5\'eb\'fc\'ed\'ee\loch\f37 \hich\f37 \'ef\'f0\'e8\'f1\'f3\'f2\'f1\'f2\'e2 +\'ee\'e2\'e0\'f2\'fc\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'e4\'ee\'f1\'f2\'f3\'ef\'ed\'ee\'ec\loch\f37 \hich\f37 \'e8\loch\f37 \hich\f37 \'ee\'f7\'e5\'e2\'e8\'e4\'ed\'ee\'ec\loch\f37 \hich\f37 \'ec\'e5\'f1\'f2\'e5}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \f37\insrsid5121612 \hich\af37\dbch\af31505\loch\f37 . }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'cd\'e0\'f8\'e0\loch\f37 \hich\f37 \'e8\'ed\'f2\'e5\'f0\'ef\'f0\'e5\'f2\'e0\'f6\'e8\'ff\loch\f37 \hich\f37 \'f0\'e0\'f1\'ef\'f0\'ee\'f1\'f2 -\loch\af37\dbch\af31505\hich\f37 \'f0\'e0\'ed\'ff\'e5\'f2\'f1\'ff\loch\f37 \hich\f37 \'f2\'ee\'eb\'fc\'ea\'ee\loch\f37 \hich\f37 \'ed\'e0\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\loch\f37 \hich\f37 PascalABC.NET - \'ec\'fb\loch\f37 \hich\f37 -\'ed\'e5\loch\f37 \hich\f37 \'e8\'ec\'e5\'e5\'ec\loch\f37 \hich\f37 \'e7\'e4\'e5\'f1\'fc\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'e2\'e8\'e4\'f3\loch\f37 \hich\f37 \'e4\'f0\'f3\'e3\'e8\'e5\loch\f37 \hich\f37 LGPL-\'ef\'f0\'ee\'e4\'f3\'ea\'f2\'fb -.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\insrsid14836557 \loch\af37\dbch\af31505\hich\f37 \'cd\'e0\'f8\'e0\loch\f37 \hich\f37 \'e8\'ed\'f2\'e5\'f0\'ef\'f0\'e5\'f2\'e0\'f6\'e8\'ff\loch\f37 \hich\f37 \'f0\'e0\'f1\'ef\'f0\'ee\'f1\'f2\'f0\'e0\'ed\'ff\'e5\'f2 +\'f1\'ff\loch\f37 \hich\f37 \'f2\'ee\'eb\'fc\'ea\'ee\loch\f37 \hich\f37 \'ed\'e0\loch\f37 \hich\f37 \'ef\'f0\'ee\'e4\'f3\'ea\'f2\loch\f37 Pa\hich\af37\dbch\af31505\loch\f37 \hich\f37 scalABC.NET - \'ec\'fb\loch\f37 \hich\f37 \'ed\'e5\loch\f37 +\hich\f37 \'e8\'ec\'e5\'e5\'ec\loch\f37 \hich\f37 \'e7\'e4\'e5\'f1\'fc\loch\f37 \hich\f37 \'e2\loch\f37 \hich\f37 \'e2\'e8\'e4\'f3\loch\f37 \hich\f37 \'e4\'f0\'f3\'e3\'e8\'e5\loch\f37 \hich\f37 LGPL-\'ef\'f0\'ee\'e4\'f3\'ea\'f2\'fb.}{\rtlch\fcs1 +\af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \par }{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1031\langfe1049\langnp1031\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 ******************************************************************************}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 GNU LESSER GENERAL PUBLIC LICENSE}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 \tab \tab Version 3, 29 June 2007}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 \tab \tab Version 3, 29 Jun\hich\af37\dbch\af31505\loch\f37 e 2007}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Copyright (C) 2007 Free Software Foundation, Inc. <}{\field{\*\fldinst {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 HYPERLINK "http://fsf.org/"}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid9338748 {\*\datafield -00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3800000068007400740070003a002f002f006600730066002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab000300650000}}}{\fldrslt {\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\ul\cf2\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 http://fsf.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3800000068007400740070003a002f002f006600730066002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003006500000c}}}{\fldrslt {\rtlch\fcs1 \af37 +\ltrch\fcs0 \f37\ul\cf2\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 http://fsf.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 > -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Everyone is permitted to copy a\hich\af37\dbch\af31505\loch\f37 nd distribute verbatim copies}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Everyone is permitted to copy and distribute verbatim copies}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of this license document, but changing it is not allowed.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -124,7 +124,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 As used herein, "this License" refers to version 3 of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License, and the "GNU GPL" refers to version 3 of the GNU}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License, and the "GNU\hich\af37\dbch\af31505\loch\f37 GPL" refers to version 3 of the GNU}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par @@ -133,7 +133,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 other than an Application or a Combined Work as defined below.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 An "Application" is any w\hich\af37\dbch\af31505\loch\f37 ork that makes use of an interface provided}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 An "Application" is any work that makes use of an interface p\hich\af37\dbch\af31505\loch\f37 rovided}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 by the Library, but which is not otherwise based on the Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -142,7 +142,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of using an interface provided by the Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 A "Combined Work" is a wor\hich\af37\dbch\af31505\loch\f37 k produced by combining or linking an}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 A "Combined Work" is a work produced by combining or linking a\hich\af37\dbch\af31505\loch\f37 n}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Application with the Library. The particular version of the Library}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -152,16 +152,16 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 The "Minimal Corresponding Source" for a Combined Work means the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Corres\hich\af37\dbch\af31505\loch\f37 ponding Source for the Combined Work, excluding any source code}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Corresponding Source for the Combined Work\hich\af37\dbch\af31505\loch\f37 , excluding any source code}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 for portions of the Combined Work that, considered in isolation, are}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 based on the Application, and not on the Linked Version.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 The "Corresponding Application Code" for a Combined Work means \hich\af37\dbch\af31505\loch\f37 the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 The "Corresponding Application Code" for a Combined Work means the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 object code and/or source code for the Application, including any data}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 object code and/or source code f\hich\af37\dbch\af31505\loch\f37 or the Application, including any data}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 and utility programs needed for reproducing the Combined Work from the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -188,7 +188,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 version:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) under this License, prov\hich\af37\dbch\af31505\loch\f37 ided that you make a good faith effort to}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) under this License, provided that you make a good faith effort to}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 ensure that, in the event an Application does not supply the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -197,7 +197,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 whatever part of its purpose remains meaningful, or}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 b) under the GNU GPL, with n\hich\af37\dbch\af31505\loch\f37 one of the additional permissions of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 b) under the GNU GPL, with none of the additional permissions of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 this License applicable to that copy.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par @@ -206,13 +206,13 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 The object code form of an Application may incorporate material from}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a header file that is part of the Libr\hich\af37\dbch\af31505\loch\f37 ary. You may convey such object}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a header\hich\af37\dbch\af31505\loch\f37 file that is part of the Library. You may convey such object}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 code under terms of your choice, provided that, if the incorporated}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 material is not limited to numerical parameters, data structure}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 layouts and accessors, or small macros, inline functions and templates}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 layouts and accessors, or small macros, inline functions and \hich\af37\dbch\af31505\loch\f37 templates}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 (ten or fewer lines in length), you do both of the following:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -223,38 +223,37 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 covered by this License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 b) Accompany the object code\hich\af37\dbch\af31505\loch\f37 with a copy of the GNU GPL and this license}{\rtlch\fcs1 \af37\afs24 -\ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 b) Accompany the object code with a copy of the GNU GPL and this license}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 document.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 4. Combined Works.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 You may convey a Combined Work under terms of your choice that,}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 You may convey a Combined Work under terms of your \hich\af37\dbch\af31505\loch\f37 choice that,}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 taken together, effectively do not restrict modification of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 portions of the Library contained in the Comb\hich\af37\dbch\af31505\loch\f37 ined Work and reverse}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 portions of the Library contained in the Combined Work and reverse}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 engineering for debugging such modifications, if you also do each of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 the following:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) Give prominent notice with each copy of the Combined Work that}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) Give prominent notice\hich\af37\dbch\af31505\loch\f37 with each copy of the Combined Work that}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 the Library is used in it and that the Library and its use are}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 covered by \hich\af37\dbch\af31505\loch\f37 this License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 -\f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 covered by this License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 b) Accompany the Combined Work with a copy of the GNU GPL and this license}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 document.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 c) For a Combined Work that displays copyright notices during}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 c) For a Combined Work t\hich\af37\dbch\af31505\loch\f37 hat displays copyright notices during}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 execution, include the copyright notice for the Library among}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 these notices, a\hich\af37\dbch\af31505\loch\f37 s well as a reference directing the user to the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 these notices, as well as a reference directing the user to the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 copies of the GNU GPL and this license document.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -267,7 +266,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 suitable for, and under terms that permit, the user to}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 recombine or relink the Application with a modif\hich\af37\dbch\af31505\loch\f37 ied version of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 recombine or rel\hich\af37\dbch\af31505\loch\f37 ink the Application with a modified version of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 the Linked Version to produce a modified Combined Work, in the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -275,37 +274,37 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Corresponding Source.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 1) Use a suitable shared library mechanism for linking with the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 1) Use a suitable shared library mec\hich\af37\dbch\af31505\loch\f37 hanism for linking with the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 Library. A suitable mechanism is one that (a) uses at run time}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Library. A suitable mechanism is one that (a) uses at run time}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a copy of the Library already present on the user's computer}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 system, and (b) will operate properly with a modified version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 system\hich\af37\dbch\af31505\loch\f37 , and (b) will operate properly with a modified version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of the Library that is interface-compatible w\hich\af37\dbch\af31505\loch\f37 ith the Linked}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of the Library that is interface-compatible with the Linked}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Version.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 e) Provide Installation Information, but only if you would otherwise}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 be required to provide such information under section 6 of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 be required to provide such information u\hich\af37\dbch\af31505\loch\f37 nder section 6 of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 GNU GPL, and only to the extent that such information is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 necessary to install an\hich\af37\dbch\af31505\loch\f37 d execute a modified version of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 necessary to install and execute a modified version of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Combined Work produced by recombining or relinking the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Application with a modified version of the Linked Version. (If}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Application with a modified version of the Linked V\hich\af37\dbch\af31505\loch\f37 ersion. (If}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 you use option 4d0, the Installation Information must accompany}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 the Minimal Corresponding \hich\af37\dbch\af31505\loch\f37 Source and Corresponding Application}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 the Minimal Corresponding Source and Corresponding Application}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Code. If you use option 4d1, you must provide the Installation}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Information in the manner specified by section 6 of the GNU GPL}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Information in the manner specified by sec\hich\af37\dbch\af31505\loch\f37 tion 6 of the GNU GPL}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 for conveying Corresponding Source.)}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par @@ -317,11 +316,11 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 facilities that are not Applications and are not covered by this}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 License, and convey such a combi\hich\af37\dbch\af31505\loch\f37 ned library under terms of your}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 License, and convey such a combined library under terms of your}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 choice, if you do both of the following:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) Accompany the combined library with a copy of the same work based}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 a) Accompany \hich\af37\dbch\af31505\loch\f37 the combined library with a copy of the same work based}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 on the Library, uncombined with any other library facilities,}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -330,7 +329,7 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 b) Give prominent notice with the combined library that part of it}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 is a work based on the Library, and explaining where to find the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 is a work based \hich\af37\dbch\af31505\loch\f37 on the Library, and explaining where to find the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 accompanying uncombined form of the same work.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -338,18 +337,18 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 6. Revised Versions of the GNU Lesser General Public License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 The Free Software Foundation may publish revised and/or new versions}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 The Free Software Foundation may publish revised and/or new versions}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of the GNU Lesser General Public License from time to time. Such new}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of the GNU Lesser Ge\hich\af37\dbch\af31505\loch\f37 neral Public License from time to time. Such new}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 versions will be similar in spirit to the present version, but may}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 differ in detail to address new problems or concer\hich\af37\dbch\af31505\loch\f37 ns.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 differ in detail to address new problems or concerns.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Each version is given a distinguishing version number. If the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Library as you received it specifies that a certain numbered version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 Library as you receiv\hich\af37\dbch\af31505\loch\f37 ed it specifies that a certain numbered version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 of the GNU Lesser General Public License "or any later version"}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -359,18 +358,18 @@ Normal Table;}}{\*\rsidtbl \rsid1983975\rsid2756858\rsid5121612\rsid9338748\rsid \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 published by the Free Software Foundation. If the Library as you}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 received it does not specify a version number of the GNU Less\hich\af37\dbch\af31505\loch\f37 er}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 received it does not specify a version number of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License, you may choose any version of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License, you may choose any version of the G\hich\af37\dbch\af31505\loch\f37 NU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 General Public License ever published by the Free Software Foundation.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 If the Library as you received it specifies that a proxy can decide}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 whether future versions of the GNU Lesser \hich\af37\dbch\af31505\loch\f37 General Public License shall}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 whether future versions of the GNU Lesser General Public License shall}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 apply, that proxy's public statement of acceptance of any version is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 apply, that proxy's public statem\hich\af37\dbch\af31505\loch\f37 ent of acceptance of any version is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid14836557 \hich\af37\dbch\af31505\loch\f37 permanent authorization for you to choose that version for the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid14836557 @@ -519,8 +518,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010dc -e68297dbd501feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000e041 +e0ab0e7ad601feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/ReleaseGenerators/License.txt b/ReleaseGenerators/License.txt index 8502f0494..917643ba8 100644 --- a/ReleaseGenerators/License.txt +++ b/ReleaseGenerators/License.txt @@ -1,4 +1,4 @@ -Данный документ описывает условия распространения продукта PascalABC.NET (версия 3.6). +Данный документ описывает условия распространения продукта PascalABC.NET (версия 3.7). Копия лицензии GNU LGPL прилагается в конце этого файла. ВАЖНЕЙШИЕ УСЛОВИЯ РАСПРОСТРАНЕНИЯ ПРОДУКТА PascalABC.NET или любого производного продукта diff --git a/ReleaseGenerators/License_en.rtf b/ReleaseGenerators/License_en.rtf index 405b960a7..b837dc730 100644 --- a/ReleaseGenerators/License_en.rtf +++ b/ReleaseGenerators/License_en.rtf @@ -37,16 +37,17 @@ \fs22\lang1049\langfe1049\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 \widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1049\langfe1049\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 \snext11 \ssemihidden \sunhideused -Normal Table;}}{\*\rsidtbl \rsid8737603\rsid12992900\rsid14828819}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info -{\operator \'d1\'f2\'e0\'ed\'e8\'f1\'eb\'e0\'e2 \'cc\'e8\'f5\'e0\'eb\'ea\'ee\'e2\'e8\'f7}{\creatim\yr2020\mo2\dy4\hr23\min53}{\revtim\yr2020\mo5\dy4\hr23\min7}{\version3}{\edmins1}{\nofpages4}{\nofwords1364}{\nofchars7779}{\nofcharsws9125}{\vern127}} +Normal Table;}}{\*\rsidtbl \rsid2127750\rsid8737603\rsid12992900\rsid14828819}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info +{\operator \'d1\'f2\'e0\'ed\'e8\'f1\'eb\'e0\'e2 \'cc\'e8\'f5\'e0\'eb\'ea\'ee\'e2\'e8\'f7}{\creatim\yr2020\mo2\dy4\hr23\min53}{\revtim\yr2020\mo8\dy24\hr15\min4}{\version4}{\edmins1}{\nofpages4}{\nofwords1364}{\nofchars7779}{\nofcharsws9125}{\vern7}} {\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1701\margr850\margt1134\margb1134\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 -\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale110\rsidroot8737603 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot8737603 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\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 \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1049\langfe1049\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1049\langfenp1049 {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Next, we describe the terms under which PascalABC.NET }{\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\lang1033\langfe1049\langnp1033\insrsid14828819\charrsid14828819 \hich\af37\dbch\af31505\loch\f37 (version 3.6) }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 is distributed. +\f37\lang1033\langfe1049\langnp1033\insrsid14828819\charrsid14828819 \hich\af37\dbch\af31505\loch\f37 (version 3.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid2127750 \hich\af37\dbch\af31505\loch\f37 7}{\rtlch\fcs1 \af37 +\ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid14828819\charrsid14828819 \hich\af37\dbch\af31505\loch\f37 ) }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 is distributed. \par \hich\af37\dbch\af31505\loch\f37 A copy of the GNU GPL is appended to this file. \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 IMPORTANT PascalABC.NET LICENSE TERMS}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid8737603 @@ -55,32 +56,32 @@ Normal Table;}}{\*\rsidtbl \rsid8737603\rsid12992900\rsid14828819}{\mmathPr\mmat \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Copyright (C) 2005-202}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 0}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 by Ivan Bondarev, Stanislav Mikhalkovich}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 This program is free software; you may redistribute and/or modify it under the terms of the GNU LGPL version 3 with the clar -\hich\af37\dbch\af31505\loch\f37 ifications and exceptions described below. }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 This program is free software; you may redistribute and/or modify it under \hich\af37\dbch\af31505\loch\f37 +the terms of the GNU LGPL version 3 with the clarifications and exceptions described below. }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 PascalABC.NET }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 can be linked with non-free modules and libraries}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 . }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 -\hich\af37\dbch\af31505\loch\f37 This condition is mainly concerned with possibility of adding foreign modules and libraries to PascalABC.NET, aimed at education.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 -\hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 In particular}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 -\hich\af37\dbch\af31505\loch\f37 , P\hich\af37\dbch\af31505\loch\f37 ascalABC.NET }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 +\hich\af37\dbch\af31505\loch\f37 This condition is mainly concerned with possibility of adding foreign modules and libraries to Pa\hich\af37\dbch\af31505\loch\f37 scalABC.NET, aimed at education.}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 In particular}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 , PascalABC.NET }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 includes as a part PROGRAMMING TASKBOOK FOR PASCALABC.NET}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 (in agreement with the author of this product), }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 which is distributed }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 under the terms of }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 proprietary license}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 (}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 see }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \\\hich\af37\dbch\af31505\loch\f37 bin\\PT4)}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par \hich\af37\dbch\af31505\loch\f37 In addition, in About window }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1031\langfe1049\langnp1031\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of}{\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 PascalABC.NET IDE we demand t\hich\af37\dbch\af31505\loch\f37 \hich\f37 -o display names of the authors of PascalABC.NET from the beginning of this document (right after the title \'93\loch\f37 IMPORTANT PascalABC.NET LICENSE TERMS}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603 -\hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603\charrsid8737603 \hich\af37\dbch\af31505\loch\f37 (or any derivative product)}{\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\lang1033\langfe1049\langnp1033\insrsid12992900 \loch\af37\dbch\af31505\hich\f37 \'94\loch\f37 ).}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 -\f37\lang1033\langfe1049\langnp1033\insrsid8737603\charrsid8737603 \hich\af37\dbch\af31505\loch\f37 If the PascalABC.NET compiler is integrated into another IDE, the window with \hich\af37\dbch\af31505\loch\f37 -names of the authors of PascalABC.NET must be present in an accessible and obvious place.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 +\par \hich\af37\dbch\af31505\loch\f37 In addition,\hich\af37\dbch\af31505\loch\f37 in About window }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1031\langfe1049\langnp1031\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 \hich\f37 PascalABC.NET IDE we demand to display names of the authors of PascalABC.NET from the beginning of this document (right after the title \'93\loch\f37 +IMPORTANT PascalABC.NET LICENSE TERMS}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603\charrsid8737603 +\hich\af37\dbch\af31505\loch\f37 (or any derivative product)}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \loch\af37\dbch\af31505\hich\f37 \'94\loch\f37 ).}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\f37\lang1033\langfe1049\langnp1033\insrsid8737603 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid8737603\charrsid8737603 \hich\af37\dbch\af31505\loch\f37 If the PascalABC.NET compiler +\hich\af37\dbch\af31505\loch\f37 is integrated into another IDE, the window with names of the authors of PascalABC.NET must be present in an accessible and obvious place.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 + \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1031\langfe1049\langnp1031\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Our interpretation applies only to PascalABC.NET - we don't speak for other people's LGPL works.}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 *****************************************************\hich\af37\dbch\af31505\loch\f37 *************************}{\rtlch\fcs1 \af37 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 ****\hich\af37\dbch\af31505\loch\f37 **************************************************************************}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 GNU LESSER GENERAL PUBLIC LICENSE}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 @@ -90,12 +91,12 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Copyright (C) 2007 Free Software Foundation, Inc. <}{\field{\*\fldinst {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 HYPERLINK "http://fsf.org/"}{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid8737603 {\*\datafield -00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3800000068007400740070003a002f002f006600730066002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab000300}}}{\fldrslt {\rtlch\fcs1 \af37 \ltrch\fcs0 +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3800000068007400740070003a002f002f006600730066002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab00030000}}}{\fldrslt {\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\ul\cf2\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 http://fsf.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 > \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Everyone is permitted to copy and distribute verbatim copies}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of this license document, but changing it is not allowed.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of thi\hich\af37\dbch\af31505\loch\f37 s license document, but changing it is not allowed.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par @@ -106,7 +107,8 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 License, supplemented by the additional permissions listed below.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 0. Additional Definitions.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 0. Additional Definitions.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 As used herein, "this License" refers to version 3 of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -116,48 +118,48 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 "The Library" refers to a covered work governed by this License,}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 other than an Applic\hich\af37\dbch\af31505\loch\f37 ation or a Combined Work as defined below.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 other than an Application or a Combined Work as defined below.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 An "Application" is any work that makes use of an interface provided}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 by the Library, but which is not otherwise based on the Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 by the Library, but which is not otherwise based on th\hich\af37\dbch\af31505\loch\f37 e Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Defining a subclass of a class defined by the Library is deemed a mode}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of us\hich\af37\dbch\af31505\loch\f37 ing an interface provided by the Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 -\f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of using an interface provided by the Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 + \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 A "Combined Work" is a work produced by combining or linking an}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Application with the Library. The particular version of the Library}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Application with the Library. The particular version of the\hich\af37\dbch\af31505\loch\f37 Library}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 with which the Combined Work was made is also called the "Linked}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Version".}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 The "Minimal Corresponding Source" for a Combined Work means the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 The "Minimal Corresponding Source" for a Combined Work means the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Corresponding Source for the Combined Work, excluding any source code}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 for portions of the Combined Work that, considered in isolation, are}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 for portions of the Combined Work \hich\af37\dbch\af31505\loch\f37 that, considered in isolation, are}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 based on the Application, and not on the Linked Vers\hich\af37\dbch\af31505\loch\f37 ion.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 based on the Application, and not on the Linked Version.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 The "Corresponding Application Code" for a Combined Work means the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 object code and/or source code for the Application, including any data}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 and utility programs needed for reproducing the Combined Work from the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 and utility programs ne\hich\af37\dbch\af31505\loch\f37 eded for reproducing the Combined Work from the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Application, but excluding the System L\hich\af37\dbch\af31505\loch\f37 ibraries of the Combined Work.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Application, but excluding the System Libraries of the Combined Work.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 1. Exception to Section 3 of the GNU GPL.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 You may convey a covered work under sections 3 and 4 of this License}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 You may convey a covered work under sectio\hich\af37\dbch\af31505\loch\f37 ns 3 and 4 of this License}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 without being bound by section 3 of the GNU GPL.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -174,27 +176,27 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 version:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 a) under this License, provided that you make a good faith effort to}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 a) under this License, provided that you \hich\af37\dbch\af31505\loch\f37 make a good faith effort to}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 ensure that, in the event an Application\hich\af37\dbch\af31505\loch\f37 does not supply the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 ensure that, in the event an Application does not supply the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 function or data, the facility still operates, and performs}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 whatever part of its purpose remains meaningful, or}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 b) under the GNU GPL, with none of the additional permissions of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 b) under the GNU GPL, with none of the add\hich\af37\dbch\af31505\loch\f37 itional permissions of}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 this License applicable to that copy.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 3. O\hich\af37\dbch\af31505\loch\f37 bject Code Incorporating Material from Library Header Files.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 3. Object Code Incorporating Material from Library Header Files.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 The object code form of an Application may incorporate material from}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 a header file that is part of the Library. You may convey such object}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 a header file that is part of the Library. You may \hich\af37\dbch\af31505\loch\f37 convey such object}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 code under terms of your choice, provided that, if t\hich\af37\dbch\af31505\loch\f37 he incorporated}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 code under terms of your choice, provided that, if the incorporated}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 material is not limited to numerical parameters, data structure}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -263,13 +265,13 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 1) Use a suitable shared library mechanism for linking with the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Library. A suitable mechanism is one that (a) uses at run time}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 Library. A suitable mechanism is one that (a) uses at run time}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 a copy of the Library already present on the user's computer}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 system, and (b) will operate properly w\hich\af37\dbch\af31505\loch\f37 ith a modified version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 system, and (b) will operate properly with a modified version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of the Library that is interface-compatible with the Linked}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of the Library that is interface-compatible w\hich\af37\dbch\af31505\loch\f37 ith the Linked}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Version.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par @@ -277,17 +279,17 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 be required to provide such information under section 6 of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 GNU GPL,\hich\af37\dbch\af31505\loch\f37 and only to the extent that such information is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 GNU GPL, and only to the extent that such information is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 necessary to install and execute a modified version of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 necessary to install an\hich\af37\dbch\af31505\loch\f37 d execute a modified version of the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Combined Work produced by recombining or relinking the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Application with a modified version of the Linked Version. (If}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 you use option 4d0\hich\af37\dbch\af31505\loch\f37 , the Installation Information must accompany}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 you use option 4d0, the Installation Information must accompany}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 the Minimal Corresponding Source and Corresponding Application}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 the Minimal Corresponding \hich\af37\dbch\af31505\loch\f37 Source and Corresponding Application}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Code. If you use option 4d1, you must provide the Installation}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -301,9 +303,9 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Library side by side in a single library together with other library}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 facilities that are not Applications and are not covered\hich\af37\dbch\af31505\loch\f37 by this}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 facilities that are not Applications and are not covered by this}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 License, and convey such a combined library under terms of your}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 License, and convey such a combi\hich\af37\dbch\af31505\loch\f37 ned library under terms of your}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 choice, if you do both of the following:}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par @@ -311,8 +313,8 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 on the Library, uncombined with any other library facilities,}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 c\hich\af37\dbch\af31505\loch\f37 onveyed under the terms of this License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 -\f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 conveyed under the terms of this License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 + \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 b) Give prominent notice with the combined library that part of it}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -321,16 +323,16 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 accompanying uncombined form of the same work.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 6. Revised Versions of \hich\af37\dbch\af31505\loch\f37 the GNU Lesser General Public License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 6. Revised Versions of the GNU Lesser General Public License.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 The Free Software Foundation may publish revised and/or new versions}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 \hich\af37\dbch\af31505\loch\f37 The Free Software Foundation may publish revised and/or new versions}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of the GNU Lesser General Public License from time to time. Such new}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 versions will be similar in spirit to the present version, but may}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 differ in\hich\af37\dbch\af31505\loch\f37 detail to address new problems or concerns.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 differ in detail to address new problems or concer\hich\af37\dbch\af31505\loch\f37 ns.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Each version is given a distinguishing version number. If the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 @@ -339,13 +341,13 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 of the GNU Lesser General Public License "or any later version"}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 applies to it, you have the option of following the terms and}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 appl\hich\af37\dbch\af31505\loch\f37 ies to it, you have the option of following the terms and}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 conditions either of that published version or of any later version}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 published by the Free Software Foundation. If the Library as you}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 received it does not specify a version number of the GNU Less\hich\af37\dbch\af31505\loch\f37 er}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 received it does not specify a version number of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 General Public License, you may choose any version of the GNU Lesser}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 @@ -354,11 +356,11 @@ names of the authors of PascalABC.NET must be present in an accessible and obvio \par \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 If the Library as you received it specifies that a proxy can decide}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 whether future versions of the GNU Lesser General Public License shall}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 whether future versions of the GNU Lesser Gen\hich\af37\dbch\af31505\loch\f37 eral Public License shall}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 apply, that proxy's public statement of acceptance of any version is}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 -\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 permanent authorization for you to choose that\hich\af37\dbch\af31505\loch\f37 version for the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 +\par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 permanent authorization for you to choose that version for the}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\rtlch\fcs1 \af37 \ltrch\fcs0 \f37\lang7\langfe1049\langnp7\insrsid12992900 \hich\af37\dbch\af31505\loch\f37 Library.}{\rtlch\fcs1 \af37\afs24 \ltrch\fcs0 \f37\fs24\lang1033\langfe1049\langnp1033\insrsid12992900 \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a @@ -505,8 +507,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000104f -16b44f22d601feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000f098 +37b10e7ad601feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/ReleaseGenerators/License_en.txt b/ReleaseGenerators/License_en.txt index bee695058..4fab2477f 100644 --- a/ReleaseGenerators/License_en.txt +++ b/ReleaseGenerators/License_en.txt @@ -1,4 +1,4 @@ -Next, we describe the terms under which PascalABC.NET (version 3.6) is distributed. +Next, we describe the terms under which PascalABC.NET (version 3.7) is distributed. A copy of the GNU GPL is appended to this file. IMPORTANT PascalABC.NET LICENSE TERMS (or any derivative product) diff --git a/ReleaseGenerators/PascalABCNET_end.nsh b/ReleaseGenerators/PascalABCNET_end.nsh index c7b73e3a9..ee2672030 100644 --- a/ReleaseGenerators/PascalABCNET_end.nsh +++ b/ReleaseGenerators/PascalABCNET_end.nsh @@ -8,6 +8,10 @@ ExecWait '"$INSTDIR\ExecHide.exe" "$INSTDIR\gacutil.exe" /u "HelixToolkit"' ExecWait '"$INSTDIR\ExecHide.exe" "$INSTDIR\gacutil.exe" /i "$INSTDIR\Lib\HelixToolkit.dll"' + + ExecWait '"$INSTDIR\ExecHide.exe" "$INSTDIR\gacutil.exe" /u "nunit.framework"' + ExecWait '"$INSTDIR\ExecHide.exe" "$INSTDIR\gacutil.exe" /i "$INSTDIR\Lib\nunit.framework.dll"' + ;\MikhailoMMX Delete "$INSTDIR\gacutil.exe" Delete "$INSTDIR\gacutil.exe.config" diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 39d1eb777..0345a8406 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.6.3.2660' +!define VERSION '3.7.0.2670' diff --git a/ReleaseGenerators/RebuildStandartModules.pas b/ReleaseGenerators/RebuildStandartModules.pas index 63b583fba..bbe1212e1 100644 --- a/ReleaseGenerators/RebuildStandartModules.pas +++ b/ReleaseGenerators/RebuildStandartModules.pas @@ -15,7 +15,7 @@ ABCDatabases,BlockFileOfT,Controls, OpenCLABC, OpenCL, OpenCLABCBase, OpenGLABC, OpenGL, OpenGLABCBase, - BBCMicroBit, School, SF, TwoPanelsWindow + BBCMicroBit, School, SF, TwoPanelsWindow, NUnitABC ; begin diff --git a/ReleaseGenerators/sect_Core.nsh b/ReleaseGenerators/sect_Core.nsh index 1410958be..477a6b56d 100644 --- a/ReleaseGenerators/sect_Core.nsh +++ b/ReleaseGenerators/sect_Core.nsh @@ -138,11 +138,12 @@ File ..\bin\Lib\SF.pcu File ..\bin\Lib\Turtle.pcu File ..\bin\Lib\TwoPanelsWindow.pcu + File ..\bin\Lib\NUnitABC.pcu File ..\bin\Lib\PABCRtl.dll File ..\bin\Lib\HelixToolkit.Wpf.dll File ..\bin\Lib\HelixToolkit.dll - + File ..\bin\Lib\nunit.framework.dll ${AddFile} "__RedirectIOMode.pcu" ${AddFile} "__RunMode.pcu" @@ -210,11 +211,14 @@ ${AddFile} "SF.pcu" ${AddFile} "Turtle.pcu" ${AddFile} "TwoPanelsWindow.pcu" + ${AddFile} "NUnitABC.pcu" ${AddFile} "PABCRtl.dll" ${AddFile} "HelixToolkit.Wpf.dll" ${AddFile} "HelixToolkit.dll" + ${AddFile} "nunit.framework.dll" + ${AddFile} "PABCRtl.pdb" SetOutPath "$INSTDIR\Doc" @@ -228,6 +232,8 @@ Call NGEN Push "Lib\HelixToolkit.dll" Call NGEN + Push "Lib\nunit.framework.dll" + Call NGEN SetOutPath "$INSTDIR\LibSource" File ..\bin\Lib\__RedirectIOMode.pas @@ -294,6 +300,7 @@ File ..\bin\Lib\SF.pas File ..\bin\Lib\Turtle.pas File ..\bin\Lib\TwoPanelsWindow.pas + File ..\bin\Lib\NUnitABC.pas File ..\bin\Lib\__RedirectIOMode.vb File ..\bin\Lib\VBSystem.vb @@ -362,6 +369,7 @@ ${AddFile} "SF.pas" ${AddFile} "Turtle.pas" ${AddFile} "TwoPanelsWindow.pas" + ${AddFile} "NUnitABC.pas" ${AddFile} "__RedirectIOMode.vb" diff --git a/ReleaseGenerators/sect_VisualPABCNET.nsh b/ReleaseGenerators/sect_VisualPABCNET.nsh index adce630e3..5a3f0dae3 100644 --- a/ReleaseGenerators/sect_VisualPABCNET.nsh +++ b/ReleaseGenerators/sect_VisualPABCNET.nsh @@ -20,6 +20,7 @@ File "..\bin\nuget.exe" File "..\bin\FormatterOptions.ini" File "..\bin\ProgrammRunner.exe" + File "..\bin\RunUnitTests.exe" File "..\bin\pabcworknet.ini" ;dobavljaem fajly v uninst.log @@ -42,6 +43,7 @@ ${AddFile} "nuget.exe" ${AddFile} "FormatterOptions.ini" ${AddFile} "ProgrammRunner.exe" + ${AddFile} "RunUnitTests.exe" SetOutPath "$INSTDIR\Temp" SetOutPath "$INSTDIR" diff --git a/SemanticTree/SemanticTree.csproj b/SemanticTree/SemanticTree.csproj index 60210060a..a61943aa6 100644 --- a/SemanticTree/SemanticTree.csproj +++ b/SemanticTree/SemanticTree.csproj @@ -69,6 +69,7 @@ full prompt AllRules.ruleset + true ..\bin\ diff --git a/SyntaxTreeConverters/SyntaxTreeConverters.csproj b/SyntaxTreeConverters/SyntaxTreeConverters.csproj index 19cde9c03..b70a85b2b 100644 --- a/SyntaxTreeConverters/SyntaxTreeConverters.csproj +++ b/SyntaxTreeConverters/SyntaxTreeConverters.csproj @@ -20,6 +20,7 @@ DEBUG;TRACE prompt 4 + true pdbonly diff --git a/SyntaxVisitors/SyntaxVisitors.csproj b/SyntaxVisitors/SyntaxVisitors.csproj index 506b9f1fc..bb34f7442 100644 --- a/SyntaxVisitors/SyntaxVisitors.csproj +++ b/SyntaxVisitors/SyntaxVisitors.csproj @@ -21,6 +21,7 @@ DEBUG;TRACE prompt 4 + true pdbonly diff --git a/TestSuite/CompilationSamples/School.pas b/TestSuite/CompilationSamples/School.pas index ffd54fbed..469d4fed6 100644 --- a/TestSuite/CompilationSamples/School.pas +++ b/TestSuite/CompilationSamples/School.pas @@ -53,7 +53,7 @@ function Primes(n: integer): List; /// Первые n простых чисел function FirstPrimes(n: integer): List; -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(n: int64): List; /// возвращает список делителей натурального числа @@ -80,6 +80,25 @@ function SeqRandomReal(n: integer; a, b: real; t: integer): sequence of real; /// на интервале [a; b) с t знаками в дробной части function MatrRandomReal(m: integer; n: integer; a, b: real; t: integer): array [,] of real; +/// Возвращает логическое значение операции импликации a -> b +function Imp(a, b: boolean) : boolean; + +/// Выводит на монитор таблицу истинности для двух переменных +procedure TrueTable(f: function(a, b: boolean): boolean; + vars: string := 'x1.x2'); + +/// Выводит на монитор таблицу истинности для трех переменных +procedure TrueTable(f: function(a, b, c: boolean): boolean; + vars: string := 'x1.x2.x3'); + +/// Выводит на монитор таблицу истинности для четырех переменных +procedure TrueTable(f: function(a, b, c, d: boolean): boolean; + vars: string := 'x1.x2.x3.x4'); + +/// Выводит на монитор таблицу истинности для пяти переменных +procedure TrueTable(f: function(a, b, c, d, e: boolean): boolean; + vars: string := 'x1.x2.x3.x4.x5'); + implementation type @@ -428,7 +447,7 @@ end; {$region Digits} -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(n: int64): List; begin var St := new Stack; @@ -445,11 +464,11 @@ begin end end; -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(Self: integer): List; extensionmethod := Digits(Self); -/// возвращает массив, содержащий цифры числа +/// возвращает список, содержащий цифры числа function Digits(Self: int64): List; extensionmethod := Digits(Self); @@ -560,4 +579,82 @@ end; {$endregion} +{$region BooleanLogic} + +function BoolToStr(Self: boolean): string; extensionmethod := + if Self then '1' else '0'; + +/// Возвращает логическое значение операции импликации a -> b +function Imp(a, b: boolean) : boolean := not a or b; + +/// Выводит на монитор таблицу истинности для двух переменных +procedure TrueTable(f: function(a, b: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + f(a, b).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для трех переменных +procedure TrueTable(f: function(a, b, c: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], f(a, b, c).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для четырех переменных +procedure TrueTable(f: function(a, b, c, d: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + for var d := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], d.BoolToStr:lengths[3], + f(a, b, c, d).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для пяти переменных +procedure TrueTable(f: function(a, b, c, d, e: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + for var d := False to True do + for var e := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], d.BoolToStr:lengths[3], + e.BoolToStr:lengths[4], f(a, b, c, d, e).BoolToStr:2) +end; + +{$endregion} + end. \ No newline at end of file diff --git a/TreeConverter/TreeConverter.csproj b/TreeConverter/TreeConverter.csproj index f47a9cddf..783886235 100644 --- a/TreeConverter/TreeConverter.csproj +++ b/TreeConverter/TreeConverter.csproj @@ -60,6 +60,7 @@ AllRules.ruleset + true ..\bin\ diff --git a/VisualPascalABCNET/Form1.Designer.cs b/VisualPascalABCNET/Form1.Designer.cs index 27570776f..d07b76485 100644 --- a/VisualPascalABCNET/Form1.Designer.cs +++ b/VisualPascalABCNET/Form1.Designer.cs @@ -177,6 +177,7 @@ namespace VisualPascalABC this.tsFindAllReferences = new System.Windows.Forms.ToolStripMenuItem(); this.miGenerateRealization = new System.Windows.Forms.ToolStripMenuItem(); this.mFORMATToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.mUNITTESTSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.miPlugins = new System.Windows.Forms.ToolStripMenuItem(); this.mrHelp = new System.Windows.Forms.ToolStripMenuItem(); this.tsHelp = new System.Windows.Forms.ToolStripMenuItem(); @@ -1390,7 +1391,7 @@ namespace VisualPascalABC // miShowGrid // this.miShowGrid.Name = "miShowGrid"; - this.miShowGrid.Size = new System.Drawing.Size(165, 22); + this.miShowGrid.Size = new System.Drawing.Size(180, 22); this.miShowGrid.Text = "M_SHOW_GRID"; this.miShowGrid.Visible = false; this.miShowGrid.Click += new System.EventHandler(this.miShowGrid_Click); @@ -1398,7 +1399,7 @@ namespace VisualPascalABC // miSnapToGrid // this.miSnapToGrid.Name = "miSnapToGrid"; - this.miSnapToGrid.Size = new System.Drawing.Size(165, 22); + this.miSnapToGrid.Size = new System.Drawing.Size(180, 22); this.miSnapToGrid.Text = "M_SNAP_TO_GRID"; this.miSnapToGrid.Visible = false; this.miSnapToGrid.Click += new System.EventHandler(this.miSnapToGrid_Click); @@ -1414,7 +1415,7 @@ namespace VisualPascalABC this.miAlignCenters, this.miAlignToGrid}); this.miAlign.Name = "miAlign"; - this.miAlign.Size = new System.Drawing.Size(165, 22); + this.miAlign.Size = new System.Drawing.Size(180, 22); this.miAlign.Text = "M_ALIGN"; // // miAlignLefts @@ -1472,7 +1473,7 @@ namespace VisualPascalABC this.miCenterHorizontally, this.miCenterVertically}); this.miCenter.Name = "miCenter"; - this.miCenter.Size = new System.Drawing.Size(165, 22); + this.miCenter.Size = new System.Drawing.Size(180, 22); this.miCenter.Text = "M_CENTER"; // // miCenterHorizontally @@ -1497,7 +1498,7 @@ namespace VisualPascalABC this.miSizeToControlHeight, this.miSizeToGrid}); this.miSizeTo.Name = "miSizeTo"; - this.miSizeTo.Size = new System.Drawing.Size(165, 22); + this.miSizeTo.Size = new System.Drawing.Size(180, 22); this.miSizeTo.Text = "M_SIZE_TO"; // // miSizeToControl @@ -1534,7 +1535,7 @@ namespace VisualPascalABC this.miBringToFront, this.miSendToBack}); this.miZOrder.Name = "miZOrder"; - this.miZOrder.Size = new System.Drawing.Size(165, 22); + this.miZOrder.Size = new System.Drawing.Size(180, 22); this.miZOrder.Text = "M_Z_ORDER"; // // miBringToFront @@ -1554,7 +1555,7 @@ namespace VisualPascalABC // miTabOrder // this.miTabOrder.Name = "miTabOrder"; - this.miTabOrder.Size = new System.Drawing.Size(165, 22); + this.miTabOrder.Size = new System.Drawing.Size(180, 22); this.miTabOrder.Text = "M_TAB_ORDER"; this.miTabOrder.Click += new System.EventHandler(this.miTabOrder_Click); // @@ -1568,7 +1569,8 @@ namespace VisualPascalABC this.tsGotoRealization, this.tsFindAllReferences, this.miGenerateRealization, - this.mFORMATToolStripMenuItem}); + this.mFORMATToolStripMenuItem, + this.mUNITTESTSToolStripMenuItem}); this.mrService.Name = "mrService"; this.mrService.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.D))); @@ -1624,7 +1626,9 @@ namespace VisualPascalABC // this.miGenerateRealization.Image = ((System.Drawing.Image)(resources.GetObject("miGenerateRealization.Image"))); this.miGenerateRealization.Name = "miGenerateRealization"; - this.miGenerateRealization.ShortcutKeyDisplayString = "Shift+Ctrl+C"; + this.miGenerateRealization.ShortcutKeyDisplayString = ""; + this.miGenerateRealization.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.C))); this.miGenerateRealization.Size = new System.Drawing.Size(282, 22); this.miGenerateRealization.Text = "M_GENERATE_REALIZATION"; // @@ -1638,6 +1642,15 @@ namespace VisualPascalABC this.mFORMATToolStripMenuItem.Text = "M_FORMAT"; this.mFORMATToolStripMenuItem.Click += new System.EventHandler(this.mFORMATToolStripMenuItem_Click); // + // mUNITTESTSToolStripMenuItem + // + this.mUNITTESTSToolStripMenuItem.Name = "mUNITTESTSToolStripMenuItem"; + this.mUNITTESTSToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + | System.Windows.Forms.Keys.T))); + this.mUNITTESTSToolStripMenuItem.Size = new System.Drawing.Size(282, 22); + this.mUNITTESTSToolStripMenuItem.Text = "M_UNIT_TESTS"; + this.mUNITTESTSToolStripMenuItem.Click += new System.EventHandler(this.mUNITTESTSToolStripMenuItem_Click); + // // miPlugins // this.miPlugins.Name = "miPlugins"; @@ -2601,6 +2614,7 @@ namespace VisualPascalABC private System.Windows.Forms.ToolStripMenuItem tsDisassembly; private System.Windows.Forms.ToolStripButton tsAutoInsertCode; private System.Windows.Forms.ToolStripMenuItem mAUTOINSERTToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem mUNITTESTSToolStripMenuItem; } } diff --git a/VisualPascalABCNET/Form1.cs b/VisualPascalABCNET/Form1.cs index 11d29d1ce..fd55cba34 100644 --- a/VisualPascalABCNET/Form1.cs +++ b/VisualPascalABCNET/Form1.cs @@ -1541,6 +1541,35 @@ namespace VisualPascalABC mAUTOINSERTToolStripMenuItem.Checked = !mAUTOINSERTToolStripMenuItem.Checked; } + private void mUNITTESTSToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + WorkbenchServiceFactory.Workbench.ErrorsListWindow.ClearErrorList(); + var OutputFileName = WorkbenchServiceFactory.BuildService.Compile(CurrentSourceFileName, false, "__RunMode", true, true); + if (OutputFileName != null) + { + var process = new System.Diagnostics.Process(); + process.StartInfo.FileName = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "RunUnitTests.exe"); + process.StartInfo.Arguments = "\""+OutputFileName+"\""; + process.Start(); + } + /*WorkbenchServiceFactory.RunService.Run(@"D:\PABC_Git\bin\RunUnitTests.exe", + WorkbenchServiceFactory.Workbench.UserOptions.RedirectConsoleIO, "", false, + WorkbenchServiceFactory.Workbench.VisualEnvironmentCompiler.Compiler.CompilerOptions.SourceFileDirectory, + WorkbenchServiceFactory.Workbench.VisualEnvironmentCompiler.Compiler.CompilerOptions.SourceFileName, false, false);*/ + } + catch (System.Exception ee) + { + ee = ee; + // SSM 22/04/19 - исправляю вылет оболочки при отсутствии exe файла + // this.RunnerManager_Exited(OutputFileName); // - это всё равно не срабатывает. Кнопки оказываются в заблокированном состоянии + //var OutputFileName = @"D:\PABC_Git\bin\RunUnitTests.exe"; + //WorkbenchServiceFactory.OperationsService.AddTextToOutputWindowSync(OutputFileName, "Произошла непредвиденная ошибка" + ee.StackTrace); + //throw; + } + } + private void tsHelp_Click(object sender, EventArgs e) { __showhelpinqueue(); diff --git a/VisualPascalABCNET/Form1.resx b/VisualPascalABCNET/Form1.resx index 864e59647..42168b08e 100644 --- a/VisualPascalABCNET/Form1.resx +++ b/VisualPascalABCNET/Form1.resx @@ -681,7 +681,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABK - FQAAAk1TRnQBSQFMAgEBEAEAAfwBAAH8AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + FQAAAk1TRnQBSQFMAgEBEAEAARwBAQEcAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAVADAAEBAQABCAYAARQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index 6e678eea0..35b2e8a0e 100644 --- a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -36,6 +36,7 @@ True DEBUG,TRACE;PUBLICINTERPROCESS ..\..\..\..\..\..\..\bin\ + true false diff --git a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Core/Project/ICSharpCode.Core.csproj b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Core/Project/ICSharpCode.Core.csproj index 17262735a..b53881d16 100644 --- a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Core/Project/ICSharpCode.Core.csproj +++ b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/Core/Project/ICSharpCode.Core.csproj @@ -35,6 +35,7 @@ True ..\..\..\..\bin\ 4 + true False diff --git a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj index b95129f46..4a96750a3 100644 --- a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj +++ b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj @@ -45,6 +45,9 @@ AnyCPU 4096 + + true + diff --git a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj index 3ba480cd1..91f76338c 100644 --- a/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj +++ b/VisualPascalABCNET/FormsDesignerBinding/Dependecies/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj @@ -42,6 +42,9 @@ AnyCPU 4096 + + true + diff --git a/VisualPascalABCNET/Workbench/RunService.cs b/VisualPascalABCNET/Workbench/RunService.cs index e7b4350c5..40b1db5f4 100644 --- a/VisualPascalABCNET/Workbench/RunService.cs +++ b/VisualPascalABCNET/Workbench/RunService.cs @@ -18,7 +18,7 @@ namespace VisualPascalABC string RedirectIOModeName = "[REDIRECTIOMODE]"; string RunModeName = "[RUNMODE]"; private bool TerminateAllPrograms = false; - internal RunManager RunnerManager; + public RunManager RunnerManager; private IWorkbench Workbench; private IWorkbenchDesignerService DesignerService; private IWorkbenchBuildService BuildService; @@ -65,6 +65,14 @@ namespace VisualPascalABC return Run(DocumentService.CurrentCodeFileDocument, forDebugging, startWithGoto, need_first_brpt); } + public void Run(string fileName, bool redirectIO, string ModeName, bool RunWithPause, string WorkingDirectory, string CommandLineArguments, bool attachDebugger, bool fictive_attach) + { + RunnerManager.Run(fileName, + Workbench.UserOptions.RedirectConsoleIO, RedirectIOModeName, RunWithPause, + Workbench.VisualEnvironmentCompiler.Compiler.CompilerOptions.SourceFileDirectory, + CommandLineArguments, attachDebugger, fictive_attach); + } + public bool Run(ICodeFileDocument tabPage, bool forDebugging, bool startWithGoto, bool needFirstBreakpoint) { lock (o) diff --git a/VisualPlugins/CompilerController/CompilerController.csproj b/VisualPlugins/CompilerController/CompilerController.csproj index 662b939fd..15f0adbda 100644 --- a/VisualPlugins/CompilerController/CompilerController.csproj +++ b/VisualPlugins/CompilerController/CompilerController.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/HelpBuilder/HelpBuilder.csproj b/VisualPlugins/HelpBuilder/HelpBuilder.csproj index 3da190b77..875a7d7a3 100644 --- a/VisualPlugins/HelpBuilder/HelpBuilder.csproj +++ b/VisualPlugins/HelpBuilder/HelpBuilder.csproj @@ -59,6 +59,7 @@ AllRules.ruleset + true AllRules.ruleset diff --git a/VisualPlugins/InternalErrorReport/InternalErrorReport.csproj b/VisualPlugins/InternalErrorReport/InternalErrorReport.csproj index ab645d50a..c119ac1f4 100644 --- a/VisualPlugins/InternalErrorReport/InternalErrorReport.csproj +++ b/VisualPlugins/InternalErrorReport/InternalErrorReport.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/LanguageConverter/LanguageConverter.csproj b/VisualPlugins/LanguageConverter/LanguageConverter.csproj index 6eb83f660..9d057afce 100644 --- a/VisualPlugins/LanguageConverter/LanguageConverter.csproj +++ b/VisualPlugins/LanguageConverter/LanguageConverter.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/PT4Provider/PT4Provider.csproj b/VisualPlugins/PT4Provider/PT4Provider.csproj index dfa7b1a6d..e608b0019 100644 --- a/VisualPlugins/PT4Provider/PT4Provider.csproj +++ b/VisualPlugins/PT4Provider/PT4Provider.csproj @@ -44,6 +44,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/SemanticTreeVisualisator/SemanticTreeVisualisator.csproj b/VisualPlugins/SemanticTreeVisualisator/SemanticTreeVisualisator.csproj index 28e02dba3..69e4553ec 100644 --- a/VisualPlugins/SemanticTreeVisualisator/SemanticTreeVisualisator.csproj +++ b/VisualPlugins/SemanticTreeVisualisator/SemanticTreeVisualisator.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/SyntaxTreeVisualisator/SyntaxTreeVisualisator.csproj b/VisualPlugins/SyntaxTreeVisualisator/SyntaxTreeVisualisator.csproj index 76f7f1b6d..247f3522a 100644 --- a/VisualPlugins/SyntaxTreeVisualisator/SyntaxTreeVisualisator.csproj +++ b/VisualPlugins/SyntaxTreeVisualisator/SyntaxTreeVisualisator.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/VisualPlugins/TestPlugin/TestPlugin.csproj b/VisualPlugins/TestPlugin/TestPlugin.csproj index 1cb8afe10..e98814370 100644 --- a/VisualPlugins/TestPlugin/TestPlugin.csproj +++ b/VisualPlugins/TestPlugin/TestPlugin.csproj @@ -42,6 +42,7 @@ prompt 4 AllRules.ruleset + true pdbonly diff --git a/Yield/YieldHelpers/YieldHelpers.csproj b/Yield/YieldHelpers/YieldHelpers.csproj index 724bf5a87..9516d94c8 100644 --- a/Yield/YieldHelpers/YieldHelpers.csproj +++ b/Yield/YieldHelpers/YieldHelpers.csproj @@ -21,6 +21,7 @@ DEBUG;TRACE prompt 4 + true pdbonly diff --git a/_RegisterHelix.bat b/_RegisterHelix.bat deleted file mode 100644 index 97748f876..000000000 --- a/_RegisterHelix.bat +++ /dev/null @@ -1,4 +0,0 @@ -ReleaseGenerators\gacutil.exe /u HelixToolkit.Wpf -ReleaseGenerators\gacutil.exe /i bin\Lib\HelixToolkit.Wpf.dll -ReleaseGenerators\gacutil.exe /u HelixToolkit -ReleaseGenerators\gacutil.exe /i bin\Lib\HelixToolkit.dll \ No newline at end of file diff --git a/_RegisterHelixNUnit.bat b/_RegisterHelixNUnit.bat new file mode 100644 index 000000000..eb29a0b51 --- /dev/null +++ b/_RegisterHelixNUnit.bat @@ -0,0 +1,6 @@ +ReleaseGenerators\gacutil.exe /u HelixToolkit.Wpf +ReleaseGenerators\gacutil.exe /i bin\Lib\HelixToolkit.Wpf.dll +ReleaseGenerators\gacutil.exe /u HelixToolkit +ReleaseGenerators\gacutil.exe /i bin\Lib\HelixToolkit.dll +ReleaseGenerators\gacutil.exe /u nunit.framework +ReleaseGenerators\gacutil.exe /i bin\Lib\nunit.framework.dll \ No newline at end of file diff --git a/bin/Lib/NUnitABC.pas b/bin/Lib/NUnitABC.pas new file mode 100644 index 000000000..f34b3d497 --- /dev/null +++ b/bin/Lib/NUnitABC.pas @@ -0,0 +1,19 @@ +unit NUnitABC; + +{$reference nunit.framework.dll} +uses NUnit.Framework; + +procedure InitPABCSystem; +begin + __InitPABCSystem; +end; + +type + SetUpAttribute = NUnit.Framework.SetUpAttribute; + TestAttribute = NUnit.Framework.TestAttribute; + TestCaseAttribute = NUnit.Framework.TestCaseAttribute; + Assert = NUnit.Framework.Assert; + +begin + +end. \ No newline at end of file diff --git a/bin/Lib/School.pas b/bin/Lib/School.pas index ffd54fbed..469d4fed6 100644 --- a/bin/Lib/School.pas +++ b/bin/Lib/School.pas @@ -53,7 +53,7 @@ function Primes(n: integer): List; /// Первые n простых чисел function FirstPrimes(n: integer): List; -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(n: int64): List; /// возвращает список делителей натурального числа @@ -80,6 +80,25 @@ function SeqRandomReal(n: integer; a, b: real; t: integer): sequence of real; /// на интервале [a; b) с t знаками в дробной части function MatrRandomReal(m: integer; n: integer; a, b: real; t: integer): array [,] of real; +/// Возвращает логическое значение операции импликации a -> b +function Imp(a, b: boolean) : boolean; + +/// Выводит на монитор таблицу истинности для двух переменных +procedure TrueTable(f: function(a, b: boolean): boolean; + vars: string := 'x1.x2'); + +/// Выводит на монитор таблицу истинности для трех переменных +procedure TrueTable(f: function(a, b, c: boolean): boolean; + vars: string := 'x1.x2.x3'); + +/// Выводит на монитор таблицу истинности для четырех переменных +procedure TrueTable(f: function(a, b, c, d: boolean): boolean; + vars: string := 'x1.x2.x3.x4'); + +/// Выводит на монитор таблицу истинности для пяти переменных +procedure TrueTable(f: function(a, b, c, d, e: boolean): boolean; + vars: string := 'x1.x2.x3.x4.x5'); + implementation type @@ -428,7 +447,7 @@ end; {$region Digits} -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(n: int64): List; begin var St := new Stack; @@ -445,11 +464,11 @@ begin end end; -/// Возвращает массив, содержащий цифры числа +/// Возвращает список, содержащий цифры числа function Digits(Self: integer): List; extensionmethod := Digits(Self); -/// возвращает массив, содержащий цифры числа +/// возвращает список, содержащий цифры числа function Digits(Self: int64): List; extensionmethod := Digits(Self); @@ -560,4 +579,82 @@ end; {$endregion} +{$region BooleanLogic} + +function BoolToStr(Self: boolean): string; extensionmethod := + if Self then '1' else '0'; + +/// Возвращает логическое значение операции импликации a -> b +function Imp(a, b: boolean) : boolean := not a or b; + +/// Выводит на монитор таблицу истинности для двух переменных +procedure TrueTable(f: function(a, b: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + f(a, b).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для трех переменных +procedure TrueTable(f: function(a, b, c: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], f(a, b, c).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для четырех переменных +procedure TrueTable(f: function(a, b, c, d: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + for var d := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], d.BoolToStr:lengths[3], + f(a, b, c, d).BoolToStr:2) +end; + +/// Выводит на монитор таблицу истинности для пяти переменных +procedure TrueTable(f: function(a, b, c, d, e: boolean): boolean; + vars: string); +begin + var names := vars.ToWords('.'); + var lengths := names.Select(Имя -> Имя.Length + 1).ToArray; + Write(' '); + names.Print; + Writeln(' F'); + for var a := False to True do + for var b := False to True do + for var c := False to True do + for var d := False to True do + for var e := False to True do + Writeln(a.BoolToStr:lengths[0], b.BoolToStr:lengths[1], + c.BoolToStr:lengths[2], d.BoolToStr:lengths[3], + e.BoolToStr:lengths[4], f(a, b, c, d, e).BoolToStr:2) +end; + +{$endregion} + end. \ No newline at end of file diff --git a/bin/Lib/nunit.framework.dll b/bin/Lib/nunit.framework.dll new file mode 100644 index 000000000..8df9f8b3a Binary files /dev/null and b/bin/Lib/nunit.framework.dll differ diff --git a/bin/Lng/Eng/VisualPascalABCNET.dat b/bin/Lng/Eng/VisualPascalABCNET.dat index 8e9bbe08b..6974fdfbf 100644 --- a/bin/Lng/Eng/VisualPascalABCNET.dat +++ b/bin/Lng/Eng/VisualPascalABCNET.dat @@ -126,6 +126,8 @@ M_GOTO_REALIZATION=Go To Definition M_FIND_ALL_REFERENCES=Find References M_RENAME=Rename M_FORMAT=Format Code +M_UNIT_TESTS=Run unit tests + M_SAMPLES=Samples M_COLLAPSE_REGIONS=Collapse regions diff --git a/bin/Lng/Rus/VisualPascalABCNET.dat b/bin/Lng/Rus/VisualPascalABCNET.dat index fd92d2189..e0d1bdbe0 100644 --- a/bin/Lng/Rus/VisualPascalABCNET.dat +++ b/bin/Lng/Rus/VisualPascalABCNET.dat @@ -126,6 +126,8 @@ M_GOTO_REALIZATION=Перейти к реализации M_FIND_ALL_REFERENCES=Найти все ссылки M_RENAME=Переименовать M_FORMAT=Форматировать код +M_UNIT_TESTS=Запустить модульные тесты + M_SAMPLES=Примеры M_COLLAPSE_REGIONS=Свернуть все регионы diff --git a/bin/RunUnitTests.exe b/bin/RunUnitTests.exe new file mode 100644 index 000000000..edb25f28d Binary files /dev/null and b/bin/RunUnitTests.exe differ diff --git a/bin/RunUnitTests.pas b/bin/RunUnitTests.pas new file mode 100644 index 000000000..99b2635e1 --- /dev/null +++ b/bin/RunUnitTests.pas @@ -0,0 +1,260 @@ +{$reference nunit.framework.dll} + +uses NUnit.Framework.Api; +uses NUnit.Framework.Internal; +uses NUnit.Framework.Interfaces; +uses System.Globalization; +uses System; + +var _reportIndex := 0; + +function GetResultStatus(resState: ResultState): string; +begin + var text := resState.Label; + if string.IsNullOrEmpty(text) then + text := resState.Status.ToString; + if (text = 'Failed') or (text = 'Error') then + begin + var text2 := resState.Site.ToString(); + if (text2 = 'SetUp') or (text2 = 'TearDown') then + text := text2 + ' ' + text; + end; + Result := text; +end; + +var Trim_Chars := Arr(#13,#10); + +var RusTestStatus := Dict&( + (TestStatus.Failed,'Тесты провалены'), + (TestStatus.Inconclusive,'Тесты не завершены'), + (TestStatus.Passed,'Тесты прошли'), + (TestStatus.Skipped,'Тесты пропущены'), + (TestStatus.Warning,'Предупреждение') +); + +var RusAssertionStatus := Dict&( + (AssertionStatus.Failed,'Тест не прошёл'), + (AssertionStatus.Inconclusive,'Тесты не завершены'), + (AssertionStatus.Passed,'Тесты прошли'), + (AssertionStatus.Error,'Ошибка'), + (AssertionStatus.Warning,'Предупреждение') +); + +procedure DisplayTestResult(prefix, status, fullName, message, stackTrace: string); +begin + Writeln($'{prefix}) {status}: {fullName}'); + if not string.IsNullOrEmpty(message) then + Writeln(message.TrimEnd(TRIM_CHARS)); + if not string.IsNullOrEmpty(stackTrace) then + Writeln(stackTrace.TrimEnd(TRIM_CHARS)); +end; + +procedure DisplayTestResult(result: ITestResult); +begin + var resultState := result.ResultState; + var fullName := result.FullName; + var message := result.Message; + var stackTrace := result.StackTrace; + _reportIndex += 1; + var text := _reportIndex.ToString; + var count := result.AssertionResults.Count; + if count > 0 then + begin + var num := 0; + var prefix := text; + foreach var assertionResult in result.AssertionResults do + begin + if count > 1 then + prefix := $'{text}-{++num}'; + DisplayTestResult(prefix, RusAssertionStatus[assertionResult.Status], fullName, assertionResult.Message, assertionResult.StackTrace); + end + end + else + begin + var resultStatus := GetResultStatus(resultState); + //if message.StartsWith('No test fixtures were found') then + // message := 'Тесты не найдены'; + + DisplayTestResult(text, resultStatus, fullName, message, stackTrace); + end +end; + +procedure DisplayTestResults(result: ITestResult); +begin + var flag := (result.ResultState.Status = TestStatus.Failed) or (result.ResultState.Status = TestStatus.Warning); + if (result.Test.IsSuite) then + begin + if flag then + begin + var obj := result.Test as TestSuite; + var site := result.ResultState.Site; + if (obj.TestType = 'Theory') or (site = FailureSite.SetUp) or (site = FailureSite.TearDown) then + DisplayTestResult(result); + if site = FailureSite.SetUp then + exit; + end; + foreach var child in result.Children do + DisplayTestResults(child); + end + else if (flag) then + DisplayTestResult(result); +end; + + +type ResultSummary = class + TestCount,PassCount,FailureCount,WarningCount,ErrorCount,InconclusiveCount,InvalidCount,SkipCount,IgnoreCount,ExplicitCount,InvalidTestFixtures: integer; + ResState: ResultState; + StartTime,EndTime: DateTime; + Duration: real; + + function RunCount := PassCount + ErrorCount + FailureCount + InconclusiveCount; + function NotRunCount := InvalidCount + SkipCount + IgnoreCount + ExplicitCount; + function FailedCount := FailureCount + InvalidCount + ErrorCount; + function TotalSkipCount := SkipCount + IgnoreCount + ExplicitCount; + + constructor (result: ITestResult); + begin + InitializeCounters(); + ResState := result.ResultState; + StartTime := result.StartTime; + EndTime := result.EndTime; + Duration := result.Duration; + Summarize(result); + end; + + procedure InitializeCounters(); + begin + TestCount := 0; + PassCount := 0; + FailureCount := 0; + WarningCount := 0; + ErrorCount := 0; + InconclusiveCount := 0; + SkipCount := 0; + IgnoreCount := 0; + ExplicitCount := 0; + InvalidCount := 0; + end; + + procedure Summarize(result: ITestResult ); + begin + var &label := result.ResultState.Label; + var status := result.ResultState.Status; + if result.Test.IsSuite then + begin + if (status = TestStatus.Failed) and (&label = 'Invalid') then + InvalidTestFixtures+=1; + foreach var child in result.Children do + Summarize(child); + end + else + begin + TestCount+=1; + case status of + TestStatus.Passed: PassCount+=1; + TestStatus.Skipped: + if &label = 'Ignored' then + IgnoreCount+=1 + else if &label = 'Explicit' then + ExplicitCount+=1 + else + SkipCount+=1; + TestStatus.Warning: + WarningCount+=1; + TestStatus.Failed: + if &label = 'Invalid' then + InvalidCount+=1 + else if &label = 'Error' then + ErrorCount+=1 + else + FailureCount+=1; + TestStatus.Inconclusive: InconclusiveCount+=1; + end; + end; + end; +end; + +procedure DisplaySummaryReport(summary: ResultSummary); +begin + var status := summary.ResState.Status; + var text := RusTestStatus[status]; + if text = RusTestStatus[TestStatus.Skipped] then + text := RusTestStatus[TestStatus.Warning]; + {var num := 0; + case status of + TestStatus.Skipped: num := 10; + TestStatus.Failed: num := 9; + TestStatus.Passed: num := 8; + else num := 4; + end;} + + Writeln; + Println('Итог теста'); + Println(' Итоговый результат:', text); + Print(' Количество тестов:', summary.TestCount); + Print(', Прошло:', summary.PassCount); + Print(', Не прошло:', summary.FailedCount); + Print(', Предупреждений:', summary.WarningCount); + Println; + if summary.FailedCount > 0 then + begin + Print(' Проваленные тесты - Провалено:', summary.FailureCount); Print(', Ошибки:', summary.ErrorCount); + Print(', Неверные:', summary.InvalidCount); + Println; + end; + if summary.TotalSkipCount > 0 then + begin + Print(' Пропущенные тесты - Пропущено: ', summary.IgnoreCount); + Print(', Явных: ', summary.ExplicitCount); + Print(', Других: ', summary.SkipCount); + Println; + end; + Println(' Начало теста:', summary.StartTime.ToString('T',CultureInfo.CreateSpecificCulture('ru-RU'))); + Println(' Конец теста :', summary.EndTime.ToString('T',CultureInfo.CreateSpecificCulture('ru-RU'))); + Println(' Продолжительность:',summary.Duration.Round(3),'секунд'); + Writeln; +end; + + +begin + var fname := ParamStr(1);//'33.exe'; + var runner := new NUnitTestAssemblyRunner(new DefaultTestAssemblyBuilder()); + var filter := TestFilter.Empty; + var runSettings := Dict&(('WorkDirectory',object('.'))); + + runner.Load(fname,runSettings); + var TestResult := runner.Run(nil,filter); + + //Println($'Не прошло тестов: {TestResult.FailCount}'); + //Println($'Прошло тестов: {TestResult.PassCount}'); + //Println; + + var Summary := new ResultSummary(TestResult); + if Summary.TestCount = 0 then + begin + Println($'Файл {ParamStr(1)}: тесты не найдены'); + Println; + Println('Минимальный файл, содержащий тесты:'#13#10 + ''#13#10 + 'uses NUnitABC;'#13#10 + ''#13#10 + '[Test]'#13#10 + 'procedure Test1;'#13#10 + 'begin'#13#10 + ' Assert.AreEqual(2*2,4);'#13#10 + 'end;'#13#10 + ''#13#10 + 'begin'#13#10 + 'end.' + ); + + end + else + begin + DisplayTestResults(TestResult); + DisplaySummaryReport(Summary); + end; + + + readln; +end. \ No newline at end of file diff --git a/pabcnetc/PABCNETC.csproj b/pabcnetc/PABCNETC.csproj index d4243231e..da40be07e 100644 --- a/pabcnetc/PABCNETC.csproj +++ b/pabcnetc/PABCNETC.csproj @@ -68,6 +68,7 @@ full prompt AllRules.ruleset + true ..\bin\ diff --git a/pabcnetc_clear/PABCNETCclear.csproj b/pabcnetc_clear/PABCNETCclear.csproj index 3102dd2e9..efd700169 100644 --- a/pabcnetc_clear/PABCNETCclear.csproj +++ b/pabcnetc_clear/PABCNETCclear.csproj @@ -58,6 +58,7 @@ full prompt AllRules.ruleset + true ..\bin\